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

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

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

]]></content:encoded></item></channel></rss>