RootkitRevealer: Пълно ръководство за откриване на кражба в Windows

  • Сравнение на API спрямо сурови данни за откриване на скрити файлове и регистър
  • Ограничена съвместимост (XP/2003, 32-битова версия) и прекратен проект
  • Ключови опции: -a, -c, -m, -r и дистанционно изпълнение с PsExec
  • Строго тълкуване на несъответствията и намаляване на фалшиво положителните резултати

инструмент за откриване на руткитове в Windows

Ако сте загрижени за наличието на софтуер, който може да се скрие във вашата система, RootkitRevealer Това е едно от онези имена, които непрекъснато се появяват във всеки технически разговор. Въпреки че е ветеран, подходът му остава образователен за разбиране как се крият руткитовете и как да се забележат признаци, че нещо не е наред. В тази статия ще намерите пълно обяснение, от горе до долу, за инструмента, неговата работа, опции и отчитане на резултатите..

Струва си да започнем с предупреждение: RootkitRevealer е проектиран за Windows XP и Windows Server 2003, на 32-битови архитектури, и вече не се разработва. Въпреки това, подходът му за сравняване на резултатите от API с това, което е на диска, е полезен урок. Ще видите ограниченията му, какво открива (примери като AFX, Vanquish или HackerDefender) и какво не (семейства като Fu, които не крият файлове/регистър)..

Какво е RootkitRevealer и откъде идва?

RootkitRevealer е създаден в Sysinternals от Марк Русинович (заедно с Брайс Когсуел), с първа публикация от 1 ноември 2006 г. Това е собственически безплатен софтуер от Microsoft, компилиран на Microsoft C++, само 231 KB, проектиран за IA‑32 и достъпен на английски език.Траекторията му беше белязана от важен етап: това беше инструментът, който разкри скандала с руткита на Sony BMG, свързан със системата му за защита от копиране.

Microsoft интегрира Sysinternals и поддържа достъп до помощната програма, включително чрез Sysinternals Live, с опцията „Стартирай сега“ без изтегляне. Важно: RootkitRevealer е спрян от производство и се поддържа изключително за Windows XP и Windows Server 2003 (само за 32-битова версия)Въпреки това, документацията, съобщенията и методологията му продължават да служат като полезен инструмент за разбиране как да се проследяват признаци на укриване.

скенер за руткитове в Windows

Какво е руткит и защо е толкова трудно да се открие?

Терминът „руткит“ описва скрити техники, използвани от злонамерен софтуер (вируси, шпионски софтуер, троянски коне и др.), за да останат незабелязани от антивирусни програми, антишпионски софтуер и административни програми. Тяхната цел е не само да заразят, но и да се камуфлират, като манипулират това, което системата „вярва“, че съществува..

Има няколко начина за класифицирането им. Ключова разлика е тяхната устойчивост: постоянните стартират при всяко зареждане (те съхраняват компоненти в системния регистър или файловата система и се изпълняват автоматично без намеса на потребителя), докато базираните на памет не оцеляват след рестартиране. Тази разлика определя къде да се търси: дали следата е на диск/в лога или само в текущата сесия..

Те са разделени и по нивото, на което работят: потребителски режим или режим на ядрото. В потребителски режим, руткит може да прехваща извиквания като FindFirstFile/FindNextFile, за да „почисти“ списъците с директории и да скрие собствените си файлове, или да прикачи вградени функции, за да скрие ключове или процеси в системния регистър. Най-сложните се вмъкват между приложенията и нативния API, така че всяко изброяване излиза „нагласено“.

В режим на ядрото ситуацията се влошава: освен че прехващат вградения API в самото ядро, те могат да имат достъп и до вътрешни структури от данни. Класически подход е да се скрие процес, като се изтрие от списъка с активни процеси на ядрото; по този начин инструменти като Task Manager или Process Explorer никога няма да го видят. Когато атакуващият контролира ядрото, той може да скрие почти всеки аспект на системата..

Как работи RootkitRevealer

RootkitRevealer не търси сигнатури; той търси несъответствия. Идеята му е проста: ако руткит манипулира API, за да промени това, което се вижда от инструментите, трябва да има разлика в суровото съдържание на диска. Така помощната програма сравнява изгледа на високо ниво (Windows API) с четенето на ниско ниво (сурови данни от FAT/NTFS томове и файлове на системния регистър)..

Тази двойна проверка разкрива „несъответствия“: неща, които API скрива или представя по различен начин от това, което всъщност е на диска или в кошера на системния регистър. Няма значение дали манипулацията идва от потребител или руткит на ядрото; ако API се манипулира, за да се скрие нещо, контрастът може да го издаде..

Примери от реалния живот: сервизни ключове/драйвери или файлове, свързани с добре познат руткит като HackerDefender, невидими за нормалните инструменти, но присъстващи при директно четене на суровите данни. Когато API и хранилището не са в съответствие, се задействат алармени звънци..

руткит

Може ли руткит да се скрие от RootkitRevealer?

На теория, да, но с цената на огромна сложност. За да се скрие напълно, ще трябва да се пресичат суровите данни от RootkitRevealer за кошерите или томовете в системния регистър, пренаписвайки данните в движение, за да се преструват, че не съществуват. Това включва задълбочено разбиране на файловите формати на NTFS, FAT и системния регистър, както и промяна на структурите, без да се оставят странични несъответствия..

До датата на документирането му, това ниво на сложност не беше широко разпространено. Все пак е важно да се помни, че руткитът в режим на ядрото по дефиниция може да контролира почти всичко. Ето защо е най-добре да не се доверявате сляпо на който и да е скенер като на „универсално чудо“..

Има ли 100% сигурен начин да се потвърди наличието на руткит?

