О каналах скрытых, потайных, побочных

       

О потайных ходах и ремонтных агентах


Если из каких-либо соображений требуется постоянно отслеживать состояние удаленной системы и при необходимости воздействовать на него, конструируют и используют потайные ходы (backdoors). Обычно подобные ходы ассоциируются с вредоносной активностью, но, как показывает проект, развиваемый в университете Rutgers (см. ), для них имеются и вполне добропорядочные применения, такие как удаленный мониторинг и восстановление работоспособности (удаленное лечение). В таком контексте потайные ходы уместно называть техническими интерфейсами. В статье описан прототип реализации технических интерфейсов для FreeBSD.

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

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


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

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

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


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



Разумеется, на практике все гораздо сложнее. Во-первых, если злоумышленник получит физический доступ к системе, он сможет обойти ремонтного агента; защититься от физических угроз можно только с помощью аппаратной поддержки. Во-вторых, подозрительная активность обнаруживается с некоторым запаздыванием, поэтому критичные данные рискуют оказаться скомпрометированными. В-третьих, "заведомо безопасный" образ системы может оказаться неполным (системный администратор или пользователь могут что-то добавить или изменить в обход агента), и тогда несанкционированные изменения не удастся обнаружить и ликвидировать. Безопасность системы не может быть выше уровня дисциплины, существующей в организации и зафиксированной в ее политике.

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

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


Содержание раздела