Снова о защите USB-флэшек от вирусов

Apr 01, 2014 10:49

Оригинал взят у mechanicuss в Снова о защите USB-флэшек от вирусов
Структура поста изменена: вначале я выложил сам скрипт AUTOSTOP и информацию о нем, а статью, на принципах которой базировались более ранние версии скрипта, перенес ниже.

AUTOSTOP - скрипт для защиты от autorun-вирусов:

Рад буду услышать ваши комментарии - их можно писать прямо здесь даже тем, кто незарегистрирован на livejournal.com.

При полном или частичном использовании кода скрипта указание авторства обязательно - http://mechanicuss.livejournal.com/195192.html


Скрипт AUTOSTOP предназначен для:
  • отключения на компьютере автозапуска флешек и CD/DVD
  • защиты флешки от autorun-вирусов
  • программной защиты флешки от записи
Каждая з трех процедур выполняется отдельно по желанию пользователя.
Наибольший эффект защиты достигается при применении всех трех функций скрипта.



Те, кто спросит, зачем нужен cкрипт AUTOSTOP, ведь можно воспользоваться способом, описанным, например здесь: Защита флэшки от Autorun-вирусов (метод изменения прав в NTFS) - http://habrahabr.ru/post/47287/ по большому счету будут правы - этот способ удобнее и надежнее моего. Но, отвечая на вопрос, я скажу следующее:
  • Существуют ситуации, когда форматирование флешки в NTFS нежелательно или неприемлемо (например, конкретная модель автомагнитолы или DVD-плеера читает только FAT32).
  • Я хочу показать что "можно таки бить фашиста" альтернативными способами (любая альтернатива это плюс).
  • Я люблю логические задачи, а работа над скриптом - это отличная гимнастика для ума.
  • Способ, придуманный мной в версии 2 скрипта (со ссылкой на иконку) можно взять за основу во многих других прикладных разработках.
  • Есть вирусы типа Trojan-Downloader.Win32.VB.hkq (первое обнаружение по данным virustotal 2008.08.14), которые обнаружив на флешке папки с файлами делают их скрытыми и системными, а на флешку копируют свои тела в виде исполняемых файлов с именами скрытых каталогов. Иконку для исполняемых файлов используют в виде стандартной иконки папки. В этом случае скрипт AUTOSTOP будет полезен: исчезновение иконки на каталоге AUTORUN.INF будет служить признаком заражения.
  • защита флешки от записи новых файлов отлично подходит для загрузочных флешек (имеющих файл autorun.inf), которые невозможно защитить созданием одноименного каталога AUTORUN.INF.



ОТКЛЮЧЕНИЕ АВТОЗАПУСКА ФЛЕШЕК И CD/DVD

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files" /v "*.*" /d "" /f

В CancelAutoplay\Files находятся текстовые параметры, содержащие имена файлов, отыскав которые на носителе встроенный AutoRun запускаться не станет и позволит запустить носитель через autorun.inf. Добавляем строковый параметр следующего содержания: *.* (все файлы).
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf" /ve /d "@SYS:DoesNotExist" /f

@SYS:DoesNotExist говорит explorer'у чтобы он не читал параметры запуска из файла Autorun.inf, а читал их из ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist, которая не существует. В итоге если внешний носитель содержит файл Autorun.inf - то при подключении носителя к компьютеру, Autorun.inf не запускается. Более того - не запускается он и при двойном клике по букве диска этого носителя в проводнике.
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer" /v NoDriveTypeAutoRun /t REG_DWORD /d 255 /f

С помощью NoDriveAutoRun запрещается загрузка с определенных приводов по их буквенному обозначению, а NoDriveTypeAutoRun запрещает загрузку с определенных приводов по их типу. Поскольку нам авторан вообще не нужен, используем второе.
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\Cdrom" /v AutoRun /t REG_DWORD /d 0 /f

Cdrom - полное отключение всякой поддержки автозапуска компакт-дисков (даже ручной).


ЗАЩИТА ФЛЕШКИ ОТ AUTORUN-ВИРУСОВ

На флешке создается защищенный от удаления (методом создания внутри него подкаталога с "некорректным" именем LPT3) каталог AUTORUN.INF с атрибутом "системный", в который помещается иконка, а в свойствах файла desktop.ini этого каталога прописывается абсолютная ссылка на иконку.

