Откриване на timestomping: как нападателите подправят NTFS времеви маркери и как да го хванете
Alexander Sverdlov
Анализатор по сигурността

Timestomping е един от най-старите ходове в наръчника на анти-форензиката. Нападател пуска зловреден изпълним файл, след което задава по-стара дата на времевите му маркери, така че да изглежда, че е бил част от системата от деня на инсталиране на Windows. За анализатор, който преглежда таймлайн, подреден по дата на създаване, файлът изчезва в море от легитимни системни файлове отпреди години. Просто е, вградено е в обичайни нападателни инструменти и срещу наивен преглед работи. Причината да може да бъде хванат е, че NTFS съхранява времевите маркери на повече от едно място, а повечето timestomping докосва само единия.

Два набора времеви маркери, не един

Всеки NTFS файлов запис носи времеви маркери в два различни атрибута. $STANDARD_INFORMATION ($SI) държи маркерите, които Windows ви показва в Explorer и които повечето инструменти, включително повечето инструменти за timestomping, могат да променят чрез нормални API повиквания. $FILE_NAME ($FN) държи втори набор, обновяван от ядрото по време на файлови и директорийни операции и недостъпен за запис чрез обикновените потребителски API. И двата носят набора MACB: Modified, Accessed, Changed и Born.
Това разделение е проблемът на нападателя. Инструмент, който задава по-стара дата на файл, обикновено пренаписва четирите $SI маркера, защото това са тези, които светът гледа. $FN маркерите, по-трудни за достигане, често остават показвайки реалното време на създаване, момента, в който файлът наистина е попаднал в системата. Подправянето и истината се озовават едно до друго в същия запис.
Следите, които издават манипулацията

Няколко конкретни аномалии издават timestomping и са достатъчно надеждни, за да бъдат флагирани автоматично:
- $SI по-рано от $FN. Ако времето на създаване в $STANDARD_INFORMATION предхожда това в $FILE_NAME, нещо е пренаписало $SI в миналото. Файл не може легитимно да е създаден преди файловата система да е записала името му. Тази инверсия $SI < $FN е най-силният единичен индикатор за timestomping.
- Нулирана под-секундна точност. Истинските NTFS времеви маркери се съхраняват със 100-наносекундна гранулярност, така че под-секундните цифри са практически случайни. Много инструменти за timestomping задават само цели секунди, оставяйки под-секундната част изцяло нули. Време на създаване, което попада точно на секундата, без нищо под нея, е подозрително.
- Преизползвани MFT слотове. Когато файл се изтрие и нов заеме неговия MFT номер, метаданните за последователността отразяват преизползването. Комбиниран с времеви странности, преизползван слот може да индикира нападател, опитващ се да заеме запис, който изглежда установен.
- Невъзможности по таймлайна. Файл, чиито маркери предхождат инсталацията на операционната система или който стои непоследователно спрямо околната USN активност, заслужава втори поглед.
Защо проверката $SI спрямо $FN е толкова надеждна

Силата на сравнението $SI спрямо $FN е, че не зависи от знанието какво е нормално за дадена система. Това е вътрешна проверка за консистентност: записът си противоречи. Да я преодолее, изисква нападателят да подправи и двата набора атрибути съгласувано, което е значително по-трудно и отвъд това, което прави повечето готов timestomping. Затова това единствено сравнение хваща толкова много реална манипулация.
Хващане автоматично с Atlant Scalpel

Търсенето на тези инверсии с просто око през милиони записи е безнадеждно. Atlant Scalpel ги извежда вместо вас, докато преглеждате. Докато реконструира NTFS таймлайна от $MFT и USN дневника, той вдига вградени флагове за аномалии точно за тези модели: инверсии $SI по-рано от $FN, нулирани под-секундни маркери и преизползвани MFT слотове. Едно кликване свива изгледа само до флагираните записи, така че вместо да превъртате купа сено, започвате от иглите. Оттам можете да стесните UTC прозорец, да филтрирате по разширение или път и да експортирате заподозрения набор в пълнота към Timeline Explorer, plaso или The Sleuth Kit за останалата част от анализа.
Тъй като зарежда живи томове, дискови изображения, shadow copy снимки или извлечени артефакти, можете да пуснете същия преглед за аномалии върху триаж заснемане на терен или върху пълно изображение в лабораторията. Безплатният инструмент в един изпълним файл не се нуждае от инсталатор и се повишава сам, когато му трябва достъп до суров том.
Изводът

Timestomping разчита да се доверите на един набор времеви маркери. NTFS ви дава втори набор, до който нападателят обикновено не може да достигне, плюс артефакти за точност и преизползване на слотове, които подправянето обикновено игнорира. Сравнете $SI спрямо $FN, следете за нулирани под-секунди и оставете инструмент да флагира противоречията автоматично. Файлът с подправена дата, който е трябвало да изчезне в стария системен шум, често е единственият запис, който се флагира сам.
Atlant Scalpel е безплатен. Изтеглете Atlant Scalpel (един преносим изпълним файл, без инсталатор, без регистрация). За да изградите пълния таймлайн, в който живеят тези флагове, вижте ръководството ни за MFT и USN дневника. Свържете се с нас, ако искате нашият екип да помогне.

Александър Свердлов
Основател на Atlant Security. Автор на 2 книги за информационна сигурност, лектор по киберсигурност на най-големите конференции по киберсигурност в Азия и панелист на конференция на ООН. Бивш член на екипа за консултации по сигурността на Microsoft, външен консултант по киберсигурност в Емиратската корпорация за ядрена енергия.