Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 11:13   #1
uuu99950
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 18
По умолчанию поиск руткитов путем анализа "холодного" системного реестра

Народ (действующие программисты) !

Есть тут человек, которому не лень написать такую программку, для безопасности компа ?

Нужна программа, в которой выбираешь файл...

Файл этот - будет файл системного реестра Windows XP. А смысл операции - поиск руткитов путем анализа "холодного" системного реестра.

То есть из под другой копии операционной системы.

Поскольку нет гарантии, что кто-то абсолютно достоверно знает все места автозагрузки (вирусописатели, как потом оказываются, изыскивают все новые замысловатые места в системном реестре, для автозагрузки)

То единственная надежная операция - это парсить файлы рестра целиком.

Требуется:

1. искать в файле слева направо вхождения ".exe" или ".sys" или ".dll"

2. с найденного места отмотать назад на нужное количество байт, чтобы забрать имя файла вместе с путем, например:

Нашли вхождение точка-exe, и забрали строку

C:\PROGRA~1\DrWeb\spidernt.exe

и строку ветки системного реестра для этого файла:

HKLM\SYSTEM\CurrentControlSet\Servi ces

3. Проходим весь файл, и составляем отсортированный неповторяющийся список имен файлов exe, dll и sys - с их полными путями. Сохраняем этот список в свой текстовый файл.

Сортировка - сначала по ветке реестра, внутри нее - по полному пути файла.

Группы строк, относящиеся к одной и той же ветке реестра - для лучшей читаемости разделяем пустой строкой.

Вот такой инструмент если сделать ?
uuu99950 вне форума Ответить с цитированием
Старый 03.01.2010, 12:51   #2
akok
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 22
По умолчанию

А специализированные антируткиты не помогают?
akok вне форума Ответить с цитированием
Старый 03.01.2010, 13:31   #3
uuu99950
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 18
По умолчанию

Из специализированных антируткитов, пожалуй что лучшим - считается Gmer. Его последняя версия на данный момент: 1.0.15

Но мы говорим про разные вещи. Единственный надежный способ анализа системного реестра - это анализ его файлов из под другой операционной системы.

Потому что в общем случае, загруженное в память вредоносное ПО может предпринимать такие меры, что результаты анализа системного реестра из под активной ОС - станут некорректными.

Не поможет ни "прямое чтение файлов", ни что другое. Да из под активной ОС антируткиты что-то там находят... Но где гарантия, что они будут находить все и всегда ?

Вот прочитал, что уже на сайте rootkits - выложили несколько руткитов, чтобы поиздеваться над антируткитом Руссиновича "Rootkit revealer 1.71".

Руссинович хвастливо заявлял, что эта его программа находит абсолютно все руткиты, всех разновидностей существующих в природе.

Вот ему и выложили несколько руткитов, которая его программа не ловит

Так что эта история будет тянуться до бесконечности... Анализировать файлы системного реестра нужно из под другой (чистой) операционной системы.

2. Нужно иметь возможность сравнивать текстовый файл 1 (будет у нас эталоном), с текстовым файлом 2 (полученным позднее).

Разницу в этих списках - программа должна отображать как:

В системном реестре обнаружены новые файлы:

......................
......................
......................

3. Программа должна уметь все файлы, которые не входят в эталонный список - переименовывать. И делать все это из под другой ОС.

файлы .exe удобно переименовывать в .eee
файлы .sys - в .sss
файлы .dll - в .ddd

Для файлов из списка-эталона, нужно считать контрольные суммы или MD5 (для файла+полный путь к нему)

Программа будет из под другой ОС лазить, согласно списку-эталону, по папкам, подсчитывать MD5 этих файлов, и если изменилась - то сообщать:

"Файл имеет то же название, что и раньше. Но это - измененный файл"
....................
...................
...................

Для измененных файлов - тоже должна быть возможность переименования ихних расширений, если пользователь захочет.

Переименование расширений - приведет к тому, что такие файлы просто не смогут загрузиться, когда компьютер перезапустят из под первой операционной системы.

