В «Хакере» час­то обсужда­ется скры­тие про­цес­сов и сис­темных вызовов, обфуска­ция кода и про­чие спо­собы обхо­да AV/EDR. Но что, если ты хочешь не толь­ко сле­довать инс­трук­циям, но и самос­тоятель­но искать такие тех­ники? Для это­го нуж­но как минимум понимать общие прин­ципы работы анти­виру­сов и EDR. Эти прин­ципы мы и обсу­дим.

В статье про Process Ghosting я вкрат­це опи­сал, как работа­ют сис­темы EDR, а в этой поп­робую более под­робно рас­ска­зать о том, как EDR ловят злоб­ный код, и нем­ного о том, как эти методы обхо­дят соз­датели мал­вари и пен­тестер­ских инс­тру­мен­тов.

warning

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

 

Статические сигнатуры

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

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

$scan_1 = { d1 ?? 33 ?? fc 81 ?? ff 00 00 00 c1 ?? 17 }

Здесь пред­став­лена как раз пла­вающая бай­товая сиг­натура: на мес­те зна­ков воп­роса могут быть любые бай­ты, но детект все рав­но сра­бота­ет.

Сиг­натуры могут вклю­чать в себя не толь­ко шес­тнад­цатерич­ные бай­товые пос­ледова­тель­нос­ти, но и стро­ки, встре­чающиеся в мал­вари:

$scan_2 = "%s\\~%d.tmp" wide ascii

Кро­ме того, под детект могут попасть кон­троль­ные сум­мы таб­лицы импорта или, нап­ример, Rich-сиг­натуры. Сло­вом, все, что может однознач­но говорить, что перед нами имен­но иско­мый файл, а не какой‑то дру­гой. Подоб­ные сиг­натуры таким же спо­собом мож­но искать в памяти. Сегод­ня этот метод ска­ниро­вания час­то работа­ет в связ­ке с дру­гими метода­ми обна­руже­ния мал­вари.

Что сбивает статические сигнатуры (и не только)

Нап­ример, упа­ков­щики или про­тек­торы! Они могут:

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

Сканирование памяти

Ска­ниро­вание памяти тоже час­то исполь­зует­ся средс­тва­ми EDR, но работа­ет оно не пос­тоян­но (из‑за опти­миза­ций про­изво­дитель­нос­ти), а час­то запус­кает­ся из‑за ком­про­мети­рующих пос­ледова­тель­нос­тей дей­ствий, нап­ример:

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

Дру­гими сло­вами, ска­ниро­вание час­то запус­кает­ся по сиг­налу от поведен­ческо­го ана­лиза­тора, который наб­люда­ет дос­таточ­ное количес­тво негатив­ных фла­гов в поведе­нии про­цес­са.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии