Current section

Files

Jump to
ca lib cmdb-profiles erpuno mitre.ex
Raw

lib/cmdb-profiles/erpuno/mitre.ex

defmodule CA.Mitre do
@moduledoc """
Таксономія технік та тактик за фреймворком MITRE ATT&CK (Enterprise).
Цей модуль слугує довідником для маппінгу загроз та інцидентів інформаційної безпеки,
надаючи структурований перелік ключових етапів кібератак (Kill Chain).
"""
@doc """
Повертає структуру тактик (Tactics) та ключових технік (Techniques) MITRE ATT&CK.
Reconnaissance (Розвідка)
Resource Development (Розробка ресурсів)
Initial Access (Початковий доступ)
Execution (Виконання)
Persistence (Закріплення)
Privilege Escalation (Підвищення привілеїв)
Defense Evasion (Обхід захисту)
Credential Access (Доступ до облікових даних)
Discovery (Розвідка в мережі)
Lateral Movement (Бічне переміщення)
Collection (Збір даних)
Command and Control (Управління та контроль)
Exfiltration (Ексфільтрація)
Impact (Вплив - наприклад, Ransomware)
"""
@spec enterprise_matrix() :: map()
def enterprise_matrix do
%{
reconnaissance: %{
id: "TA0043",
name: "Reconnaissance (Розвідка)",
desc: "Збір інформації про цільову організацію для підготовки до атаки.",
techniques: [
%{id: "T1592", name: "Gather Victim Host Information", desc: "Збір даних про хости."},
%{
id: "T1589",
name: "Gather Victim Identity Information",
desc: "Збір даних про співробітників (імена, email)."
},
%{id: "T1595", name: "Active Scanning", desc: "Сканування мережі та вразливостей."}
]
},
resource_development: %{
id: "TA0042",
name: "Resource Development (Розробка ресурсів)",
desc:
"Створення, купівля або крадіжка ресурсів, необхідних для атаки (домени, інфраструктура).",
techniques: [
%{id: "T1583", name: "Acquire Infrastructure", desc: "Оренда VPS, реєстрація доменів."},
%{
id: "T1588",
name: "Obtain Capabilities",
desc: "Придбання експлойтів, малварі або сертифікатів."
},
%{
id: "T1608",
name: "Stage Capabilities",
desc: "Розміщення шкідливого ПЗ на ресурсах (Watering Hole)."
}
]
},
initial_access: %{
id: "TA0001",
name: "Initial Access (Початковий доступ)",
desc: "Вектори, які використовує зловмисник для отримання доступу до мережі.",
techniques: [
%{id: "T1189", name: "Drive-by Compromise", desc: "Компрометація через веб-браузер."},
%{
id: "T1190",
name: "Exploit Public-Facing Application",
desc: "Експлуатація вразливостей публічних сервісів."
},
%{id: "T1566", name: "Phishing", desc: "Фішинг (Spear Phishing, Attachment, Link)."},
%{
id: "T1078",
name: "Valid Accounts",
desc: "Використання дійсних облікових записів (в т.ч. дефолтних)."
}
]
},
execution: %{
id: "TA0002",
name: "Execution (Виконання)",
desc: "Запуск шкідливого коду на локальній або віддаленій системі.",
techniques: [
%{
id: "T1059",
name: "Command and Scripting Interpreter",
desc: "PowerShell, Bash, CMD, Python, AppleScript."
},
%{
id: "T1203",
name: "Exploitation for Client Execution",
desc: "Експлуатація клієнтського ПЗ (Office, Browser)."
},
%{
id: "T1053",
name: "Scheduled Task/Job",
desc: "Використання Cron або Windows Task Scheduler."
},
%{id: "T1047", name: "Windows Management Instrumentation", desc: "Виконання через WMI."}
]
},
persistence: %{
id: "TA0003",
name: "Persistence (Закріплення)",
desc: "Збереження доступу до системи попри перезавантаження або зміну облікових даних.",
techniques: [
%{
id: "T1547",
name: "Boot or Logon Autostart Execution",
desc: "Ключі реєстру Run/RunOnce, Startup папки."
},
%{
id: "T1543",
name: "Create or Modify System Process",
desc: "Створення системних служб (Services, Daemons)."
},
%{
id: "T1546",
name: "Event Triggered Execution",
desc: "WMI Event Subscriptions, IFEO."
},
%{
id: "T1505",
name: "Server Software Component",
desc: "Встановлення веб-шеллів (Web Shell)."
}
]
},
privilege_escalation: %{
id: "TA0004",
name: "Privilege Escalation (Підвищення привілеїв)",
desc: "Отримання вищих прав доступу (SYSTEM, root).",
techniques: [
%{
id: "T1548",
name: "Abuse Elevation Control Mechanism",
desc: "Обхід UAC, SUID/SGID, sudo caching."
},
%{
id: "T1134",
name: "Access Token Manipulation",
desc: "Маніпуляція маркерами (Token Stealing)."
},
%{
id: "T1068",
name: "Exploitation for Privilege Escalation",
desc: "Експлуатація вразливостей ОС або ядра."
},
%{id: "T1574", name: "Hijack Execution Flow", desc: "DLL Hijacking, LD_PRELOAD."}
]
},
defense_evasion: %{
id: "TA0005",
name: "Defense Evasion (Обхід захисту)",
desc: "Техніки уникнення виявлення засобами захисту (Антивіруси, EDR/XDR).",
techniques: [
%{
id: "T1140",
name: "Deobfuscate/Decode Files or Information",
desc: "Деобфускація коду під час виконання."
},
%{
id: "T1070",
name: "Indicator Removal on Host",
desc: "Очищення журналів (Event Logs), видалення файлів."
},
%{
id: "T1036",
name: "Masquerading",
desc: "Маскування під легітимні системні процеси (напр., svchost.exe)."
},
%{
id: "T1055",
name: "Process Injection",
desc: "Ін'єкція коду у легітимні процеси (DLL Injection, Process Hollowing)."
},
%{
id: "T1218",
name: "System Binary Proxy Execution",
desc: "Використання LOLBins (rundll32.exe, mshta.exe)."
}
]
},
credential_access: %{
id: "TA0006",
name: "Credential Access (Доступ до облікових даних)",
desc: "Викрадення паролів, хешів, квитків Kerberos або токенів.",
techniques: [
%{
id: "T1110",
name: "Brute Force",
desc: "Перебір паролів (Credential Stuffing, Password Spraying)."
},
%{
id: "T1003",
name: "OS Credential Dumping",
desc: "Екстракція з LSASS, SAM, /etc/shadow."
},
%{
id: "T1558",
name: "Steal or Forge Kerberos Tickets",
desc: "Golden/Silver Ticket, Kerberoasting."
},
%{id: "T1056", name: "Input Capture", desc: "Keylogging, перехоплення вводу з екрану."}
]
},
discovery: %{
id: "TA0007",
name: "Discovery (Розвідка в мережі)",
desc: "Вивчення скомпрометованої системи та внутрішньої мережі.",
techniques: [
%{
id: "T1087",
name: "Account Discovery",
desc: "Збір списків локальних або доменних користувачів."
},
%{
id: "T1046",
name: "Network Service Scanning",
desc: "Сканування відкритих портів у внутрішній мережі."
},
%{
id: "T1082",
name: "System Information Discovery",
desc: "Отримання даних про версію ОС, архітектуру."
},
%{
id: "T1016",
name: "System Network Configuration Discovery",
desc: "Збір даних про IP, маршрутизацію, DNS."
}
]
},
lateral_movement: %{
id: "TA0008",
name: "Lateral Movement (Бічне переміщення)",
desc: "Просування по мережі від однієї системи до іншої.",
techniques: [
%{
id: "T1210",
name: "Exploitation of Remote Services",
desc: "Експлуатація вразливостей у віддалених сервісах (SMB, RDP)."
},
%{
id: "T1550",
name: "Use Alternate Authentication Material",
desc: "Pass-the-Hash, Pass-the-Ticket."
},
%{
id: "T1021",
name: "Remote Services",
desc: "Використання легітимних RDP, SSH, VNC, WinRM."
}
]
},
collection: %{
id: "TA0009",
name: "Collection (Збір даних)",
desc: "Пошук та агрегація цінної інформації для викрадення.",
techniques: [
%{
id: "T1560",
name: "Archive Collected Data",
desc: "Архівація та шифрування даних перед викраденням."
},
%{
id: "T1119",
name: "Automated Collection",
desc: "Автоматизований пошук файлів за розширеннями."
},
%{
id: "T1114",
name: "Email Collection",
desc: "Збір електронних листів з локальних клієнтів або Exchange сервісу."
},
%{id: "T1056", name: "Input Capture", desc: "Перехоплення натискань клавіш та екрану."}
]
},
command_and_control: %{
id: "TA0011",
name: "Command and Control (Управління та контроль)",
desc: "Комунікація шкідливого ПЗ із серверами зловмисників (C2).",
techniques: [
%{
id: "T1071",
name: "Application Layer Protocol",
desc: "Комунікація через веб-протоколи (HTTP/HTTPS, DNS)."
},
%{
id: "T1573",
name: "Encrypted Channel",
desc: "Шифрування трафіку C2 для уникнення IDS."
},
%{
id: "T1090",
name: "Proxy",
desc: "Використання проксі-серверів для приховування IP."
},
%{
id: "T1105",
name: "Ingress Tool Transfer",
desc: "Завантаження додаткових інструментів з C2 сервера."
}
]
},
exfiltration: %{
id: "TA0010",
name: "Exfiltration (Ексфільтрація)",
desc: "Викрадення даних з мережі організації.",
techniques: [
%{
id: "T1041",
name: "Exfiltration Over C2 Channel",
desc: "Передача даних через існуючий канал управління."
},
%{
id: "T1567",
name: "Exfiltration Over Web Service",
desc: "Вивантаження даних у хмарні сховища (Google Drive, Dropbox)."
},
%{
id: "T1048",
name: "Exfiltration Over Alternative Protocol",
desc: "Використання інших протоколів (ICMP, DNS tunneling)."
}
]
},
impact: %{
id: "TA0040",
name: "Impact (Вплив)",
desc: "Деструктивні дії: шифрування, видалення, саботаж систем.",
techniques: [
%{
id: "T1485",
name: "Data Destruction",
desc: "Незворотне видалення або затирання даних."
},
%{
id: "T1486",
name: "Data Encrypted for Impact",
desc: "Шифрування файлів для вимагання викупу (Ransomware)."
},
%{
id: "T1490",
name: "Inhibit System Recovery",
desc: "Видалення тіньових копій (vssadmin), вимкнення відновлення."
},
%{
id: "T1498",
name: "Network Denial of Service",
desc: "DDoS атаки для виведення систем з ладу."
}
]
}
}
end
@doc """
Функція для пошуку техніки за її ідентифікатором (наприклад, "T1003").
Повертає карту знайденої техніки та назву тактики, до якої вона належить.
"""
@spec find_technique(String.t()) :: map() | nil
def find_technique(technique_id) do
enterprise_matrix()
|> Enum.find_value(fn {tactic_key, tactic_data} ->
case Enum.find(tactic_data.techniques, &(&1.id == technique_id)) do
nil -> nil
technique -> Map.put(technique, :tactic, tactic_key)
end
end)
end
end