Защита флэшки от Autorun-вирусов.

Все о софте.

Модератор: NetSkipper

Правила форума
Администрация не несет ответственности за размещенные на этом форуме сообщения.
Если сообщения как то ущемляют ваши права, обратитесь к администрации, и информация будет удалена с форума.
Аватара пользователя
igor7
Пользователь
Сообщения: 3182
Зарегистрирован: 13.01.2007, 11:43
smartphone: HTC ONE
Откуда: Israel

Даритель

Защита флэшки от Autorun-вирусов.

Сообщение igor7 »

Приветствую!!
Один из моих колег по работе, подцепил где-то вирус на свою флешку. Я, перерыв кучу информации по этому поводу в инете, решил выложить самые удачные методы борьбы с этим делом у нас на форуме. Наиболее полезную инфу я нашел на сайте http://habrahabr.ru. Сразу оговорюсь, что это не реклама, - просто нужно отдать должное камраду Mechanicus, чьи статьи с небольшой доработкой я и выкладываю у нас на форуме. На мой взгляд нижеизложенная инфа будет полезна каждому. Итак, покончив с отступлением, займемся делом. Что же такое Autorun-вирусы?

Autorun-вирусы получили свое название из-за метода распространения - они записывают на флешку кроме самого файла с телом вируса также и файл autorun.inf, который при подключении флешки к компьютеру, запускает тело вируса. Если на флешке заранее создать каталог AUTORUN.INF - то одноименный файл записать на нее уже невозможно. Основное направление борьбы с данёй проблемой заключалось в невозможности удаления каталога AUTORUN.INF. Но после того как новые вирусы научились переименовывать этот каталог, появились новые методы борьбы с этим явлением, которые используют другой принцип (как говорится, "Мы не можем изменить направление ветра, но мы можем подставить ему свои паруса"). На флешке создается каталог AUTORUN.INF с атрибутом "системный", в который помещается иконка, а в свойствах файла desktop.ini этого каталога прописывается абсолютная ссылка на иконку. Таким образом, при переименовывании каталога AUTORUN.INF, или при снятии с него атрибута "системный", иконка исчезает - это служит визуальным оповещением о том, что флешка заражена. Давайте рассмотрим несколько методов борьбы с этим делом.
Метод 1:
Для реализации задуманного нам понадобится отформатировать флэшку в NTFS, для этого есть несколько, известных мне способов. Для меня самым простым является использование HP USB Disk Storage Format Tool (далее я дам сылку на портативную версию этой програмки):
AUTORUN.jpg
AUTORUN.jpg (35.31 КБ) 4467 просмотров
Флэшку также можно отформатировать и более простым способом, используя командную строку:

Пуск → Выполнить → cmd →

convert I:/FS:NTFS < — если данные на флэшке нужны и их некуда скопировать

или

format I: /FS:NTFS < — если данными можно пренебречь...

Обратите внимание на букву, которая присвоена ОС-ой вашей флешке. моем случае это I.
Настройка:
Итак, карточка готова к настройке, заходим на флэшку и в корневом каталоге создаем каталог, в котором будут хранится данные, я назвал его «DATA». Правый клик по новому каталогу и переходим на вкладку безопасность, затем нажимаем на кнопку «Дополнительно». Здесь снимаем галочку с пункта «Разрешить наследование разрешений от родительского объекта к этому...», в появившемся диалоге жмем «Копировать», затем жмем «Ок» в обоих окошках. Теперь зайдем в раздел «Безопасность» корневого каталога нашего носителя и настраиваем разрешения следующим образом:

В столбце «Разрешить», оставляем отмеченными следующие пункты:

Чтение и выполнение
Список содержимого папки
Чтение


В столбце «Запретить» ставим галочку напротив пункта «Запись», в появившемся диалоге жмем «Да»:
AUTORUN1.jpg
AUTORUN1.jpg (31.26 КБ) 4467 просмотров
Все, в итоге мы получаем флэшку, на которую не сможет записаться Autorun. Минусы данного способа: мы жертвуем малую долю производительности, возможность записи в корневой каталог носителя и, естественно, невозможность использования меню «Отправить» для копирования данных на носитель.

