Перейти до змісту

Аналіз результатів Hayabusa за допомогою Timeline Explorer

Про застосунок

Timeline Explorer — це безкоштовний інструмент із закритим вихідним кодом, призначений для заміни Excel під час аналізу CSV-файлів для цілей DFIR. Це GUI-інструмент лише для Windows, написаний мовою C#. Цей інструмент чудово підходить для невеликих розслідувань одним аналітиком та для людей, які лише вперше вивчають DFIR-аналіз, проте інтерфейс може бути спершу складним для розуміння, тому скористайтеся цим посібником, щоб розібратися в різних функціях.

Встановлення та запуск

Встановлювати застосунок не потрібно. Просто завантажте останню версію з https://ericzimmerman.github.io/#!index.md, розпакуйте її та запустіть TimelineExplorer.exe. Якщо у вас немає відповідного середовища виконання .NET, з'явиться повідомлення, яке повідомить, що його потрібно встановити. На момент написання (2025/2/14) останньою версією є 2.1.0, яка працює на .NET версії 9.

Завантаження CSV-файлу

Просто натисніть File -> Open у меню, щоб завантажити CSV-файл.

Ви побачите щось подібне:

Перший запуск

У самому низу ви можете побачити ім'я файлу, Total lines та Visible lines.

Окрім стовпців, що містяться у CSV-файлі, ліворуч є два стовпці, додані Timeline Explorer: Line та Tag. Line показує номер рядка, але зазвичай не корисний для розслідувань, тому ви можете приховати цей стовпець. Tag дозволяє поставити позначку для подій, на які ви хочете звернути увагу для подальшого аналізу тощо. На жаль, немає способу додати власні теги до подій або записати коментарі щодо подій, оскільки CSV-файл відкривається в режимі лише для читання, щоб запобігти перезапису даних.

Фільтрація даних

Якщо ви наведете мишу на верхню праву частину заголовка, ви побачите чорний значок фільтра.

Базова фільтрація даних

Ви можете поставити позначки на рівні серйозності, щоб спершу провести тріаж сповіщень high та crit (critical). Ця фільтрація також дуже корисна для відсіювання шумних сповіщень шляхом позначення всього під Rule Title, а потім зняття позначок із шумних правил.

Як показано нижче, якщо ви натиснете на Text Filters, ви можете створити більш складні фільтри:

Розширена фільтрація даних

Однак замість створення фільтрів тут зазвичай простіше натиснути на значок ABC під заголовком та застосувати фільтри тут:

Фільтрація ABC

На жаль, ці два місця надають дещо відмінні параметри фільтрації, тому вам слід знати про обидва місця для фільтрації даних.

Наприклад, якщо у вас занадто багато подій Proc Exec, які ви хотіли б відсіяти, ви можете обрати Does not contain та ввести Proc Exec, щоб ігнорувати ці події:

Фільтрація правил

Якщо ви подивитеся вниз, ви побачите правило для фільтра різними кольорами. Якщо ви хочете тимчасово вимкнути фільтр, просто зніміть із нього позначку. Якщо ви хочете очистити всі фільтри, натисніть кнопку X.

Якщо ви хочете ігнорувати ще одне шумне правило, вам слід відкрити Filter Editor, натиснувши Edit Filter у нижньому правому куті:

Редактор фільтрів

Скопіюйте текст Not Contains([Rule Title], 'Proc Exec'), додайте and, вставте той самий фільтр і змініть Proc Exec на Possible LOLBIN, і тепер ви можете ігнорувати ці два правила:

Кілька фільтрів

Найпростіший спосіб поєднати кілька фільтрів — спочатку створити синтаксис фільтра за допомогою значка ABC, потім скопіювати, вставити та відредагувати цей текст і поєднати фільтри за допомогою and, or та not.

Ви також можете натиснути на будь-який кольоровий текст, щоб отримати розкривний список можливих параметрів для редагування ваших фільтрів:

Редагування через розкривний список

Параметри заголовка

Якщо ви клацнете правою кнопкою миші на будь-якому із заголовків, ви отримаєте наступні параметри:

Параметри заголовка

Більшість із цих параметрів зрозумілі самі собою.

  • Після приховування стовпця ви можете знову показати його, відкривши Column Chooser, клацнувши правою кнопкою миші на назві стовпця та натиснувши Show Column.
  • Group By This Column має той самий ефект, що й перетягування заголовка стовпця вгору для групування. (Детальніше пояснено пізніше.)
  • Hide Group By Box просто приховає текст Drag a column header here to group by that column та перемістить рядок пошуку.

Умовне форматування

Ви можете відформатувати текст кольором, жирним шрифтом тощо, натиснувши Conditional Formatting -> Highlight Cell Rules -> Equal To...:

Умовне форматування

Наприклад, якщо ви хочете показати сповіщення critical із Red Fill, то просто введіть crit, оберіть Red Fill з параметрів, позначте Apply formatting to an entire row та натисніть OK.

Crit

Тепер сповіщення critical відображатимуться червоним кольором, як показано нижче:

Червоне заповнення

Ви можете продовжувати робити це, додаючи кольори також для сповіщень low, medium та high.

Пошук

За замовчуванням, коли ви вводите якийсь текст у рядок пошуку, він виконуватиме фільтрацію та показуватиме лише результати, які містять цей текст десь у рядку. Ви можете побачити, скільки збігів у вас є, перевіривши поле Visible lines внизу.

