Esiste un modo per formattare / eliminare automaticamente il mio SSD dopo x tentativi di accesso falliti?

8

Su iOS è possibile che il dispositivo elimini 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 / riformattato dopo che x tentativi falliti di accedere al mio account utente?

    
posta user224124 02.11.2017 - 07:12
fonte

1 risposta

5

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

Puoi comunque rimuovere la tua cartella utente:

Il metodo seguente utilizza un criterio password e, in base allo stato delle funzionalità di accesso dell'utente, un demone di lancio e uno script bash richiamati dal demone rimuoveranno la cartella utente.

  1. Crea un plist di criteri 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 saranno disabilitate dopo 10 tentativi di accesso falliti per 31536000 secondi (= un anno).

  2. Crea uno script di 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 la stringa username con il nome dell'utente, ma mantieni le parentesi angolari nella dichiarazione if!

  3. Crea un demone di lancio 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 di file devono essere root: le autorizzazioni per ruota e file devono essere 644. Il demone verrà eseguito ogni 60 secondi. Puoi modificare questo 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 daemon:

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

Puoi testare il set-up creando un utente stub, cambiando temporaneamente il nome utente nello script bash e inserendo password errate cercando di accedere con questo utente stub. È possibile ridurre temporaneamente il numero di tentativi di accesso non riusciti a 3 nel criterio password per abbreviare il test.

Tweaks:

  • aggiunta dell'opzione -p (-m) nello script della shell:

    Overwrite regular files before deleting them. Files are overwritten three times, first with the byte pattern 0xff, then 0x00, and then 0xff again, before they are deleted.

  • prova a rimuovere la cartella radice invece della cartella utente:

    rm -fR /
    

    o

    rm -fRP /
    

    I file protetti SIP non verranno rimossi / sovrascritti! Per rimuovere / eliminare / sovrascrivere anche loro, è necessario disabilitare SIP.

  • cerca di ottenere lo srm binario da una vecchia installazione di OS X, aggiungilo a High Sierra e usalo nello script bash invece di rm . Lo srm binario rimuove in modo sicuro i file o le directory. Controlla man srm per ulteriori opzioni (non l'ho ancora testato).

Secondo me il metodo descritto sopra può essere aggirato avviando la modalità utente singolo, avviando opendirectoryd con launchctl (dopo il controllo obbligatorio del file system e montando il volume di avvio su /) e rimuovendo tutte le politiche password con pwpolicy -clearaccountpolicies .

Pertanto, la formattazione o la cancellazione di dischi o cartelle per "guadagnare sicurezza" non è raccomandata. Invece crittografa il tuo volume principale con FileVault2 e usa buone password per tutti gli utenti.

    
risposta data 02.11.2017 - 21:08
fonte

Leggi altre domande sui tag