mkdir "\\?\%~d0\AUTORUN.INF\LPT3"
mkdir "\\?\%~d0\AUTORUN.INF\LPT3\.."
copy minus.ico AUTORUN.INF
echo [.ShellClassInfo] > AUTORUN.INF\desktop.ini
echo IconFile=..\AUTORUN.INF\minus.ico >> AUTORUN.INF\desktop.ini
echo IconIndex=0 >> AUTORUN.INF\desktop.ini
echo InfoTip="Антивирусный скрипт AUTOSTOP version 2.6" >> AUTORUN.INF\desktop.ini
attrib +h +r +s AUTORUN.INF\desktop.ini
attrib +h +r +s AUTORUN.INF\minus.ico
attrib +s AUTORUN.INF

Таким образом, при переименовывании каталога AUTORUN.INF, или при снятии с него атрибута "системный", иконка исчезает - это служит визуальным оповещением о том, что флешка заражена.

Пиктограмма взята из бесплатного набора Fugue Icons с сайта http://www.pinvoke.com

ПРОГРАММНАЯ ЗАЩИТА ФЛЕШКИ ОТ ЗАПИСИ

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

Для создания такого файла используется команда:

fsutil file createnew


Загрузить AUTOSTOP 2.6 - http://rghost.ru/1048865


autostop.2.6.exe, MD5: 404bb5b3d8b9b0a90dd1c4128af06445
  • Версия 2.6 загружена более 22000 раз.
  • У антивируса Касперского была ложная сработка 15 февраля на версию 2.4, а у DrWeb - 23 марта на версию 2.6.
    В обоих случаях я списывался с разработчиками, и они довольно оперативно исправляли ошибку.

УСТАНОВКА: внимательно прочесть пункты 1-3 файла README.TXT.
Переписать файл autostop.2.6.exe на флешку, которую необходимо защитить (в корневой каталог), и запустить оттуда.
  1. Ввести 1 или 0 в зависимости от того, хотите ли вы отключить автозапуск флешек и CD/DVD, или не хотите.
  2. Далее ввести 2 или 0 в зависимости от того, хотите ли вы защитить флешку от autorun-вирусов, или нет.
  3. И в завершении ввести 3 или 0 в зависимости от того, хотите ли вы защитить флешку от записи, или нет. Эта процедура может длиться до нескольких минут - необходимо дождаться ее завершения не прерывая работу скрипта. По мере выполнения промежуточных ее этапов, издаются одинарные звуковые сигналы через системный динамик компьютера, а по завершении - двойной звуковой сигнал.
  4. Если программная защита флешки от записи (пункт 3) не проводилась, то после окончания установки файл autostop.2.6.exe можно удалить с флешки (в случае применения пункта 1 - защиты флешки от autorun-вирусов - копия файла autostop.2.6.exe будет находиться в каталоге AUTORUN.INF).
  5. Если же производилась программная защита флешки от записи (пункт 3), то никаких файлов (включая autostop.2.6.exe) и каталогов удалять с флешки нельзя, иначе защита перестанет функционировать.


Благодарности:

Спасибо Alex577, давшему мне стимул довести изыскания до конца, и подавшему идею написания bat-файла; Ostrich и wasapl за тестирование; eugenius_nsk за тестирование и много важных дополнений; stasik за мысль выложить скрипт в виде отдельного файла; bodry-yar - за идею о популяризации; dreamhelg - за приглашение на habrahabr.ru; FloppyFormator за замечательную идею с одним индикатором вместо двух; mikey_aka_711 за найденную ошибку индикации под Vista; cook с kpnemo.ru за идею программной защиты флешки от записи файлов; Elroir и king_stiven с forum.ru-board.com за помощь в написании фрагмента скрипта, осуществляющего программную защиту флешки от записи; bog и dmn13 за идею заполнения свободного пространства на флешке не одним, а несколькими файлами; krasnoff - за сообщение о ложном срабатывании антивируса Касперского на версию 2.4; dimbat с forum.ru-board.com за найденную ошибку индикации в Windows 7; m-a-g-ic - за уточнение формулировки меню.
.

Также спасибо всем, кто участвовал и участвует в тестировании и обсуждении скрипта.

История версий скрипта AUTOSTOP:

