рождение смерша DEEONI$ (DEEONIS@GMAIL.COM) Спецвыпуск: Хакер, номер #070, стр. 070-068-2 Обычно SpyWare скрываются во вполне определенных директориях и часто - в системных (это не вирус, который может забраться в любой уголок жесткого диска). Они могут менять стартовую страницу браузера, а могут использовать BHO (Browser Helper Object (читай о них в номере)). Все эти моменты надо учитывать и знать, как именно найти и устранить тот или иной тип SpyWare. Ну а теперь вернемся к нашему сканеру, точнее сканерам. Мы уже приблизительно знаем, что и где искать, и, следовательно, теперь можно писать конкретный сканер файловой системы, реестра и т.д. Как я уже говорил, для комфортной работы пользователя, наш антиSpyWare должен уметь останавливать процесс сканирования. Отсюда следует, что этот процесс должен идти в отдельном потоке. Нужно продумать, какую информацию о найденном объекте передавать в пользовательский интерфейс и как это делать. Так же следует продумать механизм уничтожения заразы, например, когда SpyWare уже загружен в память, и его нельзя просто так удалить. Так как у нас будет несколько сканеров, работающих с разными объектами, то неплохо было бы написать менеджера сканирования, который будет всеми ими управлять. Да и вообще, чем лучше будет продуманна архитектура приложения, тем впоследствии легче будет его модифицировать. Не надо бояться писать много кода, надо бояться переписывать этот код. Гибкое в расширении функциональности приложение всегда имеет больший успех, чем его «закостенелые» аналоги: яркий тому пример - всем известный icq-клиент Miranda со своими плагинами. [база сигнатур.] На самом деле, написание сканера - не такая уж и сложная задача. Любой более или менее толковый программист запросто справится с таким заданием. Конечно, те, у кого нет опыта в написании серьезного программного обеспечения, будут несколько раз переписывать свое творение, т.к. действительно качественный продукт можно сделать, лишь написав пару некачественных. Гораздо труднее, кажется, создать базу SpyWare... Для начала хочу всех обрадовать: база для антиSpyware сильно отличается от баз для антивирусов. В последних для детектирования вредоносных программ используются синтаксические сигнатуры. То есть сигнатуры, взятые непосредственно из тела вируса, например, какая-либо фраза или совокупность имен используемых системных функций. Также существуют сигнатуры, основанные на поведении или аномалиях — например, слишком агрессивное обращение к какому-либо сетевому порту на компьютере. При детектировании Spyware используются совсем другие опознавательные признаки, которые зачастую гораздо легче выявить. Это, как я уже говорил, полные имена исполняемых файлов или характерные записи в реестре системы. Таким образом, для добавления новой шпионской программы в базу в большинстве случаев достаточно определить директорию, куда устанавливается SpyWare, и имя файла. Если шпион достаточно хитрый и не имеет «постоянного места жительства», то нужно поискать его следы в реестре. |