Аналіз захищеності утиліти видалення продуктів Лабораторії Касперського

Загальна надійність захисту системи визначається її найменш стійким компонентом. Якщо конструктор захисту забуває про це правило, вона рано чи пізно руйнується...

Виникла днями проблема - видалити Касперського. Старий ні в яку не хотів видалятися, новий не бажав ставитися. Великий і могутній Гугл видав рішення проблеми - «Утиліту видалення продуктів Лабораторії Касперського», власне, за авторством самої Лабораторії. Програмка виявилася на рідкість цікава, тому відразу виникло бажання її поколупати...

Як виявилося, ця чудова утиліта одним махом зносить всі відомі світу продукти від Лабораторії Касперського (під Windows, звичайно), мало того, без зайвих розмов видаляються найбільш параноїдальні конфігурації, в тому числі і запаролені! Утиліта підписана цифровим підписом Лабораторії і автоматом потрапляє в групи «Довірені», причому, навіть якщо в налаштуваннях знята галка «Поміщати в» Довірені «програми, що мають цифровий підпис», тут, мабуть, антивірус відчуває рідну кровинушку і привітно плескає вухами при зустрічі з Ремувером. За все це щастя від нас вимагають ввести якусь в'яленьку каптчу, на яку без сліз і не поглянеш...

Итак, приступим.

Для отримання координат поля картинки каптчі знаходимо вікно Ремувера, переглядаємо список віконних елементів, шукаємо елемент класу «STATIC» і порожнім текстом. Маючи координати, вирізаємо цю область зі скріншоту екрану і передаємо алгоритму розпізнавання. Зняти копію клієнтської області активного вікна Румувера не вийшло, або руки криві (хоча з іншими додатками все працювало), або хлопці з Лабораторії все-таки щось там намудрили для захисту, довелося вирізати область каптчі зі знімка всього екрану. Готовий рядок заганяємо в буфер обміну і вставляємо в поле введення коду у вікні утиліти, ну а далі вже можна семулювати натискання кнопочок «Видалити» і «Вихід». Саме вікно можна сховати, пересунути за межі екрану або повісити зверху своє. Програма, що використовує Ремувер, з точки зору антивірусу не робить нічого протизаконного і потрапляє в групу «Слабкі обмеження». Сам же Ремувер, запущений цією програмою, потрапляє в «Довірені».

Розпізнавання каптчі

Досвідченим шляхом було встановлено, що в каптчі використовується всього 16 символів (звідки така жадібність дядька Женя?). Це окремі цифри (0-9) і перші 6 букв латинського алфавіту (A, B, C, D, E, F). Шрифт не змінюється, нахили та спотворення не використовуються. Як «захист» застосовується невелика зміна положення кожного символу та рандомний точковий шум.

1. Очищення шуму

Забираються одиночні та деякі інші групи зафарбованих пікселів. Як виявилося, алгоритм розпізнавання нормально працює і без очищення зображення, тому я не став старанно старанно зашкодити самі символи.

2. Виділення областей, що містять символи

Використовується статистика розподілу зафарбованих пікселів, грубо кажучи, де сильніша концентрація, там, мабуть, є символ. Відбирається 8 областей з найвищою концентрацією.

3. Розпізнавання кожного символу методом порівняння з еталоном

Оскільки символи на каптчі не піддаються геометричним деформаціям, було вирішено просто зібрати колекцію з 16 еталонних зображень, при розпізнаванні попіксельно порівнювати з областями, які, імовірно, містять символи. Той еталон, для якого буде найбільше збігів, і будемо вважати правильним рішенням.

У моїй демці ефективність розпізнавання для окремого символу становить 99%, для всієї каптчі з 8 символів відповідно 92%. Відразу попереджаю, нічого вона не видаляє, просто розпізнає каптчу і вставляє код в поле введення.

Вивід

Зловмиснику не складе труднощів приховано використовувати утиліту видалення продуктів Лабораторії Касперського (наприклад, вбудувати її в троян), оскільки механізми захисту реалізовані в ній занадто примітивні.

Що робити?

1. Хлопцям з Лабораторії закупитися пивом, або чим там вони стимулюють роботу головного мозку, довести складність каптчі до прийнятного рівня і взагалі подумати над захистом утиліти. Випустити нову, стійку версію Ремувера.

2. Старі версії занести в чорні списки, ну або хоча б зробити так, щоб вони не потрапляли автоматом в довірені. Звичайні користувачі не постраждають тому що зможуть завжди завантажити нову версію, а зловмисник не зможе непомітно запустити стару.

3. Ну, або можна просто забити на цю справу і сподівається, що вірусописникам буде влом вбудовувати розпізнавалки в трояни, хоча чат-боти вже щосили використовують...

P.S.

Взагалі, я з великою повагою ставлюся до Лабораторії Касперського, сам все свідоме життя користуюся фактично тільки їх продуктами, тому просто хочу щоб якість захисту стала ще вищою. Рекомендую використовувати мою примочку тільки при гострих нападах льону і короткозорості, а не в деструктивних цілях;) До речі, у Dr.Web теж є подібна утиліта, але вона відрізняється більш серйозною каптчею. Постараюся розповісти про неї наступного разу, якщо цей топік буде комусь цікавий.