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

Я недав­но поз­накомил­ся с этим инс­тру­мен­том и уди­вил­ся, нас­коль­ко силь­но он меня­ет при­выч­ный под­ход к адми­нис­три­рова­нию и рас­сле­дова­ниям. Даль­ше — мой опыт раз­верты­вания Velociraptor на РЕД ОС, уста­нов­ка аген­тов на Windows, Linux и macOS, вклю­чая Apple Silicon, а так­же при­меры охо­ты и полез­ные арте­фак­ты. Для сисад­минов это спо­соб всег­да дер­жать руку на пуль­се сети, для кри­мина­лис­тов — находить ули­ки за счи­таные минуты.

 

Предыстория

Пом­нишь вре­мена, ког­да DFIR (Digital Forensics and Incident Response) был тяжел? Обра­зы дис­ков, дам­пы опе­ратив­ной памяти, мучитель­ный раз­бор в сто­рон­них инс­тру­мен­тах... Под­ход был все­объ­емлю­щим, но мед­ленным и рас­фокуси­рован­ным. Филосо­фия «собери все, а потом подума­ем» уже уста­рела. Ей на сме­ну при­шел целевой сбор (targeted acquisition): ты зада­ешь сис­теме пра­виль­ный воп­рос и сра­зу получа­ешь точ­ный ответ.

Так из идеи, родив­шей­ся в нед­рах Google, и вырос Velociraptor. Это опен­сорс‑плат­форма, которая объ­еди­няет мощ­ный язык зап­росов, гиб­кие арте­фак­ты и цен­тра­лизо­ван­ное управле­ние, — по сути, «Google для тво­их хос­тов».

 

Плюсы

Мощь язы­ка зап­росов VQL (Velociraptor Query Language) — сер­дце и глав­ная супер­сила инс­тру­мен­та. С его помощью ты можешь на лету задавать сис­теме поч­ти любые воп­росы, не тра­тя вре­мя на слож­ные скрип­ты.

Уни­вер­саль­ность VQL в том, что один зап­рос может собирать дан­ные из реес­тра, фай­ловой сис­темы, памяти, жур­налов событий (EVTX), а так­же информа­цию о про­цес­сах и сети — в общем, все, что ты ука­жешь, и сво­дить это в один отчет.

Это очень гиб­кий под­ход: тебя не огра­ничи­вают пре­дус­танов­ленные шаб­лоны. Если нужен спе­цифич­ный сце­нарий — нап­ример, най­ти все исполня­емые фай­лы, изме­нен­ные за пос­ледние три дня и име­ющие сетевые соеди­нения, — прос­то пишешь под­ходящий VQL-зап­рос или находишь его в сети.

Син­таксис VQL похож на SQL, так что мно­гим спе­цам он сра­зу понятен: ты дела­ешь SELECT дан­ных FROM какого‑то источни­ка (пла­гина), WHERE выпол­няет­ся усло­вие.

Ар­тефакт — цен­траль­ная сущ­ность, в которую упа­кова­на VQL-логика инс­тру­мен­та. Velociraptor целиком опи­рает­ся на арте­фак­ты. Что тут счи­тать арте­фак­том? Это YAML-файл с опи­сани­ем:

  • что собирать — нап­ример, пол­ный спи­сок записей авто­заг­рузки;
  • как это собирать — какие VQL-зап­росы запус­кать на хос­те;
  • как это наз­вать и ку­да выводить, что­бы потом было удоб­но ана­лизи­ровать.

Плюс оче­виден: в откры­том дос­тупе есть огромная кол­лекция готовых арте­фак­тов под сот­ни задач — от сбо­ра базовых DFIR-арте­фак­тов вро­де набора из кур­са SANS FOR500 до охо­ты за кон­крет­ными семей­ства­ми мал­вари. Ты можешь исполь­зовать их как есть, дораба­тывать под себя или соз­давать с нуля.

 

Гибкая модель развертывания

