Newsgroup: it.comp.sicurezza.varie
Titolo: E' possibile proteggere qualcosa di simile.

Ho un problema da risolvere (per la cronaca sono in ambiente GNU/Linux)
Cerchero' di essere il piu' chiaro possibile.
Diciamo che ho un pc (A) da un cliente che fa certe cose e che deve
comunicare con un pc (B) da me; ovviamente la connessione tra (A) e (B)
avviene tramite ssh quindi su un canale sicuro e ovviamente (A) sara' il
"piu' blindato possibile" a livello di firewall etc etc.
Io voglio essere sicuro che, se per qualche motivo la macchina (A) viene
"bucata" e qualcuno riesce ad accedervi [sia da remoto che in locale], la
connessione tra (A) e (B) non avvenga piu' (cioe' diciamo per esempio che
non vorrei che quel farabutto che e' riuscito ad "impossessarsi" della
macchina (A), possa, tramite la connessione (A)-(B) andare ad inquinare il
database che ho su (B))
avete qualche idea su come poter garantire l'autenticazione della
connessione tra (A) e (B), tenendo presente quanto detto sopra? e' una cosa
possibile, oppure gia' il firewall (ben configurato) e una connessione
tramite ssh sarebbe gia' il massimo della sicurezza che si puo' avere?
grazie in anticipo ;)
                                  MAS!
 

se A viene bucato e' meglio che A avverta via mail (o sms) e si spenga, in 
questo modo salta anche il collegamento A-B
il tuo problema e' di capire quando di fatto il sistema A viene bucato, e 
questo non e' banale e non esiste un metodo infallibile.
esistono dei tool (
triplwire.org
) per questo.
Se vuoi fare a manina potresti:
1) via crontab (ogni 5 min. per esempio) il sistema fa un netstat -nap|grep 
LISTEN e lo confronta con un file di modello esistente, in caso manda 
l'allarme e si spegne. Questo perche' in generale l'hacker apre una shell 
in ascolto su una porta
2) potresti fare uno scriptino simile per ps -aux (per i processi) e 
confronti con una lista di demoni "trusted", in caso di anomalie fa mail -s 
"aiuto" 
tuo_in...@email.it
 e si spegne.
Per realizzare questi due punti devi giocare con diff
3) il problema resta allora l'autenticita' dei files /bin/netstat e 
/bin/ps, files che di solito vengono modificati nella struttura ma non 
nella dimensione ne' nell'atime e nell'mtime, per cui resta solo 
l'md5checksum, se usi rpm allora rpm -Vf /sbin/netstat ti puo' aiutare.
Il problema e' che i files di confronto del md5checksum (o il db di rpm) 
restano nel filesystem di A, per cui possono essere modificati e addio 
controllo di autenticita' dei files.
Per aggirare questo potresti da B mettere in crontab uno script che faccia 
un scp (visto che c'e' sshd) dei files /bin/netstat e /bin/ps e lo 
confronti con il checksum che hai su B (aggiungi anche il controllo sui 
comandi stessi /usr/bin/md5sum e /bin/rpm)
CIAO!
cyn


connessione tra (A) e (B), tenendo presente quanto detto sopra?
Il tuo problema e' stabilire se la macchina e' compromessa... e se e'
compromessa BENE, non lo puoi neanche stabilire.
L'unica soluzione che mi viene in mente e' autenticare il tizio senza
usare alcuna informazione contenuta sulla macchina A. Password? Anzi,
one time password; se la macchina e' compromessa la password potrebbe
essere sottratta (snooping).
Oppure, via ssh, esegui una qualche backdoor ben nascosta che riesca,
non so come (tripwire?) a validare lo stato della macchina A.
Leonardo
-- 
"Open Source programs are designed and developed.
 Our products are tested."
 Steve Lipner, manager, Microsoft Security Response Center

connessione tra (A) e (B) non avvenga piu' (cioe' diciamo per esempio che
IMHO no.
Perche' se uno riesce ad entrare in una macchina GNU/Linux a livello 
di root, come minimo ti installa un rootkit e cancella le tracce, 
rendendo la sua presenza pressoche' invisibile.
Dovresti fare controlli incrociati sui programmi interessabili dai
vari kit, ma fallirebbe al primo upgrade che fai. Insomma un casino da
tenere sotto controllo.
Ma io ne so poco, meglio se dai ascolto agli altri ;)
-- 
Filippo "Kirone" Zamengo 
Quanto scritto deve ritenersi IMHO e indipendente dal datore di lavoro
e-mail modificata: togliere DESPAM e .invalid

controllo di autenticita' dei files.
si questo e' vero, ma se io controllo che non vengano toccati/modificati
anche questi files, visto che il collegamento A-B avviene spesso (metti una
volta al minuto per esempio), l'hacker di turno dovrebbe riuscire a fare
tutto entro un minuto prima che il sistema si accorga che e' stato
modificato qualche suo file "vitale".
grazie per tutte le idee che mi hai dato.. sicuramente mettendole un po'
tutte, qualcosa di buono riuscira' a venire fuori. ;)
ciao ciao!
                                  MAS!

non so come (tripwire?) a validare lo stato della macchina A.
avevo pensato anche ad installare un keylogger sulla macchina cosi' se
qualcuno prova a fare una login "fisica" dalla macchina stessa, il tutto
viene loggato e il sistema potrebbe rilevare l'anomalia e segnalare il
tutto
ciao e grazie!
                                  MAS!

 non so come (tripwire?) a validare lo stato della macchina A.
