Библиотека хакера | Hacking, Infosec, ИБ, информационная безопасность
12.6K subscribers
2.78K photos
206 videos
260 files
3.94K links
Все самое полезное по инфобезу в одном канале.

Наши курсы: https://clc.to/wPiZMA

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @tproger_sales_bot

РКН: https://gosuslugi.ru/snet/67ab0e2e75b36e054ef6d5bf

Заявка: 8137850953
Download Telegram
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.

В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.

Например, можно совместить два направления по работе с ИИ:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.


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

А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.

Акция действует до 31 октября включительно ⏳

⏮️ Пора прокачать свой стек
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
RuntimeDefault не обязательно включён по умолчанию

В Linux seccomp ограничивает системные вызовы процесса. В Kubernetes профиль RuntimeDefault можно запросить явно. Фрагмент спецификации Pod:

spec:
securityContext:
seccompProfile:
type: RuntimeDefault


Так профиль запрашивается на уровне Pod.

Если профиль не указан, решает конфигурация kubelet. При включённом seccompDefault используется RuntimeDefault, иначе документированный вариант по умолчанию — Unconfined, без seccomp-ограничений.

Есть два существенных ограничения:

— Профиль определяет container runtime. Набор разрешённых вызовов может различаться между runtime и версиями. Рабочая нагрузка способна сломаться, если нужный syscall запрещён.
— Контейнер с privileged: true работает как Unconfined. Назначением seccomp-профиля это не исправить.

Включение node defaulting не дописывает поле в YAML Pod. Для проверки фактически применённого профиля документация предлагает смотреть runtime specification через crictl inspect. Начните с части узлов и проверьте рабочие сценарии перед расширением внедрения.

Kubernetes: профили seccomp и RuntimeDefault

Библиотека хакера

#cheat_sheet
👍1🔥1
capa: от совпадения к ручной проверке

HTTP, XOR, создание процессов: capa ищет в программе признаки таких возможностей по набору правил. При статическом анализе это ещё не доказательство, что файл выполнил каждое действие.

Флаг -vv показывает, какие признаки совпали с правилом и по каким адресам их искать при ручном разборе. Для просмотра результатов есть Explorer Web и standalone HTML для локальной работы.

Упаковка и обфускация могут скрыть признаки, а установщики и рантаймы — усложнить трактовку. На скриншоте — исходный пример Explorer с capa 7.0.1 от 2024 года. Это иллюстрация интерфейса.

Репозиторий и примеры
#tool_of_the_week

Библиотека хакера
🌚1
Replay включён. Куда уйдёт незаписанный запрос?

Если mitmproxy не нашёл подходящий сохранённый ответ, по умолчанию запрос уйдёт на настоящий сервер. У server_replay_extra значение forward.

Для лаборатории, где такой выход не нужен, задайте server_replay_extra=kill. Несопоставленные запросы будут прекращаться. Это поведение server-side replay, не гарантия полной изоляции стенда.

Есть ещё два важных значения по умолчанию: server_replay_reuse=False и server_replay_refresh=True. Ответы не переиспользуются, а временные заголовки и сроки cookie обновляются. Учитывайте это при анализе исходных временных значений.

Работайте с разрешённым лабораторным трафиком. Сохранённые потоки могут содержать секреты.

Server-side replay
#cheat_sheet

Библиотека хакера
🌚1
Offline collector: endpoint работает, связи с сервером нет

Offline collector Velociraptor запускается на работающей ОС. Он выполняет заранее выбранные VQL и artifacts, затем сохраняет результаты, лог и метаданные в ZIP-контейнер. Это сбор без обычного client-server канала, не анализ выключенного диска.

Набор artifacts выбирают до передачи коллектора. Права на чтение данных всё равно нужны. Шифрование ZIP настраивают отдельно: фиксированный пароль можно извлечь из конфигурации. Документация рекомендует X.509 со случайным паролем, защищённым сертификатом.

На скриншоте другой параметр: Generic Collector. Он отделяет конфигурацию и tools от подписанного бинарника. На macOS используют этот вариант, потому что встраивание config нарушает подпись.

Устройство и настройка collector
#resource_drop

Библиотека хакера
🌚1
Миграция с VMware, домашний кластер, выросший из одного ноутбука, и ИИ для работы с инцидентами

Всё это на митапе Deckhouse User Community 12 ноября в Москве.