Ра­бота­ет это так.

  • Лег­кий агент: на конеч­ной точ­ке раз­ворачи­вает­ся неболь­шой исполня­емый файл (Velociraptor client). Это не клас­сичес­кий демон, который пос­тоян­но висит в памяти: агент мож­но запус­тить вруч­ную, по рас­писанию или как служ­бу — как тебе удоб­нее.
  • Pull-модель (зап­рос‑ответ): по умол­чанию агент ничего не отправ­ляет сам. Он про­сыпа­ется, опра­шива­ет сер­вер на наличие задач, выпол­няет их — нап­ример, собира­ет арте­фак­ты — и воз­вра­щает резуль­тат. Это сни­жает наг­рузку на сеть и помога­ет работать тише. Ты можешь не отвле­кать поль­зовате­ля хос­та, не засыпать его пись­мами с прось­бами что‑то прис­лать и не вни­кать в его рабочий про­цесс, а спо­кой­но собирать нуж­ные для рас­сле­дова­ния дан­ные. А уже потом про­ана­лизи­ровать их и, если пот­ребу­ется, задать воп­росы.
  • Пол­ный кон­троль над дан­ными: все дан­ные оста­ются на тво­ем сер­вере. Никаких облачных под­писок и никакой утеч­ки информа­ции к вен­дору — для мно­гих орга­низа­ций это кри­тич­но. Информа­ция о тво­ем раз­боре тоже никуда не уте­чет.
Одно из самых больших преимуществ — это централизованное управление с человеческим лицом (Web GUI)
Од­но из самых боль­ших пре­иму­ществ — это цен­тра­лизо­ван­ное управле­ние с челове­чес­ким лицом (Web GUI)

В отли­чие от мно­гих кон­соль­ных ути­лит, у Velociraptor есть пол­ноцен­ный веб‑интерфейс. В бра­узе­ре про­ще запус­кать сбор и ана­лизи­ровать дан­ные, чем стро­ить в тер­минале зап­росы к фай­лам.

В нем дос­тупны:

  • об­зор хос­тов — при­годит­ся, если ты нас­тро­ил регуляр­ный сбор арте­фак­тов: здесь вид­но все под­клю­чен­ные кли­енты и их базовую инвента­риза­цию — ОС, поль­зовате­ля и IP-адрес;
  • удоб­ный за­пуск кол­лекций: арте­фак­ты мож­но запус­кать на одном, нес­коль­ких или сра­зу всех хос­тах в пару кли­ков;
  • пла­ниров­щик задач — поз­воля­ет нас­тро­ить регуляр­ный сбор арте­фак­тов для про­активно­го монито­рин­га;
  • ин­терак­тивный ана­лиза­тор — дает воз­можность прос­матри­вать соб­ранные дан­ные пря­мо в бра­узе­ре — в JSON и таб­лицах, а при необ­ходимос­ти ска­чивать фай­лы без переда­чи дан­ных на допол­нитель­ные узлы.
 

Невероятная скорость и точность

Это, пожалуй, глав­ный плюс. Вмес­то того что­бы четыре часа сли­вать дамп дис­ка ради одно­го фай­ла, ты за двад­цать секунд запус­каешь арте­факт и забира­ешь толь­ко то, что нуж­но. Нап­ример, фай­лы из пап­ки %TEMP%, соз­данные сегод­ня, записи авто­заг­рузки из всех воз­можных мест, спи­сок про­цес­сов с заг­ружен­ными DLL. И все это — с хешами (MD5, SHA-256) и метадан­ными. Рас­сле­дова­ние мож­но начинать сра­зу. Работа с инс­тру­мен­том напоми­нает упражне­ния на стрель­бище: точ­ность, мощ­ность, ско­рость.

 

Онлайн-инвентаризация и проактивный threat hunting

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

С помощью Velociraptor ты можешь и охо­тить­ся за угро­зами. Нап­ример, за минуты, а не за дни мас­сово про­верить всю сеть на кон­крет­ный IoC (indicator of compromise): искать файл по хешу, запись в реес­тре или имя про­цес­са. Для это­го дос­таточ­но запус­тить такую задачу на аген­тах.

