Falco: одно or меняет смысл детекта
Есть условие для открытия файла процессом Apache:
Хочется добавить nginx. Но при дописывании
Если нужны открытия файлов обоими процессами, итоговое условие должно группировать имена:
Это иллюстрация логики, а не полный набор правил для отслеживания всех файловых операций. Если исходное условие нельзя безопасно сгруппировать, лучше заменить его целиком, чем дописывать кусок вслепую.
Локальный override загружается после базового определения. Для новых настроек используйте секцию
Перед внедрением проверьте в лаборатории и события, которые должны вызвать алерт, и те, которые должны пройти без него. Сам алерт ещё не подтверждает инцидент.
Falco: override и приоритет логических операторов
Библиотека хакера
#cheat_sheet
Есть условие для открытия файла процессом Apache:
evt.type=open and proc.name=apache
Хочется добавить nginx. Но при дописывании
or proc.name=nginx через override Falco просто присоединяет текст к исходному условию. Получается логика «Apache открывает файл ИЛИ nginx делает что угодно».Если нужны открытия файлов обоими процессами, итоговое условие должно группировать имена:
evt.type=open and (proc.name=apache or proc.name=nginx)
Это иллюстрация логики, а не полный набор правил для отслеживания всех файловых операций. Если исходное условие нельзя безопасно сгруппировать, лучше заменить его целиком, чем дописывать кусок вслепую.
Локальный override загружается после базового определения. Для новых настроек используйте секцию
override с нужным действием append или replace. Старый верхнеуровневый append: true помечен устаревшим.Перед внедрением проверьте в лаборатории и события, которые должны вызвать алерт, и те, которые должны пройти без него. Сам алерт ещё не подтверждает инцидент.
Falco: override и приоритет логических операторов
Библиотека хакера
#cheat_sheet
Отчёт CSP пришёл. Блокировки могло и не быть
Заголовок
В руководстве web.dev strict CSP строится на nonce или хешах скриптов, а не только на списке разрешённых доменов. Выбор зависит от того, как отдаётся HTML:
— Для серверного рендеринга подходит nonce: криптографически случайное непредсказуемое значение, новое для каждого ответа. Постоянный nonce в шаблоне эту задачу не решает.
— Для статического или кешируемого HTML подходят хеши inline-скриптов. Изменились пробелы внутри скрипта, изменился и хеш.
Перед включением блокировки уберите несовместимые inline-обработчики и
CSP дополняет исправление XSS, а не заменяет его. Полные образцы политики и порядок внедрения есть в руководстве web.dev.
Библиотека хакера
#resource_drop
Заголовок
Content-Security-Policy-Report-Only помогает увидеть нарушения будущей политики, но сам ресурсы не блокирует. Это режим наблюдения перед включением ограничений. Через HTML meta-тег его задать нельзя, нужен HTTP-заголовок.В руководстве web.dev strict CSP строится на nonce или хешах скриптов, а не только на списке разрешённых доменов. Выбор зависит от того, как отдаётся HTML:
— Для серверного рендеринга подходит nonce: криптографически случайное непредсказуемое значение, новое для каждого ответа. Постоянный nonce в шаблоне эту задачу не решает.
— Для статического или кешируемого HTML подходят хеши inline-скриптов. Изменились пробелы внутри скрипта, изменился и хеш.
strict-dynamic распространяет доверие на скрипты, которые динамически создаёт уже доверенный скрипт. Поэтому инъекция в URL такого загрузчика всё ещё опасна.Перед включением блокировки уберите несовместимые inline-обработчики и
javascript: URI, проверьте приложение локально и на staging. Report-Only поможет оценить нарушения на реальном трафике. Затем ограничения включаются заголовком Content-Security-Policy.CSP дополняет исправление XSS, а не заменяет его. Полные образцы политики и порядок внедрения есть в руководстве web.dev.
Библиотека хакера
#resource_drop
👍1
Security-лог не должен становиться хранилищем токенов
Для расследования отказа в доступе нужны время, приложение, действие, результат и контекст пользователя. Полный заголовок Authorization для этого обычно не нужен. Зато его запись создаёт ещё одно место, откуда можно украсть токен.
OWASP предлагает связывать события одной операции через interaction ID. Так можно сопоставить запрос, ошибку проверки и итог операции, не складывая в журнал пароли, ключи шифрования и значения сессий.
Отдельная ловушка: поля лога тоже могут прийти от атакующего. Переводы строк CR/LF и разделители требуют обработки, а значения нужно кодировать под формат вывода. Иначе пользовательское поле способно превратиться в поддельную строку журнала.
Некорректное поле можно пропустить или безопасно заменить, сохранив само событие и ограниченный контекст. Ошибка валидации ещё не доказывает атаку, важны повторяемость и связь с другими событиями.
Проверяйте и отказ логирования: заполненный диск, недоступное хранилище, потерю прав записи. Журнал не должен сам становиться причиной отказа приложения.
OWASP Logging Cheat Sheet
Библиотека хакера
#cheat_sheet
Для расследования отказа в доступе нужны время, приложение, действие, результат и контекст пользователя. Полный заголовок Authorization для этого обычно не нужен. Зато его запись создаёт ещё одно место, откуда можно украсть токен.
OWASP предлагает связывать события одной операции через interaction ID. Так можно сопоставить запрос, ошибку проверки и итог операции, не складывая в журнал пароли, ключи шифрования и значения сессий.
Отдельная ловушка: поля лога тоже могут прийти от атакующего. Переводы строк CR/LF и разделители требуют обработки, а значения нужно кодировать под формат вывода. Иначе пользовательское поле способно превратиться в поддельную строку журнала.
Некорректное поле можно пропустить или безопасно заменить, сохранив само событие и ограниченный контекст. Ошибка валидации ещё не доказывает атаку, важны повторяемость и связь с другими событиями.
Проверяйте и отказ логирования: заполненный диск, недоступное хранилище, потерю прав записи. Журнал не должен сам становиться причиной отказа приложения.
OWASP Logging Cheat Sheet
Библиотека хакера
#cheat_sheet
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.
Акция действует до 31 октября включительно
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
RuntimeDefault не обязательно включён по умолчанию
В Linux seccomp ограничивает системные вызовы процесса. В Kubernetes профиль
Так профиль запрашивается на уровне Pod.
Если профиль не указан, решает конфигурация kubelet. При включённом
Есть два существенных ограничения:
— Профиль определяет container runtime. Набор разрешённых вызовов может различаться между runtime и версиями. Рабочая нагрузка способна сломаться, если нужный syscall запрещён.
— Контейнер с
Включение node defaulting не дописывает поле в YAML Pod. Для проверки фактически применённого профиля документация предлагает смотреть runtime specification через
Kubernetes: профили seccomp и RuntimeDefault
Библиотека хакера
#cheat_sheet
В 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 ищет в программе признаки таких возможностей по набору правил. При статическом анализе это ещё не доказательство, что файл выполнил каждое действие.
Флаг
Упаковка и обфускация могут скрыть признаки, а установщики и рантаймы — усложнить трактовку. На скриншоте — исходный пример Explorer с capa 7.0.1 от 2024 года. Это иллюстрация интерфейса.
Репозиторий и примеры
#tool_of_the_week
Библиотека хакера
HTTP, XOR, создание процессов: capa ищет в программе признаки таких возможностей по набору правил. При статическом анализе это ещё не доказательство, что файл выполнил каждое действие.
Флаг
-vv показывает, какие признаки совпали с правилом и по каким адресам их искать при ручном разборе. Для просмотра результатов есть Explorer Web и standalone HTML для локальной работы.Упаковка и обфускация могут скрыть признаки, а установщики и рантаймы — усложнить трактовку. На скриншоте — исходный пример Explorer с capa 7.0.1 от 2024 года. Это иллюстрация интерфейса.
Репозиторий и примеры
#tool_of_the_week
Библиотека хакера
🌚1
Replay включён. Куда уйдёт незаписанный запрос?
Если mitmproxy не нашёл подходящий сохранённый ответ, по умолчанию запрос уйдёт на настоящий сервер. У
Для лаборатории, где такой выход не нужен, задайте
Есть ещё два важных значения по умолчанию:
Работайте с разрешённым лабораторным трафиком. Сохранённые потоки могут содержать секреты.
Server-side replay
#cheat_sheet
Библиотека хакера
Если 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
Библиотека хакера
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 и дождитесь письма-подтверждения.
Всё это на митапе 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 и YARA-X
#patch_notes
Библиотека хакера
При переносе правил с 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:
Затем откройте
Публичная демоверсия предназначена для знакомства и проверки развёртывания. Проводить на ней собственные атаки авторы прямо запрещают. Практику проводите в собственной локальной копии.
README и варианты запуска
#ctf_challenge
Библиотека хакера
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, который указывает поля журнала для сопоставления.
В примере авторов:
Все три пути должны существовать. Начиная с версии 2 Sigma и EVTX samples не включены как submodules. Их берут отдельно либо используют подходящий all-in-one release.
Проверьте в выводе, сколько правил загрузилось. В примере README часть правил не загрузилась. Переданный каталог ещё не означает, что проверены все правила. Совпадение требует разбора контекста. Пустой результат не доказывает, что endpoint чист.
Примеры Chainsaw
#tool_of_the_week
Библиотека хакера
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: номер вместе с версией
Номер требования может измениться между выпусками. Поэтому в отчёте или задаче полезнее запись
Это рекомендуемый авторами формат. В примере ASVS 5.0.0 пункт относится к защите от OS command injection. На карточке разобраны части идентификатора.
Для проверки по конкретному выпуску берите стабильный tag
ASVS задаёт требования безопасности приложений и сервисов. Выполнение одного пункта не означает соответствия всему стандарту и не заменяет проверку остальных требований.
Зафиксированный выпуск ASVS 5.0.0
#resource_drop
Библиотека хакера
Номер требования может измениться между выпусками. Поэтому в отчёте или задаче полезнее запись
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 репозитория. Такие события можно найти фильтром
— Partner alert: GitHub уведомил провайдера из партнёрской программы об утечке в публичном репозитории или npm-пакете. В Security and quality репозитория это уведомление не показывается.
Сам alert ещё не доказывает, что найденные учётные данные действуют или что ими воспользовались. GitHub предупреждает, что среди generic- и AI-alerts может быть больше ложных срабатываний и секретов из тестов.
Типы alerts и границы обнаружения в GitHub Docs
Библиотека хакера
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-записи
Выбирайте поля записи под вопрос расследования.
Не смешивайте
Дальше берите
Разбор TCP- и UDP-записей в Book of Zeek
#cheat_sheet
В 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. Поведение для
Модель NetworkPolicy и её ограничения
#cheat_sheet
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 таких групп.
• Чаще других встречалась группировка PhantomCore, на втором месте — IAmTheKing. С шестью группировками команда столкнулась впервые в своей практике. Три из них — APT10051, StingyBasilisk и Chewbacca — ранее не были известны и были обнаружены специалистами PT ESC IR.
• Приложения на периметре по-прежнему являются главными исходными векторами проникновения (50,8% инцидентов).
• Промышленность вышла на первое место по числу обращений (22,5%). На госучреждения пришлось 17,6% проектов против 24% годом ранее.
Что помогало развивать атаки
Среди основных проблем — устаревшие ОС и ПО (30%), отсутствие 2FA (25%) и недостаточная сегментация сети (24%). Больше половины уязвимостей, которые встретились в атаках, к тому моменту были известны уже два года и дольше (и никак не пропатчены).
Подробнее о том, как злоумышленники проникали в инфраструктуру, закреплялись и скрывали свою активность, — в полной версии отчета.
Главные итоги
• Более чем в половине проектов злоумышленникам удалось нарушить работу компаний. В 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. В режиме
В rootless mode и daemon, и контейнеры работают внутри user namespace без root-привилегий на хосте.
У rootless есть предварительные требования:
Если системный rootful daemon уже запущен, настройка rootless сама по себе его не отключает.
Устройство rootless mode и требования к хосту
Библиотека хакера
При проверке прав 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 и требования к хосту
Библиотека хакера
🥱2