PDA

Просмотр полной версии : Как защитить флешку


Sergio630
22.12.2009, 11:02
Здравствуйте! В последнее время приходится посещать одну контору, у них там полный пипец - Net-Worm.Win32.Kido пешком по сетке гуляет. Ну соответственно сразу на мою флешку и прописыватся. Когда флешку вставляю в свой комп, начинается битва между Каспером (KIS10) и этим червяком. Каспер побеждает, но запарили уже эти бои гладиаторские. Вопрос вот в чем: как запретить запись autorun.inf на девайс в принципе, чтобы вообще никогда его туда никакая зараза записать не смогла?

axlwor
22.12.2009, 11:17
проще запретить авторан (http://web-notes.ru/2008/07/no_autorun/)

SnowBars
22.12.2009, 11:24
вот статейка, Правильно говорят: «все новое — хорошо забытое старое». Привыкнув, что зараза прет только через инет, мы окончательно забыли, как лихо подцепляли вирусы с дискет друзей и знакомых. В наше время малварь нашла другой способ распространения: через USB-носители. Они оказались идеальным контейнером. А вкупе с дебильной политикой Винды — еще и очень эффективным.

Вставь пендрайв где-нибудь в универе или интернет-кафе — и малварь не заставить себя ждать. К гадалке не ходи по поводу флешки подружки: вопрос тут только в том, сколько разновидностей малвари уживается в одном месте. Да что там говорить, — если даже у опытных пользователей на внешних носителях часто оседает случайно подцепленная зараза? Принцип действия настолько прост, что описывается буквально в двух словах. Любой вирус, у которого в арсенале числится распространение через внешние носители, использует 2 файла autorun.inf и бинарник с собственно телом вируса. Когда пользователь вставляет флешку, Винда считывает зловредный autorun.inf и, следуя указаниям, сразу запускает тело вируса или же исполняет его во время двойного клика по иконке накопителя. Ну а, обосновавшись в системе, ничего не стоит копировать эти файлы на все подключаемые в систему диски. Недавний опыт Downadup, который использовал небольшой хинт, чтобы обмануть антивирусы, показал, что дело пора брать в свои руки. Сегодня мы разберемся, во-первых, как обезопасить свою флешку, а во-вторых, как избавить систему от «вредных привычек».

NTFS — НАШЕ ВСЕ, ИЛИ СПОСОБ №1
Оставим изучение живности зоологам. Вместо того чтобы ежедневно отлавливать малварь, мы сделаем так, чтобы она попросту не появлялась. А для этого создадим флешке такие условия, чтобы живность там не могла существовать. Первый способ — очень легкий и, пожалуй, самый эффективный (но, увы, не лишенный недостатков). Суть в том, чтобы распрощаться с файловой системой FAT32, которая поголовно используется на внешних носителях по умолчанию, — и перевести флешку на NTFS, получив все ее преимущества. Самый удачный вариант перейти на NTFS — отформатировать пендрайв специальной утилитой от компании HP: HP USB Disk Storage Format Tool (дистрибутив можно найти в Google по названию файла SP27213.exe). Требуется лишь выбрать нужный диск и файловую систему — в нашем случае NTFS. Практика, однако, показывает, что ничем не хуже оказываются встроенные средства Винды. Поэтому можно просто выбрать в контекстном меню пункт «Отформатировать» или даже банально воспользоваться консольной командой:

format f: /FS:NTFS

Если есть необходимость сохранить данные на флешке, используй встроенную утилиту для преобразования файловой системы на выбранном разделе:

convert f: /FS:NTFS

Вспоминаем, что вирусу обязательно нужно создать свой autorun.inf в корне сменного носителя, чтобы обосноваться на USB-носителе. Поэтому следующий шаг — просто запретить создание каких-либо файлов в корне флешки. Где же тогда хранить файлы? Очень просто — в специально созданной папке (пусть она будет называться FILES), для которой по-прежнему будут разрешены операции чтения/записи/выполнения файлов. Для этого переходим в свойства безопасности каталога и нажимаем на кнопку «Дополнительно». В появившемся окошке надо сделать важную вещь — отключить наследование разрешений от родительского объекта, сняв соответствующую опцию. Далее, в появившемся диалоге, жмем «Копировать» и выходим отсюда, дважды ответив «Ок». Теперь можно смело отключать запись в корневой каталог, не опасаясь, что новые политики будут унаследованы в нашей папке с файлами. Выбираем в колонке «Запретить» пункт «Запись», а в столбце «Разрешить» оставляем следующие права: «Чтение и выполнение», «Список содержимого папки», «Чтение». В итоге, мы получаем флешку, на которую не сможет записаться Autorun (ради чего собственно все и затеяли).

Для удобства можно создать защищенный от записи autorun.inf, который будет открывать ту самую папку FILES. Панацея? К сожалению, нет. Если малварь запущена с правами администратора, то ничто не помешает ей поменять ACL-разрешения, как вздумается. Правда, на практике, малвари, готовой к подобной ситуации, пока немного. А вот со следующей проблемой я столкнулся лично, — когда вставил вакцинированную флешку в свою магнитолу и, естественно, обломался. Большинство бытовых девайсов знать не знают о существовании NTFS и работают только с флешками на FAT32. Многие люди используют в качестве флешки PSP или MP3-плеер — и их вообще никак не получится отформатировать в NTFS. Ну и напоследок: флешки с NTFS становятся Read only на маках и на многих Linux’ах. Внимание — важный нюанс! Отформатированную в NTFS флешку обязательно нужно вытаскивать через «Безопасное отключение устройства». Если в случае с FAT32, на это можно было смело забивать, то с NTFS все данные проходят через кэш, и вероятность того, что часть данных, не успев полностью скопироваться из кэша, пропадет при отключении, крайне велика. В общем, ты меня понял — только «Безопасное отключение»!

СЛАВНЫЕ ОСОБЕННОСТИ FAT32, ИЛИ СПОСОБ №2
Как я уже сказал, вариант c NTFS прокатывает далеко не всегда. Но есть возможность оставить носитель на родной файловой системе FAT32 и, более того, — использовать для защиты ее специфику. Задача опять же та же — запретить вирусу создавать на флешке файл autorun.inf. Когда-то было достаточно просто создать каталог с именем AUTORUN. INF, выставив ему атрибуты «Read only» и «Hidden». Так мы препятствовали созданию файла с тем же именем. Сейчас это, понятно, не вариант. Зато есть чуть модифицированный трик, который большинство малвари обходить пока не научилось. Объясняю идею. Создаем каталог AUTORUN. INF. Если каталог не пустой, удалить его можно, лишь расправившись со всем содержимым. Это очень просто, — но только не в случае, когда в каталоге есть файлы с некоррект ными для FAT32 именами! Именно этот принцип защиты лежит в основе программы USB Disk Security (www.zbshareware.com), которая создает на флешке AUTORUN. INF и в нем файл «zhengbo.» (да-да, с точкой на конце — что, естественно, некорректно). И знаешь: большинство малвари остается не у дел. За свое «ноу-хау» разработчики просят $50, но нам ничего не стоит сделать то же самое вручную. Для этого вспоминаем старый трик из нашей давней статьи «Обход ограничений FAT32/NTFS» (http://www.xakep.ru/magazine/xA/062/080/5.asp), заключающийся в использовании локальных UNC-путей. Напомню, что UNC — это формат для записи пути к файлу, расположенному на удаленном компьютере. Он имеет вид \\server\share\path, где server — это название удаленного хоста. Такой способ доступа к файлам можно использовать и для локальной машины, — только тогда вместо server нужно подставлять «?» или «.», а путь к файлу указывать вместе с буквой диска. Например, так: \\?\C:\ folder\file.txt. Фишка в том, что при использовании UNC-путей и стандартных консольных команд можно создавать файлы даже с запрещенными файловой системой именами. Создадим несложный BAT-файл со следующим содержанием:

mkdir "\\?\J:\AUTORUN.INF\LPT3"

После запуска получим каталог с некорректным именем LPT3, находящийся в папке AUTORUN.INF — обычным способом ее уже не удалить, а значит, малварь не сможет создать файл autorun.inf, оставшись не у дел! Недостатков хватает и у этого способа. Во-первых, разработчики новой малвари могут использовать хинт от обратного и воспользоваться UNC-путями для удаления файлов/папок с некорректным именем: \\?\J:\AUTORUN.INF\LPT3. Директорию можно вообще не удалять — а беспрепятственно переименовать: к примеру, в AUTORUN.INF1. Другой вопрос, что такой малвари пока, опять же, немного. И раз мы заговорили о создании BAT-файла, то накидаем универсальный скриптик, который, помимо всего прочего, будет:

* удалять папку, замаскированную под корзину (на флешке ее быть не должно), где располагают свои тела многие черви (в том числе, Downadup), а также папку с файлами восстановления системы;
* создавать системную папку AUTORUN.INF с директорией COM1 ;
* с удалением такого файла будут трудности даже под NTFS;
* удалять и защищать desktop.ini, который также часто используется малварью.

rd /s /q %~d0\recycled
rd /s /q %~d0\recycler
rd /s /q «%~d0\System Volume Information"
del /f /q %~d0\autorun.*
mkdir "\\?\%~d0\autorun.inf\com1"
attrib +s +h %~d0\autorun.inf
del /f /q %~d0\desktop.ini
mkdir "\\?\%~d0\desktop.ini\com1"
attrib +s +h %~d0\desktop.ini

Достаточно сохранить это на флешке с именем, например, autorun.bat и запустить.
СОВЛАДАТЬ С АВТОЗАГРУЗКОЙ

Одно дело — разобраться со своей собственной флешкой, и совсем другое — не подцепить заразу с чужих. Для того чтобы малварь не перекочевала на твой комп, продолжив свое победоносное шествие, необходимо, во-первых, грамотно отключить автозагрузку, и, во-вторых, взять на вооружение пару полезных утилит.
Начнем с первого. Казалось бы: что может быть проще, чем отключение автозапуска? Но на деле все не так прозрачно! Даже если поставить запрет через локальные политики Windows, в системе все равно остаются дырки, позволяющие заюзать малварь. Это легко проверить! Сначала отключаем автозапуск через стандартные политики Windows и убеждаемся, что автозапуск вроде как не работает. А теперь проведем эксперимент, создав на флешке autorun. inf со следующим содержанием:

[autorun]
open = calc.exe
shell\Open\Command=calc.exe
shell\Open\Default=1
shell\Explore\Command=calc.exe
shell\Autoplay\Command=calc.exe

Во время монтирования девайса, действительно, ничего не запускается, но попробуем дважды щелкнуть по иконке носителя. Что мы видим? Винда открывает калькулятор! Думаю, не надо объяснять, что вместо него т ам могло оказаться, что угодно. Вместо этого приведу подробную инструкцию, как правильно и окончательно отключить автозапуск системы:

1. Первым делом правим ключ реестра, который отвечает за запуск с CD. Переходим в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Servic es\Cdrom, находим параметр AutoRun и устанавливаем его равным нулю.

2. Далее переходим в раздел HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\Curr entVersion\policies\Explorer. Здесь создаем новый ключ NoDriveTypeAutoRun типа dword и задаем значение ff в шестнадцатеричной системе. Для верности можно повторить те же действия в ветке HKEY_CURRENT_USER, но они все равно будут игнорироваться.

3. Другой интересный хинт заключается в редактировании ключа HKEY_ LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ IniFileMapping\Autorun.inf, которому нужно присвоить значение (типа REG_SZ) — @SYS:DoesNotExist. Так мы заставляем Windows думать, что autorun.inf является конфигурационным файлом древних программ, разработанных для ОС, более ранних чем Windows 95! Не имея в распоряжении реестра, они использовали .INI-файлы для хранения своей конфигурации. Создав подобный параметр, мы говорим, чтобы система никогда не использовала значения из файла autorun.inf, а искала альтернативные «настройки» по адресу HKEY_LOCAL_MACHINE\ SOFTWARE\DoesNotExist (естественно, он не существует). Таким образом, autorun.inf вообще игнорируется системой, что нам и нужно. Используемый в значении параметра символ @ блокирует чтение файла .INI, если запрашиваемые данные не найдены в системном реестре, а SYS является псевдонимом для краткого обозначения раздела HKEY_ LOCAL_MACHINE\Software.

4. Нелишним будет обновить параметры файлов, которые не должны автозапускаться, добавив туда маску *.*. В разделе HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ Explorer\AutoplayHandlers\CancelAutoplay\Files создаем строковой параметр типа REG_SZ с названием *.*. 5. В реестре Винды есть замечательный раздел MountPoints2, который обновляется, как только в компьютер вставляется USB-носитель. Собственно, именно это и позволяет провернуть трюк, который я описал вначале. Бороться с подобным положением вещей можно. Сначала необходимо удалить все ключи MountPoints2, которые ты сможешь найти поиском в реестре, после чего перегрузиться. Далее находим HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\MountPoints2 и в политике доступа запрещаем редактирование ключа всем пользователям, включая админов. Не помешает и установить монитор реестра, который следил бы за появлением новых ключей MountPoints2 и блокировал к ним доступ. Только после этого можно быть уверенным, что автозапуск в системе работать не будет. Кто бы мог подумать, что все так сложно? :)

ПОЛЕЗНЫЕ ТУЛЗЫ
В поиске и сопротивлении малвари хорошими помощниками могут стать несколько утилит. Я не буду здесь приводить обычные антивирусы, которые, само собой, с этой напастью борются и во многих случаях — довольно успешно. Вместо этого рассмотрим несколько небольших, но очень полезных утилит.

1. AutoRunGuard (autorun.synthasite.com/AutoRunGuard.php). Миниатюрная, но очень расширяемая тулза позволит настроить правила — что должно происходить, когда подключается флешка или CD. Можно, к примеру, в момент монтирования тут же запускать сканнер малвари. AutoRunGuard сама проверяет наличие autorun.inf, а также скрытых файлов, уведомляя о них юзера.

2. Flash Guard (www.davisr.com). Эта утилита также следит за появлением в системе сменных накопителей. При обнаружении нового диска она предлагает, на выбор:

* Удалить добавленные файлом Autorun.inf пункты контекстного меню диска;
* Информировать пользователя о наличии на диске файла Autorun.inf;
* Удалить файл Autorun.inf;
* Удалить все файлы Autorun.*; Удаляем во всех случаях Autorun.inf и спим спокойно.

3. USB Disk Security (www.zbshareware.com). Увы, платная утилита для защиты флешек от малвари. По своему опыту могу сказать, что с вирусами она справляется на раз-два. В качестве бесплатной альтернативы можно привести Flash Disinfector.
Правим права доступа в консоли

Установить ручками права доступа для одной флешки — легко. Для двух-трех — тоже ничего сложного. Но если требуется вакцинировать сразу десяток, скажем, для всех сотрудников предприятия? В этом случае нелишним будет автоматизировать процесс, устанавливая ACL-правила для флешки через командную строку. Кстати говоря, используемая для этого консольная утилита cacls (Change Access Control Lists) — единственный способ настроить параметры безопасности в Windows XP Home Edition. Первым делом нужно получить текущую ACL-таблицу с флешки. Допустим, она определяется в системе как диск X: — команда для просмотра таблицы будет:

cacls X:\

В большинстве случаев вернется строка:

X:\ Все:(OI)(CI)F

Символ F (от слова Full) в конце означает полный доступ для всего содержимого, — о чем говорят флаги (OI)(CI). Нам нужно удалить права на изменение файлов, поэтому по очереди удаляем записи из таблицы. В нашем примере надо удалить запись о полном доступе для группы «Все»:

cacls X:\ /E /R

Все. После чего разрешаем доступ к каталогу в режиме чтения (Read only):

cacls X:\ /G Все:R

Попробуй теперь создать в корне флешки файл. Едва ли получится :).
Непробиваемая защита