В программе три доклада:
— опыт НИУ «МИЭТ»: как университет переходит с VMware на виртуализацию Deckhouse — от пилота до миграции ВМ и резервного копирования;
— 13 лет домашней инфраструктуры: от одного ноутбука до геораспределённого кластера из нескольких квартир и дата-центров;
— IncidentGPT на практике: от участия в Open Source-проекте до внедрения в компании, а заодно переход с Prometheus на Deckhouse Prom++ ради экономии памяти.

Нетворкинг после основной программы тоже будет. :)

Где: People Loft, 1-я улица Энтузиастов, д. 12 (метро и D3 «Авиамоторная»).
Когда: 12 ноября, начало в 19:00. Сбор в 18:15, приходите! Возьмите с собой паспорт или водительское удостоверение.

Митап пройдёт только офлайн. Для участия зарегистрируйтесь на Timepad и дождитесь письма-подтверждения.
🌚1
YARA-X строже проверяет фигурные скобки

При переносе правил с YARA 4.x обратите внимание на литерал { в регулярных выражениях. В YARA-X вне оператора повторения его нужно экранировать:

/abc{/ → /abc\{/


Строгая проверка помогает поймать и опечатку {1:5} вместо {1,5}. YARA 4.x могла принять ошибочную конструкцию за буквальный текст.

Флаг --relaxed-re-syntax ослабляет проверку. Он не превращает такую опечатку в нужное повторение. Есть и другие различия: строка с модификатором base64 должна содержать минимум 3 символа.

После компиляции проверьте правила на положительных и отрицательных образцах. Успешная компиляция ещё не означает, что правила находят те же совпадения.

Различия YARA и YARA-X
#patch_notes

Библиотека хакера
This media is not supported in your browser
VIEW IN TELEGRAM
Уязвимый магазин для своей лаборатории

OWASP Juice Shop специально содержит уязвимости для обучения и CTF. В исходном ролике авторов видны магазин и Score Board с заданиями.

Локальный запуск из README:

docker run --rm -p 127.0.0.1:3000:3000 bkimminich/juice-shop


Затем откройте http://localhost:3000. Привязка порта к loopback нужна, чтобы заведомо уязвимый стенд не слушал внешние интерфейсы. Для занятия выберите одну задачу и сравните поведение приложения до и после её решения.

Публичная демоверсия предназначена для знакомства и проверки развёртывания. Проводить на ней собственные атаки авторы прямо запрещают. Практику проводите в собственной локальной копии.

README и варианты запуска
#ctf_challenge

Библиотека хакера
Для Sigma в EVTX нужен mapping

Chainsaw ищет по журналам событий Windows без развёртывания SIEM. Для Sigma нужны правила и mapping, который указывает поля журнала для сопоставления.

В примере авторов:

./chainsaw hunt EVTX-ATTACK-SAMPLES/ -s sigma/ --mapping mappings/sigma-event-logs-all.yml


Все три пути должны существовать. Начиная с версии 2 Sigma и EVTX samples не включены как submodules. Их берут отдельно либо используют подходящий all-in-one release.

Проверьте в выводе, сколько правил загрузилось. В примере README часть правил не загрузилась. Переданный каталог ещё не означает, что проверены все правила. Совпадение требует разбора контекста. Пустой результат не доказывает, что endpoint чист.

Примеры Chainsaw
#tool_of_the_week

Библиотека хакера
Пункт ASVS: номер вместе с версией

Номер требования может измениться между выпусками. Поэтому в отчёте или задаче полезнее запись v5.0.0-1.2.5, чем просто 1.2.5: она привязывает требование к конкретной версии ASVS.

Это рекомендуемый авторами формат. В примере ASVS 5.0.0 пункт относится к защите от OS command injection. На карточке разобраны части идентификатора.

Для проверки по конкретному выпуску берите стабильный tag v5.0.0. Ветка master содержит рабочие изменения. В репозитории есть и CSV с требованиями, если нужно перенести их в собственный чек-лист.

ASVS задаёт требования безопасности приложений и сервисов. Выполнение одного пункта не означает соответствия всему стандарту и не заменяет проверку остальных требований.

Зафиксированный выпуск ASVS 5.0.0
#resource_drop

Библиотека хакера
Что именно сообщает secret-scanning alert

GitHub различает три типа уведомлений о секретах. Они отличаются причиной срабатывания и получателем.

— User alert: в репозитории найден поддерживаемый секрет. Повтор одного секрета несколько раз в одном файле даёт один alert.
— Push protection alert: участник обошёл push protection репозитория. Такие события можно найти фильтром bypassed: true. При обходе только персональной защиты alert не создаётся, если защита самого репозитория выключена.
— Partner alert: GitHub уведомил провайдера из партнёрской программы об утечке в публичном репозитории или npm-пакете. В Security and quality репозитория это уведомление не показывается.

Сам alert ещё не доказывает, что найденные учётные данные действуют или что ими воспользовались. GitHub предупреждает, что среди generic- и AI-alerts может быть больше ложных срабатываний и секретов из тестов.

Типы alerts и границы обнаружения в GitHub Docs

Библиотека хакера
SF в Zeek: нормальное завершение TCP-соединения

В TCP-записи conn.log статус SF в поле conn_state означает нормальное установление и завершение соединения. В примере документации обе стороны закрыли его через FIN. О безопасности переданных данных этот статус ничего не говорит.

Выбирайте поля записи под вопрос расследования. id.orig_h и id.resp_h показывают стороны, порты уточняют конечные точки, duration — длительность. orig_bytes и resp_bytes описывают объём полезной нагрузки по направлениям, а поля с ip_bytes — объём на IP-уровне.

Не смешивайте service и ip_proto. Первое — распознанный прикладной протокол. Второе — номер IP-протокола, в том числе для потоков вроде OSPF. Поле появилось в Zeek 7.1.

Дальше берите uid и ищите связанную активность в других журналах Zeek. Выводы ограничены пакетами, которые видел сенсор. Для UDP тот же SF трактуется иначе, чем для TCP.

Разбор TCP- и UDP-записей в Book of Zeek
#cheat_sheet
Одного ingress-разрешения для Pod может быть мало

Ingress-политика целевого Pod разрешает соединение от клиента, но этого может быть недостаточно. Проверьте egress исходного Pod. Если оба направления изолированы политиками, разрешение нужно с обеих сторон.

Ingress и egress независимы. Пока Pod не выбран политикой для конкретного направления, ограничения NetworkPolicy в этом направлении не действуют. Ответный трафик разрешённого соединения допускается неявно.

Разрешения всех применимых политик объединяются. Добавление ещё одной политики с узким списком не отменяет более широкое разрешение из другой. Порядок политик этого не меняет.

Всё это работает только с сетевым плагином, реализующим NetworkPolicy. Поведение для hostNetwork зависит от реализации. Схема показывает обычное соединение Pod → Pod при изоляции обеих сторон.

Модель NetworkPolicy и её ограничения
#cheat_sheet
Команда PT ESC IR Positive Technologies выпустила ежегодное исследование по итогам 140+ проектов по расследованию инцидентов и ретроспективному анализу за период с IV квартала 2025-го по III квартал 2026 года.

Главные итоги

• Более чем в половине проектов злоумышленникам удалось нарушить работу компаний. В 21,2% проектов эксперты выявили разведывательную деятельность и кибершпионаж, а в 20% — выгрузку конфиденциальной информации.

• Следы известных APT-группировок обнаружили в 49,3% исследованных компаний. Всего идентифицировали 17 таких групп.

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


• Чаще других встречалась группировка PhantomCore, на втором месте — IAmTheKing. С шестью группировками команда столкнулась впервые в своей практике. Три из них — APT10051, StingyBasilisk и Chewbacca — ранее не были известны и были обнаружены специалистами PT ESC IR.

• Приложения на периметре по-прежнему являются главными исходными векторами проникновения (50,8% инцидентов).

• Промышленность вышла на первое место по числу обращений (22,5%). На госучреждения пришлось 17,6% проектов против 24% годом ранее.

Что помогало развивать атаки

Среди основных проблем — устаревшие ОС и ПО (30%), отсутствие 2FA (25%) и недостаточная сегментация сети (24%). Больше половины уязвимостей, которые встретились в атаках, к тому моменту были известны уже два года и дольше (и никак не пропатчены).

Подробнее о том, как злоумышленники проникали в инфраструктуру, закреплялись и скрывали свою активность, — в полной версии отчета.
❤1
User namespace ещё не означает rootless Docker

При проверке прав Docker смотрите и на daemon. В режиме userns-remap он остаётся root, хотя UID и GID контейнеров отображаются через user namespace.

В rootless mode и daemon, и контейнеры работают внутри user namespace без root-привилегий на хосте.

У rootless есть предварительные требования: newuidmap и newgidmap на хосте, минимум 65 536 subordinate UID и столько же GID для пользователя в /etc/subuid и /etc/subgid. Утилиты отображения ID — оговорённое документацией исключение из правила об отсутствии SETUID-бинарников и file capabilities.

Если системный rootful daemon уже запущен, настройка rootless сама по себе его не отключает.

Устройство rootless mode и требования к хосту

Библиотека хакера