Gibt es eine Möglichkeit, meine SSD nach x fehlgeschlagenen Anmeldeversuchen automatisch zu formatieren / löschen?

9

Unter iOS besteht die Möglichkeit, dass das Gerät nach 10 fehlgeschlagenen Anmeldeversuchen alle Daten löscht. Wie kann ich unter macOS dieselbe Option verwenden, damit meine SSD gelöscht / neu formatiert wird, nachdem x fehlgeschlagene Versuche unternommen hat, sich bei meinem Benutzerkonto anzumelden?

user224124
quelle

Antworten:

6

Mit integrierten Tools (und ohne externe Dienste wie "Find my Mac" und "Erase my Mac remote" über iCloud) ist es unmöglich, das Startvolume zu löschen oder neu zu formatieren, diskutil ...da die Festplatte ausgelastet ist .


Sie können Ihren Benutzerordner jedoch entfernen:

Bei der folgenden Methode wird eine Kennwortrichtlinie verwendet. Abhängig vom Status der Benutzeranmeldefunktionen entfernen ein Startdämon und ein vom Dämon aufgerufenes Bash-Skript den Benutzerordner.

  1. Erstellen Sie eine Kennwortrichtlinienliste auf Ihrem 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>
    

    Die Benutzeranmeldefunktionen werden nach 10 fehlgeschlagenen Anmeldeversuchen für 31536000 Sekunden (= ein Jahr) deaktiviert.

  2. Erstellen Sie ein Bash-Skript 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 / und mach es ausführbar. Ersetzen Sie den Benutzernamen der Zeichenfolge durch den Namen Ihres Benutzers, aber behalten Sie die spitzen Klammern in der if-Anweisung bei!

  3. Erstellen Sie einen Startdämon org.userdirrm.plist in / Library / LaunchDaemons / mit folgendem Inhalt:

    <?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>
    

    Dateieigentümer und -gruppe müssen root sein: Rad- und Dateiberechtigungen müssen 644 sein. Der Dämon wird alle 60 Sekunden ausgeführt. Sie können dies optimieren, indem Sie die Ganzzahl im Schlüssel StartInterval ändern .

  4. Importieren Sie die Kennwortrichtlinie:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Sie müssen Ihr Passwort (Authentifikator = Administrator) eingeben.

  5. Starten Sie den Daemon:

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

Sie können die Einrichtung testen, indem Sie einen Stub-Benutzer erstellen, den Benutzernamen im Bash-Skript vorübergehend ändern und falsche Kennwörter eingeben, um sich mit diesem Stub-Benutzer anzumelden. Sie können die Anzahl der fehlgeschlagenen Anmeldeversuche in der Kennwortrichtlinie vorübergehend auf 3 senken, um den Test zu verkürzen.

Tweaks:

  • Hinzufügen der Option (rm) -P im Shell-Skript:

    Überschreiben Sie reguläre Dateien, bevor Sie sie löschen. Dateien werden dreimal überschrieben, zuerst mit dem Bytemuster 0xff, dann mit 0x00 und dann erneut mit 0xff, bevor sie gelöscht werden.

  • Versuchen Sie, den Stammordner anstelle Ihres Benutzerordners zu entfernen:

    rm -fR /
    

    oder

    rm -fRP /
    

    SIP-geschützte Dateien werden nicht entfernt / überschrieben! Um sie auch zu entfernen / löschen / überschreiben, müssen Sie SIP deaktivieren.

  • Versuchen Sie, die binäre srm von einer älteren OS X-Installation abzurufen, fügen Sie sie zu High Sierra hinzu und verwenden Sie sie im Bash-Skript anstelle von rm . Der binäre srm entfernt sicher Dateien oder Verzeichnisse. Suchen Sie man srmnach weiteren Optionen (ich habe dies nicht getestet).

Meiner Meinung nach kann die oben beschriebene Methode umgangen werden, indem Sie im Einzelbenutzermodus booten, das opendirectoryd mit launchctl starten (nach der obligatorischen Überprüfung des Dateisystems und dem Mounten des Startvolumes auf /) und alle Kennwortrichtlinien mit entfernen pwpolicy -clearaccountpolicies.

Daher wird das Formatieren oder Löschen von Datenträgern oder Ordnern zur "Erhöhung der Sicherheit" nicht empfohlen. Verschlüsseln Sie stattdessen Ihr Hauptvolume mit FileVault2 und verwenden Sie für alle Benutzer gute Kennwörter.

Klanomath
quelle
Insgesamt 10 fehlgeschlagene Anmeldeversuche? Könnte es zehnmal hintereinander sein?
Andre Araujo
@ AndreAraujo Testen Sie es einfach mit einem Stub-Benutzer ;-)
Klanomath
Ich habe es gerade getan! Es funktioniert sehr gut! Vielen Dank!
Andre Araujo
@AndreAraujo Wenn Sie ein sehr kurzes Passwort haben und das Eingeben und Drücken der Eingabetaste eine Sekunde dauert, müssen Sie möglicherweise bis zu 50 Sekunden warten, bis der Benutzerordner gelöscht wird. Die Datei rmuserdir.sh wird nur alle 60 Sekunden ausgeführt ... und 60 Sekunden - 10 x 1 Sekunde = 50 Sekunden.
Klanomath
Ich habe viele Fälle mit einem Stub-Benutzer getestet, jetzt schalte ich für meinen Benutzer ein. Aber ich habe einige Konfigurationen geändert, Job in 600 Sekunden (10 Minuten) und autoEnableInSeconds mit 84600 Sekunden. Wenn meine Tochter oder meine Frau versehentlich etwas versucht haben, haben Sie etwas Zeit zum Handeln!
Andre Araujo