April 27, 2018

Защищаем компьютер от взлома физическим доступом

by Хакер из Перми
by Хакер из Перми
Защищаем компьютер от взлома физическим доступом

Здравствуйте дорогие телеслушатели, радиозрители, преступники, терпилы, наркотические ковбои и прочие читатели этой статьи. Сегодня в нашем эфире выпуск передачи "очумелые ручки" и мы будем учиться защищать информацию с помощью простой электроники.

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

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

Более сложная атака - загружаем компьютер с лайвсиди и переписываем все данные. Это требует времени и может быть замечено, но такую атаку можно незаметно провести когда компьютер выключен, ну а хостер может выключить сервер, загрузить с лайвсиди, скопировать данные, ну а после объяснить незапланированное отключение аварией. Мера безопасности - шифруем диски. Желательно - вообще все. Под Windows обязательно нужно шифровать системный раздел, в процессе работы прикладных программ на него может утекать информация с криптотомов. Проверенные программы для шифрования: TrueCrypt, DiskCryptor, dm-crypt (cryptsetup, LUKS), это то что я могу посоветовать будучи уверен в отсутствии серьёзных косяков. Новомодную VeraCrypt используйте на свой страх и риск, я её не проверял. Коммерческие программы без открытых исходников - использовать нельзя (если используете - вы корпоративный пользователь либо просто очередной идиот верящий рекламе).

Итак, вы шифруете информацию, не оставляете компьютер незалоченным, используете стойкие пароли и нигде их не записываете. Что может сделать враг в такой ситуации, помимо очевидного выбивания пароля кулаками? Он может прочитать память и получить ключ шифрования, либо чтением-записью памяти похакать скринсейвер и разлочить компьютер без пароля. Это не фантастика, технология чтения памяти через порт IEEE1394 анонсирована много лет назад, конкретная реализация взлома шифрования таким способом - есть в продуктах ElcomSoft, такую атаку можно считать практически применяемой. Мера безопасности - отключаем в BIOS порты 1394 и на всякий случай физически заливаем их эпоксидкой. Однако память всё равно можно прочитать с использованием спец средств в виде PCI карты инициирующей циклы доступа в ОЗУ. То-же самое можно сделать с шины LPC, обычно используемой для подключения TPM модуля и диагностических карт. Наконец - память можно заморозить жидким азотом, перенести в другой компьютер и там прочитать, при низких температурах информация в ячейках ОЗУ может сохраняться на десятки минут после отключения питания. Эти атаки - не фантастика, всё было реализовано исследователями и может быть повторено (рядовыми ментами - вряд ли, но у ФБР, АНБ, ФСБ и прочих ГеБэ может быть нужная аппаратура и специалисты в штате, следовательно такой вариант нужно учитывать). Мера безопасности - активная электронная защита обесточивающая систему при обнаружении вскрытия, аномальном понижении температуры и других подозрительных воздействиях. Её мы и будем делать сейчас.

Выключатель питания

Система активной защиты будет разделена на две основные части: блок датчиков и выключатель питания. Первый - должен обнаруживать вторжение, второй - выключать питание компьютера по электрическому сигналу и обеспечивать питающее напряжение для блока датчиков. Начнём мы со второй части.

Схема распайки 24х контактного разъема ATX блока питания:

Первый вариант выключателя питания предназначенный для ATX блоков питания разрывает линию PS_ON между блоком питания и материнской платой. ATX блок питания в покое выдаёт только напряжение 5VSB, так называемое "дежурное питание", остальные напряжения включаются замыканием линии PS_ON на землю. Мы включим в разрыв этой линии полевой транзистор управляемый оптопарой (полевик нужен потому что биполярный транзистор оптрона "не дотягивает" до земли, не может обеспечить надёжное включение БП).

Принципиальная схема:

Печатная плата не делалась ввиду крайней простоты схемы. Она собирается на кусочке макетной платы под пайку, после сборки фиксируется термоклеем и помещается в термоусадочную трубку. От блока выходит трехконтактный разъём с контактами "земля" "5в питание" и "датчик". Для разрешения включения БП нужно притянуть линию "датчик" на землю, тогда зажигается светодиод оптопары, открывается полевик и разрешается прохождение сигнала PS_ON. Применённый полевой транзистор - IRLML6244, но вы можете применять любые другие полевики открывающиеся от 5ти вольт, токовая нагрузка там считай что отсутствует.

Фото модуля:

Для неттопов и микрокомпьютеров, питающихся от внешнего адаптера, нужна другая схема коммутирующая входное напряжение питания. Она так-же собирается на макетке под пайку и коммутирует плюс P-канальным полевым транзистором IRF4905. В схеме так-же присутствует линейный 5в стабилизатор L78L05, с него идет пятивольтовая линия питания датчиков.

Принципиальная схема:

Фото модуля:

Датчики обнаружения вторжения

Простейший тип датчиков - пружинный контакт. Это пружина распаянная на кусочке макетной платы, она монтируется в системный блок таким образом, чтобы при закрытой крышке пружина прижималась к ней, а при вскрытии происходило размыкание цепи. Можно ставить несколько пружинных контактов на одну крышку корпуса. Ими же защищаем отсеки с CDROM и любые другие отверстия, через которые может быть произведен доступ к внутренностям компа. Если пружина получается слишком длинной и есть риск замыкания на окружающие детали - изолируем её нижнюю часть термоусадочной трубкой.

Фото пружинных контактов:

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

Принципиальная схема:

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

Фото модуля:

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

Прочие датчики:

На фото показаны инфракрасный датчик приближения и датчик движения из серии так называемых "датчиков для Arduino". Подобные датчики можно использовать для лучшей защиты, если они подходят к вашему корпусу.

Объединение сигналов от нескольких датчиков

Итак, мы понаставили всяких разных датчиков, теперь нам нужно объединить их сигналы в один сигнал подаваемый на выключатель питания. Сигналы датчиков могут быть как нашего формата (притяжка на землю при отсутствии срабатывания, отпускание при срабатывании) так и инверсного (в случае применения датчиков "для Arduino"). Наиболее простым и удобным способом объединения сигналов является оптронная логика. Берем нужное количество оптронов, соединяем их транзисторы последовательно, аноды фотодиодов соединяем с линией питания +5в через резисторы 1к, а на катоды заводим сигналы с датчиков. Если датчик выдает сигнал в другом формате - включаем фотодиод соответствющего оптрона иначе, так чтобы он зажигался при отсутствии срабатывания и потухал при срабатывании датчика. Удобно использовать микросхему TLP521-4, которая содержит 4 оптрона в одном корпусе, она позволяет объединять до 5ти входных сигналов (пятый заводим на эмиттер транзистора последнего оптрона в цепочке).

Принципиальная схема:


Понравилась статья? Подписывайся на наши параллельные проекты, нам будет приятно )

Группа VK: https://vk.com/viahacker 

YouTube канал: https://www.youtube.com/user/DjViaVLOG 

#жизньвиа #пермскийхакер #вианаучи

Share to Facebook