Безопасность компьютера. Автоотключение и самоуничтожение

Вопрос физической защиты данных, хранящихся на компьютере, не менее актуален, чем вопрос безопасности данных в сети. Мы уже обсуждали вопросы создания шифрованных и защищенных разделов, но для полной безопасности этого бывает недостаточно. Иногда нужно обезопасить свой компьютер от подключения сторонних устройств, а иногда нужно быстро уничтожить всю информацию. Причин сделать так, может быть много и философствовать на эту тему я не буду, поэтому переходим сразу к практической части вопроса. Я покажу несколько разных способов защитить свой системник: от простого автоматического выключения до окерпичивания жесткого диска, все они довольно простые в реализации, но, при этом, очень эффективные.

USBdeath

Первый способ самый простой — это утилита USBdeath. Она может обезопасить твой компьютер от тыканья в него посторонних флешек. Ну например, если ты, на работе отошел от компьютера, не заблокировав его, а кто-то из коллег решил, по порядочному, скинуть себе пару файликов, так вот, его настигнет фиаско, а твой компьютер просто перезагрузиться. (кстати в этой утилите есть ещё одна полезная функция, её покажу в процессе).

У тебя мог возникнуть вопрос: Подобных утилит довольно много, почему я выбрал именно эту? Поясню. USBdeath — максимально прост, быстр и эффективен, а вопрос который он решает — второстепенен, потому заморачиваться настройкой, лично мне просто лень, а ещё это такой скрипт, который создаёт правила для системного демона udev, контролирующего работу устройств в системе, а соответственно он не висит в памяти, что, по определению, хорошо.

Качаем:

git clone https://github.com/trpt/usbdeath.git

Теперь переходим в папку со скриптом и делаем скрипт исполняемым:

cd usbdeath
chmod 777 usbdeath
usbdeath

Скрипт, изначально настроен на работу в демо-режиме т.е. просто ведет логи, что бы это исправить надо подкрутить соответствующий параметр в коде скрипта, для этого открываем файл usbdeath и в нём ищем строчку: demo=’yes’ и удаляем (можно закомментировать, можно изменить на ‘no’). Готово, сохраняем.

При первом запуске, есть смысл запустить с параметром show, чтобы посмотреть какие устройства подключены:

./usbdeath show
usbdeath

Устройства из этого списка будут добавлены в правила и станут доверенными т.е. их отключение/подключение не будет вызывать никаких непредвиденных действий. Можем создавать правила:

./usbdeath on

Появиться сообщение что правила созданы, а usbdeath активирован. Теперь, если будет вставлено любое постороннее usb-устройство, компьютер просто выключиться.

Если вдруг возникнет необходимость вставить известное нам usb-устройство, которого нет в списке, то usbdeath можно временно отключить:

./usbdeath off

а если, вдруг, это устройство нужно добавить в белый список, вводим команду:

./usbdeath gen

и запускаем usbdeath:

 ./usbdeath on 

Есть у этого скрипта ещё одна полезная функция, можно добавить устройство, при отключении (а не включении) которого будет вырубаться компьютер:

./usbdeath eject

и выбираем из появившегося списка нужное устройство. Всякое ведь может быть, добавил себе какую-нибудь флешку и пусть торчит, а если вдруг начинаешь понимать, что сейчас может произойти что-то неприятное, выдернул её и комп потух, а диск зашифрован, и уже чувствуешь себя спокойней.

usbdeath

Ну, а если вдруг ты умудрился что-нибудь сломать и всё перестало работать как надо, можно удалить все правила и начать настраивать с начала:

 ./usbdeath del

Кстати, сами правила прописаны в файле: /etc/udev/rules.d/00-usbdeath.rules, а логи записываются сюда: /var/log/usbdeath.log, в которых, кстати, можно посмотреть модель и серийный номер флешки, которую пихали тебе в системник в твоё отсутствие, а потом найти хозяина флешки и объяснить ему, куда нужно засовывать флешку в следующий раз.

Для разнообразия можешь ещё использовать такие утилиты как:

USB Kill — https://github.com/hephaest0s/usbkill

Silk Gurdian — https://github.com/NateBrune/silk-guardian

