Защищаем Flash-Drive (а так же USB-HDD) от заразы.
[INTRO]
Наверно каждый, имеющий сменный носитель - флешку, обнаруживал на ней вредоносные программы, прописанные в autorun.inf на запуск. Да что уж говорить, если купив абсолютно новый MP3-плеер, малоизвестной фирмы я обнаружил на нём виря, а ссылка на загрузку его была в файле autorun.inf. Учитывая тот момент, что я пользуюсь Portable Soft'ом на флехе и использую ещё удобное меню на основе PStart.exe, т.е. я имею уже настроенный autorun.inf на запуск этого меню мне порядком надоело, что я получаю на своей флехе после вставки флешки в чужой комп виря и отредактенный autorun.inf на его запуск. Вообщем я стал думать как защитить от заразы свою флеху.
[Ищем способы защиты]
1. Использовать переключатель Read-Only, т.е. попросту аппаратно, переключателем запретить производить запись на флешку и сделать её только читаемой. Этот способ имеет следующие недостатки: ну во-первых не на всех флешках есть такой переключатель (на моей не оказалось), ну а во вторых это очень не удобно: мне приходится по работе бегать по разным компам и активировать на них ПО, а всю инфу об активации (серийники, коды и т.д) я храню в файле на флешке и постоянно редактирую его, т.е. права на запись мне нужны на флешку. В итоге этот способ мне совсем не подходит.
2. Использовать шифрование. Способ требует наличия спец софта на компе клиента, который на лету шифрует/дешефрует файлы, что мне тоже неудобно. Использовать шифрование на уровне системы XP ? В этом случае я не уверен что поможет от виря, так как он сам может пользоваться системными функциями...
3. Использование другой файловой системы.
И тут я вспомнил про NTFS и тут же полез смотреть какая файловая система у меня на флешке. Конечно оказалась FAT. Тут же мне интуиция подсказала надо пробовать пересесть на NTFS, потому как там больше атрибутов и можно задать права на используемые файлы. Ясное дело что в первую очередь это autorun.inf. Т.е. если вирь не будет иметь прав на запись/редактирование/перезапись/удаление этого файла, то мы решим проблему: не дадим заразить нашу флешку с помощью механизма заражения через autorun.inf (хотя вирю пока никто не мешает сканить весь флеш-драйв на предмет исполняемых файлов и пробовать заражать их дописывая своё тело к файлу-жертве, но об этом позже.)
[Немного теории файловых системах]
Для хранения файлов всё доступное для них пространство разбивается на кластеры. Таблица размещения файлов содержит ячейки, каждая из которых указывает на определенный кластер на жестком диске.
1.FAT 12
Применялась в пору DOS 1.0 на древних HDD и дискетах - не рассматриваем.
2.FAT 16
Максимальный размер раздела - 2 гигабайта (Что подходит для моей флешки - она 2 Гига, она ранее и была установлена). При размере раздела свыше 512 мегабайт неэкономно расходует место на диске (из-за большого размера кластера). Распознается и может использоваться практически всеми операционными системами, используемыми на ПК, имеет корневой каталог фиксированного размера (512 записей).
3.FAT 32
Работает чуть медленнее, чем FAT 16, но в большинстве случаев разница в скорости незаметна. Позволяет создавать разделы размером до двух терабайт. Диски почти любого размера может разбить на кластеры размером 4 КБ, уменьшая тем самым бесполезную трату места на диске. Кроме того есть ограничение на размер файла - он не может быть больше 4 гб. (Целиком образ DVD не запишешь).
4.NTFS
Была специально разработана для Windows NT-систем. В NTFS значительно расширены возможности по управлению доступом к отдельным файлам и каталогам введено большое число атрибутов, реализована отказоустойчивость. В NTFS версии 5.0 были добавлены дополнительные атрибуты файлов, наряду с правом доступа введено понятие запрета доступа, позволяющее, например, при наследовании пользователем прав группы на какой-нибудь файл, запретить ему возможность изменять его содержимое. Как раз то, что доктор прописал!
[Ставим NTFS на флешку]
1. Подготовка
Для начала посмотрим свойства флэшки и замерим размер файлов а так же размер места занимаемого ими на диске.
Вот что у меня получилось:
Цитата:Ёмкость 2049671168 байт (около 1,9 Гб.)
Свободно: 1259044864 байт (около 1,17 Гб.)
Занято: 790626304 байт (около 754 Мб.)
Размер всех файлов: 694 МБ (728*223*070 байт) - такой размер всех моих файлов.
Занимают на диске: 746 МБ (783*024*128 байт)
Налицо ощутимая потеря ёмкости 52 Мб, скорее всего из-за того что используется большой размер кластера, проверим какой. Кидаем на флешку файл размером менее 512 байт (или находим маленький из уже имеющихся на флешке) смотрим его свойства, и видим что на диске он занимает аж 32Кб. т.е таким образом мы выяснили, что размер кластера равен 32Кб., что при размере флешки 2 Гб. является слишком расточительным и при наличии большого колличества файлов размером менее 32 Кб. потери пространства могут оказаться ощутимыми. Что и имеет место быть в моём случае.
Теперь обязательно скопируйте себе на жёсткий диск всё содержимое флешки.
2. Форматируем.
Если вы уже имеете на борту компа специализированный софт для работы с разделами, ну напрмер Partition Magic, то можете конвертнуть флешку в NTFS на свой страх и риск с помощью его.
Я поступлю немного иначе: Отформатирую флешку в NTFS средствами самой системы.
Стандартный предлагаемый размер кластера на объём 1-2 Гб - 4Кб. Оптимален ли он будет для моей флешки? Форматируем. Смотрим что получилось:
Цитата:Ёмкость: 2049945600 байт (около 1,90 Гб)
Свободно: 2010750976 байт (около 1,87 Гб)
Занято: 39194624 (около 37,3Мб.)
Сразу возникает вопрос чем? Самой файловой системой NTFS - это плата за использование.
Теперь копируем файлы обратно на флешку, получаем:
Цитата:Ёмкость: 2049945600 байт (около 1,90 Гб)
Свободно: 1273454592 байт (около 1,18 Гб.)
Занято: 776491008 байт (около 740 Мб.)
Размер всех файлов: 694 МБ (728*223*070 байт) - не должен меняться
Занимают на диске: 699 МБ (733*388*800 байт)
Налицо выйгрыш свободного места в 14 Мб. NTFS (4Kб) vs FAT16 (32Кб.- такой размер кластера, кстати при форматировании стандартной утилитой, которая идёт в комплекте к флэшке).
Кластер у нас действительно получился 4Кб, что я считаю много для флешки размером 2 Гб.
Переформатируем в NTFS ещё раз с минимальным размером кластера в 512 Байт и посмотрим свойства получившегося диска (раздела).
Цитата:Ёмкость: 2049949184 байт (около 1,90 Гб)
Свободно: 2010327552 байт (около 1,87 Гб)
Занято: 39621632 (около 37,7Мб.)
Т.е. в итоге мы потеряли ещё около 400Кб, Что не очень много, но дисковое пространство будет расходоваться более экономно в случае большого колличества файлов маленького размера.
Теперь снова копируем всё содержимое обратно на флешку. Смотрим что получилось:
Цитата:Ёмкость: 2049949184 байт (около 1,90 Гб) - осталась прежняя.
Свободно: 1277632000 байт (около 1,18 Гб.) - места стало больше.
Занято: 772317184 байт (около 736 Мб.) - ещё выйгрыш в 4Мб.
Размер всех файлов: 694 МБ (728*223*070 байт) - не менялся
Занимают на диске: 695 МБ (728*784*384 байт) - на 4Мб. меньше.
Если сравнивать с изначальной FAT16 с кластером в 32Кб. которую нам предлагает производитель мы получили сумарный выйгрыш в почти в 18 Мб, несмотря на то что перешли на более прожорливую NTFS. Т.е. потери ёмкости флешки при переходе с FAT16 на NTFS окупились уменьшением кластера с 32Кб. до 512байт.
Это исследование было проведено специально для скептиков, которые по тем или иным причинам не хотят ставить NTFS на флешку.
[Защищаем файл autorun.inf]
Обычно он имеет вид:
Код:
[autorun]
Open = may_file.exe - ссылка на запуск нужного мне файла
Icon = autorun.ico
Я хочу сделать так чтоб он таким и оставался и изменить его мог только я, как владелец данного файла. Смотрим его свойства->Безопасность и видим, что стоит Полный доступ для группы Все, а именно, если капнуть глубже (Жмякнем пимпу "Дополнительно") разрешение "Полный доступ" унаследовано от самого корня диска. Жмякаем изменить, снимаем галку наследования. Далее Изменяем разрешения - ставим галки в столбце запретить на:
1. Создание файлов/запись данных
2. Создание папок/дозапись данных
3. Запись атрибутов
4. Запись дополнительных атрибутов
5. Удаление
6. Смена разрешений
7. Смена владельца
Таким образом у нас появился элемен разрешения "Запретить" что имеет более высокий приоритет над элементом "Разрешить"
...................................
[Испытания]
Сегодня вторник и мне "посчастливилось" испытать мою флеху в бою. На третьем компьютере, после установки драйвера PDF-принтера и просмотрщика PDF, я обнаружил, что комп не хочет отдавать мне флешку ("вы не можете извлечь безопасно устройство, так как оно используется в данный момент"), хотя все файлы с флехи были закрыты, включая корневой каталог. Сразу у меня мелькнула мысль - на компе вирус. И действительно, запустив портабл процессэксплорер, я увидел знакомый процесс трояна tel.xls.exe, который был запущен из папки system32 и являлся ранее известным мне Trojan.Win32.VB.atg. Я убил процесс виря и открыл на просмотр autorun.inf - он остался прежним! Закрыл файл, нашёл файл виря, удалил его из папки и из автозапуска. Спокойно извлёк флешку и пошёл дописывать статью...
[Заключение]
Я думаю, учитывая всё выше изложенное, можно экспериментировать и ставить на флешку NTFS 5.0, выставлять права на файл autorun.inf и смело пользоваться флехой на заражённых компах - вирь не пролезет (по крайней мере способом прописывания в autorun.inf). Для защиты остальных файлов на флехе и корневого каталога можно также выставить необходимые права на файлы и папки, защитив их таким образом от изменения/удаления/перезаписи. По мере эксплуатации свой флехи, статья может быть дополнена. На своём примере я убедился, что способ работает, кроме того я ещё получил дополнительное свободное место на флешке, передя с FAT16 на NTFS.
© -=lebed=- спец. для Античат
ссылки на используемый материал:
http://remont-hdd.by.ru/fat.shtm
http://yura.projekta.../per/fsinf.html
очень актуальная статья для владельцев Flash-накопителей.
Не так давно из-за вирусной эпидемии, связанной именно с накопителями пострадал целый город - Благовещенск. Соблюдайте "self-security" и ваши данные будут в целости и сохранности.
Кто какие методы знает и пользовался включая этот, поделитесь своими наблюдениями и экспериментами защиты??? Можно и программным обеспечением (софтом)