Un metodo molto semplice, che pero' si basa sulla "security by
obscurity" (...) che ho pensato e' questo:
Poiche' "if you want beat them, join them", bisogna modificare i files
che tu vuoi proteggere inserendo una opzione nascosta che ti ritorni lo
stato del binario. ad esempio, "ls --checkme". il file deve tornare una
stringa nota, o una checksum. Se l'intruso tarocca il binario, il
programma ritornera' probabilmente un errore. 
Il fatto e' che se l'intruso subodora qualcosa, o il metodo diviene di
pubblico dominio, la sua sicurezza diviene pressocche' nulla.
Il fatto stesso di aver postato questo messaggio potrebbe renderlo vano!
:(
HappyCactus
-- 
Keyboard not present or keyboard error
Press F1 to resume

 vari kit, ma fallirebbe al primo upgrade che fai. Insomma un casino da
Una possibilita' e' di utilizzare un sistema esterno che monitori
l'attivita' del server. Ad esempio, il server potrebbe riversare tutti i
comandi, i log, etc... sulla rete interna. Il monitor piglia tutto
quanto arriva dalla rete e lo memorizza in un qualche formato (ad
esempio, stampare il log in tempo reale). 
Ovviamente il monitor deve solamente fornire quel servizio, magari solo
tramite NetCat (cioe' una copia cieca dei dati in arrivo), ed essere
ultra-sicuro.


 ;-)
(anche se e' un post delle HumourFAQ)


obscurity" (...) che ho pensato e' questo:
grazie la cosa e' interessante, anche se io piu' di tutto voglio proteggere
la connessione, cioe' visto che i dati trasmetti conterrebbero una sorta di
RPC da eseguire su B, non vorrei che, tramite la trasmissione A potesse
fare "danni" su B (anche se su B le procedure remote che si potrebbero
eseguire sarebbero LIMITATISSIME e concentrata nell'aggiornamento di un
db).
Un'altra cosa che mi e' venuta in mente, oltre ai controlli gia' suggeriti,
al keylogger, al controllo delle porte, etc etc, e' quella di "numerare" i
msg che A manda a B. Se arriva un numero sbagliato o non in sequenza, si
genera un errore. Ovvio, l'intruso potrebbe benissimo manomettere anche il
contatore, pero' e' ancora una "scocciatura" in piu'... o secondo voi e'
una cosa del tutto inutile?!
ciao ciao!
                                  MAS!

fare "danni" su B
No, e' il contrario. B forza A ad eseguire determinati codici, e questi,
che girano su A, valutano le sue condizioni di salute.


 (anche se e' un post delle HumourFAQ)
Scusa, ma mi sono un attimo perso.
Cosa intendi dire?
Un HappyCactus perplesso... o intontito?


Cosa intendi dire?
Leggi quel post e confrontalo col tuo :-)


che girano su A, valutano le sue condizioni di salute.
ah, ok, avevo capito un'altra cosa... in effetti anche questo potrebbe
essere molto utile, grazie! ;)
ciao ciao!
                                  MAS!

 Leggi quel post e confrontalo col tuo :-)
Ho capito!
Mi hai mandato il primo post, ti riferivi ad una delle risposte!
:)
Parlando seriamente, io sono convinto che tale sistema non possa essere
implementato in modo "diffuso", nel senso che non appena la cosa viene
subodorata, la sua efficacia diviene pressocche' nulla. Che ne pensi?
HappyCactus


subodorata, la sua efficacia diviene pressocche' nulla. Che ne pensi?
Non credo. Un rootkit dovrebbe praticamente sostituire l'intero sistema, e
dovrebbe farlo usando funzioni delle quali non si puo' fidare. Certo, ogni
metodo "diffuso" puo' essere sovvertito da un rootkit apposito.
Ma a quel punto il rootkit dovrebbe effettuare una diagnostica, per sapere
QUALE metodo - o quale COMBINAZIONE di metodi - sta affrontando. E sapendo
che alcune combinazioni possono riconoscere alcune diagnostiche :-)
Insomma, il Plug&Play Detect di Windows; solo che adesso i devices "remano
contro", cercando di NON farsi riconoscere.
IMHO, "Mission Impossible".


 contro", cercando di NON farsi riconoscere.
Esattamente come Windows, quindi.
-- 
"Ehi, fratelli. Qui c'e' scritto che c'e' anche il tempo per combattere".
SecurFaq             : 
http://securfaq.usenet.eu.org
Biancorossi Siamo Noi: 
http://www.tifonet.it/free/ancona/

 eccetera).
Esattamente, il concetto e' quello. Nel mio post originale intendevo
dire proprio quello.
Quello che eccepisco, tuttavia, e' che se distribuissi un
"anti-r00t-kit" del genere, qualcuno potrebbe a sua volta modificarlo e
vanificarne il funzionamento.
Ovvero, non puo' trattarsi di un tool a larga diffusione, ma solo di una
cosa lasciata all'iniziativa del singolo utente...


 vanificarne il funzionamento.
Infatti questo e' scontato, e' come la corsa agli armamenti. Prendi gli
spammer.. Quando si comincio' a ricevere quintali di spam, qualcuno
comincio' a mettere la scritta NOSPAM a destra e/o a sinistra dell'@,
questo metodo divenne di uso universale e gli spammer cominciarono a usare
programmi che filtravano la stringa NOSPAM dagli indirizzi raccolti,
allora si comincio' a usare altre stringhe antispam e cosi' via.


 programmi che filtravano la stringa NOSPAM dagli indirizzi raccolti,
Ecco perche' non mi arriva spam :)