Запекла боротьба зі спамерами не призводить до їх вимирання, навпаки, спонукає розробляти нові види зброї. Все, що не вбиває людину, робить його сильнішим! Одвічна проблема меча і щита, перетворила кам’яні сокири в атомні бомби…

Як не сумно про це говорити, але ринок «віялових» рекламних розсилок вже склався, одинаки вуха в туман, а на арену вийшли великі гравці, які борються не тільки з фільтрами, але й зі своїми колегами по «цеху». Дилетантам тут не місце, і в конкурентній боротьбі перемагає або сильний (в сенсі ширини каналів), або розумна (причому використовувати свої мізки може тільки закінчений ідіот). Спамери активно користуються вірусними напрацюваннями і ретельно вивчають всі зразки зброї, призначеного для боротьби з ними. Але, як вчить військова мудрість, «не рий яму іншому, щоб він не використовував її як окоп».

Перш ніж приступати до розсилці, досвідчений спамер обов’язково встановить у себе останні версії всіх фільтруючих систем і буде «рихтувати» лист до тих пір, поки воно не набуде гідний вигляд, нічим не виділяє його серед загального потоку кореспонденції. Потім почне пошук відповідного proxy або «релея», придатного для масової розсилки, але відсутнього в DRBL-бази (банки даних, що зберігають відомості про серверах і сайтах, хоча б одного разу помічених у спамерської активності або допускають масову розсилку без авторизації).

Природно, щоб розсилка не була накрита балістичної ракетою через кілька хвилин після її початку, необхідно вжити ряд додаткових кроків. Наприклад, постійно змінювати дислокацію, використовуючи розподільну мережу дронов (звичайних користувальницьких комп’ютерів, підключених до інтернету і попередньо заражених хробаком, встановив back-door). Тоді DRBL-бази виявляться безсилі. Адже артилерійським вогнем весь інтернет не накриєш, а користувачі, занесені на «чорні списки», ще і в суд подати може з чого це раптом їх позбавили електронної пошти?!

Втім, DRBL-бази виявляють і відсівають всього 20%-30% спаму. Більш серйозну загрозу представляють сигнатурні фільтри. Навіть якщо розсилка велася з тисячі різних IP-адрес, але розсилалися одне і теж письмо, будь-яка нормальна поштовий сервер класифікує його як спам і адресат не отримає реклами.

Отже, розсилаються листи повинні відрізнятися один від одного, якщо не за змістом, то хоча б за формою. А це не так-то просто зробити! Вміст листа унікально і може змінюватися довільним чином. Ну, якого рекламодавцеві сподобається, якщо жіночі прокладки з крильцями будуть замінені чавунними трубами з лівою різьбою?! А телефони та контактні адреси? Для сигнатурного пошуку це саме те!

Як же все-таки спамерам вдалося перехитрити систему фільтрів?

Кам’яний вік перші експерименти

Давним-давно, коли інтернет був повільним, а листи надсилали переважно в «голом» TXT, «хімічити» з їх формою особливо не виходило. Яке там творчість, який там політ хакерської думки… Ладно, беремо номер телефону і думаємо, як би його змінити так, щоб клієнт зміг додзвонитися, і в той же час фільтр не з’їв. Міняємо нуль на літеру «О», одиницю на «I», трійку на «З». Також можна додавати прогалини, дужки і тире в різних місцях. Те ж саме можна зробити і з текстом листа тут навіть з’являється більше свободи, оскільки крім заміни подібних по зображенню букв, можна замінювати їх синонімами слова, змінювати блоки тексту місцями і так далі.

Ще один хитрий прийом не вказувати кодування листа, а надати одержувачу або його поштового клієнта визначити це автоматично. Правда, для автоматичного визначення кодування потрібно досить довгий лист, а якщо воно буде коротким, впоратися з цим завданням зможе тільки людина. Як наслідок, замість однієї сигнатури фільтр отримує цілу купу. Ймовірність помилкових спрацьовувань збільшується, а якість розпізнавання спаму погіршується. До речі кажучи, небагатослівні рекламні розсилки в стилі «нари нові, самовивіз, дзвонити шість-шість-дев’ять з кодом Чукотки» практично не розпізнаються ніяким фільтрами, оскільки об’єм значущої інформації в них мінімальний (та й та може бути змінена на будь манер). А зверху і знизу легко наклеїти заголовки з привітаннями/привітаннями.