2.6 (25 февраля 2010) - исправлена ошибка индикации под Windows 7 - теперь
скрипт работает и с этой ОС.
Увеличена пауза в двойном звуковом сигнале, сигнализирующем окончание
программной защиты флешки от записи (с малой паузой на некоторых
компьютерах 2 сигнала сливались в 1).
Улучшена совместимость при апгрейде с более ранних версий скрипта.

2.5 (18 февраля 2010) - скорректирован синтаксис команды del.
Ускорена работа скрипта при переходе между пунктами меню.
Изменено название метода защиты флешки от записи новых файлов
на метод программной защиты флешки от записи.
Исключен сторонний внешний модуль для воспроизведения звука через
системный динамик, применяющийся для звуковой индикации этапов отработки
программной защиты флешки от записи. Теперь вывод звука на системный
динамик осуществляется конструкцией "@echo ^G", что позволило отказаться
от внешних модулей и повысить целостность скрипта, реализовав его только
средствами CMD.

2.4 (26 марта 2009) - усовершенствована функция защиты флешки от записи
новых файлов: теперь создается не один, а несколько файлов различного
размера (1Гб, 512Мб, 256Мб, 128Мб, 64Мб и 1-63Мб), благодаря чему
обходится ограничение на размер одного файла в 4Гб на FAT32, и
достигается большая скорость последующего применения этой функции.

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

2.2.1 (19 марта 2009) - исправлена ошибка с кодировкой при выведении на экран
русского текста

2.2 (16 марта 2009) - исправлена ошибка индикации под Vista.
Полное отключение автозапуска теперь производится по желанию
пользователя

2.1 (8 марта 2009) - усовершенствована индикация - теперь вместо двух
индикаторов применяется один.
Файл описания readme.txt принял полноценную форму

2.0.1 (18 февраля 2009) - для удобства использования, скрипт вместе с иконками
и файлами описания скомпилирован в exe-файл

2.0 (14 февраля 2009) - введено использование двух индикаторов - скипт теперь защищает
и от переименования каталога AUTORUN.INF.
Добавлено полное отключение автозапуска на том компьютере,
на котором запускается скрипт.
Нарисован рисунок, описывающий состояние индикаторов.

1.9 (7 февраля 2009) - на флешке удаляются каталоги RECYCLED и RECYCLER,
а вместо них создаются файлы recycled и recycler.
"Ужесточено" создание каталога с некорректным именем.

1.8 (12 января 2009) - написан файл readme.txt, записывающийся в каталог AUTORUN.INF

1.7 (8 января 2009) - изменнено название каталога ".." на "LPT3" - скрипт заработал и на флешках с NTFS.
Убрана лишняя срока. Появилось название скрипта - AUTOSTOP (ранее было PROTECT).
Вырисована первая иконка скрипта для узнаваемости.

1.6 - теперь предварительно удаляются файлы с именем aurorun и любым расширением

1.5 - добавлено предварительное удаление файла autorun.inf

1.4 - убрана лишняя неработающая строка с изменением атрибутов

1.3 - применяется mkdir вместо type nul - теперь каталог AUTORUN.INF не удаляется
командой rmdir /s /q

1.2 - скрипт запускается с флешки без необходимости указывать ее букву,
применяется type nul вместо echo

1.1 - добавлен атрибут "скрытый" на каталог AUTORUN.INF

1.0 (11 ноября 2008) - первая версия, состоящая из одной строки:
echo.>"\\?\M:\AUTORUN.INF\.." , где М - буква флешки

Ссылки по теме:

Способы и методы:
  1. Защита флэшки от Autorun-вирусов - метод изменения прав в NTFS (лучший метод для NTFS)
  2. Как полностью обезопаситься от autorun-нов - архив ветки форума virusinfo.info
  3. Борьба с автозапуском новыми методами (by XP user aka Paul. Упоминается важность ветки реестра MountPoints2, выложены готовые REG-файлы)
  4. Как обезвредить Internet Explorer? (by XP user aka Paul)
  5. Ariad (AutoRun.Inf Access Denied) - реализованный Didier Stevens принципиально новый способ (автор предупреждает: It's beta software running inside the kernel - use at your own risk): используя minifilter driver в системе устанавливается одноименный сервис ariad, который блокирует доступ к \autorun.inf на USB-флешках. Особенности: блокируется доступ к \autorun.inf, лежащему в корневом каталоге USB-флешек и CD-ROM. Но на USB HDD доступ к \autorun.inf не блокируется. Также не блокируется доступ к файлу autorun.inf, лежащему не в корневом каталоге. Сервис ariad имеет 2 режима установки: с автоматическим запуском, и с ручным (net start ariad и net stop ariad) - рекомендую ручной, т.к. у меня при тестировании вываливала систему в синий экран. Но метод, без сомнения, интересный!
  6. How to disable autorun when double-clicking on a volume in windows explorer (by delaage.pierre, метод основан на изменении прав ветки реестра MountPoints2)
  7. Preventing Autorun Infection (метод основан на более жестком, чем в предыдущем пункте, изменении прав ветки реестра MountPoints2)
  8. Зеркало этого поста в flash_pc
  9. Как отключить автозапуск при подключении USB-Flash дисков? (используется редактирование групповых политик)
  10. Выборочное подключение USB-флешек в Windows XP (используется ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR)
  11. Ограничение количества элементов корневого каталога в FAT (автор поста - vjunk)
  12. Статья о скрипте AUTOSTOP с обсуждением на сайте habrahabr.ru
  13. Отмена принудительного отключения автоматического запуска в реестре Windows (Не удается правильно отключить функции автозапуска в соответствии с инструкциями, которые были опубликованы до выпуска этой статьи. В данной статье описан процесс получения обновлений, исправляющих необходимые параметры разделов реестра)
  14. Обсуждение скрипта AUTOSTOP на kpnemo.ru
  15. Ветка Защита флэшки от вирусов на ru-board.com
  16. Исследование в сфере автозапуска и воздействия различных параметров на него на oszone.net, автор - volk1234.

    Программы и утилиты:
  1. AUTOSTOP 2.6 - мой скрипт для защиты компьютера и флешек от autorun-вирусов. Полностью отключает на компьютере автозапуск. Защищает флешку путем создания каталога AUTORUN.INF (содержащего подкаталог с "некорректным" именем) и установки пиктограммы-индикатора на этот каталог. При заражении флешки, индикатор исчезает. Скрипт также умеет программно переводить флешку в режим "read only" (путем интеллектуального заполнения всего свободного места на флешке специальными файлами).
  2. Panda USB and AutoRun Vaccine 1.0.1.4 - хорошая программа для защиты флешек от autorun-вирусов. Подробное описание здесь. Начиная с версии 1.0.0.50, программа умеет работать и с NTFS. Мною найдена уязвимость в Panda USB and AutoRun Vaccine 1.0.1.4. Будем надеяться, что разработчик скоро устранит ее (наверняка ребята из Panda Research читают мой ЖЖ).
  3. Модифицированная версия Panda USB and AutoRun Vaccine 1.0.0.19 (сделанная __x_tra по моей просьбе), которая, в отличии от оригинальной, создает скрытый защищенный файл autorun.inf. (Если ссылка нерабочая, сообщайте в комментариях - перезалью). Panda USB and AutoRun Vaccine начиная с 1.0.0.50 тоже научилась создавать именно скрытый файл. Такое ощущение что ребята из Panda черпают идеи __x_tra из моего ЖЖ :)
  4. AutorunCleaner - лучшая программа для защиты компьютера от autorun-вирусов. При подключении флешки проверяет её на наличие файла autorun.inf, в случае наличия - просматривает его и выводит на экран список файлов, прописанных в нем (очень удобно и информативно). В настройках также можно указать автоматическое удаление найденных файлов, или удаление по черному списку. Умеет защищать флешки способом, подобным ранним версиям AUTOSTOP (каталог AUTORUN.INF и находящийся в нем подкаталог с "некорректным" именем). Программа динамично развивается, постоянно выходят новые версии.
  5. Flash Guard - отличная программа для защиты компьютера от autorun-вирусов. Когда вставляется новый носитель, Flash Guard может совершать такие действия: удалить добавленные файлом Autorun.inf пункты контекстного меню диска, информировать пользователя о наличии на диске файла Autorun.inf, удалить файл Autorun.inf, удалить все файлы Autorun.* (обсуждение здесь)
  6. USB_Tool - весьма многофункциональная программа. Умеет автоматически или в интерактивном режиме предпринимать действия при обнаружении на флешке файла autorun.inf (не конфликтует с autorun.inf, созданным Пандой). Умеет защищать флешки способом, подобным ранним версиям AUTOSTOP (каталог AUTORUN.INF и находящийся в нем подкаталог с "некорректным" именем). Умеет восстанавливать множество системных параметров, которые могут поражать autorun-вирусы (будет нелишним использовать при восстановлении системы наряду с AVZ). Умеет раздельно отключать флешки, аудиоустройства и принтеры, либо все перечисленные устройства вместе. На мой взгляд, подобная многофункциональность является одновременно и плюсом, и минусом программы: перегруженность меню элементами управления, некоторые из которых вызываются с помощью контекстного меню, а также двухуровневое контекстное меню значка программы в system tray делают работу с программой непростой и лишенной оперативности. По этой причине могу рекомендовать ее опытным пользователям. Программа динамично развивается, автор регулярно выпускает новые версии.
  7. HP USB Disk Storage Format Tool - партия признает единственно верную утилиту для форматирования USB-носителей.
  8. Flash Drive Protector - программа для защиты флешек, работает по тому же принципу, что и Panda USB and AutoRun Vaccine. Не умеет защищать флешки с NTFS, для установки защиты требует чтобы флешка была пустой (чистой). Обзор программы »
  9. USB Cop - программа для защиты компьютера от autorun-вирусов. Если на подключенной флешке нет файла autorun.inf - умеет открывать окно проводника с содержимым флешки. В противном случае выводит на экран содержимое файла autorun.inf. Если autorun.inf содержит фрагмент, занесенный в блеклист программы (блеклист редактируется руками) - например resycled, svchost, .jpg.exe и тд, то помимо вывода содержимого autorun.inf выдается предупреждение об опасности, с предложением переименовать autorun.inf.
  10. Отключение Autoplay с помощью TweakUiPowertoy (by XP user aka Paul)
  11. Naevius USB Antivirus - платная (10$) утилита, которая мониторит подключаемые флешки и удаляет autorun.inf, уведомляя пользователя о его содержимом. Должна защищать флешки посредством создания autorun.inf с некорректным атрибутом (по аналогии с Пандой) и содержимым "12345" - но на практике очень надолго задумывается, и в большинстве случаев успевает только создать autorun.inf, при попытке же выставить атрибут выдает ошибку, и сама же сносит только что созданный autorun.inf, рапортуя о том, что флешка была заражена.
  12. Найденная у zlava ссылка на китайский скрипт для удаления вируса, создающего на флешках каталог "runauto..." - (см. также перевод этого китайского скрипта на английский язык - там есть немало полезных конструкций). На этом скрипте основывается разработка VirusVaccine (см. ниже), в которой автор скрипта невежливо именуется "неизвестным китайцем". Восстанавливаю справедливость: автора зовут Lou Zhu, aka zybaby2008. Его блог удобно читать на русском через Google Translate - там есть интересные вещи.
  13. VirusVaccine - скрипт, основанный на разработке Lou Zhu (см. выше) для удаления некоторых вирусов из системы, удаление последствий вирусной атаки, отключения AutoRun со съемных носителей (Auto Play остается), удаление вредоносных файлов autorun.inf со всех дисков. По ссылке находится версия v1.0. Доработанные версии v1.1 и v1.2 выложены здесь. Из минусов отмечу узкую направленность скрипта на удаление только отдельных вирусов. Из плюсов - интересную идею с изменением цвета папок (Blue folders).
  14. NoMoreAutorun - скрипт, отключающий автозапуск со всех устройств кроме CD\DVD (с помощью параметра NoDriveTypeAutoRun ) и устанавливающий 2 обновления KB967715(KB950582), KB971029. Защищает флешки посредством создания каталога AUTORUN.INF, содержащего подкаталог с запрещенным именем. для отключения автозапуска использует ключи реестра, блокирует к ним доступ. Запрещает запись\добавление\использование usb устройств на компьютере. Имеет как консольный вариант так и GUI интерфейс. Автор - volk1234.
  15. DiskCont - программа для защиты компьютера от вредоносных программ, распространяющихся через сменные диски (бесплатна, но по истечении ознакомительного периода, варьируемого автором, часть функциональных возможностей станет недоступна).
  16. FlashControl - программа для удаления вирусов и вредоносных программ, которые внедряются в автозапуск дисков и используют файл "autorun.inf"
  17. Anti-autorun 2.0 от Bombina Soft (удаляет autorun.* со всех носителей, позволяет не удалять хорошие файлы, показывает, где и сколько у вас файлов autorun.*)
  18. Flash_Disinfector (создана автором известной программы ComboFix), которая позволяет избавиться от большинства autorun.inf троянов и защитить ваши диски от воможного заражения - (описание программы здесь)
  19. Зоркий Глаз - программа для предотвращения заражения компьютера autorun-вирусами (PS: пробовал версию 5.102 - совершенно не понравилась)
  20. Ninja Pendisk - программа для защиты компьютера от autorun-вирусов. При подключении флешки проверяет её на наличие файлов, занесенных в черный список. Умеет отключать автозапуск и выставлять простейшую защиту, создавая папку AUTORUN.INF с атрибутами +s +h +r, что на сегодняшний день неэффективно.
  21. USB-Drive Protector - русифицированный клон Panda USB and AutoRun Vaccine 1.0.0.19, выполняет те же функции, работает только с FAT. Вместо него лучше использовать Panda USB and AutoRun Vaccine - там и защита NTFS, и файл создается скрытый.
  22. Autorun Protector - умеет стирать MountPoints2 - это единственное достоинство программы. Но то же самое можно сделать и REG-файлом. Для работы программа требует .NET Framework 2.0 (имхо, для такого рода программ, это роскошь). Флешку же она защищает очень слабенько - создает каталог autorun.inf, внутри которого 2 файла - Con (файл с некорректным именем, призван препятствовать удалению каталога) и еще один, назначение которого не ясно. И файлы, и каталог без проблем удаляются руками. О минусах такого метода я писал в своей статье давным-давно. Именно по этой причине я ввел в AUTOSTOP индикацию с помощью иконки.
  23. EliPen 1.9 - испанская разработка. Умеет отключать автозапуск на компьютере (кроме автозапуска CD). Флешку защищает каталогом AUTORUN.INF (безо всяких атрибутов), внутри которого содержатся 2 пустых подкаталога с некорректными именами - AUX.ELIPEN-SATINFO и AUX.W98. Такой метод защиты на сегодняшний день неэффективен.
  24. USB Disk Security - программа платная ($55). Умеет защищать флешку путем создания каталога AUTORUN.INF, содержащего файл с некорректным именем "immunity." или в других версиях "zhengbo." (на сегодняшний день неэффективно). При подключении флешки, программа выдает сообщение об опасности при наличии файла autorun.inf и исполняемых файлов с атрибутами Read-only и Hidden, и умеет удалять их, сохраняя копии в карантин. Помимо этого программа содержит весьма сомнительный модуль MemoryShield, функции Repair System (в нее входят простейшее восстановление реестра + очистка временных файлов, недавних документов и корзины) и вывод неполного списка автозагрузки в разделе Autostart с возможностью удаления элементов. Бесплатные AutorunCleaner и USB_Tool делают все то же самое в намного более продвинутой и удобной форме. Как говаривал почтальон Печкин: "Бывают же некоторые до чужих денег жадные" :)
  25. Autorun Virus Remover, она же USB Drive Antivirus - платная программа ($25.95) для защиты компьютера и флешек. Программа содержит интересные идеи, в частности запрет на подключение флешек, и запрет записи на флешки, но неудобная и сырая. Флешки защищает путем создания каталога AUTORUN.INF, содержащего подкаталог с некорректным именем - на сегодняшний день такая защита неэффективна. Та же бесплатная Panda USB and AutoRun Vaccine обеспечивает лучшую защиту. Ключевые элементы дизайна сайта программы слизаны с сайта конкурентов (а может это и не конкуренты - а одного поля ягоды) USB Disk Security, в частности дизайн коробки - там просто замазано оригинальное название "USB Disk Security" и вписано "Autorun Virus Remover". Но на торце коробки горе-дизайнеры забыли замазать оригинальный красно-черный логотип USB Disk Security :) Подробный обзор программы »
  26. Mx One Antivirus - мексиканский антивирус для флешек (Mx One наверняка означает "первый мексиканский"). Инсталятор - RarSFx. При установке на флешку просит выбрать Device and Sequrity Icon. Запускается очень долго - 5-15 секунд. Создает autorun.inf следующего содержания:
    [AutoRun]
    icon=mxone.ico
    ; este archivo no es un virus / not is a virus this file
    Такой метод "защиты" опробован мною довольно давно - вирусы просто дописывают необходимые им строки, оставляя в неприкосновенности icon=someicon.ico - пиктограмма сохраняется при зараженном autorun.inf.В режиме "Check and Destroy" без проблем дал заменить созданный им же самим autorun.inf зараженным. После короткой проверки остается запущенным, после полной - закрывается. Мой AUTOSTOP, который лежал на флешке, попросил зачем-то прислать им на анализ - видимо просто потенциально подзревает все .exe. Спрашивается, зачем тогда сигнатуры? При попытке обновления закрылся. Я отказался высылать AUTOSTOP в Мексику - на что получил "Error '28' en tiempo de ejecution". На одном из немногих упоминаний об MX ONE в Сети, пишут что "Mx One uses a very professional looking and intuitive GUI" - интерфейс действительно очень красивый, но, к сожалению, для антивируса это далеко не главный критерий.
    PS - UPD от 8 октября 2009 - с момента написания обзора прошло примерно полгода. Для объективности только что выкачал новую версию - ее вообще не удалось установить на флешку. Суровые мексиканские парни :)