Кроме того нам нужно отключить автозапуск:

Сделать это можно двумя способами:

1. Кроме XP Home Edition:
пуск — выполнить — gpedit.msc — конфигурация компютера — административные шаблоны — Система — отключить автозапуск (выберите, где отключать). Далее примените новую политику, выполнив команду gpupdate/force из командной строки.

2. В Home оснастка управления групповыми политиками отсутствует, однако тот же эффект может быть достигнут ручной правкой реестра:
1) Пуск -> выполнить -> regedit
2) открыть ветку HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
3) Создать новый раздел
4) Переименовать созданный раздел в Explorer
5) В этом разделе создать ключ NoDriveTypeAutoRun

Допустимые значения ключа:

Код: Выделить всё

0x1 — отключить автозапуск на приводах неизвестных типов
0x4 — отключить автозапуск сьемных устройств
0x8 — отключить автозапуск НЕсьемных устройств
0x10 — отключить автозапуск сетевых дисков
0x20 — отключить автозапуск CD-приводов
0x40 — отключить автозапуск RAM-дисков
0x80 — отключить автозапуск на приводах неизвестных типов
0xFF — отключить автозапуск вообще всех дисков.
Значения могут комбинироваться суммированием их числовых значений.

Значения по умолчанию:

Код: Выделить всё

0x95 — Windows 2000 и 2003 (отключен автозапуск сьемных, сетевых и неизвестных дисков)
0x91 — Windows XP (отключен автозапуск сетевых и неизвестных дисков)
Комментарий: в XP Home по умолчанию этот ключ отсутствует (как и сам раздел Explorer), поэтому выше описан процесс его создания. Для остальных версий создавать не надо, он уже есть, просто исправьте его.
Для тех,кто не хочет копаться в реестре выкладываю reg файлик, который сам добавит все что нужно. Подходит как для XP Home так и XP PRO версий.
Этот твик отключит AutoRun для всех дисков на вашем комютере:
NoDriveTypeAutoRun.reg
(328 байт) 97 скачиваний
Метод 2: Я его затронул в самом начале статьи, когда писал:
...Если на флешке заранее создать каталог AUTORUN.INF - то одноименный файл записать на нее уже невозможно....
Этот способ много проще первого. Все что нужно сделать, - скачать файл AUTOSTOP 2.1.
УСТАНОВКА: переписать файл autostop.2.1.exe на флешку, которую необходимо защитить (в корневой каталог), и запустить оттуда. После окончания установки файл можно удалить с флешки (его копия будет находиться в каталоге AUTORUN.INF). Внимательно прочесть файл readme.txt, находящийся там же - в каталоге AUTORUN.INF.
Что происходит после того, как мы запустили файл:
На флешке создается каталог AUTORUN.INF с атрибутом "системный", в который помещается иконка, а в свойствах файла desktop.ini этого каталога прописывается абсолютная ссылка на иконку. Таким образом, при переименовывании каталога AUTORUN.INF, или при снятии с него атрибута "системный", иконка исчезает - это служит визуальным оповещением о том, что флешка заражена. Выглядит это следующим образом:
AUTORUN2.JPG
AUTORUN2.JPG (22.45 КБ) 4419 просмотров
Те, кто спросит, зачем городить такие огороды, ведь можно воспользоваться способом, описанным выше:Защита флэшки от Autorun-вирусов (метод изменения прав в NTFS), по большому счету будут правы - этот способ намного надежнее.... Но, отвечая на вопрос, можно сказать следующее:

Существуют ситуации, когда форматирование флешки в NTFS нежелательно или неприемлемо (например, конкретная модель автомагнитолы или DVD-плеера читает только FAT32).
Я хочу показать что "можно таки бить фашиста" альтернативными способами (любая альтернатива это плюс).
На этом отличия от предидущего способа не заканчиваются - добавлены новэ методы отключения автозапуска на компьютере:

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 - полное отключение всякой поддержки автозапуска компакт-дисков (даже ручной).

Метод 3:

