Программа для аудита файлов в системе. Добавляются сигнатуры известных доверенных файлов, а впоследствии пересканируются на предмет изменений. Сигнатуры можно выгружать в файл, загружать обновления, удалять неизвестные файлы, сравнивать свойства с онлайн базой, например, и т.п. Делал дипломную, терь время "Ч" прошло, выкладываю. Если кому понравится - захочет продолжить, выложу исходники. Подробнее тут http://scan.rootkits.ru/
Вжых, еще одна параноидальная прога для рассчета контрольных сумм файлов! Мало, мало видать Винда треплет мозги с подписями программ и драйверов, можно продлить себе это удовольствие... А с чего это вдруг файлам менять свои сигнатуры? 1) хак-вирусы-трояны 2) сбои при передачи по сети 3) ошибки чтения CD/DVD? На какой вид угроз заточена прога?
Инетресен именно сам процесс поиска, как он просиходит ? Тупо findfirstfile findnextfile, либо оно может находит скрытые папки и файлы ?
да, если к примеру руткит перехватывает чтение файла и подсовывает оригинальный контент? П.С. Что-то сканер твой не запускается...
Скрытые это с аттрибутом hidden? А что, разве findfirst не умеет чтоли искать с нужными аттрибутами? =)))
Немного не так выразился наверное. Если операции над файлами перехваченны рутктитом будет ли он их ловить, как там построен двиг поиска ?
В зависимости от специализации прога для рассчета контрольных сумм файлов должна уметь: 1) Как тут уже заметили, должна читать даже те файлы которые скрыты или контент которых перехвачен вирусом, должна выгружать гадов из памяти и убивать процессы 2) Кроме детекции ошибок не помешает еще и коррекция или отдельная докачка поврежденных секторов архивов 3) Кроме детекции и коррекции, должна еще читать сбойные диски по особому алгоритму, всякие алкоголи, изобастеры и многочисленные нонстоп-копировщики не подходят... Нужно подходить к дефектам с обоих сторон, но ни в коем случае не копаться в них часами, а перепрыгивать их и только лишь локализовать (адаптивное копирование)
apple, я чего то не пойму, вроде под сигнатурами обычно другое имеется в виду, совсем не хэш... Сигнатура - не очень длинная уникальная последовательность байт из файла Хэш - особо-навороченная контрольная сумма всего файла.
persicum, ага, знаю. Сначала делал сигнатуры, в конце коцов сменил на хеш как на общедоступный параметр описания файла. Не получилось сигнатуру извлекать, слишком много условностей. Особенно если брать PE. Перенес на с# pe-структуры, несколько дней переносил, даже работают, потом подумал, хорошо бы их тоже заносить в базу как на вирустотале. Еще нашел около сотни сигнатур разных типов файлов. Вообщем работы было бы достаточно. Поэтому тупо взял мд5-хеш, выделил в отдельный класс, чтобы можно было заменить, если понадобится, ака отмаштабровать. А само слово "сигнатура" приелось и осталось в описании. [add] Но самое ужасное, понадобилось выносить поиск и сравнение в отдельный тред. Это когда уже все было написано и работало, и не тормозило, GUI перерисовывался. А из другого треда нельзя сразу получить значение, ага, а еще асинхронность. Пришлось изгалиться и все получения значений в UI контролах провести через функцию с рефлексией. После этого кошмара мне не то что писать что-то хотелось, забыл как страшный сон. По поводу хитрого просмотра файлов - это все понятно, но бесполезно. Как только такая программа попадает в общий доступ, другая сторона это учитывает и обходит. Да и диплом был по .NET, а не по безопасности. По безопасности сейчас делаю очередной хранитель паролей . Файл ключей зашифрован ключем, генерящемся из придуманного пользователем пароля. Ввели правильный пароль - расшифровали ключи. Далее прога перехватывает вызовы и соответсвенно шифрует/расшифровыает имена файлов и папок, содержимое файлов. Если смотреть через проводник - каша из цифр и букв. Если через открытую программу - то обычные файлы. Расшифровка в оперативную память без сохранения на диск, чтобы почитать/внести изменения. Виртуальных дисков нет, ибо сие зло. Поставлю на флешку и не буду боятся потерять
apple У меня была подобная идея, а потом вспомнил про MapViewOfFile Как реализовывать собрался, будешь втыкать фильтр в драйвер файловой системы?
lamer2k драверок надо делать. persicum это как раз и есть основное назначение сканера: мониторить реальную картину, а не навязанное руткитом.
Как у тебя все просто получается! Во времена наших пробабок достаточно было загрузиться с заклеенной дискетки или читать напрямую через интерапт HDD. А сейчас есть например KIS. Что ты можешь сказать про то как Касперс сканирует файлы в режиме руткитов? Какого ринга защиты нужен драйвер, нулевого или первого? Обязательно ли нужно прибить гада в памяти или нет? Есть ли 100% гарантия что зверек не обманет Касперса?
Почитал статейки на ВирусЛист... Короче говоря, это бесконечная борьба брони и снаряда, вирусы всегда впереди, каждая новая руткит-технология не обнаруживается или далеко не сразу обнаруживается АВ-ПО. Может лучше грузиться с CD c проверенной ОС и потом сканерить?
persicum по традиции и уровню доступа кольцо 0 рулит) дело не в "просто", а в мин. уровни возможностей для получения результ+ нужно прибить в памяти, однозначно. два дравера равны по уровню доступа - в итоге мы имеем здоровую конкуренцию + разработчик зверюшки вкрапляет в своё детище маленькие хитрости, так что перевес на стороне зоопарка) ах, да забыл: авп решает задачу в общем виде, т. ч. тормознутость реакции обеспечена - ещё одно очко в пользу зоопарка. нефига борьба небесконечна: на уровни кольца 3 можно сделать вполне вразумительную систему защиты от зоопарка: все критичные операции прога делает через ось, что и является базой для построения системы защиты. на уровне ринн0, конечно, особо хорошой защиты не построишь: одни решения - тормоза, другим в утиле место. но при нормальной защите в рине3 установка и запуск дров в системе буит под контролем юзера.
Вот совсем недавно одному веб-прогрммисту попал троян. Конечно, он сам себе злобный буратино, что хранил в рестре 200 паролей от фтп. Но иногда по-другому нельзя. Заифреймили его сайты добротно. Еще одна сфера применения - поиск файлов, спрятанных хитрыми юзерами на рабочих компах. Обновил немного прогу, сделал базу-справочник файлов.