Итак, 2004 год.
18 января была моя смена в вирлабе, так что название новому, стремительно распространяющемуся почтовому червю пришлось придумывать тоже мне. Тогда одной из горячих тем была потеря на Марсе аппарата Beagle 2 — британского зонда, который исчез сразу после посадки.
Автор червя решил назвать свое творение также - “bbeagle.exe”, так что я недолго думал — убрал одну букву и задетектил: Email-Worm.Win32.Bagle.a.
«The original file name for the Bagle virus was Beagle, but computer scientists decided to call it Bagle instead as a way to spite Bagle's programmer»
Зонд так и не вышел на связь. Червь, напротив, оказался очень общительным.
К концу февраля счёт вариантам дошел до буквы .f. Автор червя решил усложнить нам жизнь.
Схема была элегантной в своей наглости: вредоносный файл упаковывался в запароленный архив, а пароль печатался прямо в теле письма. Пароль каждый раз разный. Расчёт на то, что получатель прочитает, распакует сам и запустит. Сам архив при этом каждый раз был разным — разные хэши, разные имена файлов. Задетектировать его «в лоб» было невозможно.
Антивирус смотрел на архив и видел зашифрованный контейнер. Заглянуть внутрь — не мог.
Решение нашлось там, где в вирлабе находились все лучшие решения тех лет — в курилке.
Нас было трое: я, аналитик Денис Назаров и Майк Павлющик — один из ключевых разработчиков антивирусного движка. Мы завязли в этой проблеме, и пока дымили, думали вслух.
Что такое письмо? По сути — текст. Такой же, как скрипт. JS, VBS, BAT — скриптовые угрозы тогда были одними из самых массовых, макровирусы цвели пышным цветом, и это была конкретно моя специализация в вирлабе.
Значит, надо научить антивирус читать письма.
Байесовские классификаторы, которые уже работали в спам-фильтрах, для такой задачи были бы избыточны и неудобны. Нам нужно было что-то проще и точнее. Алгоритм родился быстро: ищем в тексте письма слова password, pass, pw — берём следующее слово — передаём его в движок проверки архивов как пароль.
Всё.
Результат нас самих удивил: 100% детектирование всех писем с Bagle. База ушла в релиз. «Лаборатория Касперского» стала первой в мире, кто реализовал подобное — насколько мы знаем.
Технология до сих пор живёт — и у нас, и у других компаний. Патентовать это, кажется, мы даже не стали. Потом добавили ещё один слой: проверку архивов по списку наиболее распространённых паролей, так что иногда читать текст письма уже и не нужно.
Но всё это — только предыстория. Нейросети здесь ещё не появились.
Самое интересное началось буквально через пару недель…
@gostev_future