Використовуючи «движки», висмикнуті з програм, що імітують деяку подобу діалогу з людиною, американські спамери зуміли створити генератори, що передають одне і те ж повідомлення нескінченним безліччю варіантів. Грубо кажучи, якийсь «компілятор» тексту. Зворотний процес виділення ключової «думки» вже вимагає застосування штучного інтелекту або складного лінгвістичного аналізу, який в повній мірі до цих пір не реалізований. Дещо є в Касперського, але… могутній російську мову знімає проблему «компіляторів текстів» сам собою. Вже дуже складно написати програму, транслирующую вихідне повідомлення більш ніж десяток варіантів. В англійському з цим простіше. Жорстко заданий порядок слів у реченні, найпростіші лексичні правила, скромний лінгвістичний набір (внаслідок якого кожне слово має безліч синонімів), легка стикування слів один з одним, що дозволяє (з деякими хитрощами) обходитися без прийменників.

Російська мова володіє розвиненою системою складних правил з купою винятків. Одна миша, дві (три, чотири) миші, п’ять мишей! От і спробуй все це закласти в програму. Тим не менш, робота над створенням «компіляторів» російського тексту ведеться дуже активно. Взяти хоча б розробників ігор. Щоб персонажі не вигукували одні і ті ж вже набридлі фрази, необхідно навчити машину генерувати випадкові фрази на основі заданої думки. А в ігровій індустрії замішані зовсім не малі гроші, і є всі підстави припускати, що такі генератори коли-небудь з’являться. Тоді ні синтаксичний, ні лексичний аналіз ні за що не зможе відрізнити спам від простого листа.

HTML початок кінця

Масове впровадження підтримки формату HTML поштові клієнти розширило межі спамерської активності і серйозно напружило фільтри, оскільки тепер, перш ніж починати якої б то ні було аналіз, необхідно «розпарсити» HTML, виділивши з нього текст, зазвичай тісно перемішаний з тегами. А парсинг вимагає часу і процесорних ресурсів, а разом з ними ще й знання психофізичних моделей та особливостей зорової системи людини. Інакше можна дуже просто розмістити між символами повідомлення «невидимий» текст: дрібний шрифт або шрифт, за кольором повністю або практично повністю збігається з фоном. Це все просто і зрозуміло. А ось те, що яскраво-жовтий погано помітний на тлі яскраво-зеленого, знає не кожен (фільтр).

Сучасні фільтри, звичайно, HTML чудово знають, а сам факт наявності «невидимого» тексту трактують як спам, навіть не вдаючись до сигнатурному пошуку. До того ж «просунуті» поштові клієнти типу The Bat! мають режим спрощеного HTML», що ігнорує кольори, шрифти та іншу маячню подібного типу. Що дуже зручно для читання листів від респондентів, що зображують із себе геніїв дизайну на рівні третього класу. Природно, у спрощеному режимі відображення весь невидимий текст вилазить на поверхню, роблячи повідомлення абсолютно нечитабельним. Те ж саме відноситься і до звичайним поштовим клієнтам. Нехай, спамер перемішав номер контактного телефону невидимими символами. Зацікавлений клієнт копіює його в буфер обміну (не вручну ж його перебивати) і… на свій подив, замість телефону бачить якусь невменяемую хрень.

Коротше, від усіх цих фокусів з HTML’ом спамери поступово відмовилися, оскільки вони себе не виправдали ні з якого боку. Фільтри підтягнули якість розпізнання HTML-спаму до колишньої позначки (і навіть переступили її, з урахуванням нетипових для «чесних» листів «збочень»). А користувачі, навіть ті, що зацікавилися рекламою, не завжди могли нею скористатися. Плюс до всього розсилка HTML’а триває довше і коштує набагато дорожче (в плані трафіку). А швидкість розсилки визначає все! Як тільки зразки непрошеної кореспонденції потрапляють в DRBL-бази, то навіть за умови 100% поліморфізму (абсолютно недосяжного в HTML’е) IP-адреси починають тиснути один за іншим. І навіть дуже велика армія дронов гине за лічені десятки хвилин.

