Захист USB-флеш накопичувачів від вірусів
Зміст
Правильно кажуть: "все нове - добре забуте старе". Звикнувши, що зараза пре тільки через інет, ми остаточно забули, як хвацько підчіплювали віруси з дискет друзів та знайомих. У наш час малеча знайшла інший спосіб поширення: через 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
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, який також часто використовується малварью.
d0\recycled rd /s /q %
d0\recycler rd /s /q «%
d0\System Volume Information" del /f /q %
d0\autorun.inf\com1" attrib +s +h %
d0\autorun.inf del /f /q %
d0\desktop.ini\com1" attrib +s +h %
Достатньо зберегти це на флешці з ім'ям, наприклад autorun.bat і запустити.
ВЛАДИТИ З АВТОЗАВАНТАЖЕННЯМ
Одна річ — розібратися зі своєю власною флешкою і зовсім інша — не підчепити заразу з чужих. Для того щоб малюк не перекочував на твій комп'ютер, продовживши свою переможну ходу, потрібно, по-перше, грамотно відключити автозавантаження, і, по-друге, взяти на озброєння пару корисних утиліт.
[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 у шістнадцятковій системі. Для вірності можна повторити ті ж дії у гілці
але вони все одно ігноруватимуться.
3. Інший цікавий хінт полягає в редагуванні ключа
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf
HKEY_LOCAL_MACHINE\ SOFTWARE\DoesNotExist
(Звичайно, він не існує). Таким чином autorun.inf взагалі ігнорується системою, що нам і потрібно. Використовуваний у значенні параметра символ @ блокує читання файлу .INI, якщо дані, що запитуються, не знайдені в системному реєстрі, а SYS є псевдонімом для короткого позначення розділу
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 (www.davisr.com). Ця утиліта також стежить за появою у системі змінних накопичувачів. При виявленні нового диска вона пропонує на вибір:
- видалитидодані файлом Autorun.inf пункти контекстного меню диска;
- Інформувати користувача про наявність файлу Autorun.inf;
- Видалити файл Autorun.inf;
- Видалити всі файли Autorun.*; Видаляємо у всіх випадках Autorun.inf та спимо спокійно.
3. USB Disk Security (www.zbshareware.com). На жаль, платна утиліта для захисту флешок від малварі. З власного досвіду можу сказати, що з вірусами вона справляється на раз-два. В якості безкоштовної альтернативи можна навести Flash Disinfector.
Правимо права доступу до консолі
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". До того ж, картридер ще напевно тобі стане в нагоді (щоб допомогти скинути фотографії красивій дівчині, яка в паніці бігає офісом у пошуках дротувід фотоапарата).