Защитить флешку с помощью Panda USB and AutoRun Vaccine
Файл autorun.inf, создаваемый ею на флешке (дабы предотвратить создание такого файла вирусом) невозможно ни удалить, ни переименовать, ни модифицировать, ни открыть:
AUTORUN3.jpg
AUTORUN3.jpg (57.17 КБ) 4421 просмотр
Познакомимся с программой поближе, рассмотрим ее возможности и метод, на котором базируется принцип работы.
Небольшое отступление. Камрад __x_tra тоже придумал способ защитить флешку от autorun-вирусов: на флешке создается файл или каталог с названием AUTORUN.INF, и с помощью WinHex этому файлу или каталогу выставляется недопустимый атрибут. Напомню, что согласно FAT32 File System Specification, более известной как FATGEN (мы здесь рассматриваем защиту флешек с FAT):

Код: Выделить всё

File attributes:
ATTR_READ_ONLY 0x01
ATTR_HIDDEN 0x02
ATTR_SYSTEM 0x04
ATTR_VOLUME_ID 0x08
ATTR_DIRECTORY 0x10
ATTR_ARCHIVE 0x20
ATTR_LONG_NAME ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID
The upper two bits of the attribute byte are reserved and should always be set to 0 when a file is created and never modified or looked at after that.
В варианте же, придуманном __x_tra, предлагалось поставить два верхних бита не в 0, а в 1. Байт атрибутов получался таким: 0xF7 (ATTR_ARCHIVE+ATTR_DIRECTORY+ATTR_SYSTEM+ATTR_HIDDEN+ATTR_READ_ONLY+два старших бита 11). Еще предлагались возможные варианты в виде 0xC7, 0xD7, 0xE7. Я протестировал метод — он оказался рабочим! AUTORUN.INF с присвоенным таким образом атрибутом, невозможно было открыть, переименовать и модифицировать. Меня лишь смущало 2 фактора:

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

Вернемся теперь к программе Panda USB and AutoRun Vaccine.
Напомню что «Panda USB Vaccine currently only works on FAT & FAT32 USB drives». Маленький размер файла (всего 393Kb) и спартанский интерфейс — все продумано, ничего лишнего. Добавлю, что программа бесплатная.
Начну с кнопки «Vaccinate USB». Я специально создал заранее на флешке файл autorun.inf с атрибутами RAHS — это никоим образом не помешало программе, при нажатии на упомянутую кнопку, перезаписать его своим одноименным файлом, который, как я говорил в начале статьи «невозможно ни удалить, ни переименовать (в чем была слабость моего скрипта), ни модифицировать, ни открыть». Открываем флешку в WinHex, смотрим атрибут файла autorun.inf. И что же мы видим:
AUTORUN4.jpg
AUTORUN4.jpg (14.39 КБ) 4422 просмотра
Мы видим что аналогично способу __x_tra, изменен атрибут файла: 0х40. Нас айте FAT12, FAT16 and FAT32 Windows File System находим расшифровку, которой нет в FATGEN:

Код: Выделить всё

0x40 Device (internal use only, never found on disk)
0x80 Unused
Т.е. атрибут 0x40 не так уж «некорректен» — он «в рамках спецификаций». Чесно говоря, я очень рад, что ребята из Panda Software реализовали этот способ в крохотной программе, нажатием одной лишь кнопки — не заставляя пользователя прибегать к WinHex.

Замечу что средствами программы отменить вакцинацию флешки невозможно. Если уж появилась необходимость создать на флешке свой autorun.inf (например, чтобы сделать ее загрузочной) — то WinHex вам в помощь, или переформатирование (как я уже говорил - HP USB Disk Storage Format Tool).
Вторая кнопка программы «Vaccinate computer». Проверим что она делает:
AUTORUN5.jpg
AUTORUN5.jpg (33.01 КБ) 4422 просмотра
Это знакомый нам метод придуманный Nick Brown, который мы использовался в autostop.2.1 :

Код: Выделить всё

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"
Способ хорош (замечу, что в программе присутствует функция отмены этого действия, на тот случай если авторан пользователю все же понадобится, осуществляемая повторным нажатием на кнопку, надпись на которой будет «Remove vaccine»), но добавлю что для полного отключения автозапуска будет необходимо добавить еще 3 ключа реестра (в приведенном мной синтаксисе они добавлаются через bat-файл):