Ви можете змінити цю поведінку, натиснувши Search options у самому нижньому правому куті. Це покаже наступне:

Параметри пошуку

Якщо ви зміните Behavior з Filter на Search, ви зможете шукати текст звичайним способом.

Примітка: зазвичай перемикання поведінки займає час, і Timeline Explorer на деякий час зависне, тому будьте терплячими після натискання.

Match criteria за замовчуванням — Mixed, але його можна змінити на Or, And або Exact. Якщо ви зміните його на щось, окрім Mixed, ви зможете встановити Condition з Contains на Starts with, Like або Equals.

Match criteria зі значенням Mixed складний, оскільки він іноді використовує логіку AND, а іноді OR, але може бути дуже гнучким, як тільки його опанувати. Він працює так:

  • Якщо ви розділяєте слова пробілами, це трактуватиметься як логіка OR.
  • Якщо ви хочете включити пробіли у свій пошук, тоді вам потрібно додати лапки.
  • Передуйте умові символом + для логіки AND.
  • Передуйте умові символом -, щоб виключити результати.
  • Фільтруйте за конкретним стовпцем у форматі ColumnName:FilterString.
  • Якщо ви фільтруєте за конкретним стовпцем і також включаєте окреме ключове слово, це буде логіка AND.

Приклади:

Критерії пошуку Опис
mimikatz Вибирає записи, що містять рядок mimikatz у будь-якому стовпці пошуку.
one two three Вибирає записи, що містять one АБО two АБО three у будь-якому стовпці пошуку.
"hoge hoge" Вибирає записи, що містять hoge hoge у будь-якому стовпці пошуку.
mimikatz +"Bad Guy" Вибирає записи, що містять одночасно mimikatz ТА Bad Guy у будь-якому стовпці пошуку.
EventID:4624 kali Вибирає записи, що містять 4624 у стовпці, який починається з EventID, ТА містять kali у будь-якому стовпці пошуку.
data +entry -mark Вибирає записи, що містять одночасно data ТА entry у будь-якому стовпці пошуку, виключаючи записи, що містять mark.
manu mask -file Вибирає записи, що містять menu АБО mask, виключаючи записи, що містять file.
From:Roller Subj:"currency mask" Вибирає записи, що містять Roller у стовпці, який починається з From, ТА містять currency mask у стовпці, який починається з Subj.
import -From:Steve Вибирає записи, що містять import у будь-якому стовпці пошуку, виключаючи записи, що містять Steve у стовпці, який починається з From.

Закріплення стовпців

Хоча це й не параметр пошуку, ви можете налаштувати First scrollable column у меню Search options. Більшість аналітиків встановлять це на Timestamp, щоб вони завжди могли бачити, у який час відбувалися певні події.

Перетягування заголовків стовпців для групування

Якщо ви перетягнете заголовок стовпця в область Drag a column header here to group by that column, Timeline Explorer згрупує за цим стовпцем. Зазвичай групують за Level, щоб ви могли пріоритезувати сповіщення за серйозністю:

Групування

Якщо у ваших результатах є кілька комп'ютерів, ви можете додатково згрупувати за Computer, щоб провести тріаж на основі різних рівнів серйозності для кожного комп'ютера.

Перевірка полів

За замовчуванням Hayabusa розділятиме дані полів символом розірваної вертикальної риски: ¦. Коли дані полів розташовані на горизонтальній лінії, це робить дуже легким розрізнення кількох полів, оскільки цей символ нечасто зустрічається в журналах:

Інформація про поля

Однак іноді в журналі буде занадто багато інформації про поля, і все не може поміститися на одному екрані. У цьому випадку ви можете двічі клацнути на комірці, щоб отримати спливаюче вікно, яке показує всю інформацію про поля:

Вміст комірки

Проблема в тому, що Timeline Explorer дозволяє форматувати дані полів лише за символами нового рядка (CRLF, CR, LF), комами та табуляціями.

Якщо ви використаєте параметр -M, --multiline, ви можете розділити поля символом нового рядка, і коли ви двічі клацнете, щоб відкрити вміст комірки, він буде належним чином відформатований:

Багаторядкове форматування

Проблема в тому, що тепер у часовій шкалі буде показано лише перше поле, тому вам доведеться двічі клацати та відкривати нове вікно щоразу, коли ви хочете перевірити дані інших полів:

Багаторядкове єдине поле

На жаль, Timeline Explorer не підтримує кілька рядків у поданні часової шкали.

Щоб обійти це, починаючи з Hayabusa v3.1.0, ви можете розділяти поля табуляціями:

Розділення табуляціями

Трохи важче розрізнити, де закінчується одне поле і починається наступне. Крім того, коли ви двічі клацаєте та відкриваєте вміст комірки, поля не форматуються автоматично:

Розділення табуляціями не відформатоване

Однак, якщо ви натиснете Tab внизу, а потім Format, ви можете відформатувати поля у зручне для читання подання:

Розділення табуляціями відформатоване

Теми оформлення

Ви можете змінити колірну тему через Tools -> Skins, якщо ви віддаєте перевагу темному режиму тощо.

Сесії

Якщо ви налаштовуєте стовпці, зовнішній вигляд, додаєте фільтри тощо і хочете зберегти ці налаштування на потім, обов'язково збережіть свою сесію через File -> Session -> Save.