по сути выполняют туже функцию т.е. контролируют, что бы ничего постороннего не пихалось в твои usb, но имеют больший набор функций (можно выбрать какие файлы удалить перед перезагрузкой, просто блокировать подключение флешек не из белого листа и т.д.)

Теперь рассмотрим более продвинутые варианты защиты. Если в предыдущем примере мы подразумевали, что просто защищаемся от тыканья флешками куда попало, то теперь давай представим, что на твоём компьютере, естественно в зашифрованном разделе, храниться что-то действительно важное. И давай подумаем как будет мыслить условный злодей, если его знания компьютеров выходят за пределы навыков работы в Word. Он, должен догадаться, что у тебя диск зашифрован т.е. ему остаётся два варианта: застать тебя с включенным компом и не дать выключить, или выдушить из тебя пароль. Его, в принципе, устраивают оба варианта, тебя — не одни. Давай начнём представлять с самого плохого варианта, когда ты не успел выключить компьютер. Ты, конечно можешь использовать usbdeath и когда он ткнет флешку или внешний жёсткий диск, а он её обязательно ткнёт, потому что захочет скопировать себе всё что у тебя есть, чтобы потом, в спокойной обстановке изучить — компьютер выключится, и вы, все дружно, увидите запрос пароля расшифровки диска, а значит вы автоматически переходите на следующий уровень ваших отношений, а именно — выдушивание пароля. И если ты уверен, что твои яйца крепче чем дверной проём, дальше можешь не читать, если вдруг немного мягче, то рано или поздно ты пароль скажешь, и если у тебя стоит usbdeath, то где-то после пятого или восьмого выключения (всё зависит от интеллектуальных способностей) наш условный злодей поймёт, а может кто подскажет, что что-то здесь не так. И морально-физический тренинг твоей тушки продолжится. И, рано или поздно, ты деактивируешь usbdeath. Ну и на этом всё. Game Over, так сказать. Ну, а чтобы геймовер не случился, было бы неплохо быстренько превратить наш жёсткий диск в камушек, и это мы так плавно подходим к более радикальным вариантам.

LUKS Nuke

Проще всего использовать стандартные средства Kali Linux. Как ты понимаешь речь идет о Luks Nuke, благодаря которому можно создать второй пароль, при вводе которого будет удалён заголовок Luks и запустить систему, как и получить доступ к данным, если достать жесткий диск, тоже не получится. При этом, если заранее озаботится, то можно оставить себе возможность восстановить данные.

Если ты используешь другой дистрибутив Linux, то скачать Luks Nuke можно здесь: http://deriv.debian.net/patches/c/cryptsetup/

Для начала проверим всё ли у нас зашифровано как надо:

cryptsetup luksDump /dev/sda5 

если ты видишь надпись Key Slot 0: ENABLED, значит всё хорошо и можно переходить к следующему шагу т.е. создать пароль самоуничтожения:

cryptsetup luksAddNuke /dev/sda5 

теперь надо ввести сначала нормальный пароль, а потом два раза пароль самоуничтожения. Всё готово. Теперь после ввода второго пароля получить доступ к системе и к данным уже не получиться. Но возникает логичный вопрос: а что делать если я с перепугу напутал пароли и хочу восстановить доступ к системе. Для этого надо сделать бэкап заголовка luks:

cryptsetup luksHeaderBackup --header-backup-file luksheader.back /dev/sda5 

теперь этот бэкап нужно зашифровать:

openssl enc -aes-256-cbc -salt -in luksheader.back -out luksheader.back.enc 

и скопировать на какую-нибудь флешку и если понадобилось восстановить доступ к системе то, нужно загрузить с флешки любую операционную систему в live-режиме и в обратном порядке, расшифровывать и восстановить заголовок:

openssl enc -d -aes-256-cbc -in luksheader.back.enc -out luksheader.back
cryptsetup luksHeaderRestore --header-backup-file luksheader.back /dev/sda5 

Ну а на этом, в принципе, тему физической защиты компьютера можно считать рассмотренной. Использование перечисленных средств в комплексе друг с другом, значительно повышает уровень защищенности твоего компьютера от нежелательных вмешательств. Ну и не забывай возвращаться к нам, ведь нужно изучить ещё очень много всяческих хитростей.

Твой Pul$e.