C'è un modo per formattare / eliminare automaticamente il mio SSD dopo che x tentativi di accesso falliti?


9

Su iOS è disponibile l'opzione per consentire al dispositivo di eliminare tutti i dati dopo 10 tentativi di accesso non riusciti. Come posso avere la stessa opzione su macOS in modo che il mio SSD venga cancellato / riformato dopo che x non ha tentato di accedere al mio account utente?

Risposte:


6

Con gli strumenti di bordo (e senza utilizzare servizi esterni come "Trova il mio Mac" e "Cancella il mio Mac da remoto" tramite iCloud) è impossibile cancellare o riformattare il volume di avvio diskutil ...perché il disco è occupato .


Puoi rimuovere la tua cartella utente però:

Il metodo seguente utilizza un criterio password e, a seconda dello stato delle funzionalità di accesso dell'utente, un demone di avvio e uno script bash richiamato dal demone rimuoveranno la cartella dell'utente.

  1. Crea una tabella dei criteri per le password sul desktop:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>policyCategoryAuthentication</key>
        <array>
            <dict>
                <key>policyContent</key>
                <string>(policyAttributeFailedAuthentications &lt; policyAttributeMaximumFailedAuthentications) or (policyAttributeCurrentTime &gt; policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds)</string>
                <key>policyIdentifier</key>
                <string>com.apple.maximumFailedLoginAttempts</string>
                <key>policyParameters</key>
                <dict>
                    <key>autoEnableInSeconds</key>
                    <integer>31536000</integer>
                    <key>policyAttributeMaximumFailedAuthentications</key>
                    <integer>10</integer>
                </dict>
            </dict>
        </array>
    </dict>
    </plist>
    

    Le funzionalità di accesso dell'utente verranno disabilitate dopo 10 tentativi di accesso non riusciti per 31536000 secondi (= un anno).

  2. Crea uno script bash rmuserdir.sh :

    #!/bin/bash
    
    PWPOL=$(pwpolicy -u username authentication-allowed)
    
    if [[ $PWPOL == 'User <username> is not allowed to authenticate: Failed global policy "com.apple.maximumFailedLoginAttempts"'  ]]
    
    then rm -fR /Users/username
    
    fi
    

    in / usr / local / bin / e renderlo eseguibile. Sostituisci il nome utente della stringa con il nome del tuo utente ma mantieni le parentesi angolari nell'istruzione if!

  3. Crea un demone di avvio org.userdirrm.plist in / Library / LaunchDaemons / con il contenuto:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.userdirrm</string>
        <key>ProgramArguments</key>
        <array>
            <string>/bin/bash</string>
            <string>/usr/local/bin/rmuserdir.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/org.userdirrm.stderr</string>
        <key>StandardOutPath</key>
        <string>/tmp/org.userdirrm.stdout</string>
        <key>StartInterval</key>
        <integer>60</integer>
    </dict>
    </plist>
    

    Il proprietario e il gruppo del file devono essere root: le autorizzazioni per la ruota e il file devono essere 644. Il demone verrà eseguito ogni 60 secondi. Puoi modificarlo modificando il numero intero nella chiave StartInterval .

  4. Importa la politica della password:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Devi inserire la tua password (authenticator = admin).

  5. Avvia il demone:

    sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
    

È possibile testare la configurazione creando un utente stub, modificando temporaneamente il nome utente nello script bash e inserendo password errate nel tentativo di accedere con questo utente stub. È possibile ridurre temporaneamente il numero di tentativi di accesso non riusciti a 3 nella politica password per abbreviare il test.

Ritocchi:

  • aggiungendo l'opzione (rm) -P nello script della shell:

    Sovrascrivi i file regolari prima di eliminarli. I file vengono sovrascritti tre volte, prima con il modello di byte 0xff, quindi 0x00 e quindi nuovamente 0xff, prima di essere eliminati.

  • cercando di rimuovere la cartella principale invece della cartella utente:

    rm -fR /
    

    o

    rm -fRP /
    

    I file protetti SIP non verranno rimossi / sovrascritti! Per rimuoverli / cancellarli / sovrascriverli, è necessario disabilitare SIP.

  • prova a ottenere il binario srm da una vecchia installazione di OS X, aggiungilo a High Sierra e usalo nello script bash invece di rm . Il binario SRM rimuove in modo sicuro i file o directory. Controlla man srmulteriori opzioni (non l'ho testato).

A mio avviso, il metodo sopra descritto può essere aggirato avviando in modalità utente singolo, avviando opendirectoryd con launchctl (dopo il controllo del file system obbligatorio e montando il volume di avvio su /) e rimuovendo tutti i criteri password con pwpolicy -clearaccountpolicies.

Pertanto non è consigliabile formattare o cancellare dischi o cartelle per "ottenere sicurezza". Invece crittografa il tuo volume principale con FileVault2 e usa buone password per tutti gli utenti.


10 tentativi di accesso falliti in totale? Potrebbero essere dieci volte di seguito?
Andre Araujo,

@AndreAraujo Basta testarlo con un utente stub ;-)
klanomath

L'ho appena fatto! Funziona molto bene! Grazie!
Andre Araujo,

@AndreAraujo Se si dispone di un passwort molto breve e l'inserimento e la pressione del tasto Invio richiede un secondo, potrebbe essere necessario attendere fino a 50 secondi fino all'eliminazione della cartella utente. Il rmuserdir.sh viene eseguito ogni 60 secondi solo ... e 60 sec - 10 x 1 sec = 50 sec.
klanomath,

Ho testato molti casi con un utente stub, ora accendo per il mio utente. Ma ho cambiato alcune configurazioni, lavoro in 600 secondi (10 minuti) e autoEnableInSeconds con 84600 secondi. Quindi, se mia figlia o mia moglie hanno provato qualcosa per errore, hanno del tempo per agire!
Andre Araujo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.