Чи існує спосіб автоматичного форматування / видалення SSD після x невдалої спроби входу?


9

На iOS є можливість змусити пристрій видалити всі дані після 10 невдалих спроб входу. Як я можу мати однаковий варіант на macOS, щоб мій SSD видалявся / реформувався після того, як x не вдалося ввійти в мій обліковий запис користувача?

Відповіді:


6

За допомогою вбудованих інструментів (і без використання зовнішніх служб, таких як "Знайти мій Mac" та "Видалити мій Mac віддалено" через iCloud) неможливо стерти або переформатувати об'єм завантаження, diskutil ...оскільки диск зайнятий .


Ви можете видалити свою папку користувача, хоча:

Наведений нижче метод використовує політику щодо паролів, і залежно від стану можливостей входу користувача, демон-запуск та сценарій bash, на який посилається демон, видалять папку користувача.

  1. Створіть список робочих місць щодо політики паролів:

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

    Можливості входу користувача будуть відключені після 10 невдалих спроб входу протягом 31536000 секунд (= один рік).

  2. Створіть 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
    

    в / usr / local / bin / та зроби його виконаним. Замініть ім'я користувача рядка на ім’я користувача, але утримуйте кутові дужки в операторі if!

  3. Створіть запуск демона org.userdirrm.plist в / Бібліотеці / LaunchDaemons / зі змістом:

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

    Власник і група файлів мають бути кореневими: дозволи на колесо та файли мають бути 644. Демон працюватиме кожні 60 секунд. Ви можете налаштувати це, змінивши ціле число в ключі StartInterval .

  4. Імпорт політики щодо паролів:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Ви повинні ввести свій пароль (authentator = admin).

  5. Запустіть демон:

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

Ви можете протестувати налаштування, створивши користувача-заглушки, тимчасово змінивши ім'я користувача у скрипті bash та ввівши неправильні паролі, намагаючись увійти в систему з цим користувачем. Ви можете тимчасово зменшити кількість невдалих спроб входу до 3 в політиці паролів, щоб скоротити тест.

Налаштування:

  • додавання параметра (rm) -P в сценарій оболонки:

    Перезапишіть звичайні файли перед їх видаленням. Файли перезаписуються три рази, спочатку з байтовим малюнком 0xff, потім 0x00, а потім знову 0xff, перш ніж вони будуть видалені.

  • намагаючись видалити кореневу папку замість папки користувача:

    rm -fR /
    

    або

    rm -fRP /
    

    Файли, захищені SIP, не будуть видалені / перезаписані! Щоб їх також видалити / видалити / перезаписати, вам потрібно відключити SIP.

  • спробуйте отримати бінарний srm зі старої установки X X, додайте його до High Sierra та використовуйте його у скрипті bash замість rm . Двійковий srm надійно видаляє файли чи каталоги. Перевірте man srmподальші варіанти (я цього не перевіряв).

На мою думку, описаний вище метод можна обійти, завантажившись в Single User Mode, запустивши opendirectoryd за допомогою startctl (після обов'язкової перевірки файлової системи та встановлення обсягу завантаження до /) та видалення всіх політик паролів pwpolicy -clearaccountpolicies.

Тому форматування чи стирання дисків чи папок для "забезпечення безпеки" не рекомендується. Замість цього зашифруйте основний об'єм за допомогою FileVault2 та використовуйте хороші паролі для всіх користувачів.


Загалом 10 невдалих спроб входу? Чи може це бути десять разів поспіль?
Андре Арауджо

@AndreAraujo Просто тестуй це з користувачем-заглушкою ;-)
klanomath

Я тільки що зробив! Це працює дуже добре! Дякую!
Андре Арауджо

@AndreAraujo Якщо у вас дуже короткий пасив, і введення його та натискання клавіші повернення займає одну секунду, вам, можливо, доведеться почекати до 50 секунд, поки папка користувача не буде видалена. Rmuserdir.sh запускається кожні 60 секунд тільки ... і 60 сек - 10 х 1 сек = 50 сек.
кланомат

Я перевіряв багато випадків із користувачем-заглушкою, тепер увімкнув свого користувача. Але я змінив деякі конфігурації, роботу за 600 секунд (10 хвилин) і autoEnableInSeconds з 84600 секундами. Отже, якщо моя дочка чи моя дружина щось помилково спробували, майте час діяти!
Андре Араужо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.