Код: Выделить всё

REG ADD «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\CancelAutoplay\Files» /v "*.*" /d "" /f
REG ADD «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer» /v NoDriveTypeAutoRun /t REG_DWORD /d 255 /f
REG ADD «HKLM\SYSTEM\CurrentControlSet\Services\Cdrom» /v AutoRun /t REG_DWORD /d 0 /f
Из дополнительных возможностей программы отмечу следующее: если запустить программу с ключом:

Код: Выделить всё

USBVaccine.exe /resident
(кроме этого ключа есть еще несколько — см.домашнюю страницу программы),то она будет висеть резидентно, и при подключении новой флешки, будет предлагать вацинировать ее:
AUTORUN6.JPG
AUTORUN6.JPG (22.38 КБ) 4423 просмотра
ВЫВОДЫ:
Из рассмотренных сегодня способов защиты флешек с FAT от autorun-вирусов, этот,ИМХО, самый надежный. Понятно, что раз такие вещи умеет делать программа от Panda Software, то рано или поздно вирусописатели тоже могут этому научиться — но это вопрос времени, а в данном случае время выиграно, и выигрыш в пользу защиты.
Это всё. Надеюсь кому-то будет полезна эта инфа.
Пы.Сы. Чуть не забыл выложить портативную версию HP USB Disk Storage Format Tool...
Исправляюсь: HP USB Disk Storage Format Tool - v2.1.8 Portable
Homo hominis lupus est. Ipso factum!
Аватара пользователя
MadPriest
Патологоанатом
Сообщения: 2382
Зарегистрирован: 23.04.2005, 19:07
smartphone: iPhone 4
Откуда: Торонто
Контактная информация:

Re: Защита флэшки от Autorun-вирусов.

Сообщение MadPriest »

интересная статейка, спасибо
только flesh на английском - плоть, а не флешка
Жопа есть абсолютно универсальный интерфейс .
Ибо через жопу можно сделать абсолютно всё.


Palm V - Palm Vx - Palm m515 - Palm T|E - HP hx2410 - FSC Pocket Loox 560 - Holux GPSmile 55
iPhone 2G - iPhone 3G - iPhone 3Gs - iPhone 4 4.3.3

iPad WiFi 4.3.1

Мои фотографии
Аватара пользователя
igor7
Пользователь
Сообщения: 3182
Зарегистрирован: 13.01.2007, 11:43
smartphone: HTC ONE
Откуда: Israel

Даритель

Re: Защита флэшки от Autorun-вирусов.

Сообщение igor7 »

MadPriest,
Пусть будет плоть... :D
Homo hominis lupus est. Ipso factum!
kukkuk
Пользователь
Сообщения: 17
Зарегистрирован: 08.02.2009, 19:12
smartphone: Mio C320

Re: Защита флэшки от Autorun-вирусов.

Сообщение kukkuk »

Спасибо будем знать! :yes:
N_T
Пользователь
Сообщения: 325
Зарегистрирован: 16.11.2006, 13:51
Благодарил (а): 2 раза

Re: Защита флэшки от Autorun-вирусов.

Сообщение N_T »

sys8
Пользователь
Сообщения: 3731
Зарегистрирован: 24.04.2008, 12:40
smartphone: 1+1 шестой
Благодарил (а): 76 раз
Поблагодарили: 28 раз

Re: Защита флэшки от Autorun-вирусов.

Сообщение sys8 »

MadPriest писал(а):flesh на английском - плоть
Надеюсь не крайняя ? :lol:
sys8
Пользователь
Сообщения: 3731
Зарегистрирован: 24.04.2008, 12:40
smartphone: 1+1 шестой
Благодарил (а): 76 раз
Поблагодарили: 28 раз

Re: Защита флэшки от Autorun-вирусов.

Сообщение sys8 »

N_T писал(а):Дополнение:
http://support.microsoft.com/kb/953252
Для не владеющих английским, по русски
Скрытый текст
Для просмотра скрытого текста необходимо быть авторизованным пользователем.
Ответить

Вернуться в «Софт (SOFTWARE)»