ВАКЦИНА ДЛЯ ФЛЕШКИ. БЕЗОПАСНОСТЬ USB-НОСИТЕЛЕЙ

Поради та підказки щодо софту, роботи в операційних системах, комплектуючих та зборок комп'ютерів.
Аватар користувача
toxi
Администратор
Администратор
Статті: 0
Повідомлень: 532
З нами з: 12-04-2008 07:58:25
Ваша стать: Чоловічий
І'мя: Roman
Контактна інформація:

ВАКЦИНА ДЛЯ ФЛЕШКИ. БЕЗОПАСНОСТЬ USB-НОСИТЕЛЕЙ

Повідомлення toxi »

Правильно говорят: «все новое — хорошо забытое старое». Привыкнув, что зараза прет только через инет, мы окончательно забыли, как лихо подцепляли вирусы с дискет друзей и знакомых. В наше время малварь нашла другой способ распространения: через 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\Services\Cdrom, находим параметр AutoRun и устанавливаем его равным нулю.

2. Далее переходим в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\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\CurrentVersion\Explorer\MountPoints2 и в политике доступа запрещаем редактирование ключа всем пользователям, включая админов. Не помешает и установить монитор реестра, который следил бы за появлением новых ключей MountPoints2 и блокировал к ним доступ. Только после этого можно быть уверенным, что автозапуск в системе работать не будет. Кто бы мог подумать, что все так сложно? :)

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

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

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

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

3. USB Disk Security (http://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». К тому же, картридер еще наверняка тебе пригодится (чтобы помочь скинуть фотографии красивой девушке, которая в панике бегает по офису в поисках провода от фотоаппарата).
Правила форуму :: Виконую послуги IT-адміністратора (види послуг).