Хотя строки на автозагрузку этих файлов - останутся больтаться в системном реестре. И вычищать их оттуда не надо. Операция отключения автозагрузки подобным способом - обратима.

Если мы отключили что-то лишнее - то всегда можно переименовать расширение необходимого файла назад: eee в exe, и т. д.

4. Нужна возможность обновлять (переназначать) файл-эталон.
Например, инсталлировал программу, она прописала в автозагрузку свои файлы - нужна возможность подсчитать для этих файлов MD5, и запомнить полные пути к файлам, и их имена. И добавить в наш список-эталон.

5. Получается что в списке-эталоне - даже хранить названия ветвей реестра не обязательно. Хотя для большей информативности - все же хорошо бы. А вдруг в реестр захочется полезть-посмотреть ?

Вот такой проект Потом я PE-билдером сделаю загрузочный CD-Rom, и запишу на него чистую ОС и эту нашу программку. CD-rom будет у меня той другой ОС, из под которой буду анализировать системный реестр основной ОС.

А поскольку на CD записывать нельзя - то файл-эталон со списком и суммами MD5, а также файл полученный позже эталона - сохранять можно например, на диск C:\куда нибудь в \...\Temp
его запихать, подальше...
uuu99950 вне форума Ответить с цитированием
Старый 03.01.2010, 13:44   #4
uuu99950
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 18
По умолчанию

Точный список файлов реестра Windows XP можно посмотреть в ключе:

HKEY_LOCAL_MACHINE\System\CurrentCo ntrolSet\Control\hivelist

Нас (если Windows XP) будут интересовать 5 файлов системного реестра,
которые расположены в папке WINDOWS\system32\config\

Называются:

default
sam
security
software
system

Файлы, естественно, залочены, пока Вы под активной ОС. Из под другой ОС они спокойно копируются.
uuu99950 вне форума Ответить с цитированием
Старый 03.01.2010, 13:54   #5
akok
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 22
По умолчанию

Частично согласен. За свою не маленьку практику я не встречал в диком виде "незаметных" вредоносов.

Но есть еще одно, но. Если буду пропатчены легитимные файлы?
akok вне форума Ответить с цитированием
Старый 03.01.2010, 14:42   #6
uuu99950
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 18
По умолчанию

Речь не только про руткиты.

Вот например, подцепил я в интернете порно-информер. Оказалось, что в данном случае, в автозагрузку он добавил библиотеку. Добавил в то место системного реестра, где расширения проводника.

Библиотека-то сама не "hidden". Но вы попробуйте найти место, куда именно добавлено !

А так бы, имея вышеописанную программу, я запустил бы сравнение "слепка системного реестра" на момент, когда все у меня работало - с текущим состоянием реестра.

И мне написало бы: "Добавлена библиотека такая-то, в такую-то ветвь реестра... Файл библиотеки расположен по пути такому-то"

Я обнаружил бы эту вредоносную библиотеку в автоматическом режиме.

И когда программа, из под другой копии Windows, спросила бы меня: "Хотите переименовать файл этой библиотеки ?

- то я просто ответил бы "ДА". И перезапустил бы свой комп.
uuu99950 вне форума Ответить с цитированием
Старый 03.01.2010, 14:47   #7
akok
Пользователь
 
Регистрация: 30.12.2009
Сообщений: 22
По умолчанию

Да, но вот информеры вида Get Accelerator патчат случайный драйвер для запуска руткит функции.
akok вне форума Ответить с цитированием
Старый 03.01.2010, 15:15   #8
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Еще бы предложил организовать хранение правильных копий драйверов и программ. И можно предварительно проводить сканирование сперва на зараженной, а потом с диска и сравнивать что скрывают.
Кроме того необходимо проработать вопрос хранения снимков.
Если они будут хранится в открытом виде, то проживет такая программа до первого скачивания умельцами ( писателями ) этих руткитов. А далее они добавят изменение записи или простого уничтожения контрольных снимков.
s.Creator вне форума Ответить с цитированием
Старый 03.01.2010, 16:13   #9
uuu99950
Пользователь
 