От работеща система, краткият отговор е „не“. Руткит на ядрото може да компрометира всеки API, дори ниско ниво на четене, изпълнявано от RootkitRevealer. Сравняването на онлайн сканиране с офлайн сканиране (зареждане от безопасна среда, например CD система) подобрява надеждността, но дори това не е безпогрешно..

Урокът от RootkitRevealer е ясен: няма да има универсален скенер. Най-добрите резултати идват от комбинирането на подходи (онлайн/офлайн) и интегрирането на антивирусна програма. Съвременното откриване разчита на съпоставяне на множество сигнали, а не на един-единствен инструмент..

Изисквания, версии и предишни съображения

Преди да го стартирате, са ви необходими определени права: Архивиране на файлове и директории, Зареждане на драйвери и Извършване на задачи за поддръжка на тома (на Windows XP и по-нови версии). Групата „Администратори“ ги има по подразбиране, така че стартирайте програмата с този акаунт, за да избегнете блокиране..

За да намалите фалшивите положителни резултати, най-добре е да затворите приложенията и да оставите компютъра възможно най-неактивен по време на сканирането. RootkitRevealer вече не предлага класическа версия от командния ред: авторите на злонамерен софтуер започнаха да следят името на изпълнимия файл, така че той започна да се клонира със случайни имена и да се изпълнява като услуга. Въпреки това, той поддържа опции от командния ред за автоматизиране на сканиране и записване на резултатите във файл..

руткит

Ръчно използване: стартиране и конфигуриране на анализа

Основното използване е лесно: стартирайте помощната програма и натиснете „Сканиране“. По време на процеса ще видите напредъка в долната част на прозореца и накрая списък с несъответствия. Колкото по-малко се променя системата по време на анализа, толкова по-„чист“ ще бъде сигналът..

Можете да коригирате някои важни опции: да скриете NTFS файлове с метаданни (активирано по подразбиране, предотвратява шумни записи като $MFT или $Secure) и да активирате или деактивирате сканирането на системния регистър. Ако премахнете отметката от „Анализ на системния регистър“, ще намалите обхвата, но и полезната информация, която можете да получите..

Автоматично сканиране и опции за командния ред

Инструментът поддържа изпълнение без предварително зададени команди, с изход към локален файл. Публикуваният синтаксис е: rootkitrevealer outputfile]. Не забравяйте, че изходният файл трябва да се намира на локален том..

  • -a: изпълнява анализа и затваря, когато приключи.
  • -c: дава CSV изходен формат.
  • -m: Показва също NTFS файлове с метаданни.
  • -r: не сканира системния регистър.

Ако използвате -c, напредъкът не се показва и несъответствията се отпечатват във формат CSV за по-лесен импорт в база данни. Можете също да го стартирате дистанционно с PsExec (от Sysinternals) с команда като тази: psexec \\remote -c rootkitrevealer.exe -a c:\windows\system32\rootkit.log.

Тълкуване на резултата: какво всъщност означават „несъответствията“

Стойността на RootkitRevealer се крие в това как да се разчетат резултатите. Когато открие семейства като HackerDefender, например, ключовете в системния регистър за услуги/драйвери и техните собствени файлове се виждат в суровото сканиране, но не се виждат от API. Това несъответствие между двата възгледа е това, което ви води..

Трябва да прегледате всяко несъответствие и да прецените дали то се вписва в законно поведение или не. Няма един-единствен маркер, който да „сертифицира“ инфекцията: Става въпрос за тълкуване на контекста и преценка дали той има смисъл.Ако потвърдите наличието на руткит, потърсете специфична процедура за премахване и помислете за по-драстичния вариант (форматиране и преинсталиране), ако не сте сигурни, че сте почистили всичко.

Комбинации от видимост и защо се появяват

Сканирането на файловата система разчита на три източника: Windows API, NTFS Master File Table (MFT) и индекси на директории на диска. Типично несъответствие е, че даден файл се появява в един или два от тези изгледи, но не във всички..

Съобщения като Visible en la API de Windows, pero no en el índice de directorios o MFT, или варианти, разменящи елементи, обикновено се дължат на създаване/изтриване по средата на сканирането. Например, когато създавате файл по време на анализ, може да видите ред като C:\newfile.txt с 8 байта и тази видимост „преминава през граница“.

Практически подробности и „странно“ поведение, което всъщност е нормално

Когато Microsoft постепенно премахна класическата версия от командния ред, RootkitRevealer възприе стратегия за избягване на откриване по име: той се дублира с произволно име и работи като услуга. Поради тази причина, след стартирането му, може временно да видите файлове с неясни имена..

В един случай, докладван от общността, след неуспешни опити за изпълнение на съвременна система, детектори на трети страни са маркирали остатъчните файлове като YC.exe o NOWBRTZ.exe, със стари SHA‑1 сигнатури на Microsoft и някои изолирани случаи на откриване в мета‑скенери. Това е съвместимо с начина на работа на RootkitRevealer (копия с произволни имена), не е непременно зловреден софтуер.Все пак, ако сте ги изтрили и вече не се нуждаете от инструмента, можете да ги държите под карантина или безопасно да ги изтриете, ако сте сигурни в източника им (легитимно изтегляне от Microsoft) и другите признаци не сочат към компрометиране; ако имате съмнения, консултирайте се Как да откриете и премахнете зловреден софтуер в папката C:\Windows.

Ако сте стигнали дотук, вече имате добра представа какви сигнали да разследвате: несъответствия между API и сурови данни, ключове с вградени NULL стойности, подозрителни типове и дължини и легитимен шум като NTFS метаданни или променящи се стойности. Ключът не е просто да натиснете „Сканиране“, а да интерпретирате с хладнокръвие и, ако е уместно, да вземете мерки, пропорционални на риска..