Спам в каталоге пакетов npm
Интернет уже не тот, что в 90-е. Тогда мы искали интересные сайты по тематическим каталогам Yahoo и Рамблера. Поисковых систем не существовало до появления AltaVista. Даже мысли не было создавать мусорные сайты для прокрутки рекламы, продажи ненужных товаров или обмана людей. Коммерция ещё не пришла в интернет.
Сейчас совсем другое дело. Почти никто уже не воспринимает интернет как технологическое чудо и научный инструмент. Для мошенников это просто ещё один способ обмануть окружающих. Когда знакомый бизнесмен в начале 2000-х узнал про существование электронной почты, его первый вопрос был — как разослать тысячи писем со своей рекламой? Факт аморальности рассылки спама его совершенно не смутил на фоне потенциальной прибыли. У коммерсантов просто другая система ценностей.
И не только электронная почта. То же самое с сайтами, блогами и остальным UGC: сегодня всё генерируется автоматически для поисковой оптимизации, облапошивания простых людей и выманивания денег любым путём.
Иногда кажется, что в интернете осталось только 5% полезного контента — и 95% спама.
Поисковый спам
Чёрные методы поисковой оптимизации (SEO) берут верх над алгоритмами поисковых систем, так что поисковая выдача Google безнадёжно погрязла в мусоре.
Поиск Google сильно упал в качестве за последние годы. Сегодня вся первая страница — это реклама и спам.
Компания Google сама ухудшает ситуацию, продавая много позиций в результатах поиска, а ведь проплаченные ссылки по сути не отличаются от поискового спама, просто последний пытается пробиться в топ выдачи бесплатно. Если прокрутить ниже, сразу после рекламы начинается поисковый спам, то есть SEO-оптимизированный мусор:
И так по всем популярным запросам.
В последнее время ситуация ещё ухудшилась, потому что спамеры-оптимизаторы начали генерировать тексты в больших языковых моделях (LLM), так что генерация мусора сильно упростилась. Кроме того, они тупо воруют контент с информационных сайтов, у которых высокий PageRank и позиция в выдаче (Хабр, Википедия, Stack Overflow). По идее, поисковик должен штрафовать такие клоны и искусственно понижать их, но такое не всегда происходит.
Недавнее исследование учёных из Лейпцигского университета и Веймарского университета «Баухаус» (Германия) показало большое количество спама в поисковой выдаче. На диаграммах ниже видно, что позиция в поисковой выдаче явно коррелирует с признаками SEO:
Исследователи также заметили деградацию качества поиска в последнее время.
Ситуация настолько плачевная, что пользователям приходится устанавливать специальные расширения вроде uBlacklist, чтобы блокировать спамерские сайты в поисковой выдаче:
Расширение uBlacklist
Ради партнёрских ссылок и поискового трафика спамеры заводят фейковые блоги от фейковых личностей с бессмысленными сгенерированными текстами, чтобы привлечь поисковый трафик.
Современный блогоспам. Фейковый блог от фейковой личности. Даже само лицо по всей видимости сгенерировано нейросетью This Person Does Not Exist
Спамеры проникают на любые платформы, которые индексируются поисковыми системами.
Спам в твиттере и соцсетях, каталогах приложений, пакетных менеджерах
Есть предположение, что в ближайшем будущем LLM-мусор заполнит все возможные пустоты, где выгодно использовать нейросети вместо людей:
- сценарии кинофильмов (уже сейчас значительная часть сценариев для малобюджетных фильмов генерируется LLM, в том числе простые диалоги);
- поп-музыка;
- литературные произведения;
- статьи в СМИ;
- сообщения в блогах и соцсетях.
- голосовое общение по телефону (техподдержка, обслуживание клиентов).
Спам добрался даже до пакетов NPM: по статистике, 25% новых пакетов во II кв. 2024 г. содержит спам. Особенно заметна рекламная кампания протокола Tea, который предлагает финансовое вознаграждение разработчикам опенсорса, стимулируя их в том числе клонировать чужие репозитории и пакеты, генерировать даже бессмысленный код. Там вознаграждение зависит от вклада. То есть чем больше репозиториев — тем выгоднее. Отсюда и тысячи бессмысленных клонов.
Распределение финансового вознаграждения среди опенсорс-разработчиков по протоколу Tea, с учётом зависимостей приложений, источник
Платформа сама подталкивает пользователей к такому поведению, предлагая вознаграждение (в поинтах) за выполнение разных заданий, в том числе за вирусное распространение информации в соцсетях:
Похожая ситуация сложилась на Github, где количество спама вышло из-под контроля. Там в основном промышляют криптоспамеры и мошенники, которые публикуют пост с тегами множества других, реальных пользователей — а потом быстро удаляют его. Однако каждый «отмеченный» в посте пользователь Github получает по почте копию текста. Оригинальный способ инициировать почтовую рассылку. Выглядит это примерно так:
Если пробить актуальные спамерские темы по поиску, то можно найти их в комментариях к пул-реквестам и багам, это сотни комментариев:
К сожалению, на Github нет системы эффективной фильтрации спама, так что рекламные комментарии висят много дней и недель, а не удаляются сразу. Ещё больше мусора в каталоге приложений OpenAI (GPT Store) и других каталогах:
Спам проникает буквально повсюду. Посторонний человек может даже добавлять события в ваш личный календарь Apple, Google или Microsoft. Для этого достаточно знать адрес электронной почты, привязанный к аккаунту, если включена опция «Добавлять приглашения от всех» в настройках:
Иронично, что даже на сайте независимой поисковой системы, которая ставит целью избавить поисковую выдачу от SEO-спама, 99% посетителей составляют спамерские SEO-боты.
Как защититься от мусора? Никак. Способ простой: брать контент из проверенных источников. Платная подписка, личные блоги.
Кстати, корпорация Google недавно придумала технологию водяных знаков для LLM-текстов. Идея в том, что при генерации текста LLM выбирает токены частично основываясь на криптографическом ключе. И кто-то, знающий ключ, может определить и доказать использование ключа при создании конкретного текста. Исторически, простановка водяных знаков в текстах вызывает два затруднения:
- для их детектирования требуется относительно большой объём текста;
- водяной знак не очень устойчив к редактированию после генерации.
Версия водяных знаков от Google выглядит неплохо: она обнаруживается даже в маленьких текстах от 200 токенов, то есть примерно три-четыре абзаца стандартного текста.
Схема работы алгоритма под названием SynthID-Text (на иллюстрации внизу) состоит из трёх компонентов, которые выделены синим: генератор случайных сидов, алгоритм выборки и функция подсчёта баллов. Они используются при генерации текста и детектировании водяных знаков.
При генерации водяных знаков SynthID-Text используется алгоритм выборки Tournament, вот как он работает:
Количество спамерских текстов, сгенерированных LLM, растёт в геометрической прогрессии. И уже близок тот день, когда сгенерированного мусора в интернете будет больше, чем авторского контента, написанного человеком.
Эксперимент на 20 млн сгенерированных текстов нейросети Google Gemini с водяными знаками не показал ухудшения качества выдачи. Специалисты прогнозируют, что все основные разработчики LLM внедрят функцию простановки водяных знаков в свою выдачу.
Мусорная реклама окружает нас повсюду в интернете, и не всегда спасают даже блокировщики рекламы, такие как uBlock Origin. Например, сайт YouTube пытается детектировать такие блокировщики и обходить их, а также внедряет «неотключаемую» рекламу в разные места видеоролика. Вдобавок к этому, сама компания Google готовит к выпуску новую версию браузера Chromium, в которой uBlock Origin перестанет функционировать. А на движке Chromium основаны многие другие браузеры, кроме Firefox и Safari.
Так что ради блокировки рекламы придётся возвращаться на Файрфокс или Оперу, которые обещают сохранить функциональность uBlock Origin в полном объёме.
Звонки по телефону. Обманывают самых умных
Голосовая связь тоже засоряется робозвонками, спамом и мошенничеством. Такое чувство, что услышать живого человека по телефону скоро будет большой удачей: всегда и везде трубку снимают чатботы с распознаванием речи и прочие ИИ-агенты, которые могут переключить вас на живого оператора, а могут и не переключить. Говорят, что есть специальные ключевые слова (или нецензурная лексика), которые помогают быстрее отключить автоматизированную программу и привлечь живого оператора.
По оценке специалистов, в США за прошлый год произведено 55 млрд робозвонков на телефоны граждан. Это тот же спам, только по телефону, возможно даже интерактивный, с распознаванием речи и примитивным диалогом:
В Федеральную торговую комиссию США уже направлено предложение ввести ответственность и ограничить роботизированные звонки без согласия получателя. Есть идея ввести ответственность также за рекламные SMS. Кроме того, недавно в США ввели обязательную процедуру отписки от любых рекламных рассылок «в один клик». Вероятно, это распространяется и на рекламные звонки, SMS и прочие виды спама.
Кроме роботизированного спама, по телефону продолжает применяться традиционная социальная инженерия, чтобы выманить у человека персональные данные, получить доступ к его счёту или убедить перевести деньги. Популярны звонки якобы из милиции, в Беларуси — из КГБ. Мошенники манипулируют страхом граждан перед госорганами. В разговоре они не оставляют человеку времени подумать. Главное — скорость, жертву заставляют быстро реагировать и действовать. Например, в Турции по такой схеме работают целые колл-центры с десятками операторов, которые обманывают тысячи европейцев. Операции по выкачиванию денег идут в промышленном масштабе.
Исследования показывают, что чаще всего жертвами мошенников становятся молодые люди в возрасте 34-х лет (об этом говорила клинический психолог Ксения Ягур в недавнем фильме с экспертами Яндекс 360 про кибермошенничество. Судя по всему, чем умнее человек — тем легче его обмануть, потому что он больше уверен в собственном интеллекте, чем более глупый сородич, который просто повесит трубку, не вступая в дискуссии с мошенником.
Методы борьбы с почтовым спамом
Спам сейчас не только реклама, но и угроза. Соотношение мошенничества и мусора в почтовом спаме примерно 50 на 50.
Мошенники придумывают всё новые способы фишинга и социальной инженерии. Например, из последних изобретений:
- Письма от госуслуг с просьбой уточнить данные
- Поддельный ответ на ваше письмо (несуществующее или реальное)
ChatGPT тоже помогает обойти антиспамерские фильтры почтовых провайдеров. Но ИИ используется с обеих сторон.
По словам технического специалиста Яндекс 360 из вышеупомянутого фильма, сейчас 90% всей работы по фильтрации спама выполняет ИИ. В целях безопасности маленькую часть работы по надзору оставили человеку-дежурному, который следит за почтовым трафиком. В случае пробива защиты, как на прошлый Новый год (30 млн спамерских писем) он оперативно созывает совещание из двух-четырёх программистов, чтобы отработать и внедрить изменения в алгоритмы фильтрации спама.
По технологии Спамообороны в Яндекс.Почте фильтрация спама происходит следующим образом, пошагово:
- Почтовое письмо приходит на сервер в формате
.eml
- Проводится базовая проверка SPF и DKIM
- Проверка по списку доверенных IP-адресов
- Парсинг письма, анализ признаков (около 10 тыс.)
- Подача признаков на вход системы машинного обучения
- Получение результата анализа ML в виде числового коэффициента, который определяет вероятность спама (в почтовом интерфейсе это отражается зелёным, жёлтым или красным индикатором «Спам» возле письма)
По словам представителя, с начала года через их сервис прошло свыше 66 млрд писем, из них более 16 млрд обозначено как спам. Вероятно, примерно такое же процентное соотношение и принципы работы у других эффективных сервисов по фильтрации спама, как в почте Gmail или Yahoo.
SPF, DKIM и DMARC — основные методы защиты от спама в электронной почте.
SPF, DKIM и DMARC
SPF (Sender Policy Framework) представляет из себя текстовую запись в TXT-записи DNS-домена. В ней указан список серверов, которые имеют право отправлять письма от имени этого домена и механизм обработки писем, отправленных от других серверов. Это эффективная защита от фишинга. SPF-запись не позволит злоумышленнику отправлять письма от вашего домена, как это было популярно в 90-е годы. Один из видов фишинга по сути уничтожен на корню.
DKIM (DomainKeys Identified Mail) — метод аутентификации почтовых отправлений, который защищает от подделки (спуфинга) адреса отправителя с помощью цифровой подписи.
DMARC (Domain-based Message Authentication) — техническая спецификация для идентификации почтовых доменов отправителя на основании правил и признаков, заданных на почтовом сервере получателя. Это конкретно антиспамерская технология. DMARC предусматривает механизмы для обмена информацией между отправителем и получателем о качестве фильтрации спама и фишинговых атаках. Например, если вы представляете домен-отправитель почты и публикуете DMARC-запись с запросом информации, то можете получать от всех доменов-получателей, которые тоже поддерживают DMARC, статистику обо всех почтовых письмах, которые приходят с обратным адресом от вашего домена. Политики DMARC публикуются в системе доменных имён в виде ресурсных записей типа TXT и содержат инструкции по поводу того, что должен будет сделать узел, принимающий электронные сообщения, с полученными несоответствующими сообщениями.
Кстати, с февраля 2024 года Gmail и Yahoo ужесточили правила для входящих писем (объявление Gmail, объявление Yahoo).
Три ключевых изменения для входящей почты, которые вступили в действие в 2024 году:
- Проверка подлинности электронной почты. Отправители должны подтверждать личность отправителя с помощью стандартных протоколов SPF, DKIM и DMARC.
- Лёгкая отписка. В случае массовых рассылок отправители должны внедрить в электронные письма ссылку для отказа от подписки в один клик, чтобы получатели могли легко отказаться от подписки.
- Только письма, которые нужны пользователям. Gmail и Yahoo всерьёз взялись за мониторинг спама, и отправители должны следить за тем, чтобы количество рассылаемых писем не превышало установленного порога 0,3%.
На сайте Google опубликованы инструкции, как наилучшим образом реализовать аутентификацию DKIM для своего домена. Сегодня поддержка SPF и DKIM — это абсолютный минимум для исходящих писем, иначе Google отправит письма в папку «Спам». Для DMARC нужно реализовать хотя бы поле p=none
.
К сожалению, битва со спамом далека от победного конца. Изворотливые мошенники находят всё новые способы обойти любую защиту, заработать немного денег на партнёрских программах, продаже мусорных товаров или банальном мошенничестве.
Жажда людей до денег просто неискоренима, так что с этой проблемой нам придётся жить ещё многие годы, а может и всегда, пока существует человеческая алчность.
Но если ставить конкретные задачи, то их можно решить хотя бы частично. Например, мы можем эффективно бороться конкретно с почтовым спамом. Цифровая подпись для доменов, белые списки проверенных адресов, шифрование писем — это достаточно надёжный набор технологий, на которые можно положиться.
Конечно, ужесточение защиты иногда приводит к ложным срабатываниям, когда добропорядочные домены попадают в чёрные списки. В наше время практически невозможно рассылать письма с собственного почтового сервера и домена, как это было в 90-е: крупные провайдеры просто заблокируют все ваши письма, независимо от их содержания и количества. Чтобы пробиться через все уровни спамообороны, нужно соблюдать все требования крупных почтовых провайдеров (см. выше) и постоянно проверять свой домен и IP-адрес по чёрным спискам:
Сейчас разрабатываются новые спецификации, которые помогут решить эти проблемы. Например, новый стандарт ARC (Authenticated Received Chain) в дополнение к DMARC обрабатывают ситуации, в которых последний не справляется. Например, он решает проблему DKIM-подписей в почтовых рассылках.
И логотип у него симпатичный.
Автор: alizar