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.