Король палітра перший

Епідемії графічного спаму то спалахують, то згасають. Спочатку це були просто картинки, вставлені в «чесний» HTML-текст з номерами контактних телефонів та іншої унікальною інформацією, однозначно ідентифікує спам. Фільтри перших поколінь ігнорували картинки, але були швидко доопрацьовані, і повноводний потік спаму, захлеснув інтернет, відразу вичерпався. Тоді спамери застосували готові генератори зображень, що запобігають автоматичну реєстрацію на поштових серверах і вносять у накреслення символів деякі спотворення. Здавалося б, фільтри, не рыпаясь, повинні були дружним строєм іти здаватися на м’ясокомбінат, але все вийшло зовсім не так…
Незначні спотворення (або невисока ступінь зашумленість зображення) фільтри розпізнають чисто статистичним методом по кривій Гауса (хто вивчав метрологію, знає, що це за штука). Так, фільтр не в змозі OCR’ить зображення, але це йому й не потрібно. Маючи в своєму розпорядженні велику кількість випадковим чином спотворених зображень, він просто виділяє властиві їм «споріднені риси» і палить на місці.

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

Царство жаб’є

Справжній поліморфізм став досяжний тільки з появою в HTML скриптових мов (зокрема, Java Script), які проникли навіть в популярні поштові клієнти. Здавалося б, навіщо електронного листа нести на своєму борту якусь там мову. Це ж не сайт, врешті-решт! Тим не менш, застосування йому все-таки знайшлося. Наприклад, співробітники компанії отримують по милу деяку форму, а Java тут же перевіряє коректність заповнення полів, виключаючи найбільш дурні помилки. Більш розумного застосування скриптам придумати, мабуть, неможливо. Але, мало того, що вони служать невичерпним джерелом помилок, що призводять до можливості захоплення управління комп’ютером або витоку конфіденційних даних, так вони ще й спамерам допомагають!

Поліморфний Java/Vbasіc-спам ділиться на дві категорії. Перша (найчисленніша і найбільш проста в реалізації) заснована на функції (функції), расшифровывающей текст послання виводить його у вікно поштового клієнта «на льоту». Оскільки ключ шифрування може змінюватися з кожним листом, то сигнатурному фільтру необхідно мати на своєму борту повноцінний віртуальний інтерпретатор, «переробний» скрипти і аналізує видається ними вміст. Це ж які апаратні потужності мати треба, щоб виконувати такий аналіз в реальному часі?! Поставиш такий фільтр, і паперова пошта буде ходити швидше електронної! Але є одна дуже вагома зачіпка шифруючи вміст листа, сам код шифратора залишається незмінним і може бути використаний в якості сигнатури.

Полиморфики другої категорії не тільки генерують випадковий ключ, але і довільним чином модифікують сам розшифровувача, перешкоджаючи виділенню стійкої сигнатури. Для цього спамеру навіть не потрібно рвати собі дупу, оскільки з’явилося безліч готових Java-обфускаторов, запутывающих вихідний код скрипта до такої міри, що в ньому не залишається ні однієї стійкої сигнатури, і, отже, всі фільтри відпочивають. Правда, сам факт наявності заплутаного Java-коду вказує на явну ненормальність листи, видаючи його спамерських приналежність, оскільки у нього зовсім інше частотне співвідношення java-команд.

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

Завтра

З приходом в Мережу комерції її накрив рекламний морок, і від спаму вже нікуди не піти. Єдиний позитивний момент, який не можна не відзначити, спам стає все більш якісним і контекстно-чутливою. Над створенням повідомлень працюють, і потрібна інформація відразу ж впадає в очі і осідає в мозку навіть після того, як людина рефлекторно натисне. До того ж, знаючи IP-адресу одержувача (а в більшості випадків його можна встановити тим чи іншим шляхом), спамер визначає його географічну приналежність і шле рекламу, відповідну місцем проживання «жертви».

Автор: КРИС КАСПЕРСКИ АКА МИЩ’Х