Tuesday, May 19, 2009

Rootkit (часть первая): История и классификация

Эта статья открывает цикл, который мы хотим посвятить руткит технологиям в линукс. Цикл будет состоять из 5 статей. В первой статье мы немного обратимся к истории и расскажем о появлении и развитии руткитов. Во второй и третьей статьях мы подробно рассмотрим одни из самых опасных и нашумевших представителях этого вида DR - рутките и Adora-ng. В четвертой и пятой статье мы расскажем о некоторых собственных иследованиях.

Начало.

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

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

Виды руткитов.

Разобраться серьезно в какой либо теме без систематизации и классификации невозможно. Поэтому нами была сделана попытка классифицировать руткиты по типу их поведения. Так как по классификациям большинства антивирусных компаний руткит является самой малой классификационной единицей, то отдельной классификации на них нет и мы решили предложить свою. =)
Всего существует 4 вида руткитов:
  1. Руткиты пространства ядра;
  2. Руткиты пространства пользователя;
  3. Аппаратные руткиты;
  4. Загрузочные руткиты.
Руткиты пространства пользователя подменяют или модивицируют основные системные утилиты.

Примером руткита подменяющего основные системные утилиты может служить руткит SHV о которым мы писали в одной из заметок.

Руткиты модифицирующие основные системные утилиты являются более сложными по своей реализации. Оба этих типа руткита страдают от одних и тех же недостатков:
  • Все подобные руткиты легко обнаруживаются контролем целостности приложений. Любой мало мальски уважающий себя антивирус мгновенно обнаружит это.
  • По самой своей архитектуре ниодин подобный руткит не имеет средств защиты от обнаружения.
  • В линукс одну и туже операцию можно выполнить многими способами. То есть наверняка останется какая нибудь не модифицированная утили с помошью которой можно будет обнаружить скрываемые файлы и процессы.
Так же специфичным для модифицирующих руткитов является такой недостаток как достаточно большая вероятность привести в неработоспособность модифицируемые утилиты, что сразу же обнаружит факт проникновения в систему.
Между двумя основными видами руткитов стоят достаточно распространенные руткиты которые представляют из себя программу пространства пользователя, но модифицирующую виртуальный образ ядра. Примером такого руткита может послужить Mood-NT о котором мы также рассказывали в одной из заметок.

Продолжение следует.

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

No comments:

Post a Comment