Автор Bagle вызов принял. Он вообще был активный товарищ — параллельно ещё и воевал прямо в коде червя с другим вирусописателем, автором NetSky. Так, в теле программы, среди байткода, красовалось послание: "Hey, NetSky, fuck off you bitch, don't ruine our bussiness, wanna start a war?" Увидев, что Каспер наглухо перекрыл тему с текстовыми паролями, Bagle придумал новый трюк — добавил в код функцию генерации пароля в виде GIF-картинки с цифрами. Как это выглядело – показано на скриншоте выше. Можно было бы, конечно, детектировать саму конструкцию — слово «password» плюс img-тег рядом выглядели достаточно характерно: Zip password: <img src="cid:hswnzbcqzl.gif"> Use password <img src="cid:kyndqtwrve.gif"> to open archive. Password -- <img src="cid:tjhwzsfmzb.gif"> Но риск ложных срабатываний был слишком высок: мало ли кто и зачем шлёт письма с картинками рядом со словом «пароль». Требовалась новая идея. Денис предложил её в той же курилке. — Собираем все гифки из писем червя. Обучаем нейросеть распознавать цифры на картинке. Что делать с результатом дальше — пока было не вполне ясно. Но тысячи гифок набрали быстро: эпидемия была в разгаре, образцов хватало. Сделали датасет, Денис написал нейронку, погонял — вышло 100% распознавания. Осталось встроить это в антивирус. Вот тут и проявилась вся элегантность архитектуры, придуманной Графом и Каспером ещё в 90-е. У всех антивирусов в мире движок жил внутри самого продукта. Хочешь добавить поддержку нового формата или новую логику — выпускай новую версию продукта, жди пока пользователи установят. У Касперского движок жил в базах обновлений. Новые форматы файлов, эвристики, распаковщики архивов, снятие протекторов — всё это релизилось моментально, вместе с обычными сигнатурными базами. Без обновления продукта. Так появилась новая база — ocr.avc. Дата релиза сохранилась точно: 30 марта 2004 года. Внешние специалисты сразу заметили необычное имя и правильно догадались — это OCR для паролей в GIF. Нейросеть в движке, которую можно было обновлять хоть каждый час. С этого момента и началась история ML в кибербезопасности. Автор Bagle, разумеется, не сдался. Он выпускал новые варианты — с зашумлённым фоном, с наклонёнными цифрами, с искажениями. Но каждая новая гифка моментально отправлялась в нейронку, та дообучалась, и в тот же день уходил релиз обновлённой базы. Гонка длилась ещё пару лет. Потом он плюнул — и переключился на рассылку в письмах ссылок для загрузки трояна. Но это уже совсем другая история. Наших клиентов мы уберегли. Остальные страдали. Bagle всё равно успел построить гигантский по тем временам спам-ботнет. В 2009–2010 годах на него приходилось до 10% всего мирового спам-трафика. Более пяти миллиардов писем в день. Денис Назаров потом уехал в США — руководить американским вирлабом Касперского. Затем был Symantec. Сейчас он Principal Engineering Manager в Microsoft. Технология развилась в один из основных модулей борьбы с фишингом — например, мы добавили распознавание логотипов банков или сервисов. Нейронка для распознавания цифр в гифках, придуманная в 2004 году в курилке московского вирлаба, стала первым промышленным применением машинного обучения в кибербезопасности. Мы тогда особо не задумывались о том, что делаем историю. Просто надо было остановить червя до конца рабочего дня 😇 @gostev_future