Ниже идет первоначальное содержание этого поста - моя статья, на основании которой базировались более ранние версии скрипта AUTOSTOP.

Снова о защите USB-флэшек от вирусов

Злободневная тема, правда? :)

Краткое содержание предыдущих серий: ранее я уже писал об этом у себя в ЖЖ. Вкратце - там давалось чудодейственное заклинание:

NOAUTORUN.REG

-------------------------------------------------------
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"

-------------------------------------------------------

первоисточник nick.brown.free.fr, автор - Nick Brown),котрое говорит explorer'у чтобы он не читал параметры запуска из файла Autorun.inf, а читал их из ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist, которая не существует. В итоге если внешний носитель содержит файл Autorun.inf - то при подключении носителя к компьютеру, Autorun.inf не запускается. Более того - не запускается он и при двойном клике по букве диска этого носителя в проводнике - что есть очень ок. На все компьютеры, которые с тех пор прошли через мои руки, я всенепременно ставил эту штуковину.

С тех пор утекло немало воды, и вот наконец мелкософт разродился соответствующей заплаткой: Отмена принудительного отключения автоматического запуска в реестре Windows (Данная статья применима ко всем поддерживаемым выпускам следующих продуктов:
  • Microsoft Windows 2000
  • Windows XP с пакетом обновления 2 (SP2)
  • Windows Server 2003 с пакетом обновления 1 (SP1)
  • Windows Server 2003 с пакетом обновления 2 (SP2)
  • Windows Vista
Система Windows Server 2008 не подвержена описываемой проблеме).

