![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 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 - с их полными путями. Сохраняем этот список в свой текстовый файл. Сортировка - сначала по ветке реестра, внутри нее - по полному пути файла. Группы строк, относящиеся к одной и той же ветке реестра - для лучшей читаемости разделяем пустой строкой. Вот такой инструмент если сделать ? |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 30.12.2009
Сообщений: 22
|
![]()
А специализированные антируткиты не помогают?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 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. Получается что в списке-эталоне - даже хранить названия ветвей реестра не обязательно. Хотя для большей информативности - все же хорошо бы. А вдруг в реестр захочется полезть-посмотреть ? Вот такой проект ![]() А поскольку на CD записывать нельзя - то файл-эталон со списком и суммами MD5, а также файл полученный позже эталона - сохранять можно например, на диск C:\куда нибудь в \...\Temp его запихать, подальше... |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 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 Файлы, естественно, залочены, пока Вы под активной ОС. Из под другой ОС они спокойно копируются. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 30.12.2009
Сообщений: 22
|
![]()
Частично согласен. За свою не маленьку практику я не встречал в диком виде "незаметных" вредоносов.
Но есть еще одно, но. Если буду пропатчены легитимные файлы? |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 03.01.2010
Сообщений: 18
|
![]()
Речь не только про руткиты.
Вот например, подцепил я в интернете порно-информер. Оказалось, что в данном случае, в автозагрузку он добавил библиотеку. Добавил в то место системного реестра, где расширения проводника. Библиотека-то сама не "hidden". Но вы попробуйте найти место, куда именно добавлено ! А так бы, имея вышеописанную программу, я запустил бы сравнение "слепка системного реестра" на момент, когда все у меня работало - с текущим состоянием реестра. И мне написало бы: "Добавлена библиотека такая-то, в такую-то ветвь реестра... Файл библиотеки расположен по пути такому-то" Я обнаружил бы эту вредоносную библиотеку в автоматическом режиме. И когда программа, из под другой копии Windows, спросила бы меня: "Хотите переименовать файл этой библиотеки ? - то я просто ответил бы "ДА". И перезапустил бы свой комп. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 30.12.2009
Сообщений: 22
|
![]()
Да, но вот информеры вида Get Accelerator патчат случайный драйвер для запуска руткит функции.
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
![]()
Еще бы предложил организовать хранение правильных копий драйверов и программ. И можно предварительно проводить сканирование сперва на зараженной, а потом с диска и сравнивать что скрывают.
Кроме того необходимо проработать вопрос хранения снимков. Если они будут хранится в открытом виде, то проживет такая программа до первого скачивания умельцами ( писателями ) этих руткитов. А далее они добавят изменение записи или простого уничтожения контрольных снимков. |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 03.01.2010
Сообщений: 18
|
![]() Цитата:
Я тоже подумал о том, что может быть лучше - и 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. |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 28.09.2008
Сообщений: 344
|
![]()
Про контрольную сумму - думаю лучше и то и то хранить. При сравнении с помощью контрольных сумм с диска будет считываться почти в два раза меньше информации ( только проверяемые файлы ), а именно считывание с диска наиболее медленная операция.
Метод шифрования - это уже второй вопрос. Первый защита хранилища от простого уничтожения. Удалит его руткит и несчем будет сравнивать. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Защита от редактирования программным путем | 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 |