<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>SqWD</title><author><name>SqWD</name></author><id>https://teletype.in/atom/sqwd_team</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/sqwd_team?offset=0"></link><link rel="alternate" type="text/html" href="https://blog.sqwd.ru/?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sqwd_team"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/sqwd_team?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-07-09T06:07:37.484Z</updated><entry><id>sqwd_team:siriusnql_incident</id><link rel="alternate" type="text/html" href="https://blog.sqwd.ru/siriusnql_incident?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sqwd_team"></link><title>Постмортем: компрометация VPS, контейнерный майнер и ложная уверенность в «знакомых IP»</title><published>2026-04-25T20:08:01.664Z</published><updated>2026-04-25T20:08:38.787Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/0e/96/0e9639d4-63b0-4481-8578-ff4461644d5c.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/4d/28/4d287b4f-73de-422b-8436-8efba0792807.png&quot;&gt;Постмортем: компрометация VPS, контейнерный майнер и ложная уверенность в «знакомых IP»</summary><content type="html">
  &lt;p id=&quot;постмортем-компрометация-vps-контейнерный-майнер-и-ложная-уверенность-в-знакомых-ip&quot;&gt;На связи Verlliann.&lt;/p&gt;
  &lt;p id=&quot;F5SV&quot;&gt;Я пишу этот постмортем как человек, который прошел этот инцидент руками: от первого подозрения по нагрузке до разбора артефактов и проверки гипотез на живом хосте.&lt;/p&gt;
  &lt;p id=&quot;WPv2&quot;&gt;Это детальный разбор инцидента на &lt;code&gt;sirius-nql&lt;/code&gt;: от первого входа до форензики, гипотез, верификации и выводов. Текст ориентирован на публикацию в Telegraph, но его же можно использовать как внутренний IR-документ.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;executive-summary&quot;&gt;Executive Summary&lt;/h2&gt;
  &lt;p id=&quot;XUFH&quot;&gt;Когда я впервые открыл метрики и процессы, это выглядело как типичный «шум на VPS». Но довольно быстро стало понятно: это не шум, а полноценный инцидент.&lt;/p&gt;
  &lt;p id=&quot;51OC&quot;&gt;На сервере был подтвержден security-инцидент:&lt;/p&gt;
  &lt;ul id=&quot;tcBM&quot;&gt;
    &lt;li id=&quot;FOTS&quot;&gt;получен root-доступ по SSH (парольная аутентификация),&lt;/li&gt;
    &lt;li id=&quot;zVZe&quot;&gt;зафиксированы многочисленные успешные root-сессии,&lt;/li&gt;
    &lt;li id=&quot;MB8p&quot;&gt;внутри контейнера &lt;code&gt;docs_llm_frontend&lt;/code&gt; запущен криптомайнер и watchdog,&lt;/li&gt;
    &lt;li id=&quot;E9Zt&quot;&gt;найден валидный конфиг майнинга с пул-инфраструктурой,&lt;/li&gt;
    &lt;li id=&quot;vNeX&quot;&gt;обнаружены PakChoi-like артефакты закрепления внутри контейнера.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;2lmq&quot;&gt;Критичный нюанс расследования: часть IP из логов относится к VPN/провайдерской инфраструктуре команды. Это &lt;strong&gt;не отменяет компрометацию&lt;/strong&gt;, но меняет модель атрибуции: опираться нужно на действия и артефакты, а не только на IP.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;контекст-и-исходные-условия&quot;&gt;Контекст и исходные условия&lt;/h2&gt;
  &lt;h3 id=&quot;сервис-и-среда&quot;&gt;Сервис и среда&lt;/h3&gt;
  &lt;ul id=&quot;hamC&quot;&gt;
    &lt;li id=&quot;wGiv&quot;&gt;Хост: &lt;code&gt;sirius-nql.play2go.cloud&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;XalR&quot;&gt;ОС: Ubuntu 24.04 LTS&lt;/li&gt;
    &lt;li id=&quot;nbw8&quot;&gt;Контейнерный рантайм: Docker&lt;/li&gt;
    &lt;li id=&quot;SufQ&quot;&gt;Скомпрометированный контейнер: &lt;code&gt;docs_llm_frontend&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;операционный-контекст-команды&quot;&gt;Операционный контекст команды&lt;/h3&gt;
  &lt;p id=&quot;iq09&quot;&gt;Часть действий, которые в логах могут выглядеть «подозрительно» (пакетные установки, подготовка runtime, изменения docker-окружения), выполнялась штатно в рамках &lt;strong&gt;нашего пайплайна AI-агента&lt;/strong&gt;.&lt;br /&gt;В расследовании эти действия вынесены в отдельную категорию как легитимные, чтобы не смешивать их с подтвержденной вредоносной активностью.&lt;/p&gt;
  &lt;h3 id=&quot;затронутые-компоненты-из-инцидент-репорта&quot;&gt;Затронутые компоненты (из инцидент-репорта)&lt;/h3&gt;
  &lt;ul id=&quot;6xke&quot;&gt;
    &lt;li id=&quot;wqKX&quot;&gt;Хостовая система Linux (root-доступ).&lt;/li&gt;
    &lt;li id=&quot;0j07&quot;&gt;Контейнерный контур приложения (Next.js frontend + связанные сервисы).&lt;/li&gt;
    &lt;li id=&quot;x1lQ&quot;&gt;Секреты, доступные root-пользователю в shell history.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;риск-конфигурация-доступа&quot;&gt;Риск-конфигурация доступа&lt;/h3&gt;
  &lt;p id=&quot;3yCI&quot;&gt;На хосте в момент инцидента:&lt;/p&gt;
  &lt;ul id=&quot;fwnI&quot;&gt;
    &lt;li id=&quot;xC5p&quot;&gt;&lt;code&gt;PermitRootLogin yes&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;IWSQ&quot;&gt;&lt;code&gt;PasswordAuthentication yes&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;UDS3&quot;&gt;Это означает прямую поверхность атаки для root SSH brute-force / credential stuffing.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;scope-расследования&quot;&gt;Scope расследования&lt;/h2&gt;
  &lt;p id=&quot;bSy1&quot;&gt;Я сознательно шел от принципа: сначала сохранить доказательства, потом делать любые разрушительные действия.&lt;/p&gt;
  &lt;p id=&quot;TOow&quot;&gt;В расследование вошли:&lt;/p&gt;
  &lt;ol id=&quot;g0gd&quot;&gt;
    &lt;li id=&quot;RaiW&quot;&gt;Исторические логи из выгрузок (&lt;code&gt;server_logs_export&lt;/code&gt;, &lt;code&gt;nginx_logs&lt;/code&gt;, &lt;code&gt;docker.log&lt;/code&gt;, &lt;code&gt;all_raw&lt;/code&gt;, &lt;code&gt;all_containers&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;ugr9&quot;&gt;Live-forensics на хосте:&lt;/li&gt;
    &lt;ul id=&quot;UGrE&quot;&gt;
      &lt;li id=&quot;GjWY&quot;&gt;процессы, дерево процессов, &lt;code&gt;/proc&lt;/code&gt;, сеть,&lt;/li&gt;
      &lt;li id=&quot;MTEh&quot;&gt;&lt;code&gt;docker inspect&lt;/code&gt;, &lt;code&gt;docker diff&lt;/code&gt;, контейнерные артефакты,&lt;/li&gt;
      &lt;li id=&quot;U93J&quot;&gt;копирование бинарников и конфигов, хэширование.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;xsKy&quot;&gt;Проверка гипотез о host-level persistence.&lt;/li&gt;
    &lt;li id=&quot;9opQ&quot;&gt;Перепроверка атрибуции после уточнения trusted/VPN IP команды.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;главные-находки&quot;&gt;Главные находки&lt;/h2&gt;
  &lt;p id=&quot;3iRK&quot;&gt;Ниже — то, что я смог подтвердить фактически, а не предположить.&lt;/p&gt;
  &lt;h2 id=&quot;1-подтвержденная-компрометация-root-доступа&quot;&gt;1) Подтвержденная компрометация root-доступа&lt;/h2&gt;
  &lt;p id=&quot;wM1I&quot;&gt;В логах зафиксированы успешные входы &lt;code&gt;root&lt;/code&gt; по паролю.&lt;/p&gt;
  &lt;p id=&quot;EVNL&quot;&gt;Подтвержденные IP с успешными root-входами:&lt;/p&gt;
  &lt;ul id=&quot;5E51&quot;&gt;
    &lt;li id=&quot;EF0Y&quot;&gt;&lt;code&gt;45.83.140.194&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;iAEA&quot;&gt;&lt;code&gt;95.32.25.170&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;OBee&quot;&gt;&lt;code&gt;144.31.203.175&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;hLb4&quot;&gt;&lt;code&gt;194.87.220.163&lt;/code&gt; (массовая серия)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;L7lm&quot;&gt;Агрегированно по &lt;code&gt;Accepted password for root&lt;/code&gt;:&lt;/p&gt;
  &lt;ul id=&quot;5kBR&quot;&gt;
    &lt;li id=&quot;dryq&quot;&gt;&lt;code&gt;194.87.220.163&lt;/code&gt; — 78&lt;/li&gt;
    &lt;li id=&quot;J9lZ&quot;&gt;&lt;code&gt;45.83.140.194&lt;/code&gt; — 7&lt;/li&gt;
    &lt;li id=&quot;nmRE&quot;&gt;&lt;code&gt;144.31.203.175&lt;/code&gt; — 2&lt;/li&gt;
    &lt;li id=&quot;wTZz&quot;&gt;&lt;code&gt;95.32.25.170&lt;/code&gt; — 1&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;2-подтвержден-запуск-вредоноса-внутри-контейнера&quot;&gt;2) Подтвержден запуск вредоноса внутри контейнера&lt;/h2&gt;
  &lt;p id=&quot;hdBD&quot;&gt;Активные процессы во время live-сбора:&lt;/p&gt;
  &lt;ul id=&quot;Lz8K&quot;&gt;
    &lt;li id=&quot;z4xI&quot;&gt;майнер: &lt;code&gt;/RKiQ2aLh -c /kBiR -B&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;3eVk&quot;&gt;watchdog: &lt;code&gt;/rjtg0pT&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;7AjC&quot;&gt;Parent chain:&lt;/p&gt;
  &lt;p id=&quot;ESLX&quot;&gt;&lt;code&gt;containerd-shim -&amp;gt; sh -c &amp;quot;npm install &amp;amp;&amp;amp; npm run dev -- -H 0.0.0.0 -p 3000&amp;quot; -&amp;gt; {майнер, watchdog}&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;наблюдаемая-нагрузка-из-инцидент-репорта&quot;&gt;Наблюдаемая нагрузка (из инцидент-репорта)&lt;/h3&gt;
  &lt;ul id=&quot;h2FM&quot;&gt;
    &lt;li id=&quot;iZVc&quot;&gt;CPU: до ~392% суммарно (многопоточный майнинг).&lt;/li&gt;
    &lt;li id=&quot;UyCG&quot;&gt;RAM: около ~2.4 GB RSS у процесса майнера.&lt;/li&gt;
    &lt;li id=&quot;O2lb&quot;&gt;Эффект: устойчивый рост load average до ручного вмешательства.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;3-подтвержден-рабочий-майнинг-конфиг&quot;&gt;3) Подтвержден рабочий майнинг-конфиг&lt;/h2&gt;
  &lt;p id=&quot;vbIE&quot;&gt;Файл &lt;code&gt;/kBiR&lt;/code&gt; содержит:&lt;/p&gt;
  &lt;ul id=&quot;kpVs&quot;&gt;
    &lt;li id=&quot;8HI9&quot;&gt;RandomX/cpu-параметры,&lt;/li&gt;
    &lt;li id=&quot;WDZG&quot;&gt;пул-узлы:&lt;/li&gt;
    &lt;ul id=&quot;Zojq&quot;&gt;
      &lt;li id=&quot;QeUv&quot;&gt;&lt;code&gt;91.208.184.203:{80,443,53,123}&lt;/code&gt;&lt;/li&gt;
      &lt;li id=&quot;wZuC&quot;&gt;&lt;code&gt;45.196.97.119:{80,443,53,123}&lt;/code&gt;&lt;/li&gt;
      &lt;li id=&quot;HsLZ&quot;&gt;&lt;code&gt;156.246.94.183:{80,443,53,123}&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;D6cA&quot;&gt;логин/пароль майнинга: &lt;code&gt;imeatingpoop&lt;/code&gt; / &lt;code&gt;imeatingpoop&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;4-подтвержденные-ioc-хэши&quot;&gt;4) Подтвержденные IOC-хэши&lt;/h2&gt;
  &lt;ul id=&quot;Vgv8&quot;&gt;
    &lt;li id=&quot;AaCt&quot;&gt;&lt;code&gt;aa0c6cdbeb3bc3ce07d5060958e1a38e54287bc89e25f6def98b620999ff4f7a&lt;/code&gt; — майнер&lt;/li&gt;
    &lt;li id=&quot;0hVp&quot;&gt;&lt;code&gt;7d6032764df8e706c458e663e5501ce627e4f2985c16ea61e299f2ac429cbcc9&lt;/code&gt; — watchdog&lt;/li&gt;
    &lt;li id=&quot;FhRG&quot;&gt;&lt;code&gt;eada4bb685c53f0a5b7aa0dad5aa4d31aebba94af8b84f40f2802e828a87f304&lt;/code&gt; — конфиг&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;дополнительная-находка-риск-компрометации-api-токенов&quot;&gt;Дополнительная находка: риск компрометации API-токенов&lt;/h3&gt;
  &lt;p id=&quot;niks&quot;&gt;В shell history были обнаружены переменные вида &lt;code&gt;ANTHROPIC_*&lt;/code&gt; и использование стороннего base URL (&lt;code&gt;aiprimetech.io&lt;/code&gt;).&lt;br /&gt;Это трактуется как потенциальная компрометация секретов и требует обязательной ротации/отзыва.&lt;/p&gt;
  &lt;h2 id=&quot;5-pakchoi-like-stage-внутри-контейнера&quot;&gt;5) PakChoi-like stage внутри контейнера&lt;/h2&gt;
  &lt;p id=&quot;BjPU&quot;&gt;В &lt;code&gt;docs_llm_frontend&lt;/code&gt; обнаружено:&lt;/p&gt;
  &lt;ul id=&quot;fRVZ&quot;&gt;
    &lt;li id=&quot;6Jww&quot;&gt;&lt;code&gt;pakchoi:x:0:0::/home/pakchoi:/bin/bash&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;LT3x&quot;&gt;&lt;code&gt;/etc/systemd/system/sys-health.service&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;xbQg&quot;&gt;&lt;code&gt;/etc/systemd/system/sys-health.timer&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;Cju6&quot;&gt;refs на &lt;code&gt;docker start amco_ee51c4e6&lt;/code&gt;&lt;/li&gt;
    &lt;li id=&quot;hVdk&quot;&gt;изменения в &lt;code&gt;/etc/group&lt;/code&gt;, &lt;code&gt;/etc/shadow&lt;/code&gt;, &lt;code&gt;/home/pakchoi/.bashrc&lt;/code&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;6-host-level-persistence-именно-этим-stage-не-подтверждена&quot;&gt;6) Host-level persistence именно этим stage не подтверждена&lt;/h2&gt;
  &lt;p id=&quot;wTk8&quot;&gt;На хосте не найдено:&lt;/p&gt;
  &lt;ul id=&quot;ftjV&quot;&gt;
    &lt;li id=&quot;VfWj&quot;&gt;пользователя &lt;code&gt;pakchoi&lt;/code&gt;,&lt;/li&gt;
    &lt;li id=&quot;2eb9&quot;&gt;host unit-файлов &lt;code&gt;sys-health.*&lt;/code&gt;,&lt;/li&gt;
    &lt;li id=&quot;4w76&quot;&gt;контейнера &lt;code&gt;amco_ee51c4e6&lt;/code&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FuD3&quot;&gt;Дополнительно:&lt;/p&gt;
  &lt;ul id=&quot;BhPX&quot;&gt;
    &lt;li id=&quot;uYfs&quot;&gt;в контейнере отсутствует &lt;code&gt;/var/run/docker.sock&lt;/code&gt;,&lt;/li&gt;
    &lt;li id=&quot;vaKS&quot;&gt;PID 1 контейнера — &lt;code&gt;sh&lt;/code&gt;, не systemd.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;bccS&quot;&gt;Практический смысл: контейнерный stage есть, но его host-персистентность в текущем виде, вероятно, не работала.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;подробный-таймлайн-utc&quot;&gt;Подробный таймлайн (UTC)&lt;/h2&gt;
  &lt;p id=&quot;sJB8&quot;&gt;Ниже — ключевые точки, которые я сверил по логам и live-артефактам.&lt;/p&gt;
  &lt;h2 id=&quot;фаза-a-первичный-доступ-и-ранняя-активность&quot;&gt;Фаза A: первичный доступ и ранняя активность&lt;/h2&gt;
  &lt;ul id=&quot;2rAv&quot;&gt;
    &lt;li id=&quot;u3Y2&quot;&gt;&lt;code&gt;2026-04-25 04:00:15&lt;/code&gt; — первый подтвержденный &lt;code&gt;Accepted password for root&lt;/code&gt; (&lt;code&gt;45.83.140.194&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;gZNT&quot;&gt;&lt;code&gt;2026-04-25 04:02:21&lt;/code&gt; — &lt;code&gt;Accepted password for root&lt;/code&gt; (&lt;code&gt;95.32.25.170&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;zqgF&quot;&gt;&lt;code&gt;2026-04-25 04:03:59&lt;/code&gt; — root выполняет &lt;code&gt;apt update&lt;/code&gt; &lt;em&gt;(подтверждено как легитимное действие команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;HXvM&quot;&gt;&lt;code&gt;2026-04-25 04:04:14&lt;/code&gt; — root выполняет &lt;code&gt;apt install unzip&lt;/code&gt; &lt;em&gt;(подтверждено как легитимное действие команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;msZ9&quot;&gt;&lt;code&gt;2026-04-25 04:04:59&lt;/code&gt; — root выполняет &lt;code&gt;bash -&lt;/code&gt; &lt;em&gt;(подтверждено как легитимное действие команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;LOJ8&quot;&gt;&lt;code&gt;2026-04-25 04:05:08&lt;/code&gt; — root выполняет &lt;code&gt;apt install -y nodejs&lt;/code&gt; &lt;em&gt;(подтверждено как легитимное действие команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;E4FK&quot;&gt;&lt;code&gt;2026-04-25 04:10:52&lt;/code&gt; — создается группа &lt;code&gt;docker&lt;/code&gt; &lt;em&gt;(подтверждено как легитимное действие команды)&lt;/em&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;RyMn&quot;&gt;Комментарий: эти команды изначально рассматривались как потенциально подозрительные из-за близости по времени к компрометации, но после уточнения команды помечены как штатные админ-действия, связанные с пайплайном AI-агента, и исключены из IOC-логики.&lt;/p&gt;
  &lt;h2 id=&quot;фаза-b-дополнительные-успешные-root-сессии&quot;&gt;Фаза B: дополнительные успешные root-сессии&lt;/h2&gt;
  &lt;ul id=&quot;hkRJ&quot;&gt;
    &lt;li id=&quot;CvzD&quot;&gt;&lt;code&gt;2026-04-25 05:11:04&lt;/code&gt; — успешный вход (&lt;code&gt;45.83.140.194&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;kZtr&quot;&gt;&lt;code&gt;2026-04-25 05:13:05&lt;/code&gt; — успешный вход (&lt;code&gt;45.83.140.194&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;9kk2&quot;&gt;&lt;code&gt;2026-04-25 05:19:29&lt;/code&gt; — успешный вход (&lt;code&gt;144.31.203.175&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;jked&quot;&gt;&lt;code&gt;2026-04-25 07:00:01&lt;/code&gt; — успешный вход (&lt;code&gt;45.83.140.194&lt;/code&gt;).&lt;/li&gt;
    &lt;li id=&quot;WTsV&quot;&gt;&lt;code&gt;2026-04-25 10:10:30&lt;/code&gt; — успешный вход (&lt;code&gt;45.83.140.194&lt;/code&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;фаза-c-автоматизированная-волна-root-логинов&quot;&gt;Фаза C: автоматизированная волна root-логинов&lt;/h2&gt;
  &lt;ul id=&quot;7uoK&quot;&gt;
    &lt;li id=&quot;C1dg&quot;&gt;&lt;code&gt;2026-04-25 10:47:51&lt;/code&gt; — старт серии root-сессий с &lt;code&gt;194.87.220.163&lt;/code&gt; &lt;em&gt;(помечено как активность пайплайна AI-агента команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;hQ2z&quot;&gt;&lt;code&gt;2026-04-25 10:47:51–11:43:51&lt;/code&gt; — частые короткие сессии (accept/disconnect паттерн) &lt;em&gt;(помечено как активность пайплайна AI-агента команды)&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;ZNng&quot;&gt;Всего в этой волне — 78 успешных &lt;code&gt;Accepted password for root&lt;/code&gt; &lt;em&gt;(помечено как активность пайплайна AI-агента команды)&lt;/em&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;jkBN&quot;&gt;Комментарий: с учетом уточнений команды этот блок в таймлайне отмечен как автоматизированная активность вашего AI-пайплайна и не используется как самостоятельный индикатор злонамеренной сессии без дополнительных артефактов.&lt;/p&gt;
  &lt;h2 id=&quot;фаза-d-контейнерная-активность&quot;&gt;Фаза D: контейнерная активность&lt;/h2&gt;
  &lt;ul id=&quot;nBcX&quot;&gt;
    &lt;li id=&quot;2IqH&quot;&gt;&lt;code&gt;2026-04-25 11:23:02&lt;/code&gt; — creation &lt;code&gt;docs_llm_frontend&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;6ocS&quot;&gt;&lt;code&gt;2026-04-25 11:23:14&lt;/code&gt; — container start.&lt;/li&gt;
    &lt;li id=&quot;HSfB&quot;&gt;&lt;code&gt;2026-04-25 11:23:20–11:23:23&lt;/code&gt; — &lt;code&gt;npm install&lt;/code&gt; + запуск &lt;code&gt;next dev&lt;/code&gt; в логах контейнера.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;IiJx&quot;&gt;Комментарий: это штатный рантайм контейнера, но позже он становится хостом для вредоносных процессов.&lt;/p&gt;
  &lt;h2 id=&quot;фаза-e-запуск-майнера&quot;&gt;Фаза E: запуск майнера&lt;/h2&gt;
  &lt;ul id=&quot;GHZF&quot;&gt;
    &lt;li id=&quot;sVY1&quot;&gt;&lt;code&gt;2026-04-25 14:49:59&lt;/code&gt; — старт watchdog &lt;code&gt;/rjtg0pT&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;xJDh&quot;&gt;&lt;code&gt;2026-04-25 14:50:08&lt;/code&gt; — старт майнера &lt;code&gt;/RKiQ2aLh -c /kBiR -B&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;vlJs&quot;&gt;Далее — стабильная высокая CPU-нагрузка и пул-коннекты.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;WGhS&quot;&gt;Ключевой момент, который я отдельно перепроверял: запуск вредоноса происходит заметно позже &lt;code&gt;npm install&lt;/code&gt; и после окна компрометации root-активности.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;проверка-версий-и-оценка-уверенности&quot;&gt;Проверка версий и оценка уверенности&lt;/h2&gt;
  &lt;h2 id=&quot;гипотеза-1-это-не-инцидент-просто-шум&quot;&gt;Гипотеза 1: «Это не инцидент, просто шум»&lt;/h2&gt;
  &lt;ul id=&quot;bWWa&quot;&gt;
    &lt;li id=&quot;YSzb&quot;&gt;Вердикт: &lt;strong&gt;ложно&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;aJZu&quot;&gt;Почему: есть живой майнер, watchdog, валидный конфиг, пул-инфраструктура, IOC.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;гипотеза-2-это-npm-supply-chain-в-момент-install&quot;&gt;Гипотеза 2: «Это npm supply-chain в момент install»&lt;/h2&gt;
  &lt;ul id=&quot;TQCk&quot;&gt;
    &lt;li id=&quot;Khed&quot;&gt;Вердикт: &lt;strong&gt;не основная версия&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;KAdV&quot;&gt;Почему: таймлайн не сходится (install в &lt;code&gt;11:23&lt;/code&gt;, вредонос стартует &lt;code&gt;14:50&lt;/code&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;гипотеза-3-pakchoi-like-stage-присутствует&quot;&gt;Гипотеза 3: «PakChoi-like stage присутствует»&lt;/h2&gt;
  &lt;ul id=&quot;PtRg&quot;&gt;
    &lt;li id=&quot;HZpK&quot;&gt;Вердикт: &lt;strong&gt;подтверждено внутри контейнера&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;N73U&quot;&gt;Почему: &lt;code&gt;pakchoi&lt;/code&gt;, &lt;code&gt;sys-health.*&lt;/code&gt;, &lt;code&gt;amco_*&lt;/code&gt; refs, системные правки в container FS.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;гипотеза-4-host-level-persistence-через-эти-файлы-активна&quot;&gt;Гипотеза 4: «Host-level persistence через эти файлы активна»&lt;/h2&gt;
  &lt;ul id=&quot;IvZA&quot;&gt;
    &lt;li id=&quot;iJ4D&quot;&gt;Вердикт: &lt;strong&gt;не подтверждено&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;xFJ8&quot;&gt;Почему: нет host артефактов, нет docker.sock в контейнере, PID1 не systemd.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;гипотеза-5-по-ip-можно-точно-назвать-атакующего&quot;&gt;Гипотеза 5: «По IP можно точно назвать атакующего»&lt;/h2&gt;
  &lt;ul id=&quot;lMwv&quot;&gt;
    &lt;li id=&quot;PRFg&quot;&gt;Вердикт: &lt;strong&gt;некорректно&lt;/strong&gt; (после уточнения trusted/VPN IP).&lt;/li&gt;
    &lt;li id=&quot;SY9G&quot;&gt;Почему: IP может быть shared egress, VPN, proxy или компрометированный endpoint.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;trustedvpn-ip-и-как-это-правильно-трактовать&quot;&gt;Trusted/VPN IP и как это правильно трактовать&lt;/h2&gt;
  &lt;p id=&quot;Sota&quot;&gt;Команда подтвердила, что часть IP в логах — потенциально легитимные адреса их инфраструктуры.&lt;/p&gt;
  &lt;p id=&quot;hwwV&quot;&gt;Это меняет не факт инцидента, а модель атрибуции:&lt;/p&gt;
  &lt;ul id=&quot;QG5w&quot;&gt;
    &lt;li id=&quot;R39M&quot;&gt;Нельзя: «IP = злоумышленник».&lt;/li&gt;
    &lt;li id=&quot;4QYl&quot;&gt;Нужно: «Есть подтвержденные вредоносные действия, источник сессий требует отдельной identity/endpoint-проверки».&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;P5jw&quot;&gt;То есть фокус переносится с «кто по IP» на «кто по учетке/устройству/сессии».&lt;/p&gt;
  &lt;p id=&quot;Wte5&quot;&gt;Для меня это был важный разворот в расследовании: сначала казалось, что IP даст однозначный ответ, но в реальности именно поведение и артефакты дали устойчивую картину.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;root-cause-analysis&quot;&gt;Root Cause Analysis&lt;/h2&gt;
  &lt;h2 id=&quot;техническая-первопричина&quot;&gt;Техническая первопричина&lt;/h2&gt;
  &lt;p id=&quot;4IEk&quot;&gt;Открытый root SSH по паролю на интернет-периметре.&lt;/p&gt;
  &lt;h2 id=&quot;усиливающие-факторы&quot;&gt;Усиливающие факторы&lt;/h2&gt;
  &lt;ul id=&quot;2S5D&quot;&gt;
    &lt;li id=&quot;2f79&quot;&gt;нет строгого источникового контроля SSH,&lt;/li&gt;
    &lt;li id=&quot;1BX3&quot;&gt;недостаточная brute-force защита,&lt;/li&gt;
    &lt;li id=&quot;9l3w&quot;&gt;недостаточно раннее обнаружение аномалий,&lt;/li&gt;
    &lt;li id=&quot;fFVj&quot;&gt;присутствие чувствительных данных в shell history.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;impact&quot;&gt;Impact&lt;/h2&gt;
  &lt;h2 id=&quot;подтверждено&quot;&gt;Подтверждено&lt;/h2&gt;
  &lt;ul id=&quot;r9WJ&quot;&gt;
    &lt;li id=&quot;HEZS&quot;&gt;компрометация root-доступа,&lt;/li&gt;
    &lt;li id=&quot;HZTX&quot;&gt;выполнение несанкционированных действий,&lt;/li&gt;
    &lt;li id=&quot;h7nG&quot;&gt;запуск майнинга и расход вычислительных ресурсов,&lt;/li&gt;
    &lt;li id=&quot;rds6&quot;&gt;потенциальная компрометация секретов, доступных root-пользователю.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;не-подтверждено-в-текущем-scope&quot;&gt;Не подтверждено в текущем scope&lt;/h2&gt;
  &lt;ul id=&quot;F4wZ&quot;&gt;
    &lt;li id=&quot;bsV6&quot;&gt;устойчивое host-level закрепление через найденный контейнерный stage,&lt;/li&gt;
    &lt;li id=&quot;B1kc&quot;&gt;точная личная атрибуция субъекта по одному IP.&lt;/li&gt;
    &lt;li id=&quot;7xph&quot;&gt;подтвержденная массовая эксфильтрация данных (в текущей выборке нет явных индикаторов).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;что-отдельно-проверяли-и-не-нашли&quot;&gt;Что отдельно проверяли и не нашли&lt;/h2&gt;
  &lt;ul id=&quot;E2vO&quot;&gt;
    &lt;li id=&quot;kKoP&quot;&gt;host-level &lt;code&gt;authorized_keys&lt;/code&gt;-бэкдор для root;&lt;/li&gt;
    &lt;li id=&quot;i7Oh&quot;&gt;явную persistence через host cron в собранных срезах;&lt;/li&gt;
    &lt;li id=&quot;UKRS&quot;&gt;новых локальных пользователей на хосте, связанных с контейнерным &lt;code&gt;pakchoi&lt;/code&gt; stage.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;qIXD&quot;&gt;Важно: «не найдено в текущем scope» не равно «гарантированно отсутствует».&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;что-уже-сделано-правильно&quot;&gt;Что уже сделано правильно&lt;/h2&gt;
  &lt;ul id=&quot;5GKL&quot;&gt;
    &lt;li id=&quot;27b5&quot;&gt;сняты live-артефакты до агрессивной зачистки,&lt;/li&gt;
    &lt;li id=&quot;2bMS&quot;&gt;бинарники/конфиги выгружены и хэшированы,&lt;/li&gt;
    &lt;li id=&quot;sxtz&quot;&gt;выполнена декомпозиция «контейнер vs хост»,&lt;/li&gt;
    &lt;li id=&quot;p1My&quot;&gt;гипотезы разделены по степени доказанности.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;план-ремедиации&quot;&gt;План ремедиации&lt;/h2&gt;
  &lt;h2 id=&quot;немедленно-p0&quot;&gt;Немедленно (P0)&lt;/h2&gt;
  &lt;ol id=&quot;t9Pi&quot;&gt;
    &lt;li id=&quot;olAD&quot;&gt;Выключить root password SSH:&lt;/li&gt;
    &lt;ul id=&quot;MBm1&quot;&gt;
      &lt;li id=&quot;fi5k&quot;&gt;&lt;code&gt;PermitRootLogin no&lt;/code&gt;&lt;/li&gt;
      &lt;li id=&quot;7o1t&quot;&gt;&lt;code&gt;PasswordAuthentication no&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;WPPz&quot;&gt;Перевести доступ на SSH-ключи + allowlist.&lt;/li&gt;
    &lt;li id=&quot;PutJ&quot;&gt;Ротировать все секреты/токены.&lt;/li&gt;
    &lt;li id=&quot;wd9l&quot;&gt;Удалить скомпрометированный контейнер и пересобрать из trusted source.&lt;/li&gt;
    &lt;li id=&quot;nON4&quot;&gt;Блокировать egress к IOC-пулам.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;краткосрочно-p1&quot;&gt;Краткосрочно (P1)&lt;/h2&gt;
  &lt;ol id=&quot;kE59&quot;&gt;
    &lt;li id=&quot;Tqc7&quot;&gt;Проверить endpoints участников команды на stealer/credential theft.&lt;/li&gt;
    &lt;li id=&quot;dJms&quot;&gt;Провести аудит VPN/SSH сессий и ротацию учетных данных.&lt;/li&gt;
    &lt;li id=&quot;jYcs&quot;&gt;Включить fail2ban/аналог и защиту от brute-force.&lt;/li&gt;
    &lt;li id=&quot;YiHe&quot;&gt;Поднять алерты на root-login spikes, high CPU, suspicious egress.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;среднесрочно-p2&quot;&gt;Среднесрочно (P2)&lt;/h2&gt;
  &lt;ol id=&quot;xWsq&quot;&gt;
    &lt;li id=&quot;r2Bi&quot;&gt;Убрать shared-root практики.&lt;/li&gt;
    &lt;li id=&quot;qY0y&quot;&gt;Ввести персонализированный админ-доступ с audit trail.&lt;/li&gt;
    &lt;li id=&quot;mm3G&quot;&gt;Исключить dev-runtime режимы в production.&lt;/li&gt;
    &lt;li id=&quot;yCia&quot;&gt;Подготовить золотой образ и регламент быстрого rebuild.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;главные-уроки&quot;&gt;Главные уроки&lt;/h2&gt;
  &lt;ol id=&quot;Orcc&quot;&gt;
    &lt;li id=&quot;Lm6V&quot;&gt;«Знакомый IP» — это контекст, не гарантия легитимности.&lt;/li&gt;
    &lt;li id=&quot;b9dD&quot;&gt;Компрометацию нужно доказывать поведением и артефактами.&lt;/li&gt;
    &lt;li id=&quot;phnR&quot;&gt;Root SSH по паролю в интернет — это не «если», а «когда».&lt;/li&gt;
    &lt;li id=&quot;Qrtv&quot;&gt;Контейнерная изоляция может ограничить ущерб, но не отменяет инцидент.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;финальный-вывод&quot;&gt;Финальный вывод&lt;/h2&gt;
  &lt;p id=&quot;uWIR&quot;&gt;Инцидент подтвержден: вредоносная майнинг-нагрузка была развернута и запускалась на скомпрометированной инфраструктуре.&lt;/p&gt;
  &lt;p id=&quot;CgtX&quot;&gt;Уточнение по trusted/VPN IP делает расследование сложнее в части атрибуции, но не меняет технический факт компрометации.&lt;/p&gt;
  &lt;p id=&quot;6snC&quot;&gt;Корректная итоговая формулировка:&lt;/p&gt;
  &lt;ul id=&quot;V5TR&quot;&gt;
    &lt;li id=&quot;txAL&quot;&gt;&lt;strong&gt;компрометация подтверждена по действиям и артефактам&lt;/strong&gt;;&lt;/li&gt;
    &lt;li id=&quot;7Ixi&quot;&gt;&lt;strong&gt;атрибуция по субъекту требует дополнительной identity/endpoint проверки&lt;/strong&gt;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;благодарность&quot;&gt;Благодарность&lt;/h2&gt;
  &lt;p id=&quot;9IQu&quot;&gt;Отдельное спасибо за помощь в разборе: &lt;a href=&quot;https://t.me/Anon1379&quot; target=&quot;_blank&quot;&gt;https://t.me/Anon1379&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>sqwd_team:04.04.26</id><link rel="alternate" type="text/html" href="https://blog.sqwd.ru/04.04.26?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sqwd_team"></link><title>Конкурс по кибербезопасности ВИ МВД России — 04.04.2026</title><published>2026-03-13T12:51:28.346Z</published><updated>2026-03-13T13:00:38.036Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/70/1d/701dd0f1-4c52-45fc-a57f-eb83d16400aa.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/34/94/349450b0-87c7-4fbd-b8c4-02cff5690d32.png&quot;&gt;Конкурс по кибербезопасности ВИ МВД России — 04.04.2026</summary><content type="html">
  &lt;p id=&quot;ZXxM&quot;&gt;На связи Verlliann.&lt;/p&gt;
  &lt;p id=&quot;8GR1&quot;&gt;Короче, это случилось. Мы организуем свой CTF. Не где-то там на другом конце интернета, а прямо здесь — в стенах Воронежского института МВД России. Официально, с распоряжением, дипломами и всеми делами.&lt;/p&gt;
  &lt;p id=&quot;5gJj&quot;&gt;&lt;strong&gt;Что будет?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;krbV&quot;&gt;Полноценный Jeopardy CTF на платформе CTFd. Таски, флаги, scoreboard в реальном времени — всё как на настоящих соревнованиях, потому что это и есть настоящие соревнования.&lt;/p&gt;
  &lt;p id=&quot;mc1q&quot;&gt;Категории: — OSINT — разведка по открытым источникам — Forensics — цифровая криминалистика — Web Exploitation — ломаем веб — Cryptography — ломаем шифры — Reverse Engineering — ковыряем бинарники — Steganography — ищем то, что спрятано&lt;/p&gt;
  &lt;p id=&quot;4C3z&quot;&gt;От простых тасков, с которых можно начать, до штук, над которыми придётся посидеть. Каждому найдётся задачка по душе.&lt;/p&gt;
  &lt;p id=&quot;ipB0&quot;&gt;&lt;strong&gt;Когда?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;qY5V&quot;&gt;4 апреля 2026 года. Один день, одна цель — набрать как можно больше очков.&lt;/p&gt;
  &lt;p id=&quot;eu32&quot;&gt;&lt;strong&gt;Кто может участвовать?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;xdx6&quot;&gt;Курсанты и слушатели юридического и радиотехнического факультетов. Можно соло, можно командой до 3 человек. Если у тебя есть друг, который шарит в крипте (не в биткоинах)), а ты хорош в вебе — самое время объединиться.&lt;/p&gt;
  &lt;p id=&quot;jeor&quot;&gt;&lt;strong&gt;Как зарегистрироваться?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;urkr&quot;&gt;Заходишь на &lt;a href=&quot;https://registration.sqwd.ru&quot; target=&quot;_blank&quot;&gt;https://registration.sqwd.ru&lt;/a&gt;, указываешь название команды (или своё, если соло), состав и контакты. Всё. Приём заявок откроется &lt;strong&gt;21 марта&lt;/strong&gt; — ровно за 14 дней до конкурса. Закроется &lt;strong&gt;28 марта в 22:00 МСК&lt;/strong&gt;. Так что не откладывай на последний момент — окно не такое большое.&lt;/p&gt;
  &lt;p id=&quot;7IvC&quot;&gt;&lt;strong&gt;Что нужно для участия?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;o1ZH&quot;&gt;Компьютер с интернетом и браузер. Это минимум. А если хочешь зайти серьёзно — вот что пригодится: — Kali Linux или аналогичный дистрибутив — Wireshark, Autopsy — для форензики — Ghidra, IDA Free — для реверса — Python 3 + pycryptodome, pwntools — для крипто — Burp Suite Community — для веба&lt;/p&gt;
  &lt;p id=&quot;DJUC&quot;&gt;Можно использовать как свой ноутбук, так и машины в аудиториях.&lt;/p&gt;
  &lt;p id=&quot;SJF9&quot;&gt;&lt;strong&gt;А если я вообще ничего не понимаю?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;eLSi&quot;&gt;Не проблема. Перед конкурсом пройдут подготовительные лекции — преподаватели кафедр информационной безопасности и компьютерной безопасности расскажут что к чему и покажут базовый инструментарий. Следите за анонсами — даты и расписание лекций опубликуем отдельно.&lt;/p&gt;
  &lt;p id=&quot;6iwm&quot;&gt;&lt;strong&gt;Что по призам?&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;Flfj&quot;&gt;Победители и призёры получают дипломы. А если решишь хотя бы один таск — сертификат участника. Но давайте честно: главный приз — это опыт и тот самый момент, когда после часа мучений ты всё-таки находишь флаг и чувствуешь себя гением))&lt;/p&gt;
  &lt;p id=&quot;hyN2&quot;&gt;&lt;strong&gt;Важные правила (чтобы потом не было сюрпризов):&lt;/strong&gt; — Флагами и решениями не делимся. Ни с кем. Ни кусочком. — Ломаем только то, что указано в заданиях. Инфраструктуру платформы и чужие машины не трогаем. — DoS/DDoS — даже не думайте. — Нарушил правила — вычет баллов или дисквал. Решения оргкомитета окончательные.&lt;/p&gt;
  &lt;p id=&quot;GMVt&quot;&gt;&lt;strong&gt;Контакты для связи:&lt;/strong&gt; — Почта: contact@sqwd.ru — Telegram-бот поддержки: @sqwd_support_bot — Наш канал: t.me/SqWD_TEAM&lt;/p&gt;
  &lt;p id=&quot;TbTr&quot;&gt;Это ваш шанс попробовать CTF вживую, в нормальных условиях, с поддержкой и без страха что-то сделать не так. Глупых вопросов не бывает — бывают те, кто не решился спросить.&lt;/p&gt;
  &lt;p id=&quot;1koc&quot;&gt;Регистрируйтесь, зовите друзей, точите инструменты. Увидимся на платформе 🤝&lt;/p&gt;
  &lt;p id=&quot;qaBp&quot;&gt;&lt;a href=&quot;https://cloud.mail.ru/public/X2Zt/aCCbbgCzB&quot; target=&quot;_blank&quot;&gt;РЕГЛАМЕНТ ПО ССЫЛКЕ&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>sqwd_team:ctf-entry</id><link rel="alternate" type="text/html" href="https://blog.sqwd.ru/ctf-entry?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=sqwd_team"></link><title>Что такое CTF и с чем его едят</title><published>2026-03-07T16:25:00.135Z</published><updated>2026-03-07T16:29:13.476Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/35/c9/35c9dec1-0905-474a-b00c-338c3bdd4774.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/bb/a2/bba210dd-4e1f-4f95-bc28-301ad3e02bcf.jpeg&quot;&gt;Окей, давайте по порядку. Вы зашли в канал, увидели какие-то непонятные аббревиатуры, слово «таск», скобочки-смайлики и подумали — «что тут вообще происходит?»</summary><content type="html">
  &lt;p id=&quot;qW8O&quot;&gt;На связи Verlliann.&lt;/p&gt;
  &lt;p id=&quot;XGJC&quot;&gt;Окей, давайте по порядку. Вы зашли в канал, увидели какие-то непонятные аббревиатуры, слово «таск», скобочки-смайлики и подумали — «что тут вообще происходит?»&lt;/p&gt;
  &lt;p id=&quot;LOpM&quot;&gt;Без паники. Сейчас разложим всё по полочкам.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;6EWq&quot;&gt;CTF — это что вообще?&lt;/h2&gt;
  &lt;p id=&quot;vWT1&quot;&gt;CTF — Capture The Flag. Дословно — «захват флага». По сути — это соревнования по информационной безопасности. Но не в костюмах и галстуках, а скорее как хакерский спорт.&lt;/p&gt;
  &lt;p id=&quot;X7nH&quot;&gt;Смысл простой: тебе дают задания (таски), ты их решаешь и находишь так называемый «флаг» — обычно это строка вроде &lt;code&gt;flag{s0m3_t3xt_h3r3}&lt;/code&gt;. Нашёл флаг — сдал — получил очки. У кого больше очков — тот и красавчик.&lt;/p&gt;
  &lt;p id=&quot;uoNy&quot;&gt;Звучит просто? Ну... на первый взгляд))&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;tpNy&quot;&gt;Форматы CTF&lt;/h2&gt;
  &lt;p id=&quot;v8NB&quot;&gt;Их два основных, и они сильно отличаются друг от друга.&lt;/p&gt;
  &lt;h3 id=&quot;fjT7&quot;&gt;Jeopardy (жеопарди)&lt;/h3&gt;
  &lt;p id=&quot;XKnD&quot;&gt;Самый распространённый формат, особенно для новичков. Работает как викторина — есть набор заданий разных категорий и сложности. Выбираешь таск, решаешь, сдаёшь флаг.&lt;/p&gt;
  &lt;p id=&quot;ZE2e&quot;&gt;Никто тебя не атакует, никого не надо ломать в реальном времени — сидишь, думаешь, копаешь. Можно в своём темпе. Обычно длится от 24 до 48 часов.&lt;/p&gt;
  &lt;h3 id=&quot;djRf&quot;&gt;Attack-Defense (аттак-дефенс)&lt;/h3&gt;
  &lt;p id=&quot;Lu4p&quot;&gt;А вот тут уже веселее. Каждой команде дают одинаковый сервер с набором сервисов. Задача двойная: защитить свои сервисы и одновременно ломать чужие. Нашёл уязвимость у соперника — украл флаг. Прозевал дыру у себя — флаги украли у тебя.&lt;/p&gt;
  &lt;p id=&quot;mukQ&quot;&gt;Это хардкор. Тут нужна координация, скорость и холодная голова. Обычно такой формат на финалах крупных соревнований.&lt;/p&gt;
  &lt;h3 id=&quot;04k8&quot;&gt;Есть ещё гибриды&lt;/h3&gt;
  &lt;p id=&quot;nQSm&quot;&gt;Некоторые CTF мешают оба формата или добавляют свои механики — king of the hill (захват и удержание серверов), attack-only и т.д. Но jeopardy и attack-defense — это база.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;F9Gw&quot;&gt;Категории заданий&lt;/h2&gt;
  &lt;p id=&quot;Xx77&quot;&gt;В jeopardy-формате таски обычно разбиты по категориям. Вот основные — чтобы вы понимали что к чему.&lt;/p&gt;
  &lt;h3 id=&quot;hD6s&quot;&gt;Web&lt;/h3&gt;
  &lt;p id=&quot;La1Z&quot;&gt;Уязвимости в веб-приложениях. SQL-инъекции, XSS, SSRF, обход аутентификации — всё то, из-за чего потом в новостях пишут «компания слила данные миллионов пользователей».&lt;/p&gt;
  &lt;p id=&quot;2ai8&quot;&gt;Порог входа один из самых низких — если хоть немного понимаете как работают сайты, уже можно пробовать.&lt;/p&gt;
  &lt;h3 id=&quot;Arbs&quot;&gt;Pwn (binary exploitation)&lt;/h3&gt;
  &lt;p id=&quot;GPo3&quot;&gt;Эксплуатация бинарных уязвимостей. Переполнение буфера, use-after-free, ROP-цепочки... Если предыдущие слова звучат как заклинания — это нормально)) Pwn считается одной из самых сложных категорий, но и одной из самых уважаемых.&lt;/p&gt;
  &lt;p id=&quot;Wf6W&quot;&gt;Тут нужно понимать как работает память, процессор, стек. Низкий уровень, хардкор, зато когда получаешь shell на удалённом сервере — ощущение непередаваемое.&lt;/p&gt;
  &lt;h3 id=&quot;u4hU&quot;&gt;Reverse (reverse engineering)&lt;/h3&gt;
  &lt;p id=&quot;4FU5&quot;&gt;Обратная разработка. Тебе дают скомпилированную программу (бинарник), и нужно понять что она делает — без исходного кода. Декомпиляторы, дизассемблеры, дебаггеры — твои лучшие друзья.&lt;/p&gt;
  &lt;p id=&quot;rNMV&quot;&gt;Часто пересекается с pwn, но тут фокус именно на анализе, а не на эксплуатации.&lt;/p&gt;
  &lt;h3 id=&quot;aez5&quot;&gt;Crypto&lt;/h3&gt;
  &lt;p id=&quot;sObY&quot;&gt;Криптография. Нет, не крипта в смысле биткоинов)) Тут ломают шифры, ищут уязвимости в криптографических протоколах, факторизуют числа, атакуют RSA, AES и прочие аббревиатуры.&lt;/p&gt;
  &lt;p id=&quot;VCau&quot;&gt;Нужна математика — но не та, что в школе казалась бесполезной. Тут она внезапно обретает смысл.&lt;/p&gt;
  &lt;h3 id=&quot;2ykW&quot;&gt;Forensics&lt;/h3&gt;
  &lt;p id=&quot;lbq3&quot;&gt;Цифровая криминалистика. Анализ дампов памяти, сетевого трафика, образов дисков, логов. Как детектив, только вместо отпечатков пальцев — пакеты и метаданные.&lt;/p&gt;
  &lt;h3 id=&quot;vFZT&quot;&gt;OSINT&lt;/h3&gt;
  &lt;p id=&quot;nsrd&quot;&gt;Open Source Intelligence — разведка по открытым источникам. Найти человека по фотке, определить геолокацию по скриншоту, раскопать информацию из публичных данных. Категория, где Google и наблюдательность — главное оружие.&lt;/p&gt;
  &lt;h3 id=&quot;BP8f&quot;&gt;Misc&lt;/h3&gt;
  &lt;p id=&quot;kylF&quot;&gt;Всё остальное, что не вписалось в другие категории. Стеганография (спрятанные данные в картинках), программирование на скорость, странные головоломки... Misc — это всегда сюрприз.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;daGX&quot;&gt;Зачем люди этим занимаются?&lt;/h2&gt;
  &lt;p id=&quot;8NIW&quot;&gt;Хороший вопрос. Причин хватает.&lt;/p&gt;
  &lt;p id=&quot;GFxQ&quot;&gt;&lt;strong&gt;Это реальные навыки.&lt;/strong&gt; CTF — это не просто игра. Всё, что ты тут изучаешь, напрямую применяется в работе: пентестинг, анализ защищённости, incident response, разработка безопасного ПО. Работодатели в сфере ИБ очень ценят CTF-опыт.&lt;/p&gt;
  &lt;p id=&quot;w7KK&quot;&gt;&lt;strong&gt;Это прокачка мышления.&lt;/strong&gt; Каждый таск — это головоломка. Учишься думать нестандартно, искать то, что не видно на поверхности, не сдаваться когда ничего не работает. Эти навыки полезны вообще везде.&lt;/p&gt;
  &lt;p id=&quot;sAYg&quot;&gt;&lt;strong&gt;Это комьюнити.&lt;/strong&gt; CTF-тусовка — одна из самых дружелюбных в IT. Люди делятся райтапами, помогают новичкам, организуют соревнования. После CTF часто публикуются разборы — можно учиться даже на тех тасках, которые не решил.&lt;/p&gt;
  &lt;p id=&quot;wmml&quot;&gt;&lt;strong&gt;Это кайф.&lt;/strong&gt; Серьёзно. Момент, когда после трёх часов мучений ты наконец находишь флаг — это чувство сравнимо разве что с прохождением сложного босса в Dark Souls. Только тут ты ещё и узнаёшь что-то полезное.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;O8C9&quot;&gt;Как попасть в этот мир?&lt;/h2&gt;
  &lt;p id=&quot;YpIh&quot;&gt;Порог входа есть, но он не такой высокий, как кажется. Вот минимум, с которого можно стартовать:&lt;/p&gt;
  &lt;p id=&quot;wOAY&quot;&gt;&lt;strong&gt;Базовый Linux.&lt;/strong&gt; Большинство CTF-инструментов работают под Linux. Не обязательно быть гуру — достаточно уметь работать в терминале, понимать базовые команды и не бояться командной строки. Ubuntu или Kali Linux — хороший старт.&lt;/p&gt;
  &lt;p id=&quot;Nm0H&quot;&gt;&lt;strong&gt;Базовое понимание сетей.&lt;/strong&gt; Что такое IP, порт, HTTP-запрос, DNS. Не на уровне Cisco-сертификации — на уровне «примерно понимаю как данные ходят по сети».&lt;/p&gt;
  &lt;p id=&quot;Zf8k&quot;&gt;&lt;strong&gt;Хотя бы один язык программирования.&lt;/strong&gt; Python — идеальный выбор. На нём пишут скрипты для решения тасков, автоматизируют всё подряд и вообще он просто удобный.&lt;/p&gt;
  &lt;p id=&quot;yjmk&quot;&gt;&lt;strong&gt;Желание разбираться.&lt;/strong&gt; Это, наверное, самое главное. Гуглить, читать, пробовать, ошибаться, снова пробовать. В CTF никто не рождается экспертом — все когда-то начинали с нуля.&lt;/p&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;2axd&quot;&gt;Где тренироваться?&lt;/h2&gt;
  &lt;p id=&quot;Xoly&quot;&gt;Вот несколько платформ, на которых можно начать прямо сейчас:&lt;/p&gt;
  &lt;ul id=&quot;t7TY&quot;&gt;
    &lt;li id=&quot;4hrM&quot;&gt;&lt;strong&gt;picoCTF&lt;/strong&gt; — идеально для старта. Задания от простого к сложному, хорошие подсказки, всё бесплатно. Если вы совсем новичок — начните отсюда.&lt;/li&gt;
    &lt;li id=&quot;1eO9&quot;&gt;&lt;strong&gt;HackTheBox&lt;/strong&gt; — виртуальные машины, которые нужно «взломать». Есть разные уровни сложности. Комьюнити огромное, райтапов полно.&lt;/li&gt;
    &lt;li id=&quot;ANLJ&quot;&gt;&lt;strong&gt;TryHackMe&lt;/strong&gt; — похоже на HackTheBox, но с более структурированным обучением. Есть пошаговые «комнаты» по конкретным темам.&lt;/li&gt;
    &lt;li id=&quot;Gm5M&quot;&gt;&lt;strong&gt;CTFtime&lt;/strong&gt; — агрегатор всех CTF-соревнований. Тут можно найти ближайшие ивенты, посмотреть рейтинг команд, найти райтапы.&lt;/li&gt;
    &lt;li id=&quot;wI2n&quot;&gt;&lt;strong&gt;CryptoHack&lt;/strong&gt; — если зацепила криптография. Интерактивные задания, от базы до продвинутого уровня.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;h2 id=&quot;THLY&quot;&gt;Наша команда&lt;/h2&gt;
  &lt;p id=&quot;bNU2&quot;&gt;Мы — SqWD. Мы участвуем в CTF, учимся, иногда побеждаем, иногда нет — но всегда выносим что-то полезное. В этом канале будем делиться всем этим: разборы тасков, полезные материалы, новости, анонсы.&lt;/p&gt;
  &lt;p id=&quot;2zFZ&quot;&gt;Если после этого поста появились вопросы — кидайте в чат, разберёмся. Если появилось желание попробовать — тем более пишите, поможем начать.&lt;/p&gt;
  &lt;p id=&quot;skoz&quot;&gt;Глупых вопросов не бывает. Бывают люди, которые боятся спросить и из-за этого не узнают крутых вещей.&lt;/p&gt;
  &lt;p id=&quot;GSNk&quot;&gt;Залетайте 🤝&lt;/p&gt;

</content></entry></feed>