Заходим в раздел Обновление для Windows XP (KB950582) из приведенной выше ссылки - убеждаемся в том что "Поддерживаемые операционные системы: Windows XP Service Pack 2; Windows XP Service Pack 3" - т.е. просто в XP или в SP1 работать не будет по их заявлениям (у тихого домашнего юзера запросто можно найти такие ОС).

Автор вышеприведенного магического заклинания Nick Brown скептически пишет об этой заплатке: I'd seen that. But my version is (a) easier to understand, (b) immediately reversible, and (c) field-tested for over a year. :-)) - и тут я с ним вполне солидарен.

Ну да это, как говорится, была присказка. Если вы дочитали до этого места - далее пойдет самое интересное.

-------------------------------------------------------

Подлинной причиной, побудившей меня написать этот пост, была обратная сторона медали, которая заключается вот в чем: одно дело поставить у себя на компьютере защиту от автоматического запуска. А другое - если все же на флешке есть зараженный Autorun.inf, и вашему компу он не повредит, а у кого-то другого такой защиты нет? Т.е. обратная сторона медали - обезопасить флешку от заражения вирусом.

Конкретизируя задачу - необходимо запретить вирусу создавать на флешке файл Autorun.inf с вредоносным содержанием. Сделать это довольно просто (ранее я уже тоже где-то писал об этом): необходимо создать на флешке каталог с именем AUTORUN.INF - в этом случае ОС не позволит создать в этом же месте создать файл с таким же именем.

