Forwarded from Hacker Lab
Мы переработали профиль пользователя на HackerLab.
Теперь это не просто страница с базовой статистикой, а полноценная карта прогресса: какие задания уже решены, в каких направлениях пользователь силён, где есть зоны роста и куда двигаться дальше.
— общий прогресс по заданиям, курсам, пентест-машинам и PRO-лабам
— компетенции по направлениям
— сильные стороны и зоны роста
— история активности
Достижения открываются за конкретные шаги на платформе: первое решённое задание, новые рубежи, стабильное движение по таскам.
Теперь прогресс не растворяется в общей статистике - он остаётся в профиле и показывает путь пользователя на платформе.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Дымовой датчик с отключённой сиреной: почему smoke-тесты не спасают без обратной связи
Пятница, вечер, деплой уходит в прод. Один flaky-тест из двенадцати снова упал, но gate пропустил сборку — порог «pass if >90%». Суббота, утро — клиенты не могут оплатить заказ. Платёжный эндпоинт прятался именно за тем тестом, который все привыкли игнорировать.
Реальная история с проекта на еженедельных релизах. Smoke-набор ловил дефект. Проблема была не в тестах, а в том, что с результатами никто ничего не делал. Уведомления летели в общий канал, мягкий порог прохождения, разбор падений — «потом».
🔥 Вот ключевая мысль: smoke-тест в CI/CD — это не отчёт, а gate. Отчёт можно проигнорировать. Gate блокирует пайплайн и не пускает сборку дальше. Разница принципиальная.
Gate отвечает на один вопрос: сборка достаточно здорова, чтобы двигаться дальше? Если нет — пайплайн встаёт, разработчик получает уведомление. Если да — запускаются тяжёлые тесты: интеграционные, E2E, нагрузочные.
⚙️ Что именно ловит smoke, чего не поймают юниты:
• Сервис не стартует после деплоя (сломанный Dockerfile, пропущенная миграция)
• Критические эндпоинты отдают 404 или 500
• Переменные окружения не подтянулись — секреты, feature-флаги, connection strings
• Зависимости недоступны: база, кэш, внешний API
Юниты проверяют код в изоляции. Smoke проверяет задеплоенную систему в конкретном окружении. Поэтому smoke-checkpoint ставится после деплоя в staging, а не на этапе сборки.
📍 Три точки, где smoke даёт максимум:
1. После деплоя в staging — ловит проблемы конфигурации и маршрутизации
2. Перед промоушеном в прод — go/no-go gate, потому что staging и prod всегда отличаются по инфраструктуре
3. На canary-подах при progressive delivery — до увеличения трафика
Теперь про сам набор. 5–10 проверок, не больше. Видел suite на 40 тестов, который выполнялся 12 минут. Через месяц его перестали ждать и начали скипать. Весь smoke должен укладываться в 5 минут.
Минимум для любого проекта:
•
•
• Главный read-эндпоинт — данные отдаются
• Главный write-эндпоинт — запись проходит
• DB-probe через healthcheck — миграции применились
И важный нюанс: API-проверки стабильнее и быстрее UI-тестов в smoke. Сломана кнопка, но API работает — дефект, но не smoke-level блокер.
🎯 Главный вывод: smoke без жёсткого gate и разбора падений — дымовой датчик с отключённой сиреной. Фиксирует проблему, но никто не реагирует. В полной статье — конфиги для GitLab CI и GitHub Actions, метрики качества обратной связи и антипаттерны из реальных пайплайнов.
https://codeby.net/threads/smoke-testirovaniye-i-kachestvo-obratnoi-svyazi-ot-progona-do-deistviya-v-ci-cd.92953/
Пятница, вечер, деплой уходит в прод. Один flaky-тест из двенадцати снова упал, но gate пропустил сборку — порог «pass if >90%». Суббота, утро — клиенты не могут оплатить заказ. Платёжный эндпоинт прятался именно за тем тестом, который все привыкли игнорировать.
Реальная история с проекта на еженедельных релизах. Smoke-набор ловил дефект. Проблема была не в тестах, а в том, что с результатами никто ничего не делал. Уведомления летели в общий канал, мягкий порог прохождения, разбор падений — «потом».
🔥 Вот ключевая мысль: smoke-тест в CI/CD — это не отчёт, а gate. Отчёт можно проигнорировать. Gate блокирует пайплайн и не пускает сборку дальше. Разница принципиальная.
Gate отвечает на один вопрос: сборка достаточно здорова, чтобы двигаться дальше? Если нет — пайплайн встаёт, разработчик получает уведомление. Если да — запускаются тяжёлые тесты: интеграционные, E2E, нагрузочные.
⚙️ Что именно ловит smoke, чего не поймают юниты:
• Сервис не стартует после деплоя (сломанный Dockerfile, пропущенная миграция)
• Критические эндпоинты отдают 404 или 500
• Переменные окружения не подтянулись — секреты, feature-флаги, connection strings
• Зависимости недоступны: база, кэш, внешний API
Юниты проверяют код в изоляции. Smoke проверяет задеплоенную систему в конкретном окружении. Поэтому smoke-checkpoint ставится после деплоя в staging, а не на этапе сборки.
📍 Три точки, где smoke даёт максимум:
1. После деплоя в staging — ловит проблемы конфигурации и маршрутизации
2. Перед промоушеном в прод — go/no-go gate, потому что staging и prod всегда отличаются по инфраструктуре
3. На canary-подах при progressive delivery — до увеличения трафика
Теперь про сам набор. 5–10 проверок, не больше. Видел suite на 40 тестов, который выполнялся 12 минут. Через месяц его перестали ждать и начали скипать. Весь smoke должен укладываться в 5 минут.
Минимум для любого проекта:
•
GET /health — сервис жив•
POST /auth/login — авторизация работает• Главный read-эндпоинт — данные отдаются
• Главный write-эндпоинт — запись проходит
• DB-probe через healthcheck — миграции применились
И важный нюанс: API-проверки стабильнее и быстрее UI-тестов в smoke. Сломана кнопка, но API работает — дефект, но не smoke-level блокер.
🎯 Главный вывод: smoke без жёсткого gate и разбора падений — дымовой датчик с отключённой сиреной. Фиксирует проблему, но никто не реагирует. В полной статье — конфиги для GitLab CI и GitHub Actions, метрики качества обратной связи и антипаттерны из реальных пайплайнов.
https://codeby.net/threads/smoke-testirovaniye-i-kachestvo-obratnoi-svyazi-ot-progona-do-deistviya-v-ci-cd.92953/
❤1👍1🔥1
Бэкдор, который выживает после обновления прошивки — разбираем механику FIRESTARTER
Представьте: федеральное ведомство США, Cisco Firepower на периметре. Обнаружена компрометация — накатили патчи, обновили прошивку, перезагрузили устройство. Всё по процедуре. Через шесть месяцев атакующие снова внутри. Без эксплуатации новых уязвимостей. Устройство считалось чистым.
Группировка UAT-4356 (Storm-1849) использовала имплант FIRESTARTER — и его механика персистентности заслуживает отдельного разговора.
🔥 Как это работает
FIRESTARTER — ELF-бинарь, живущий внутри LINA-процесса (ядро ASA: инспекция пакетов, VPN, firewall-правила). Монолитная архитектура LINA — идеальная среда для имплантации, потому что любая модификация изнутри невидима для штатной диагностики.
Весь трюк построен на файле
• Перехватывает SIGTERM через callback-функции
• Копирует себя в резервную локацию, замаскированную под штатный лог платформы
• Дописывает себя в
• После загрузки — восстанавливает оригинальный файл, убирая следы
Артефакт в конфигурации существует только между выключением и загрузкой. После boot — файл выглядит чисто. Транзиентная персистентность в чистом виде.
⚡️ Почему патч не помогает
При firmware upgrade устройство выполняет graceful shutdown. FIRESTARTER перехватывает сигнал завершения, сохраняется, прописывает автозапуск — и после загрузки на новой прошивке имплант снова активен. Патч закрыл дверь, а гость уже внутри.
Начальный доступ шёл через связку CVE-2025-20362 (обход авторизации, CVSS 6.5, без учётных данных) + CVE-2025-20333 (buffer overflow, CVSS 9.9, RCE от root). Первая открывает замок, вторая даёт полный контроль. Обе в CISA KEV с сентября 2025 года, дедлайн на патч — один день.
🔍 На диске всего два артефакта:
Что из этого следует? Обновление прошивки без forensic-анализа — не remediation, а самоуспокоение. Если на периметре стоит Firepower с exposed WebVPN, одного патча мало — нужна проверка целостности файловой системы и анализ CSP_MOUNT_LIST в момент между shutdown и boot.
Сталкивались с персистентностью на сетевых устройствах в своей практике?
Полный разбор механики с деталями по Ghidra-анализу и IOC — в статье на форуме.
https://codeby.net/threads/firestarter-na-cisco-asa-kak-b-ekdor-perezhivayet-patchi.92961/
Представьте: федеральное ведомство США, Cisco Firepower на периметре. Обнаружена компрометация — накатили патчи, обновили прошивку, перезагрузили устройство. Всё по процедуре. Через шесть месяцев атакующие снова внутри. Без эксплуатации новых уязвимостей. Устройство считалось чистым.
Группировка UAT-4356 (Storm-1849) использовала имплант FIRESTARTER — и его механика персистентности заслуживает отдельного разговора.
🔥 Как это работает
FIRESTARTER — ELF-бинарь, живущий внутри LINA-процесса (ядро ASA: инспекция пакетов, VPN, firewall-правила). Монолитная архитектура LINA — идеальная среда для имплантации, потому что любая модификация изнутри невидима для штатной диагностики.
show version — штатная прошивка. show running-config — тишина. Syslog — тоже тишина.Весь трюк построен на файле
CSP_MOUNT_LIST — он определяет, какие компоненты монтируются и запускаются при загрузке. Вот что делает FIRESTARTER при каждом выключении:• Перехватывает SIGTERM через callback-функции
• Копирует себя в резервную локацию, замаскированную под штатный лог платформы
• Дописывает себя в
CSP_MOUNT_LIST для автозапуска• После загрузки — восстанавливает оригинальный файл, убирая следы
Артефакт в конфигурации существует только между выключением и загрузкой. После boot — файл выглядит чисто. Транзиентная персистентность в чистом виде.
⚡️ Почему патч не помогает
При firmware upgrade устройство выполняет graceful shutdown. FIRESTARTER перехватывает сигнал завершения, сохраняется, прописывает автозапуск — и после загрузки на новой прошивке имплант снова активен. Патч закрыл дверь, а гость уже внутри.
Начальный доступ шёл через связку CVE-2025-20362 (обход авторизации, CVSS 6.5, без учётных данных) + CVE-2025-20333 (buffer overflow, CVSS 9.9, RCE от root). Первая открывает замок, вторая даёт полный контроль. Обе в CISA KEV с сентября 2025 года, дедлайн на патч — один день.
🔍 На диске всего два артефакта:
/usr/bin/lina_cs и /opt/cisco/platform/logs/var/log/svc_samcore.log. Негусто для threat hunting. А на legacy-устройствах ASA 5500-X группировка использовала ещё и буткит RayInitiator — persistence через ROMMON, где даже полная переустановка не гарантирует очистку.Что из этого следует? Обновление прошивки без forensic-анализа — не remediation, а самоуспокоение. Если на периметре стоит Firepower с exposed WebVPN, одного патча мало — нужна проверка целостности файловой системы и анализ CSP_MOUNT_LIST в момент между shutdown и boot.
Сталкивались с персистентностью на сетевых устройствах в своей практике?
Полный разбор механики с деталями по Ghidra-анализу и IOC — в статье на форуме.
https://codeby.net/threads/firestarter-na-cisco-asa-kak-b-ekdor-perezhivayet-patchi.92961/
❤1