Velociraptor уме­ет монито­рить события в реаль­ном вре­мени: мож­но нас­тро­ить арте­фак­ты, которые отсле­жива­ют, нап­ример, соз­дание новых сер­висов или под­клю­чение USB-накопи­телей, и сра­зу при­сыла­ют алер­ты.

 

Собранные данные — не черный ящик

Ты можешь прос­матри­вать их в удоб­ных таб­лицах через GUI, экспор­тировать в JSON для даль­нейшей авто­мати­чес­кой обра­бот­ки в SIEM или SOAR, ска­чивать соб­ранные бинар­ники — нап­ример, подоз­ритель­ные исполня­емые фай­лы — для углублен­ного ана­лиза на VirusTotal или в песоч­нице, а так­же генери­ровать под­робные отче­ты для руководс­тва и кол­лег.

 

Open Source и сообщество

Все проз­рачно: ты можешь про­верить любой механизм сбо­ра дан­ных. Для incident response это кри­тич­но. Если при сбо­ре что‑то пош­ло не так, поп­равь зап­рос и запус­ти его заново.

За вре­мя жиз­ни инс­тру­мен­та вок­руг него вырос­ла целая эко­сис­тема: активное сооб­щес­тво в соц­сетях, сот­ни кон­трибь­юто­ров, регуляр­ные вебина­ры от соз­дателя — Май­кла Коэна (Michel Cohen). На офи­циаль­ном сай­те пос­тоян­но появ­ляют­ся новые арте­фак­ты и тех­ники.

По­хоже на сереб­ряную пулю, прав­да? Или на таб­летку от всех компь­ютер­ных болез­ней? Во мно­гом так и есть. Но у любого мощ­ного инс­тру­мен­та есть свой порог вхо­да и свои осо­бен­ности, которые важ­но понять до внед­рения.

Velociraptor — это фрей­мворк, а не point-and-click-ути­лита. Его сила — в гиб­кости, но она тре­бует понима­ния.

 

Минусы

  • По­рог вхо­да. Что­бы вый­ти за рам­ки готовых арте­фак­тов, при­дет­ся осво­ить VQL. На это нуж­ны вре­мя и перес­трой­ка мыш­ления. Плюс желатель­но хотя бы базово понимать, как работа­ют СУБД. Впро­чем, если ты «бог» SQL-зап­росов, этот минус для тебя вряд ли будет минусом.
  • От­ветс­твен­ность за дан­ные и инфраструк­туру. Здесь ты сам себе и вен­дор, и DevOps-инже­нер. При­дет­ся думать о резер­вных копи­ях базы, TLS-сер­тифика­тах и наг­рузке на сеть при мас­совом сбо­ре. Зап­росы тоже луч­ше не раз­дувать: чем гиб­че их струк­тура, тем про­ще с ними жить.
  • «Велик» — не коробоч­ное решение. Это не та шту­ка, которую мож­но прос­то вклю­чить и забыть. Мак­симум поль­зы Velociraptor при­носит, ког­да ты активно им поль­зуешь­ся и собира­ешь арте­фак­ты под свою сре­ду. Если работа­ешь с ним регуляр­но, со вре­менем у тебя появит­ся набор сво­их зап­росов: их мож­но быс­тро допили­вать и исполь­зовать даль­ше, а не начинать каж­дый раз с нуля.

Но эти минусы — обратная сто­рона его силы. Поэто­му луч­ший спо­соб понять Velociraptor — пос­мотреть, как он работа­ет на прак­тике. Давай раз­вернем тес­товый сер­вер и выпол­ним пер­вый, но уже осмыслен­ный зап­рос.

 

Начинаем

 

Настраиваем сервер

Сна­чала выбери плат­форму, на которой будешь раз­ворачи­вать сер­вер: опре­дели, какая это будет сис­тема.

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

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

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

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

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

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

    Подписаться

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