Просто? Да. Но идем далее. Даже если на этом каталоге выставить атрибуты "Read only" и "Hidden" - все равно существует вероятность того, что либо попадется умный вирус (и в случае невозможности создать файл Autorun.inf, он попытается проверить существование одноименного каталога, а найдя его - грохнуть, и далее преспокойно завершить начатое), либо попадется инициативный пользователь (который, обнаружив на флешке наличие каталога с именем AUTORUN.INF и атрибутами "Read only" и "Hidden" грохнет его сам, и будет гордиться).

Идею повышения надежности описанного способа я обнаружил сегодня, столкнувшись со способом, которым действует программа USB Disk Security: она создает на флешке каталог AUTORUN.INF, а в нем - файл с некорректным именем - zhengbo. - именно так, с точкой в конце. Такой файл (а следовательно и содержащий его каталог) удалить из проводника невозможно - ОС ругается и не дает его удалить.

Продолжаем наши изыскания - способ с созданием файла с некорректным именем очень хорош! Но стоит ли для этого ставить саму программу USB Disk Security? Особенно учитывая плохие отзывы о ней на авторитетном virusinfo.info? Наш ответ - нет, не стоит. Посему, формулировка задачи приобретает такой вид - создать в каталоге AUTORUN.INF файл с некорректным именем.

