Разработчикам софта для Azure подсунули 200 шпионских NPM-пакетов

Разработчикам софта для Azure подсунули 200 шпионских NPM-пакетов

Разработчикам софта для Azure подсунули 200 шпионских NPM-пакетов

Специалисты DevOps-компании JFrog обнаружили в репозитории npm 218 вредоносных пакетов, предназначенных для использования в проектах на основе SDK Azure. Получив уведомление, операторы веб-сервиса быстро удалили опасные находки, однако к тому времени их успели скачать в среднем по 50 раз.

Согласно блог-записи JFrog, внедренный в npm-пакеты зловред нацелен на кражу персональных данных, позволяющих установить личность (personal identifiable information, PII). Чтобы скрыть истинные намерения, автор новой атаки на цепочку поставок применил тайпсквоттинг — позаимствовал имена легитимных библиотек, но без префикса @azure.

По всей видимости, этот элемент социальной инженерии рассчитан на невнимательность пользователей: npm-пакеты, ориентированные на Microsoft Azure, еженедельно скачивают десятки миллионов раз, но при установке разработчик может по ошибке опустить @azure, отдавая команду npm install.

Чтобы отвести от себя подозрения, злоумышленник публиковал свои пакеты под уникальными юзернеймами, используя скрипт для автоматизации процесса. Он также фальсифицировал номера версий, выдавая зловреда за новый вариант хорошо известной библиотеки (например, за сборку 99.10.9), то есть создавал задел для атаки вида «путаница зависимостей».

Экспресс-тест показал, что вредоносный код, распространяемый в рамках выявленной кампании, запускается автоматически после установки пакета и сливает на сторону следующую информацию:

  • листинг каталогов C:\, D:\, / и /home;
  • имя пользователя;
  • домашний каталог пользователя;
  • текущий рабочий каталог;
  • IP-адреса всех сетевых интерфейсов;
  • IP-адреса серверов DNS в настройках;
  • имя (успешно) установленного вредоносного пакета.

Все эти данные выводятся на удаленный сервер двумя способами: через HTTPS-запрос POST или DNS-запрос, в который вставлена вся украденная информация в виде шестнадцатеричного числа. Имя узла назначения (425a2[.]rt11[.]ml) вшито в код зловреда.

Исследователи полагают, что вредоносная полезная нагрузка в данном случае используется для проведения разведки перед боем, и за ней может последовать более серьезная угроза. Не исключено также, что это попытка выявить уязвимости в популярном софте для Azure и получить от Microsoft премию в рамках программы bug bounty.

Целевые атаки при помощи вредоносных загрузок в npm, PyPI и другие публичные хранилища кодов нередки, и операторы таких веб-сервисов стараются быстро реагировать на такие инциденты. Исследователи из JFrog выслали уведомление о новых находках через два дня после их публикации, и в npm все оперативно вычистили, но зловред все-таки успел проникнуть на тысячи устройств.

Снизить риски в отношении подобных атак, по мнению экспертов, поможет более тщательная проверка публикаций в репозиториях, а также усиление защиты. Можно, к примеру, включить в процедуру регистрации тест CAPTCHA — он затруднит массовое создание аккаунтов, и вычислить злоумышленника станет проще.

ИИ учится задавать вопросы сам себе — и от этого становится умнее

Даже самые продвинутые ИИ-модели пока что во многом лишь повторяют — учатся на примерах человеческой работы или решают задачи, которые им заранее придумали люди. Но что если искусственный интеллект сможет учиться почти как человек — сам задавать себе интересные вопросы и искать на них ответы?

Похоже, это уже не фантазия. Исследователи из Университета Цинхуа, Пекинского института общего искусственного интеллекта (BIGAI) и Университета штата Пенсильвания показали, что ИИ способен осваивать рассуждение и программирование через своеобразную «игру с самим собой».

Проект получил название Absolute Zero Reasoner (AZR). Его идея проста и изящна одновременно. Сначала языковая модель сама придумывает задачи по программированию на Python — достаточно сложные, но решаемые. Затем она же пытается их решить, после чего проверяет себя самым честным способом: запускает код.

 

Если решение сработало — отлично. Если нет — ошибка становится сигналом для обучения. На основе успехов и провалов система дообучает исходную модель, постепенно улучшая и умение формулировать задачи, и способность их решать.

Исследователи протестировали подход на открытой языковой модели Qwen с 7 и 14 миллиардами параметров. Оказалось, что такой «самообучающийся» ИИ заметно улучшает навыки программирования и логического мышления — и в некоторых тестах даже обгоняет модели, обученные на вручную отобранных человеческих данных.

 

По словам аспиранта Университета Цинхуа Эндрю Чжао, одного из авторов идеи, подход напоминает реальный процесс обучения человека:

«Сначала ты копируешь родителей и учителей, но потом начинаешь задавать собственные вопросы. И в какой-то момент можешь превзойти тех, кто тебя учил».

Идея «самоигры» для ИИ обсуждается не первый год — ещё раньше её развивали такие исследователи, как Юрген Шмидхубер и Пьер-Ив Удейер. Но в Absolute Zero особенно интересно то, как растёт сложность задач: чем умнее становится модель, тем более сложные вопросы она начинает ставить перед собой.

«Уровень сложности растёт вместе с возможностями модели», — отмечает исследователь BIGAI Цзилун Чжэн.

Сейчас подход работает только там, где результат можно легко проверить — в программировании и математике. Но в будущем его хотят применить и к более «жизненным» задачам: работе ИИ-агентов в браузере, офисных сценариях или автоматизации процессов. В таких случаях модель могла бы сама оценивать, правильно ли агент действует.

«В теории это может стать путём к суперинтеллекту», — признаёт Чжэн.

RSS: Новости на портале Anti-Malware.ru