Регистрация: 03.01.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от s.Creator Посмотреть сообщение
Еще бы предложил организовать хранение правильных копий драйверов и программ. И можно предварительно проводить сканирование сперва на зараженной, а потом с диска и сравнивать что скрывают.
Кроме того необходимо проработать вопрос хранения снимков.
Если они будут хранится в открытом виде, то проживет такая программа до первого скачивания умельцами ( писателями ) этих руткитов. А далее они добавят изменение записи или простого уничтожения контрольных снимков.

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

MD5 по любому нужно считать, хоть делай копии автозагружаемых файлов, хоть не делай... Копии файлов то на диске хранить придется ? Мне кажется, что файлы на CD-болванку не на-перезаписываешься. Так как состав файлов часто будет меняться.

Кстати, для вычисления сумм MD5 можно запускать готовую программку, запуская ее из своей.

Мне очень нравится быстрая программка "MD5 Checksum Verifer" - она создает текстовый файлик, из которого можно читать результаты.


---------------
Про то, что эталонное хранилище (список файлов вместе с полными путями) - должно быть защищено, тоже думал, просто чтоб программистов не пугать )) пока решил не писать про это.

Даже придумал как хранилище защитить:

Программу нашу - лучше всего запускать с CD-Rom, на который помимо нее должен быть записан усеченный загрузочный вариант WINDOWS.

У меня такой CD сделан, я делал его при помощи софта PE Builder

- Так вот ! На этот же CD нужно будет записывать например музыкальный файл MP3, каждый пользователь - свой файл, произвольный.

Это - ключ ! Из файла MP3 наша программа будет брать байты, для шифрования по методу "одноразового блокнота".

Метод этот - принципиально не взламываем. Единственный способ - завладение блокнотом.

Блокнот (файл MP3 произвольного содержания, и длинною бОльшей чем предполагаемое эталонное хранилище) - мы будем хранить на CD-болванке. Когда будем вставлять болванку - то она будет грузить собственную, чистую копию WINDOWS.


*********************************** ******
Для справки: шифрование методом одноразового блокнота осуществляется сложением ключа с тем что мы хотим зашифровать - "по модулю" числа подходящей размерности.

Берем байт хранилища, берем байт из MP3-файла с CD-Roma

Складываем ASCII-коды по модулю 255.

То есть ASCII-символ с кодом например 233, если сложить с ASCII-символом с кодом 178, то в сумме получаем число 411.

Такое число в один байт - не запихнешь. Поэтому производим вычитание из этого числа - модуля по которому мы суммируем.

411 минус 255 = 156

И байт с ASCII-кодом 156 записываем в защищенный вариант хранилища, который сохраняем на винчестер в С\.....\нашу вспомогательную папку

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

Последний раз редактировалось uuu99950; 03.01.2010 в 16:27.
uuu99950 вне форума Ответить с цитированием
Старый 03.01.2010, 16:29   #10
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Про контрольную сумму - думаю лучше и то и то хранить. При сравнении с помощью контрольных сумм с диска будет считываться почти в два раза меньше информации ( только проверяемые файлы ), а именно считывание с диска наиболее медленная операция.

Метод шифрования - это уже второй вопрос. Первый защита хранилища от простого уничтожения. Удалит его руткит и несчем будет сравнивать.
s.Creator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита от редактирования программным путем paratruper17 Microsoft Office Word 4 05.11.2009 10:55
Получение пути к файлу путем перетаскивания k1r1ch Общие вопросы Delphi 7 29.06.2009 21:19
кодирование путем повторения символов катерина_к Паскаль, Turbo Pascal, PascalABC.NET 2 12.05.2009 21:55
получение текстового диапазона программым путем Lisi4ka Microsoft Office Word 13 11.04.2009 08:27
Поиск параметров реестра Лубышев Общие вопросы Delphi 1 08.06.2008 22:11