Самая лучшая защита на флешке — запрет записи на хардварном уровне. Некоторое время назад у многих флешек такой переключатель был по умолчанию, но сейчас производители отошли от этой практики. Зато почти на всех карточках Secure Digital (SD) переключатели по-прежнему есть. Поэтому могу предложить непробиваемый вариант: купи такую карточку и компактный картридер, и в случае малейшего подозрения ставь переключатель в положение «read only». К тому же, картридер еще наверняка тебе пригодится (чтобы помочь скинуть фотографии красивой девушке, которая в панике бегает по офису в поисках провода от фотоаппарата).

Lady
22.12.2009, 12:48
А вот ещё есть оригинальный индикатор заразы http://mechanicuss.livejournal.com/195192.html

Plesha
22.12.2009, 16:02
Есть еще одна тулза - Panda USB Vaccine (http://www.pandasecurity.com/homeusers/downloads/usbvaccine/)

Vose
22.12.2009, 21:12
Sergio630,
1. Папки autorun.inf\lpt3 , созданные в корне каждого дискового носителя с помощью батника, приведённого в тексте 2-го поста - must have!
2. файлики recycled, recycler, system volume information (только для чтения, системные) - тоже в корне каждой флэхи
3. Отключение на своём компе автозапуска со всех дисков (юзаем AVZ - там это элементарно проверяется и делается)
4. Включение отображения скрытых и системных файлов и "страховочная" установка Far.
И никаких проблем даже без антивиря с гадостью на флэхах не возникает! Зараза не запускается сама НИКОГДА и легко ручками прибивается!

Sergio630
23.12.2009, 12:14
rd /s /q %~d0\recycled
rd /s /q %~d0\recycler
rd /s /q «%~d0\System Volume Information"
del /f /q %~d0\autorun.*
mkdir "\\?\%~d0\autorun.inf\com1"
attrib +s +h %~d0\autorun.inf
del /f /q %~d0\desktop.ini
mkdir "\\?\%~d0\desktop.ini\com1"
attrib +s +h %~d0\desktop.ini

Запускаю на флешке этот батник, он запускается и.... исчезает:shock: Так и должно быть? После запуска и исчезновения на флешке никаких новых папок и файлов не появляется ( смотрел в тотал коммандер с функцией "показывать скрытые элементы)...

SnowBars
23.12.2009, 17:31
с этим батником - создалась папка (удалить смог)
с батником из поста #4 - создалась папка AUTORUN.INF (удалить не смог)

HETO
24.12.2009, 12:33
Лучше использовать Panda USB Vaccine (http://www.pandasecurity.com/homeusers/downloads/usbvaccine/)
Этой программой можно отключить autorun на своем компьютере, вакцинировать свою флешку, а кроме того можно поставить в установках автоматическую вакцинацию любой подключаемой флешки.

При вакцинации программа создает на флешке пустой файл autorun.inf, у которого меняет атрибут на "нестандартный". При этом вирусы не могут удалить или изменить этот нулевой файл.

Сами Вы тоже не сможете удалить этот autorun.inf, пока не отформарматируете флешку или не снимите защиту программой Panda USB Vaccine или каким-нибудь DiskEditor'ом не поменяете атрибут файла

Sergio630
24.12.2009, 14:42
Попробую батник из поста #4 и Панду... Есть ли разница между флешкой и картридером в данной ситуации? У меня картридер, мож поэтому батник первый не работает?:quest:

Vose
24.12.2009, 18:50
с батником из поста #4 - создалась папка AUTORUN.INF (удалить не смог) Через Far удаляется, Эксплорером - нет.
Есть ли разница между флешкой и картридером Наверняка... Флэшка - это носитель информации, картридер - устройство для чтения носителей. Защитная папка на НОСИТЕЛЕ информации создаётся, а как её к устройству чтения присобачить???

Maxim114
24.12.2009, 19:57
Я сделал проще:
1. Форматнул флешку в ntfs
2. создал файл AUTORUN.INF(у меня в нем, например, прописывается иконка диска) и сделал права только на чтение.
Все. Зараза типа kido конечно прыгает, но автозапуска заразы-то нет. Спокойно удаляю после клиентов все ненужное.

SnowBars
24.12.2009, 20:15
Vose, ни фаром ни батником, удалить папку LPT3 с флешки не удалось.

Vose
25.12.2009, 15:52
Форматнул флешку в ntfs
Умрёт она у вас быстро от работы на этой файловой системе

Vose, ни фаром ни батником, удалить папку LPT3 с флешки не удалось. Батником не пробовал - вполне Far хватает - заходим в папку autorun.inf и удаляем сначала папку LPT3, а затем и саму папку autorun.inf. Специально сейчас проверил ещё раз. Возможно, Total Commander тоже справился бы. Ещё неплохо файлы/папки с неправильными именами DOS Navigator удаляет (особенно в режиме прямого доступа к диску)

Nekt
26.12.2009, 03:35
Ничего лучше нету, чем железный метод запрета записи. Если есть такой на флешки.

Plesha
26.12.2009, 08:52
Сейчас такой механизм уже исключение, нежели правило.

SLAEVNEAN
26.12.2009, 11:58
вот неплохая статья на эту тему автозапуск программ с внешних носителей (http://samoychka.org/readarticle.php?article_id=46)

PLAstic
26.12.2009, 12:06
вполне Far хватает - заходим в папку autorun.inf и удаляем сначала папку LPT3, а затем и саму папку autorun.infВы чё дурью маетесь? Вы хотите создать неудаляемую папку или защитить флешку от автоматического запуска вирусов? Скрипты какие-то, испытания... Ручками создаёте в корне флешки папку (не файл!) с именем autorun.inf. Ставим на неё атрибут "скрытый", чтоб ненароком не удалить. Всё. Я пока не слышал о вирусах, которые умеют удалять эту папку.

Добавлено позже:

Единственный способ сделать папку неудаляемой - это создать внутри неё объект, имеющий спецсимволы в своём названии, но не исправляющийся средствами проверки диска. Такая папка существует у меня на винте после вируса. Она мне не нужна, конечно, но переименование, удаление и любые другие операции с ней не проходят. Дело не в пермишенах. Проверка диска не находит ничего криминального в таком названии.

Lemuil
29.12.2009, 22:03
Еще как способ защиты - просто после того, как флешку вставил shift держишь (останавливаешь авторан).

lexa1963
30.12.2009, 14:31
Примерно месяц назад на работе тоже была проблема с вирусами-авторанами. Поставил на все машины прогу Autorun Virus Remover. Висит в трее и перехватывает вирус со всех сменных носителей. Сейчас проблем нет. Так что рекомендую. Ссылка ниже:
http://www.anyfiles.net/download/5858.56181a57b61769693c516ae051/Autorun.Virus.Remover.v2.3.Build.1022.Incl.Serial_ OpuS.rar.html