Наступний крок
SOC: ролі, рішення, процес
Тема 1 · Основи · 16 хвилин
Практичний маршрут SOC-аналітика: фундамент, мережі, операційні системи, threat hunting, реагування та інструменти.
0 з 12 тем складено
Наступний крок
Тема 1 · Основи · 16 хвилин
Карта підготовки
Починай із фундаменту й рухайся послідовно. Кожна складена перевірка відкриває наступний модуль.
Питання показуються по одному. Відповідь не можна змінити після підтвердження.
| Рівень | Що робить |
|---|---|
| L1 Triage | Моніторить чергу алертів, валідує, класифікує TP/FP, збирає контекст, ескалює. Працює за плейбуком. |
| L2 IR | Глибоке розслідування, кореляція подій, стримування й відновлення, робота з форензик-артефактами. |
| L3 Hunt | Проактивний threat hunting, розробка детект-правил, реверс малварі, робота з TI. |
| Manager | Процеси, метрики, SLA, звітність, комунікація з бізнесом. |
| Confidentiality | Доступ лише для тих, кому належить. Порушення: витік даних. |
| Integrity | Дані не змінені несанкціоновано. Порушення: підміна, tampering. |
| Availability | Сервіс доступний, коли потрібен. Порушення: DoS, ransomware. |
| Identification | Хто ти заявляєш, що ти є (логін, ID). |
| Authentication | Доказ (пароль, MFA, сертифікат). |
| Authorization | Що тобі дозволено (права, RBAC). |
| Accountability | Логування дій — щоб відновити хто/що/коли. |
Non-repudiation — неможливість відмовитися від авторства дії (цифровий підпис + логи). Моделі: Bell–LaPadula (конфіденційність, «no read up / no write down»), Biba (цілісність, навпаки).
| Клас | Призначення | Приклади |
|---|---|---|
| SIEM | Централізує логи, корелює, генерує алерти | Splunk, ELK, QRadar, Sentinel, Wazuh |
| SOAR | Автоматизує реакцію: плейбуки, збагачення, тікети | Cortex XSOAR, Shuffle |
| EDR | Телеметрія й реакція на хостах | CrowdStrike, Defender for Endpoint |
| IDS/IPS | Детект (IDS) або блок (IPS) у мережі | Snort, Suricata, Zeek |
| TIP | Керує фідами threat intelligence | MISP, OpenCTI |
SIEM vs EDR: SIEM бачить усе, що йому надіслали — але лише те, що потрапило в лог. EDR бачить глибоко один хост у реальному часі й може діяти: ізолювати машину, вбити процес.
| Тип | Означає |
|---|---|
| True Positive | Спрацював — активність справді шкідлива. Ескалюємо. |
| False Positive | Спрацював — активності немає. Закриваємо + тюнінг правила. |
| Benign TP | Активність реальна, але легітимна. Закриваємо з поясненням, додаємо виняток. |
| True Negative | Не спрацював — і не мав. Норма. |
| False Negative | Не спрацював — а мав. Атака пройшла непоміченою. |
| MTTD | Від компрометації до виявлення |
| MTTA | Від алерту до того, як аналітик його взяв |
| MTTR | До стримування чи повного закриття |
| Dwell time | Скільки атакувальник був у мережі непоміченим |
| FP rate | Частка хибних спрацювань |
Короткий підсумок (що, коли, де), докази (сирі логи, часові мітки в UTC), IOC у defang-форматі, зачеплені активи, вже виконані дії, рекомендація. L2 не повинен перезбирати контекст із нуля.
| # | Рівень OSI | PDU | Приклади |
|---|---|---|---|
| 7 | Application | Data | HTTP, DNS, SMTP, FTP |
| 6 | Presentation | Data | TLS, кодування, стиснення |
| 5 | Session | Data | NetBIOS, RPC |
| 4 | Transport | Segment | TCP, UDP · порти |
| 3 | Network | Packet | IP, ICMP, роутери |
| 2 | Data Link | Frame | Ethernet, ARP, MAC, свічі |
| 1 | Physical | Bits | Кабель, радіо |
TCP/IP складає їх у 4: Application (7–5), Transport (4), Internet (3), Network Access (2–1).
| SYN | Синхронізація — початок з'єднання |
| ACK | Підтвердження отриманих даних |
| FIN | Коректне завершення |
| RST | Різкий скид — порт закритий або аварія |
| PSH | Віддати застосунку негайно, не буферизувати |
| URG | Пріоритетні дані (майже не використовується) |
| Порт | Сервіс | Порт | Сервіс |
|---|---|---|---|
| 20/21 | FTP | 389 | LDAP |
| 22 | SSH | 443 | HTTPS |
| 23 | Telnet | 445 | SMB |
| 25 | SMTP | 514 | Syslog |
| 53 | DNS | 636 | LDAPS |
| 67/68 | DHCP | 1433 | MSSQL |
| 80 | HTTP | 3306 | MySQL |
| 88 | Kerberos | 3389 | RDP |
| 135 | MSRPC | 5985/6 | WinRM |
| 10.0.0.0/8 | Приватний (клас A) |
| 172.16.0.0/12 | Приватний — 172.16–172.31 |
| 192.168.0.0/16 | Приватний (клас C) |
| 127.0.0.0/8 | Loopback |
| 169.254.0.0/16 | APIPA — DHCP не відповів |
/24 = 256 адрес, 254 придатні. /25 → 126, /26 → 62, /27 → 30, /30 → 2.
| Запис | Призначення |
|---|---|
| A / AAAA | Ім'я → IPv4 / IPv6 |
| CNAME | Псевдонім на інше ім'я |
| MX | Поштовий сервер домену |
| TXT | Довільний текст — SPF, DKIM, DMARC |
| NS / SOA | Сервери імен / параметри зони |
| PTR | Зворотний: IP → ім'я |
| SRV | Розташування сервісу — активно в AD |
Що видає атаку в DNS-логах: довгі рандомні піддомени (тунелювання або DGA), сплеск запитів TXT, звернення до щойно зареєстрованих доменів.
| Код | Клас | Приклади |
|---|---|---|
| 2xx | Успіх | 200 OK · 201 Created · 204 No Content |
| 3xx | Перенаправлення | 301 · 302 · 304 Not Modified |
| 4xx | Помилка клієнта | 401 · 403 · 404 · 429 |
| 5xx | Помилка сервера | 500 · 502 · 503 · 504 |
| ID | Подія | Навіщо аналітику |
|---|---|---|
| 4624 | Успішний вхід | Хто, звідки, Logon Type |
| 4625 | Невдалий вхід | Серія → брутфорс / spraying |
| 4634/4647 | Вихід | Хронологія сесії |
| 4648 | Вхід з явними даними | runas, бічний рух |
| 4672 | Спеціальні привілеї | Адмінський вхід |
| 4688 | Створено процес | Командний рядок + батько |
| 4697/7045 | Встановлено службу | Персистенція |
| 4720 | Створено користувача | Backdoor-акаунт |
| 4728/4732 | Додано до групи | Ескалація привілеїв |
| 4768/4769 | Kerberos TGT / TGS | Kerberoasting |
| 4771 | Kerberos pre-auth fail | Аналог 4625 |
| 4776 | Перевірка NTLM | Легасі-автентифікація |
| 4719 | Змінено політику аудиту | Осліплення моніторингу |
| 1102 | Журнал Security очищено | Anti-forensics |
| 2 | Interactive — за клавіатурою |
| 3 | Network — SMB, WMI, PsExec |
| 4 | Batch — заплановане завдання |
| 5 | Service — запуск служби |
| 7 | Unlock — розблокування екрана |
| 8 | NetworkCleartext — пароль відкрито |
| 9 | NewCredentials — runas /netonly |
| 10 | RemoteInteractive — RDP |
| 11 | CachedInteractive — домен недоступний |
| 1 | Створення процесу — з хешем і командним рядком |
| 3 | Мережеве з'єднання |
| 7 | Завантажено образ/DLL — side-loading |
| 8 | CreateRemoteThread — ін'єкція |
| 10 | ProcessAccess — доступ до lsass.exe |
| 11 | Створено файл |
| 22 | DNS-запит |
PowerShell: 4103 — module logging, 4104 — script block logging, показує розкодований скрипт навіть після -EncodedCommand.
Червоні прапорці: powershell -enc, -nop -w hidden, IEX (New-Object Net.WebClient).DownloadString, certutil -urlcache -f, mshta http://…. Особливо якщо батько — winword.exe або excel.exe.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
…\CurrentVersion\RunOnce
HKLM\SYSTEM\CurrentControlSet\Services ← служби
…\Winlogon\Shell | Userinit ← підміна оболонки
…\Image File Execution Options\<exe>\Debugger ← IFEO hijack
C:\Windows\System32\Tasks\ ← заплановані завдання
| NTLM | Kerberos | |
|---|---|---|
| Механізм | Challenge–response | Квитки від KDC |
| Взаємна автент. | Ні | Так |
| Атаки | Pass-the-Hash, relay | Kerberoasting, AS-REP roasting, Golden Ticket |
AD: Domain — межа адміністрування, Forest — домени зі спільною схемою, OU — контейнер для GPO, DC тримає NTDS.dit. Локальні хеші — в SAM, активні сесії — в пам'яті lsass.exe.
| Шлях | Що там |
|---|---|
| /var/log/auth.log | Автентифікація, sudo, SSH (Debian/Ubuntu) |
| /var/log/secure | Те саме на RHEL/CentOS |
| /var/log/syslog | Системні події (Debian) |
| /var/log/messages | Те саме на RHEL |
| /var/log/cron | Виконання завдань cron |
| ~/.bash_history | Історія команд користувача |
| /etc/passwd | Користувачі (без паролів) |
| /etc/shadow | Хеші паролів — лише root |
r=4 w=2 x=1. chmod 755 = rwxr-xr-x, 644 = rw-r--r--. SUID (4755) — файл виконується з правами власника; нетипові SUID-бінарники дають ескалацію до root:
find / -perm -4000 -type f 2>/dev/null
┌── хвилина 0–59
│ ┌── година 0–23
│ │ ┌── день місяця 1–31
│ │ │ ┌── місяць 1–12
│ │ │ │ ┌── день тижня 0–7 (0 і 7 = неділя)
* * * * * команда
*/5 * * * * кожні 5 хвилин
0 3 * * 1 щопонеділка о 03:00
@reboot при завантаженні
grep -i "failed password" /var/log/auth.log
grep -c "Accepted" auth.log # порахувати збіги
grep -v "healthcheck" access.log # виключити
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
cut -d: -f1 /etc/passwd
sed -n '100,200p' file.log
tail -f /var/log/syslog
ps aux --sort=-%cpu | head
ss -tulpn # порти + процеси
lsof -i :4444
last / lastb # успішні / невдалі входи
Головна ідіома підрахунку: sort | uniq -c | sort -nr. Без першого sort команда uniq зіллє лише сусідні однакові рядки — і результат буде тихо неправильним.
crontab користувачів і /etc/cron.* · systemd-юніти й таймери · ~/.bashrc, /etc/profile.d/ · ~/.ssh/authorized_keys · нові користувачі з UID 0 у /etc/passwd · LD_PRELOAD · підмінені бінарники в /usr/local/bin.
| Що | Оборотність | Навіщо |
|---|---|---|
| Кодування | Так, без ключа | Сумісність передачі: Base64, hex. Не захист. |
| Хешування | Ні — одностороннє | Цілісність, зберігання паролів |
| Шифрування | Так, із ключем | Конфіденційність |
| Алгоритм | Довжина hex | Стан |
|---|---|---|
| MD5 | 32 | Зламаний — колізії |
| SHA-1 | 40 | Зламаний |
| SHA-256 | 64 | Надійний |
| SHA-512 | 128 | Надійний |
| NTLM | 32 | Слабкий, без солі |
Сіль — випадковий рядок, унікальний для кожного користувача, додається перед хешуванням. Ламає веселкові таблиці. Для паролів потрібні повільні функції: bcrypt ($2y$), scrypt, Argon2.
| Симетричне | Асиметричне | |
|---|---|---|
| Ключі | Один спільний | Публічний + приватний |
| Швидкість | Швидке | Повільне |
| Проблема | Як передати ключ | Обчислювальна вартість |
| Приклади | AES, 3DES | RSA, ECC, Diffie–Hellman |
Шифрують публічним ключем отримувача — розшифрує лише він. Підписують приватним — перевірити може будь-хто публічним; це дає автентичність і non-repudiation.
john --wordlist=rockyou.txt hash.txt
john --format=raw-md5 --wordlist=rock.txt hash.txt
john --show hash.txt
unshadow /etc/passwd /etc/shadow > combined.txt
zip2john file.zip > zip.hash
| # | Категорія | Група |
|---|---|---|
| A01 | Broken Access Control | IAAA |
| A02 | Security Misconfiguration | Design |
| A03 | Software Supply Chain Failures | Design |
| A04 | Cryptographic Failures | Data |
| A05 | Injection | Data |
| A06 | Insecure Design | Design |
| A07 | Authentication Failures | IAAA |
| A08 | Software and Data Integrity Failures | Data |
| A09 | Logging and Alerting Failures | IAAA |
| A10 | Mishandling of Exceptional Conditions | Design |
Мнемоніка через IAAA: A01 — збій авторизації, A07 — автентифікації, A09 — підзвітності. Решта — дефекти проєктування або поводження з даними.
| Атака | Суть | Слід у логах |
|---|---|---|
| SQLi | Ввід потрапляє в SQL-запит | ' OR 1=1--, UNION SELECT |
| XSS stored | Скрипт збережено, б'є по всіх | <script> у POST-тілі |
| XSS reflected | Скрипт у параметрі, б'є по тому, хто клікнув | Тег у query-рядку |
| XSS DOM | Виконується цілком на клієнті | Може не потрапити в серверний лог |
| CSRF | Браузер жертви робить дію її ж кукою | Чужий Referer, немає токена |
| IDOR | Зміна ID в URL дає чужі дані | Один акаунт тягне багато ID |
| Path traversal | Вихід за межі каталогу | ../../etc/passwd, %2e%2e%2f |
| SSRF | Сервер сам ходить куди скажуть | URL із 169.254.169.254 |
HTTP не має стану — його тримає session cookie. HttpOnly — JS не читає (захист від крадіжки через XSS). Secure — лише HTTPS. SameSite=Lax|Strict — основний захист від CSRF. SOP забороняє скриптам читати відповіді з іншого походження, CORS — контрольований виняток із неї.
Proxy перехоплює й дає змінити запит. Repeater — повторно надіслати зі змінами (основний інструмент). Intruder — перебір по позиціях. Decoder, Comparer. Для HTTPS потрібен CA-сертифікат Burp у браузері.
| # | Фаза | Що робить атакувальник |
|---|---|---|
| 1 | Reconnaissance | Збирає дані: OSINT, співробітники, сервіси |
| 2 | Weaponization | Готує пейлоад: макрос, експлойт |
| 3 | Delivery | Доставляє: лист, USB, сайт |
| 4 | Exploitation | Спрацьовує вразливість |
| 5 | Installation | Ставить бекдор, закріплюється |
| 6 | Command & Control | Канал керування |
| 7 | Actions on Objectives | Краде, шифрує, руйнує |
Unified Kill Chain — 18 фаз у трьох групах: In (Initial Foothold), Through (Network Propagation), Out (Action on Objectives). Головна відмінність — враховує ітеративність: усередині мережі атакувальник повертається на попередні фази.
| TA0043 | Reconnaissance | TA0006 | Credential Access |
| TA0042 | Resource Development | TA0007 | Discovery |
| TA0001 | Initial Access | TA0008 | Lateral Movement |
| TA0002 | Execution | TA0009 | Collection |
| TA0003 | Persistence | TA0011 | Command and Control |
| TA0004 | Privilege Escalation | TA0010 | Exfiltration |
| TA0005 | Defense Evasion | TA0040 | Impact |
Тактика = навіщо, техніка = як: T1059 Command and Scripting Interpreter, підтехніка T1059.001 PowerShell.
Чотири вершини: Adversary, Capability, Infrastructure, Victim. IOC — факт із минулого (хеш, IP, домен). IOA — поведінка в процесі («Word породив PowerShell»). IOC ловить відоме, IOA — невідоме. TLP: RED (лише учасники), AMBER (організація), GREEN (спільнота), CLEAR (публічно).
| Заголовок | Що дає аналітику |
|---|---|
| From | Те, що бачить користувач — легко підробити |
| Return-Path | Envelope-from, куди підуть бонси |
| Reply-To | Куди піде відповідь. Чужа адреса — класика BEC |
| Received | Ланцюг серверів, читати знизу вгору |
| Message-ID | Домен має збігатися з відправником |
| X-Originating-IP | IP реального відправника, якщо є |
| Authentication-Results | Вердикт SPF / DKIM / DMARC |
| SPF | TXT-запис зі списком дозволених серверів. Перевіряє Return-Path, не From. |
| DKIM | Криптопідпис листа; публічний ключ у DNS. Підтверджує, що вміст не змінено. |
| DMARC | Політика p=none|quarantine|reject + вирівнювання з полем From + звітність. |
Пастка: spf=pass не означає легітимність. SPF перевіряє envelope-домен. Атакувальник реєструє власний домен, коректно налаштовує для нього SPF — і ставить у From будь-що. Ловить це лише вирівнювання DMARC.
Spear phishing — під конкретну людину. Whaling — по керівництву. BEC — компрометація ділового листування, зазвичай про переказ коштів. Clone phishing — копія справжнього листа з підміненим посиланням. Smishing — SMS, Vishing — голос.
.eml/.msg), не скріншот і не пересланий текст.PhishTool · Talos Intelligence · VirusTotal · urlscan.io · Any.run · olevba / oledump (макроси) · exiftool (метадані) · CyberChef. Defang: hxxp://evil[.]com, 192.168.1[.]10 — обов'язковий у звітах.
ip.addr == 10.10.1.5 # будь-який напрям
ip.src == 10.10.1.5 && ip.dst == 8.8.8.8
tcp.port == 445
http.request.method == "POST"
dns.qry.name contains "evil"
tcp.flags.syn == 1 && tcp.flags.ack == 0 # лише SYN → скан
frame contains "password"
!(arp || icmp || dns) # прибрати шум
tls.handshake.type == 1 # ClientHello + SNI
Не плутай: capture filter (BPF, як у tcpdump) відсіює трафік до запису — відкинуте не повернеш. Display filter фільтрує вже записане. Правило: захоплюй широко, фільтруй при аналізі.
Гарячі дії: Follow → TCP Stream, Statistics → Conversations, Statistics → Protocol Hierarchy, File → Export Objects → HTTP.
tcpdump -i eth0 -nn -v # без резолву імен і портів
tcpdump -i eth0 -w capture.pcap # писати у файл
tcpdump -r capture.pcap # читати файл
tcpdump -i eth0 host 10.10.1.5
tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'
tcpdump -A -r capture.pcap # ASCII
tcpdump -c 100 -s 0 -i eth0 # 100 пакетів, повний розмір
TXT.| NIST SP 800-61 | SANS (PICERL) |
|---|---|
| 1 · Preparation | Preparation |
| 2 · Detection & Analysis | Identification |
| 3 · Containment, Eradication & Recovery | Containment |
| Eradication | |
| Recovery | |
| 4 · Post-Incident Activity | Lessons Learned |
Containment буває коротко- і довгостроковим: спершу зупинити поширення, потім підготувати чисте відновлення. Eradication — прибрати причину (малварь, вразливість, скомпрометовані креденшели). Recovery — повернути сервіси й підтвердити, що вони чисті.
Chain of custody — хто, коли, що і в кого прийняв; розрив ланцюга руйнує доказову силу. Працюють із копією, цілісність підтверджують хешем до і після. Часові мітки — у UTC.
| Windows | Linux |
|---|---|
| Event Logs (evtx) | /var/log/* |
| Prefetch — що запускалось | ~/.bash_history |
| Реєстр: Run, Services, USB | crontab, systemd units |
| $MFT, USN Journal | inode timestamps |
| Amcache, ShimCache | ~/.ssh/authorized_keys |
Firewall: stateless (по пакету) vs stateful (пам'ятає з'єднання) vs NGFW (розуміє застосунки). IDS сигналізує, IPS блокує в розриві трафіку. Детект: сигнатурний (точний, не бачить нового) і аномальний (ловить невідоме ціною хибних спрацювань). NIDS — мережа, HIDS — хост.
index=main sourcetype=WinEventLog:Security EventCode=4625
| stats count by Account_Name, src_ip
| where count > 10
| sort -count
index=web status=404 | timechart span=1m count
index=* | top limit=20 src_ip
index=* | rare user
… | dedup host | table _time host user
Порядок незмінний: звузити пошук → порахувати (stats) → відфільтрувати (where) → впорядкувати → показати. where працює лише з полями, які вже створив stats.
event.code:4625 and winlog.event_data.TargetUserName:"admin"
source.ip:10.10.* and not destination.port:443
url.path:*login* and http.response.status_code>=400
alert tcp any any -> $HOME_NET 445 ( \
msg:"SMB exploit attempt"; \
content:"|FF|SMB"; \
sid:1000001; rev:1; )
↑дія ↑проto ↑джерело ↑призначення ↑що шукати ↑id правила
Дії: alert, log, drop, reject. Режими: сніфер, логер, NIDS/NIPS. sid ≥ 1000000 — для власних правил.
| -sS | SYN-скан (напіввідкритий) | -sV | версії сервісів |
| -sT | повне TCP-з'єднання | -O | визначення ОС |
| -sU | UDP-скан | -A | агресивний |
| -p- | усі 65535 портів | -sC | стандартні скрипти |
| -Pn | не пінгувати | -T0…-T5 | швидкість / скритність |
| CyberChef | Base64, hex, XOR, defang, magic-детект кодування |
| CAPA | Визначає можливості бінарника статично, мапить на ATT&CK |
| FlareVM / REMnux | Збірки для реверсу та аналізу малварі |
| Gobuster | Перебір директорій, піддоменів |
| Metasploit | search → use → show options → set → exploit |
Оболонки: reverse shell — жертва підключається до атакувальника (обходить вхідний фаєрвол); bind shell — жертва слухає порт. У логах: nc, /dev/tcp/, несподівані вихідні з'єднання на високі порти.
| Модуль | Про що |
|---|---|
| Network Traffic Analysis | Wireshark Packet Operations, Traffic Analysis, NetworkMiner |
| Network Security Monitoring | Моніторинг периметра, MITM, розвідка, ексфільтрація |
| Web Security Monitoring | SOC-лаби на вебатаках і логах вебсерверів |
| Windows Security Monitoring | Детект типових Windows-атак за логами |
| Linux Security Monitoring | Те саме для Linux |
| Malware Concepts for SOC | Типи малварі, LOTL-атаки, аналіз файлів |
| Threat Analysis Tools | Threat intel на практиці, збагачення |
| SIEM Triage for SOC | Кореляція логів, побудова таймлайну інциденту |
| SOC L1 Capstone Challenges | Наскрізні розслідування |
5 вересня 2026 — коли шлях завершиться за поточним ритмом. Мета працевлаштування стоїть на тому ж вересні, тож між кінцем навчання й співбесідами не лишається нічого: ні SAL1, ні часу на резюме.
Щоб мати запас, потрібно ≈42 години за 10–12 тижнів — це 3,5–4 години на тиждень. Головне не обсяг, а рівність: три місяці простою навесні коштували більше, ніж будь-який окремий важкий модуль.
За квітневим ассесментом провисали мережі (60%), вебсек (50%) і Linux CLI (65%). Мережі й веб відтоді закриті кімнатами — а Linux-практика лишилась найтоншою: 4 кімнати проти 6 по Windows. Модуль Linux Security Monitoring буде найважчим, тож перед ним варто окремо потренувати grep/awk і читання auth.log.
Останній залік курсу — наскрізний: питання з усіх одинадцяти тем разом, без підказки, до якої теми належить кожне. Саме так виглядає реальна співбесіда.