Подсказку решения находим в статье Обход ограничений Fat32/NTFS: Мне известно три способа обхода описанных ограничений. Общий принцип их действия таков: определенным образом составляется название файла, после чего оно передается какой-либо системной функции для работы с файлами. В результате этого алгоритм проверки параметра на корректность не срабатывает, и мы получаем нужный результат - файл или каталог с некорректным с точки зрения системы названием...
...поговорим о самих способах. Некоторые способы можно использовать не только программно, но и на пользовательском уровне. Способ первый: Использование UNC-путей. Это, на мой взгляд, самый простой и удобный способ. Разберем его на примере создания файла с точкой в конце названия. При его создании мы будем использовать стандартные функции для работы с файлами, но при этом мы будем указывать полный путь до объекта, и добавлять в начале пути четыре символа "\?" или "\.". Получится примерно следующее: "\?f: estprn". Дальше работаем с файлом как обычно, то есть мы можем писать в него, читать из него, копировать, удалять и делать все остальное, используя обычные функции. Надо только не забывать, что везде, где требуется имя файла, необходимо указывать полный путь с UNC-префиксом...

Это именно то, что нам нужно! Создаем bat-файл следующего содержания:

AUTOSTOP.BAT
-------------------------------------------------------
mkdir "\\?\M:\AUTORUN.INF\LPT3"
-------------------------------------------------------

где М - буква флешки в системе, и вуаля - имеем каталог с некорректным именем LPT3, и сам каталог AUTORUN.INF, соответственно, невозможно удалить. Чтобы избавиться от него, нужно использовать команду rmdir "\\?\M:\AUTORUN.INF\LPT3", либо переформатировать флешку.

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

  1. Убедитесь что на вашем компьютере было применено чудодейственное заклинание NOAUTORUN.REG (см. начало поста)
  2. Подключите флешку к компьютеру.
  3. Сразу же просканируйте флешку антивирусом.
  4. Откройте содержимое флешки в FAR или в Total Commander на предмет наличия подозрительных файлов и каталогов (вполне вероятно что они будут скрытыми). При нахождении таковых - удалите руками.
  5. Убедитесь в отсутствии на флешке файла autorun.inf
  6. Вакцинируйте флешку скриптом AUTOSTOP.BAT

Следует заметить еще вот что: если вы создаете загрузочную флешку (очень удобная штука, кстати) то файл autorun.inf на ней будет присутствовать. Держите на всякий случай его эталонную копию например в каталоге BACKUP на самой флешке, и перед тем как загрузиться с такой флешки, сверьте размер файла в корне диска и в каталоге BACKUP. В случае различного размера, перезапишите файл в корне диска его чистой копией из каталога BACKUP.

Спасибо за интерес к данному посту, рад буду если описанные изыскания кому-то пригодятся.

Учитывая интерес к статье, я буду стараться дополнять ее информацией. При цитировании статьи указание авторства обязательно - http://mechanicuss.livejournal.com/195192.html

PS - не скажу что после применения этого трюка граница совсем уж на замке, но теперь как-то немного спокойнее стало :)

Previous post Next post
Up