Всем привет! Меня зовут Сергей Кислухин, я работаю аналитиком 3 линии SOC, и мне есть чем поделиться в области реагирования на компьютерные инциденты на хостах под управлением Windows. В своей работе, работники ИБ, особенно те, кто связаны с реагированием на инциденты, форензикой или compromise assessment, обязательно сталкиваются с необходимостью копаться в операционной системе глубже и быстрее, чем это делают остальные. Так, при реагировании на аномальное событие (или его поиске), специалисты, в подавляющих случаях, смотрят только журналы событий систем (локально или же через SIEM). И, если информации оттуда оказывается недостаточно, то прибегают к особым мерам, вроде локальных анализа дампа ОЗУ и анализа Amcache, Prefetch, MFT, AppCompatCache, UserAssist и т.д.  К анализу реестра же прибегают, либо для ручного просмотра какой-то уникальной информации о хосте, либо для поиска событий с помощью сторонних автоматизированных утилит (Sysinternals Autoruns, PersistenceSniper, RegRipper), которые смотрят на определенный набор мест, которыми может воспользоваться злоумышленник. Этот вариант анализа реестра, а также прочие методы, в которых требуется просматривать вручную каждую ветку, я считаю неэффективными, и далее в статье я поясню почему, и покажу пример, как я решил эту проблему.  Краткая теория Проблема Предложенное решение Демонстрация на примерах Выводы Ссылки на источники Реестр Windows это база данных системы, которая отслеживает информацию, касающуюся конфигурации, действий, пользователей и т. д. Состоит он из иерархического набора папок (веток), в которых хранятся другие папки, ключи и их значения. Физически, кусты (корневые ветки) и ветки хранятся в системе, в нескольких местах: В оперативной памяти - куст HKEY_LOCAL_MACHINE\Hardware; %SystemRoot%\System32\Config\* - основные ветки SYSTEM, SAM, SECURITY, SOFTWARE и DEFAULT куста HKEY_LOCAL_MACHINE; C:\Users\%Username%\NTUSER.DAT - файлы кустов реестра пользователей HKEY_CURRENT_USER; %AppData%\Local\Microsoft\Windows\UsrClass.dat - куст HKEY_CLASSES_ROOT (типы информации из подраздела HKEY_LOCAL_MACHINE\Software\Classes);  %SystemRoot%\AppCompat\Programs\Amcache.hve - файл ключа Amcache (содержит информацию о всех исполняемых файлах). Значение ключа может иметь один из типов данных:  Строка (REG_SZ) - Строки с буквенно-цифровыми символами; Многострочное значение (REG_MULTI_SZ) - Список значений, а не однострочный текст; Расширяемое строковое значение (REG_EXPAND_SZ) - Переменные, фактическое значение которых используется операционной системой во время выполнения или при необходимости; Двоичные значения (REG_BINARY); Шестнадцатеричные числа (DWORD и QWORD). ... Так как реестр содержит информацию, связанную с конфигурацией системы, то злоумышленники активно этим пользуются, добавляя или изменяя ветки в своих целях, что бы при определенных действиях выполнялась их злонамеренная программа или предоставлялся несанкционированный доступ к системе. Наиболее популярные ветки реестра, используемые во вредоносных целях описаны распределенно в различных техниках тактики Закрепления в матрице MITRE (Persistence, Tactic TA0003 | MITRE ATT&CK). Так, самой распространенной тактикой считается добавление ссылки на исполняемый файл в ветку реестра автозапуска системы HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run, в результате чего, указанная программа будет выполнятся каждый раз при включении операционной системы. Для анализа реестра существует несколько утилит и способов: Стандартный, встроенный в систему, для работы с реестром хоста, наживую: %SystemRoot%\regedit.exe - позволяет просматривать и изменять, а также импортировать и экспортировать ветки и ключи реестра; Сторонние аналоги, для работы с выгруженными файлами реестра, других хостов: Registry Explorer - с графическим интерфейсом; RECmd - консольный вариант; Анализатор выгруженных файлов или веток реестра, по сторонним алгоритмам: RegRipper; Sysinternals Autoruns (требуется дополнительно выгрузка некоторых библиотек для работы); Анализаторы работающей системы, по сторонним алгоритмам: Sysinternals Autoruns; PersistenceSniper; Анализ изменений, выполняемых процессами системы в событиях безопасности (требуется дополнительная предварительная настройка): События Sysmon: 12 (Создание/удаление объекта реестра), 13 (Задание значения реестра), 14 (Переименование ключа и значения реестра); События Security: 4657 (Значение реестра изменено); Анализ реестра из дампа оперативной памяти: Volatility. Потратив несколько вечеров на консолидацию всей информации из матрицы MITRE и дополнительный сбор, не описанных в ней методов автозапуска ПО, можно получить подобную картину по веткам реестра, которые могут использоваться для вредоносных целей (в скобках, при возможности, указано к какой технике MITRE ATT&CK относится данная ветка реестра): SOFTWARE\Classes\CLSID\* (# Event Triggered Execution: Component Object Model Hijacking T1546/015) SOFTWARE\Classes\*\shell\*\command (# Event Triggered Execution: Change Default File Association T1546/001) SOFTWARE\Microsoft\Active Setup\Installed Components\ (# Boot or Logon Autostart Execution: Active Setup T1547/014) SOFTWARE\Microsoft\Active Setup\Installed Components\*\ShellComponent () SOFTWARE\Microsoft\Command Processor\AutoRun () SOFTWARE\Microsoft\Ctf\LangBarAddin\*\FilePath () SOFTWARE\Microsoft\Internet Explorer\Extensions\*\Exec () SOFTWARE\Microsoft\Internet Explorer\Extensions\*\Script () SOFTWARE\Microsoft\Netsh (# Event Triggered Execution: Netsh Helper DLL T1546/007) SOFTWARE\Microsoft\Office\*\Word\Options\GlobalDotName (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Word\Security\Trusted Documents (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Word\Security\Trusted Locations\*\AllowSubFolders (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Word\Security\Trusted Locations\*\Path (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Word\Security\VBAWarning (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Common\General\SharedTemplates (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office\*\Common\General\UserTemplates (# Office Application Startup: Add-ins T1137/006) SOFTWARE\Microsoft\Office test\Special\Perf (# Office Application Startup: Office Test T1137/002) SOFTWARE\Microsoft\Windows CE Services\AutoStartOnConnect\MicrosoftActiveSync () SOFTWARE\Microsoft\Windows CE Services\AutoStartOnDisconnect\MicrosoftActiveSync () SOFTWARE\Microsoft\Windows nt\CurrentVersion\Appcompatflags\Custom (# Event Triggered Execution: Application Shimming T1546/011) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Appcompatflags\Installedsdb (# Event Triggered Execution: Application Shimming T1546/011) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options (# Event Triggered Execution: Accessibility Features T1546/008) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\*\VerifierDlls () SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot () SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks (# Scheduled Task/Job: Scheduled Task T1053/005) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree (# Scheduled Task/Job: Scheduled Task T1053/005) SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\ (# Event Triggered Execution: Image File Execution Options Injection T1546/012) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\Install\Software\* () SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001; # Event Triggered Execution: AppInit DLLs T1546/010) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\IconServiceLib () SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Load (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Run (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\ (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AppSetup (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GpExtensions\*\DllName (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Taskman (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\VmApplet (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\SYSTEM\Shell (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Run (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\StartupApproved\Run (# RegRipper run.pl) SOFTWARE\Microsoft\Windows\CurrentVersion\StartupApproved\Run32 (# RegRipper run.pl) Software\Microsoft\Windows\CurrentVersion\StartupApproved\StartupFolder (# RegRipper run.pl NTUSER) SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs\ReflectDebugger () SOFTWARE\Policies\Microsoft\Windows\Control Panel\Desktop\SCRNSAVE.EXE (# Event Triggered Execution: Screensaver T1546/002) SOFTWARE\Policies\Microsoft\Windows\System\Scripts (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Logoff\Script () SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Logon\Script () SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Shutdown\Script () SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\Script () SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\ (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001) SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run (# RegRipper run.pl) SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ (# Event Triggered Execution: Image File Execution Options Injection T1546/012) SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows (# Event Triggered Execution: AppInit DLLs T1546/010) SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_Dlls () SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon\ (# Boot or Logon Autostart Execution: Winlogon Helper DLL T1547/004) SYSTEM\ControlSet001\Control\BootVerificationProgram\ImagePath () SYSTEM\ControlSet001\Control\Print\Environments\[Windows architecture]\Print Processors\*\Driver (# Boot or Logon Autostart Execution: Print Processors T1547/012) SYSTEM\ControlSet001\Control\Lsa\Notification Packages (# Modify Authentication Process: Password Filter DLL T1556/002) SYSTEM\ControlSet001\Control\Lsa\OSConfig\Security Packages (# Boot or Logon Autostart Execution: Authentication Package T1547/002; # Boot or Logon Autostart Execution: Security Support Provider T1547/005) SYSTEM\ControlSet001\Control\Lsa\Security Packages (# Boot or Logon Autostart Execution: Authentication Package T1547/002; # Boot or Logon Autostart Execution: Security Support Provider T1547/005) SYSTEM\ControlSet001\Control\NetworkProvider\Order (# Modify Authentication Process: Network Provider DLL T1556/008) SYSTEM\ControlSet001\Control\Print\Environments\[Windows architecture]\Print Processors\[user defined]\Driver (# Boot or Logon Autostart Execution: Print Processors T1547/012) SYSTEM\ControlSet001\Control\Print\Monitors (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001; # Boot or Logon Autostart Execution: Port Monitors T1547/010) SYSTEM\ControlSet001\Control\SafeBoot\AlternateShell () SYSTEM\ControlSet001\Control\ServiceControlManagerExtension () SYSTEM\ControlSet001\Control\Session Manager (# Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder T1547/001; # Event Triggered Execution: AppCert DLLs T1546/009) SYSTEM\ControlSet001\Control\Session Manager\AppCertDLLs\* (# Event Triggered Execution: AppCertDLLs T1546/009) SYSTEM\ControlSet001\Control\Session Manager\Environment\Path (# Hijack Execution Flow: Path Interception by PATH Environment Variable T1574/007) SYSTEM\ControlSet001\Control\Session Manager\BootExecute () SYSTEM\ControlSet001\Control\Session Manager\Execute () SYSTEM\ControlSet001\Control\Session Manager\S0InitialCommand () SYSTEM\ControlSet001\Control\Session Manager\SetupExecute () SYSTEM\ControlSet001\Services (# Hijack Execution Flow: Services Registry Permissions Weakness T1574/011; # Create or Modify SYSTEM Process: Windows Service T1543/003) SYSTEM\ControlSet001\Services\*\NetworkProvider (# Modify Authentication Process: Network Provider DLL T1556/008) SYSTEM\ControlSet001\Services\W32Time\TimeProviders\ (# Boot or Logon Autostart Execution: Time Providers T1547/003) SYSTEM\ControlSet001\Services\servicename\Parameters\ServiceDll (# Hijack Execution Flow: Services Registry Permissions Weakness T1574/011) SYSTEM\ControlSet001\services\TermService\Parameters\ (# Server SOFTWARE Component: Terminal Services DLL T1505/005) SYSTEM\ControlSet001\Control\Terminal Server\Wds\rdpwd\StartupPrograms () SYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp\InitialProgram () SYSTEM\Setup\CmdLine () NTUSER.DAT\Environment\UserInitMprLogonScript (# Boot or Logon Initialization Scripts: Logon Script` (Windows) T1037/001) NTUSER.DAT\Control Panel\Desktop\scrnsave.exe (# Event Triggered Execution: Screensaver T1546/002) NTUSER.DAT\Software\* (Все ключи выше, начинающиеся с SOFTWARE) NTUSER.DAT\System\* (Все ключи выше, начинающиеся с SYSTEM) COR_ENABLE_PROFILING, COR_PROFILER и COR_PROFILER_PATH (# Hijack Execution Flow: COR_PROFILER T1574/012)  Как видно мест много и есть множество способов залезть внутрь реестра для их анализа, но ни один из них (по крайне мере без дополнительных доработок) не является идеальным и универсальным, т.к.: Использовать утилиты для ручного просмотра реестра - неразумно из-за больших времязатрат на анализ каждого ключа, особенно если нужно исследовать много хостов; Используя анализаторы, которые автоматически парсят файлы реестра (RegRipper, Autoruns, PersistenceSniper), у Вас никогда не будет уверенности, что заложенные алгоритмы проверяют все известные Вам места закрепления, особенно учитывая частоту их обновлений (как разработчиком, так и Вами). Как пример, я добавил вручную EICAR тестовый вирус в контекстное меню изменения текстовых файлов и запустил AtomicTest для техники T1546.011, и ни один их этих приемов, Autoruns не показал: Если полагаться на события безопасности с изменениями, то они могут либо вообще отсутствовать (например удалены злоумышленником), либо быть не настроены на определенные ветки. Таким образом, идеальное и универсальное решение должно подчиняться следующим критериям: Уметь работать с выгруженными файлами реестра (доступ к работающему хосту не всегда будет, а выгрузить файлы можно даже с выключенных систем, с помощью Live CD); Автоматически парсить файлы реестра, в соответствии с легко добавляемыми правилами парсинга (на случай обнаружения новых мест закрепления, которые не были учтены в прошлой версии); Уметь парсить много файлов реестра с разных хостов (как для compromise assessment, так и для массового компьютерного инцидента); Иметь удобный человекочитаемый вид и не требовать много действий для обработки (чтобы не было больно работать). В результате проб и ошибок был реализован следующий автоматизированный конвейер по обработке файлов реестра: С хоста(-ов) выгружаются файлы реестра (в моем случае с помощью KAPE, в каталог E:\temp\%имя_хоста%\);  Скриптом на Python перемещаются файлы реестра в каталог: E:\temp\%имя_хоста%\Reg\, а файлы реестра NTUSER и UsrClass каждого пользователя, переименовываются на имя пользователя владельца и оказываются в каталоге: E:\temp\%имя_хоста%\NTUSER\ и E:\temp\%имя_хоста%\UsrClass\, соответственно (если хостов немного, то можно и вручную сделать). В каталогах должны также лежать файлы %Реестр%.LOG1 и %Реестр%.LOG2, для корректного парсинга сырых данных.  Далее запускается конвейер скриптов на Python: Вместо сотни веток реестра, указанных выше в статье, выгружается всего несколько десятков, из-за того, что убраны многие ветки, у которых есть общая родительская. Выгружать около сотни веток оказалось довольно долгим занятием (на каждый компьютер тратилось по 20 минут), т.к. на каждую ветку приходится отдельный запуск утилиты и проверка наличия данной ветки в файле реестра. В текущей реализации скриптов, на каждую систему тратится на обработку, в среднем, по 3 минуты. При необходимости, в код программы легко вносятся дополнительные ветки реестра, при обнаружении новых техник, которые ее будут использовать.     В результате мы получаем существенный набор ключей реестра на анализ в следующем виде (названия полей легко меняются по Вашему желанию): После проверки корректности обработки сырых данных в json файл, все файлы отправляются в ElasticStack (вручную, с помощью API или FileBeat) или другую, удобную Вам SIEM систему. В ElasticStack далее производится анализ: C помощью фильтра по всем местам закрепления, или в котором ищется что-то конкретное (1). В реальных ситуациях можно искать в 3 захода: два захода с самыми шумными фильтрами (*Software*Classes*CLSID* (T1546/015) и *Software*Classes*shell*command (T1546/001)), и один со всем остальным.  Удобный поиск проводится с помощью визуализации, в которой формируется таблица (2) по полю file.path (3), которая равна выполняемой команде / ссылке на файл (Группировка событий). Отсортировав по возрастанию количества раз встречаемости (4), можно легко найти исполняемые файлы, которые не должны присутствовать на компьютере (наиболее встречаемые команды = бОльшая вероятность ее легитимности). Затем, поправив фильтр, что бы найти только нужные файлы, можно перейти в список всех событий для более глубокого анализа (5). В событиях уже показывается в какой ветке реестра находится нужная ссылка/команда и когда она была добавлена, из чего можно делать выводы - легитимно это или нет.  Здесь показан лишь упрощенный поиск для примера, а то время как реальные кейсы поиска ограничены только Вашей фантазией. Кстати, фильтр для поиска не шумных мест закрепления:  Пример того как в моем решении видны изменения контекстного меню - представлены выше.  Для дальнейшей демонстрации были взяты 3 техники, применённые с помощью AtomicTests, которые не детектируются с помощью Autoruns: T1546.011 (Злоупотребление подсистемой совместимости приложений), рассмотренная ранее в разделе с Проблемой; T1546.002 (Манипуляция параметрами экранной заставки); T1546.007 (Злоупотребление вспомогательными библиотеками DLL Netsh): Собрав, обработав и отправив в ElasticStack все необходимые данные, при поиске всех мест закрепления (кроме 2 самых шумящих), получаем следующее:  Необходимые нам пути к файлам и аномальные ключи находятся наверху списка. Совершив поиск по этим событиям, сразу находим где находятся данные значения в реестре:  Для увеличения удобства дальнейшего поиска, все легитимные значения для Вашего "золотого" образа систем Вашей организации легко добавляются в исключения На текущий момент существует множество утилит для анализа реестра Windows на поиск мест закрепления в нем вредоносного ПО. Наиболее удобным и эффективным является Sysinternals Autoruns, однако как было продемонстрировано, даже он не способен детектировать все, что нам нужно.  Для решения этой проблемы был продемонстрирован автоматизированный конвейер скриптов по обработке сырых файлов реестра Windows в SIEM-понятный формат данных. Далее, в SIEM-е, при правильно настроенных исключениях, поиск вредоноса не составит большого труда. На обратной стороне монеты же, безусловно выделяется бОльшая сложность в подготовке и дальнейшем анализе, по сравнению с тем же Autoruns. Так что если в Вашей работе, скорость анализа играет решающую роль, то предложенное решение можно рассматривать в качестве дополнения к существующим решениям, в которых можно проводить первичный анализ. Изучаем Adversarial Tactics, Techniques & Common Knowledge (ATT@CK). Enterprise Tactics. Часть 3 / Хабр Windows Registry, Data Source DS0024 | MITRE ATT&CK® Uncommon Registry Persistence Change | Elastic Security Solution [8.10] | Elastic Analysis of Malicious Security Support Provider DLLs - PDF Free Download Office Templates and GlobalDotName - A Stealthy Office Persistence Technique - 0xShukruN Windows Registry: Malware Persistence T1546.011 - Explore Atomic Red Team T1546.002 - Explore Atomic Red Team T1546.007 - Explore Atomic Red Team  Информационная безопасность