Инфраструктура защиты должна быть вынесена с уровня программирования, доступного операционной системе и тем более прикладным программам. Не вдаваясь в подробности, можно сослаться на печальный опыт внедрения защиты с использованием NEX бита: его просто научились отключать.
На данный момент в архитектуре х86/64 таких независимых уровня два: это уровень режима системного менеджмента (SMM режим) и уровень хоста Гипервизор. Кроме этого, у Intel есть один малоизвестный режим работы процессора – логический режим доверенного выполнения (XSMM). Если всерьёз подходить к борьбе с вирусами, то, конечно, аппаратура контроля вирусной активности должна управляться программами, работающими именно в этих режимах, хотя ничего не мешает ввести новый режим, специально заточенный под специфику решаемой задачи.
Кроме этого, для антивирусных программ пользовательского уровня и уровня ОС следует предоставить доверенный командный интерфейс, по типу реализованного в ТРМ-модулях. Заодно можно побороться с пиратами, на радость блюстителей авторских прав, заставив контролировать в точках старта программ наличие легальных сертификатов с помощью того же ТРМ-модуля.
С инфраструктурой понятно, теперь вопрос: что контролировать?
И здесь всё ясно. Методов пробоя информационной безопасности у хакеров и шпионов не так много, на первом этапе можно ограничиться контролем за самыми актуальными.
В сумме эти методы эксплуатируют всего ТРИ архитектурных уязвимости. Следовательно, можно поставить на аппаратный контроль нарушение архитектурных соглашений, которые декларируются, но не контролируются на настоящий момент. Пока звучит туманно, но думаю, из дальнейшего сразу станет понятным.
Первая и самая серьёзная архитектурная уязвимость — это однородность оперативной памяти: в ней все можно хранить в произвольном порядке. Конечно, имеются соглашения на уровне ОС о распределении адресных пространств, часть этих соглашений уже давно контролируется аппаратурой (в области ОС нельзя работать прикладным программам), но только часть. Атака, направленная на повышение уровня привилегий, как раз и эксплуатирует уязвимость в архитектуре, не защищённую аппаратурой. В области прикладных программ пока разрешено работать программам с привилегиями уровня ядра ОС, и именно этим пользуются хакеры.
Вторая архитектурная уязвимость — это наличие единого стека. В нём хранится как служебная информация (указатели на точки возврата из процедур), так и локальные данные программ. Соглашение о разделении и упорядочивании стека существует, но не контролируется аппаратурой. Атака через переполнение буфера как раз и эксплуатирует этот механизм методом подмены адреса точки возврата из процедуры. Следовательно, если поставить на контроль целостность адресов области стека, где хранятся указатели на точки возврата из процедур, то можно блокировать целый класс хакерских атак.
Третья архитектурная уязвимость — это равноправие программ, независимо от их источника загрузки в оперативную память. Максимум, что проверяется на данный момент, — это авторство, через цифровые подписи, ну и, видимо, уже скоро начнут контролировать наличие сертификатов на право использование программ. Как показывают недавние громкие скандалы, связанные с дискретизацией подписей и сертификатов, даже эти средства защиты не панацея. Нужно ранжировать непосредственный источник загрузки исполняемого программного кода. Одно дело — локальный диск, это максимальный уровень доверия; другое дело — съёмный носитель либо сетевой доступ (в большинстве случаев им совсем нельзя доверять). Если при загрузке информации (данных и программ) в оперативную память маркировать страницы памяти кодом устройства, с которого произведена загрузка, то становится возможным блокировать попытки запуска программ со съёмных устройств и сети. Атака по типу нашумевшего на весь мир компьютерного червя Stuxnet стала бы просто невозможной.
Всё это было известно и раньше, но контролировать до настоящего момента эти атаки пытались разными программными методами, создавая «песочницы», применяя аналитику и прочее... Всё это худо-бедно работало, но медленно и ненадёжно. С другой стороны, все три вышеперечисленные атаки имеют однозначные характерные признаки на аппаратном уровне. Эти признаки можно контролировать непрерывно, а не только в критических точках, как делается с помощью программных методов контроля, и, что немаловажно, — без потери быстродействия.
Если использовать хотя бы перечисленные выше методы аппаратного контроля, то можно предотвращать хакерские атаки на этапе попытки внедрения в целевую систему, а не по факту функционирования уже внедрённого вируса. А это уже дорогого стоит...
Собственно, всё это было ясно и три, и пять лет тому назад — думаю, не только мне, но и любому грамотному специалисту. Кому-то удалось эти достаточно очевидные мысли пропихнуть в мозги бизнесменов, и те начали вкладывать во всё это деньги.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии