10 votes

Existe-t-il un moyen de formater/supprimer automatiquement mon SSD après x tentatives de connexion infructueuses ?

Sur iOS, il est possible de demander à l'appareil de supprimer toutes les données après 10 tentatives de connexion infructueuses. Comment puis-je avoir la même option sur MacOS afin que mon disque dur SSD soit supprimé/réformé après x tentatives infructueuses de connexion à mon compte utilisateur ?

6voto

klanomath Points 63400

Avec les outils embarqués (et sans utiliser de services externes comme "F diskutil ... parce que le disque est occupé .


Vous pouvez cependant supprimer votre dossier utilisateur :

La méthode ci-dessous utilise une politique de mot de passe et selon l'état des capacités de connexion de l'utilisateur, un démon de lancement et un bash script invoqué par le démon supprimera le dossier de l'utilisateur.

  1. Créez un plist de politique de mot de passe sur votre bureau :

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

    Les capacités de connexion de l'utilisateur seront désactivées après 10 tentatives de connexion infructueuses pendant 31536000 secondes (=un an).

  2. Créer un 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

    dans /usr/local/bin/ et le rendre exécutable. Remplacez la chaîne nom d'utilisateur avec le nom de votre utilisateur mais gardez les crochets dans l'instruction if !

  3. Créer un démon de lancement org.userdirrm.plist dans /Library/LaunchDaemons/ avec le contenu :

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

    Le propriétaire et le groupe du fichier doivent être Root:wheel et les permissions du fichier doivent être 644. Le démon sera exécuté toutes les 60 secondes. Vous pouvez modifier ceci en changeant l'entier dans la clé StartInterval .

  4. Importez la politique de mot de passe :

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist

    Vous devez entrer votre mot de passe (authenticator=admin).

  5. Lancez le démon :

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

Vous pouvez tester la configuration en créant un utilisateur fictif, en changeant le nom d'utilisateur dans le bash script temporairement et en entrant des mots de passe erronés en essayant de se connecter avec cet utilisateur fictif. Vous pouvez réduire temporairement le nombre de tentatives de connexion échouées à 3 dans la politique de mot de passe pour raccourcir le test.

Des ajustements :

  • en ajoutant l'option (rm) -P dans le shell script :

    Écraser les fichiers réguliers avant de les supprimer. Les fichiers sont écrasés trois fois, d'abord avec le motif d'octets 0xff, puis 0x00, et enfin 0xff à nouveau, avant d'être supprimés.

  • en essayant de supprimer le dossier racine au lieu de votre dossier utilisateur :

    rm -fR /

    ou

    rm -fRP /

    Les fichiers protégés par SIP ne seront pas supprimés/écrasés ! Pour les supprimer/supprimer/écrire également, vous devez désactiver SIP.

  • essayer d'obtenir le binaire srm d'une installation OS X plus ancienne, l'ajouter à High Sierra et l'utiliser dans le script de bash au lieu de rm . Le système binaire srm supprime en toute sécurité des fichiers ou des répertoires. Consultez man srm pour d'autres options (je ne l'ai pas testé).


A mon avis, la méthode décrite ci-dessus peut être contournée en démarrant en mode utilisateur unique, en lançant l'opendirectoryd avec launchctl (après la vérification obligatoire du système de fichiers et le montage du volume de démarrage sur /) et en supprimant toutes les politiques de mot de passe avec pwpolicy -clearaccountpolicies .

Il n'est donc pas recommandé de formater ou d'effacer des disques ou des dossiers pour "gagner en sécurité". Chiffrez plutôt votre volume principal avec FileVault2 et utilisez de bons mots de passe pour tous les utilisateurs.

0 votes

10 tentatives de connexion échouées au total ? Pourrait-il s'agir de dix tentatives consécutives ?

0 votes

@AndreAraujo Testez-le avec un utilisateur fictif ;-)

0 votes

Je viens de le faire ! Cela fonctionne très bien ! Merci d'avance !

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X