Come monitorare gli accessi a Screen Sharing e SSH?

1

Non fidando di nessuno, nemmeno dei miei firewall e altre misure contro hacker invasivi, mi piace essere in grado di monitorare qualsiasi accesso riuscito ai miei sistemi OS X (ad es. immediatamente inviando una e-mail al mio account gmail).

Come posso realizzare questo, compresi gli accessi tramite Screen Sharing e SSH?

Posso vedere che il file secure.log elenca questi accessi, ma come li monitoro e li filtro per accessi riusciti, al fine di emettere email su questi eventi?

L'utente bmike ha suggerito di utilizzare il comando tail sul file secure.log. Ho trovato che questo comando ha un'opzione "-F" che è adatta per questa attività: continuo a segnalare righe aggiunte al file di log e persino a gestire le rotazioni dei file di registro.

Ma questo non è ancora sufficiente per i miei bisogni. Voglio solo inviare le notifiche se si verifica un accesso esterno (accesso), non ogni volta che un'attività locale viene autorizzata.

Ecco un estratto dal mio file secure.log:

mymac login[26292]: in pam_sm_acct_mgmt(): OpenDirectory - Membership cache TTL set to 1800.
mymac login[26292]: in od_record_check_pwpolicy(): retval: 0
mymac login[26292]: in od_record_attribute_create_cfstring(): returned 3 attributes for dsAttrTypeStandard:AuthenticationAuthority
mymac sudo[26296]:    myname : 3 incorrect password attempts ; TTY=ttys005 ; PWD=/Users/myname ; USER=root ; COMMAND=/bin/bash
mymac sudo[26301]:    myname : TTY=ttys005 ; PWD=/Users/myname ; USER=root ; COMMAND=/bin/bash
mymac com.apple.SecurityServer[27]: Succeeded authorizing right 'system.hdd.smart' by client '/Library/Application Support/iStat local/iStatLocalDaemon' [133] for authorization created by '/Library/Application Support/iStat local/iStatLocalDaemon' [133]
mymac sshd[26308]: Accepted publickey for myname from x.x.x.x port 62433 ssh2
mymac screensharingd[26328]: Authentication: SUCCEEDED :: User Name: John Doe :: Viewer Address: x.x.x.x :: Type: DH

Solo gli "screensharingd" e "sshd" sono rilevanti per me in questo esempio. Ma non sembra esserci una chiara distinzione tra queste e le altre autorizzazioni locali. L'unico modello comune che trovo è l'indirizzo IP, ma è sicuro? Immagino che per rendere il mio script generalmente utilizzabile (da chiunque), non dovrei solo rilevare indirizzi IPv4 ma anche indirizzi IPv6. E posso essere sicuro che altri tipi di accessi esterni (ad esempio la condivisione di file) elenchino anche un indirizzo IP nel loro formato raw come questo? Non usare mai nomi simbolici che non sarei in grado di rilevare con questo modello?

In realtà, ho anche effettuato l'accesso tramite File Sharing (AFP) - che non è stato nemmeno inserito in secure.log, stranamente! Il che significa che secure.log probabilmente non è il solo o il punto centrale per apprendere le autorizzazioni.

Speravo che ci fosse un punto centrale in OSX che si occupasse di tutte le autorizzazioni di nome utente / password e che questo punto avrebbe anche fornito qualche aggancio per il monitoraggio.

Temo che alla mia domanda non possa essere data una risposta sufficiente in modo generico. Vado ora e chiedo sulla mailing list di sicurezza di Apple. Ti riporto.

Sfondo:

Il mio ragionamento per questo tipo di domande è che penso che nessun sistema sia sicuro dall'intrusione. Pertanto, fare affidamento su misure per prevenire un effrazione non è una misura sicura da sola. L'aggiunta di notifiche (esterne) su quando avviene un accesso a un sistema è ciò che lo rende molto più controllabile: se qualcuno riesce a penetrare, verrà rilevato da questo metodo, quindi il sistema non sarà più considerato attendibile e sarà affrontato. Senza questo tipo di monitoraggio, qualcuno potrebbe essere in grado di entrare in azione e quindi modificare il sistema fino a un punto in cui qualcuno che guarda dopo non sarà in grado di dire cosa è successo, supponendo che il sistema sia ancora al sicuro.

    
posta Thomas Tempelmann 12.02.2013 - 13:24
fonte

2 risposte

2

Sì: sarebbe più efficiente a tail -f del file di registro in modo che lo script debba analizzare solo ogni riga del file una volta, piuttosto una volta per intervallo.

Ovviamente, devi ancora scrivere e testare il codice per monitorare le volte in cui il file di log viene ruotato e forse controllare due volte che non hai perso un evento eseguendo la scansione dell'intero nuovo file una volta quando lo hai collegato per la prima volta file.

Ciò che è meglio è un compromesso tra il tuo livello di comfort e le tue abilità. Il MIT ha anche senso sniffare il traffico di rete da quando la condivisione dello schermo ascolta le porte conosciute, oppure è possibile monitorare i nuovi processi in ascolto sulle nuove porte oppure attivare il controllo dei processi e monitorare quei registri o analizzare la tabella dei processi. Ci sono molti modi per pelle questo gatto.

    
risposta data 13.02.2013 - 14:25
fonte
0

Se hai già elaborato come estrarre le informazioni dal registro, allora un modo semplice per farlo funzionare solo quando richiesto piuttosto che eseguire il polling ogni giorno / ora ecc. è aggiungere lo script come azione di accesso al utenti in questione. Convincili a interpretare i registri, a capire se si tratta di un accesso locale o remoto e di e-mail (o imitazione ecc.) In modo appropriato.

    
risposta data 13.02.2013 - 13:34
fonte

Leggi altre domande sui tag