Awesome Malware Persistence
Malware Persistenceを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
技法
永続化技法と検知。
汎用
- MITRE ATT&CK戦術「TA0003 - Persistence」 - MITRE ATT&CKフレームワークにおける永続化戦術の情報。
- Forensic Artifactリポジトリ - デジタルフォレンジック・アーティファクトの、無料でコミュニティ由来、機械可読な知識ベース。
- Sigmaルール - 永続化技法も対象とする検知ルールのリポジトリ。
--filter tag=attack.persistenceなどのフィルターや、特定技法のtag=attack.t1084も使えます。
Linux
- Linux Malware Persistence with Cron - cronジョブを使うLinux永続化についてのブログ記事。
- Linux Persistence Techniques - 永続化技法の一覧。
- Linux Red Team Persistence Techniques - 永続化技法の一覧。
- PANIX - Persistence Against *NIX - Features - 永続化技法の一覧。
- Linux Detection Engineering - A primer on persistence mechanisms - Linux永続化機構の一覧。
- ebpfkit - eBPFを利用するルートキット。
- TripleCross - eBPFを利用するルートキット。
- Linux LKM Persistence - Linuxロード可能カーネルモジュール(LKM)を利用するルートキット。
macOS
- theevilbitのシリーズ「Beyond the good ol’ LaunchAgents」 - LaunchDaemonsやLaunchAgentsに限らないmacOS永続化の一覧。
- KnockKnock - macOSの永続化機構をスキャンするmacOS向け永続化検知ツール。特定の永続化場所はpluginsフォルダーにあり、例としてLaunchItemsやStartupScriptsがあります。
- PoisonApple - PoisonAppleのソースコードから多様なmacOS永続化技法を学ぶ。
- How malware persists on macOS - macOS永続化機構の一覧。
Windows
- Hexacornのブログ - 多数のWindows永続化機構を扱うブログシリーズ「Beyond good ol’ Run key」。
- Autoruns - 自身のクライアントでAutorunsの出力を見ることで、チェック対象のWindows永続化機構を学べます。出力にはカテゴリと検出場所が表示されます。Autorunsの逆アセンブルでは、スキャンされるエントリーの一部が一覧化されています。
- PowerShellによるAutoruns実装 - Windows永続化場所を見つける別の方法は、AutorunsのPowerShell版ソースを調べることです。モジュールファイル末尾にはAutorunsバージョンごとの対象永続化場所の履歴もあります。
- Common malware persistence mechanisms - 異なるベクトルに対する多様な永続化機構を解説。
- Malware persistence techniques - 複数レジストリキーからCOMハイジャックなどの高度なものまで、多様な永続化機構の優れた要約。
- Detecting & Removing an Attacker’s WMI Persistence - WMI永続化の検知・除去に関するブログ記事。
- Windows Persistence using WinLogon - WinLogonの悪用に関するブログ記事。
- Untangling Kovter’s persistence methods - レジストリに隠れるものなど、Kovterの永続化手法に関するブログ記事。別の資料はThreat Spotlight: Kovter Malware Fileless Persistence Mechanism。
- Persistence using GlobalFlags in Image File Execution Options – Hidden from Autoruns.exe - プロセス実行にGlobalFlagを悪用するブログ記事。
- Uncovering a MyKings Variant With Bootloader Persistence via Managed Detection and Response - ブートローダー永続化に関するブログ記事。
- COM/CLSIDハイジャックに関する複数のブログ記事
- Hunting for persistence via Microsoft Exchange Server or Outlook - Microsoft Exchange Server永続化についてのブログ記事。
クラウド
- Shadow Linking: The Persistence Vector of SaaS Identity Threat - 追加のIDプロバイダーを悪用して環境内で永続化する手法。
- Persisting on Entra ID applications and User Managed Identities with Federated Credentials - フェデレーション資格情報を用いてEntra IDアプリケーション・ユーザー管理IDで永続化。
- AWSDoor: Persistence on AWS - AWS向けアクセス永続化ツール。対応する記事は、敵対者がクラウド環境内で身を隠すための技法と、そのAWSでのデプロイを簡略化・自動化するAWSDoor実装を説明します。
ファームウェア
- MoonBounce: the dark side of UEFI firmware - 特定のUEFIブートキットについて深く解説。
データベース
- Database Triggers as Persistence Mechanisms - 永続化をもたらすデータベーストリガーについて深く解説。
永続化の除去
永続化機構を除去するツールとコマンド。以下のツールに加え、永続化を除去するには標準OSコマンドを使います。
汎用
- Awesome Incident Response - セキュリティアナリストとDFIRチームを支援する、セキュリティインシデント対応用ツール・リソースを利用。
Windows
- PowerSponse - 永続化機構のクリーンアップ向け多様なコマンドも対象とするインシデント対応ツール。
- Removing Backdoors – Powershell Empire Edition - WMIインプラントの除去を扱う複数のブログ記事。
- RegDelNull - nullバイトを持つレジストリキーの除去。回避のためrun key等で使われます。
検知テスト
検知をテストするツール。検知をテストするには、Persistence Techniquesで説明される技法を使ってファイルを作成するか、設定変更を手動で追加します。
汎用
- Atomic Red Team - MITRE ATT&CK永続化技法にも対応するレッドチーム攻撃技法フレームワーク。例: T1044「File System Permissions Weakness」。
Linux
- PANIX - 高度にカスタマイズ可能なLinux永続化ツール。Debian、RHEL等のLinuxシステムに対して多様な永続化技法を実行。
- Diamorphine - Linuxカーネル(x86/x86_64、ARM64)向けロード可能カーネルモジュール(LKM)ルートキット。
macOS
- PoisonApple - macOS上で多様な永続化技法を実行。
Windows
- hasherezade persistence demos - 独自検知をテストするため、マルウェアが使う標準外も含む多様な永続化方法。リポジトリにはCOMハイジャックのデモもあります。
予防
悪意ある永続化を防止するツール。
macOS
- BlockBlock - 永続化場所を監視して継続的な保護を提供するツール。KnockKnockに似ていますがブロック向けです。
収集
永続化の収集用ツール。
汎用
- Awesome Forensics - 無料(大半がオープンソース)の優れたフォレンジック分析ツール・リソース一覧を利用。リモートフォレンジックツールなどで大規模に永続化機構を収集できます。
- osquery - クライアント上の永続化機構を照会。
- OSSEC - HIDSのルールとログを使い設定変更を検知。
Linux
把握している限りLinux専用の永続化収集ツールはありません。収集には#Generalのツールまたは標準OSコマンドを使ってください。Linux固有の永続化収集ツールへのリンク提供を歓迎します。
- Linux Security and Monitoring Scripts - Linuxインストールをセキュリティ関連イベント・調査向けに監視できるセキュリティ・監視スクリプト。マルウェア永続化に使われるsystemd unitファイルなどを検出します。
macOS
- KnockKnock - 永続的にインストールされたソフトウェアを見つけ、一般的にそのようなマルウェアを明らかにするツール。ソースコードはGitHubリポジトリも参照。
- Dylib Hijack ScannerまたはDHS - dylibハイジャックに脆弱、またはハイジャック済みのアプリケーションをスキャンするシンプルなユーティリティ。ソースコードはGitHubリポジトリも参照。
Windows
- Autoruns - Windows向けの強力な永続化収集ツール。稼働中のシステムからカテゴリ・永続化情報を収集し、[限定的にはオフラインイメージから] (https://www.sans.org/blog/offline-autoruns-revisited-auditing-malware-persistence/)も収集します。UIとコマンドラインプログラムがあり、出力をCSVに設定して任意のログ収集システムへインポートできます。
- AutorunsToWinEventLog.ps1 - CSV出力をサーバーへコピーする代わりに、AutorunsToWinEventLogスクリプトでAutoruns出力をWindowsイベントログへ変換し、標準のWindowsイベントログ転送に依存できます。
- PowerShell Autoruns - AutorunsのPowerShell版。
- PersistenceSniper - Windowsマシンに埋め込まれた永続化を探すPowerShellモジュール。
- RegRipper - レジストリファイルから多様な永続化機構を直接抽出。
- RECmd - たとえばユーザーのCLSID情報を抽出するUserClassesASEPs設定ファイルを使い、多様な永続化機構を抽出。
- KAPE - targets・modulesを使い多様な事前定義アーティファクトを収集できるツール。KapeFilesには永続化機構が含まれ、LNKファイル、スケジュールタスクファイル、スケジュールタスク一覧、WMIリポジトリ監査モジュールなどがあります。
- PyrsistenceSniper - PythonベースのオフラインWindows永続化検知ツール。KAPEダンプ、Velociraptor収集、マウント済みディスクイメージを対象にオフライン検知を行います。Windows、Linux、macOSで動作。
貢献
貢献を歓迎します!まず貢献ガイドラインを読んでください。