¿Hay alguna forma de formatear / eliminar mi SSD automáticamente después de x intentos fallidos de inicio de sesión?

8

En iOS, existe la opción de que el dispositivo elimine todos los datos después de 10 intentos fallidos de inicio de sesión. ¿Cómo puedo tener la misma opción en macOS para que mi SSD se elimine / reforme luego de que x haya intentado iniciar sesión en mi cuenta de usuario?

    
pregunta user224124 02.11.2017 - 07:12

1 respuesta

5

Con las herramientas integradas (y sin usar servicios externos como "Find my Mac" & "Erase my Mac de forma remota" a través de iCloud) es imposible borrar o reformatear el volumen de arranque con diskutil ... porque el disco es ocupado .

Sin embargo, puedes eliminar tu carpeta de usuario:

El método a continuación utiliza una política de contraseña y, dependiendo del estado de las capacidades de inicio de sesión del usuario, un daemon de inicio y un script de bash invocado por el daemon eliminará la carpeta del usuario.

  1. Cree una política de contraseñas en su escritorio:

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

    Las capacidades de inicio de sesión del usuario se desactivarán después de 10 intentos fallidos de inicio de sesión durante 31536000 segundos (= un año).

  2. Cree un script de 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
    

    en / usr / local / bin / y hazlo ejecutable. Reemplace la cadena nombre de usuario con el nombre de su usuario, ¡pero mantenga los corchetes angulares en la declaración if!

  3. Cree un demonio de lanzamiento org.userdirrm.plist en / Library / LaunchDaemons / con el contenido:

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

    El propietario y el grupo del archivo deben ser raíz: la rueda y los permisos del archivo deben ser 644. El demonio se ejecutará cada 60 segundos. Puede modificar esto cambiando el número entero en la clave StartInterval .

  4. Importar la política de contraseña:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Debe ingresar su contraseña (authenticator = admin).

  5. Ejecutar el demonio:

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

Puede probar la configuración creando un usuario de apéndice, cambiando temporalmente el nombre de usuario en el script de bash e ingresando contraseñas incorrectas al intentar iniciar sesión con este usuario de apéndice. Puede reducir el número de intentos de inicio de sesión fallidos a 3 en la política de contraseña temporalmente para acortar la prueba.

Ajustes:

  • agregando la opción (rm) -P en el script de shell:

      

    Sobrescribe los archivos normales antes de eliminarlos. Los archivos se sobrescriben tres veces, primero con el patrón de bytes 0xff, luego 0x00 y luego 0xff nuevamente, antes de que se eliminen.

  • intentando eliminar la carpeta raíz en lugar de tu carpeta de usuario:

    rm -fR /
    

    o

    rm -fRP /
    

    ¡Los archivos protegidos SIP no se eliminarán / sobrescribirán! Para eliminar / eliminar / sobrescribirlos también, debe deshabilitar SIP.

  • intente obtener el srm binario de una instalación anterior de OS X, agréguelo a High Sierra y utilícelo en el script bash en lugar de rm . El binario srm elimina de forma segura archivos o directorios. Ver man srm para más opciones (no he probado esto).

En mi opinión, el método descrito anteriormente puede ser evitado iniciando el modo de usuario único, iniciando opendirectoryd con launchctl (después de la verificación obligatoria del sistema de archivos y montando el volumen de inicio en /) y eliminando todas las políticas de contraseña con pwpolicy -clearaccountpolicies .

Por lo tanto, no se recomienda formatear o borrar discos o carpetas para "obtener seguridad". En su lugar, cifre su volumen principal con FileVault2 y use buenas contraseñas para todos los usuarios.

    
respondido por el klanomath 02.11.2017 - 21:08

Lea otras preguntas en las etiquetas