10 votos

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

En iOS existe la opción de que el dispositivo borre 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 borre/reforme después de x intentos fallidos de iniciar sesión en mi cuenta de usuario?

6voto

klanomath Puntos 19587

Con las herramientas integradas (y sin utilizar servicios externos como "Find my Mac" y "Erase my Mac remotamente" 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 siguiente utiliza una política de contraseñas y dependiendo del estado de las capacidades de inicio de sesión del usuario, un demonio de lanzamiento y un bash script invocado por el demonio eliminará la carpeta del usuario.

  1. Cree un plist de 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. Crear un bash script 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 hacerlo ejecutable. Reemplace la cadena nombre de usuario con el nombre de su usuario, pero mantenga los paréntesis angulares en la sentencia if.

  3. Crear 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 Root:wheel y los permisos del archivo deben ser 644. El demonio se ejecutará cada 60 segundos. Puede modificar esto cambiando el número entero de la clave StartInterval .

  4. Importe la política de contraseñas:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist

    Tienes que introducir tu contraseña (authenticator=admin).

  5. Inicie el demonio:

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

Puede probar la configuración creando un usuario ficticio, cambiando el nombre de usuario en el bash script temporalmente e introduciendo contraseñas erróneas intentando iniciar sesión con este usuario ficticio. Puedes bajar el número de intentos fallidos de inicio de sesión a 3 en la política de contraseñas temporalmente para acortar la prueba.

Ajustes:

  • añadiendo la opción (rm) -P en el shell script:

    Sobrescribir los archivos regulares antes de borrarlos. Los archivos se sobrescriben tres veces, primero con el patrón de bytes 0xff, luego 0x00, y luego 0xff de nuevo, antes de ser borrados.

  • tratando de eliminar la carpeta Root en lugar de su carpeta de usuario:

    rm -fR /

    o

    rm -fRP /

    Los archivos protegidos por SIP no serán eliminados/sobreescritos. Para eliminar/borrar/sobrescribirlos también, tiene que desactivar SIP.

  • intente obtener el binario srm de una instalación antigua de OS X, añadirlo a High Sierra y utilizarlo en el bash script en lugar de rm . El binario srm elimina de forma segura archivos o directorios. Consulte man srm para otras opciones (no lo he probado).


En mi opinión, el método descrito anteriormente puede evitarse arrancando en modo de usuario único, lanzando el opendirectoryd con launchctl (después de la comprobación obligatoria del sistema de archivos y montando el volumen de arranque 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 "ganar seguridad". En su lugar, cifra tu volumen principal con FileVault2 y utiliza buenas contraseñas para todos los usuarios.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X