3週間前、3回目のラスベガス訪問してきました。 個人的に印象に残ったセッションをメモしたので、公開しようと思います。
完全に自分のメモ用の自己満&時間がなかったのでほぼノーチェックです。多分、自分の理解力不足による若干の間違いがあるので、詳しく知りたい方はスライドかGithubあたりの一次ソースを見ることを推奨します。
自己満のメモなので、参加記でよくある写真とかも載せてないので、完全に技術が好きな人&薄くどういう発表が知りたい人向けの内容です。
下に載せた以外も沢山面白いのがありました、単純にまとめる時間がなかっただけです(すみません・・・)。
あと、今回載せなかったですが、BSides Las VegasもBlack Hatの前にあり、こちらも面白いカンファレンスです。参加チケットも安く、アットホームな雰囲気もあり、コストも考えると個人的には一番満足度が高いです。単純に発表準備があったので他の人の発表を聞く心の余裕がなかったのでBSidesはカットしました。
Blackhat
I’m in Your Logs Now, Deceiving Your Analysts and Blinding Your EDR
ETWを悪用してEDRをBypassする手法についての発表。
ETW(Event Tracing for Windows)はOSのイベントログ生成やEDRのテレメトリ収集に不可欠な仕組みを悪用する手法。 偽のイベントを挿入してアナリストを混乱させたり、イベント生成を溢れさせることでEDR(例: Microsoft Defender for Endpoint)が後続のログを無視し、実際の脅威を見逃す状態にできる。
- Event Tracing for Windows (ETW) について 主要コンポーネント:
- イベントプロバイダー (Event Providers): イベントを生成するアプリケーションやドライバ。
- トレースセッション (Trace Sessions): イベントを収集・バッファリングする。
- イベントコンシューマー (Event Consumers): セッションからイベントをリアルタイムで受け取るか、ログファイルから読み込む。
ETWでユーザアプリケーションやカーネルDriverのイベントをトレースすることができる。
- ETWの悪用について
よくあるETWを利用した攻撃は、ntdllのEtwEventWrite Functionの上書き、ETLファイルの書き換え、関数をフックして特定のイベントをブロック、tracing sessionsをDisableする等がある。 Eventを書くことができるので、EDRを混乱させることができる。この研究ではETWを偽装・Injectionして攻撃を行う。
- Eventの偽装とInjection
ETW ProvidersはGUIDで管理され、どのプロセスでも任意のGUIDでプロバイダーを登録できる。そのため、正規のProvider(例えばMicrosoft-Windows-LDAP-Client)になりすますことが可能。 ほとんどのConsumerはproviderのGUID,EventID,payload, processIDを確認する。EventのPIDはKernelで管理されているので、PIDの偽装はできない。
そこで、イベントキャップ(収集するイベント数の上限)を悪用する。多くのEDRはパフォーマンスを維持するために、イベントキャップがある。 大量のFakeイベントを特定のプロバイダーから作成し続けて、BlindSpotが発生することを試みる。 このイベントキャップに達すると、EDRはそのプロバイダーからの新しいイベントを受け付けなくなるので、同じプロバイダーを利用する正規の攻撃(例: ランサムウェアの活動)が発生しても、そのログはEDRに送信されず、検知回避が可能になる。 また、ETWセッションのバッファを意図的にオーバーフローさせて、EDRのBlindSpotを作ることも可能である。
- 結論と対策
現在のETWのセキュリティモデルでは、ログの信頼性を完全に保証することは困難。Microsoftはこの問題に対し、一部の修正を行なったが、MDEがテレメトリ収集に利用する多くのプロバイダーは依然としてこの攻撃に対して脆弱なままである。対策としては、偽イベントの生成を検知するようなカスタムルールを作成、異常なログスパイクを監視する等がある。
所感:ETWについての理解があまりなかったので難しかったが、こういったBypass手法があるのかと非常に面白かった。
Death by Noise- Abusing Alert Fatigue to Bypass the SOC (EDR Edition)
こちらもログを悪用して、SOC (EDRをBypass)する手法についての発表。
SOCにおいて、1日1,000〜10,000件以上のアラートの99%は誤検知や良性であり、多くは中・低深刻度 -> 無視や抑制の対象。 SOCはデフォルトEDR設定に依存することが多く、攻撃者は回避やダウングレードを狙う。
- Linux攻撃シナリオ
環境: EC2上のDocker (Spring Cloud Function, CVE-2022-22963), EDR導入済み
攻撃チェーン: Exploit -> セッション確立 -> コンテナ脱出 -> 永続化 -> データ窃取
- Try 1: socatをDLしてリバースシェル -> 高/クリティカル検知でブロック
Mutation1: Rust製Beaconでシグネチャ回避
- Try 2: Custom Beacon+ContainerEscape -> ContainerEscape検知
Mutation2: Container Escapeコードを分割して痕跡削減
Try 3: Escape成功、cronで永続化、S3からデータ窃取 -> Falcon/Defenderは検知せず
Windows攻撃シナリオ
環境: 通常ユーザー+管理者権限PC、脆弱サービス、Office/Slack、EDR導入済み
攻撃チェーン: ISO/偽PDF -> セッション確立 -> サービス列挙 -> 権限昇格/永続化 -> データ窃取
Try 1: LNK+PowerShell -> Defenderは低、Falconは中でブロック Mutation: Rust/Node.jsで改変、難読化はEntropyを増やさないために行わない、Slackハイジャック(LOTL)。 マルウェアコードが入ったコードで上書きしてElectronAppを起動(ハイジャック)。
Try 2: Slack起動時にnodeモジュール差し込み -> 権限昇格とデータ窃取成功
まとめとして、攻撃者側: Living-off-the-land (正規ツール利用)、Footprint削減、Abstraction (ツールラップでシグネチャ回避)、Masquerading (正規プロセス偽装)でEDRを回避を行う。 SOCの課題は、攻撃者の検知回避技術のためカスタムルールは必要だが、検知しない、もしくは大量のアラートが発生することになりがち。そのため、自動化とAIエージェントが必須。
LLMDYara: LLMs-Driven Automated YARA Rules Generation with Explainable File Features and DNAHash
LLMを利用して、自動でYARAルールを作成するという発表。
増加するマルウェア攻撃、手作業によるルール作成の非効率性が課題で、YARAはマルウェア検知に広く利用されるツールだが、誤検知率の高さ等の課題が存在する。 そこで、大規模言語モデル(LLM)と専門家知識を組み合わせた新しい自動YARAルール生成システム LLMDYaraを提案。
具体的な流れは以下の通り。
特徴抽出:文字列、関数、ファイルDNAHashの特徴を事前抽出。
特徴フィルタリング:ホワイトリストDBやDNAHashと照合することでノイズを除去し、特徴品質を向上
LLM活用した特徴決定
文字列特徴を学習データに与えてファインチューニングして、LLMDYaraモデルを作成 Yaraルールを作成するためのTaskリスト、Malwareファミリーのクラスタリング結果、特徴抽出した疑似コードを渡して、Yaraルール生成とタグ付を行う
- 最終ルール生成:opcodeの特徴や文字列の特徴、DNA Hashに基づき、スコアを超えたら最終的なYaraルール作成
最後に実験結果、2.3 millionのSampleでテスト実施をして、yarGen(YARAルールのジェネレーター)とLLMDYaraとの比較。
所感:手法の流れやPrompt等が具体的に記載されていて、非常にわかりやすい資料だと思った。資料は以下。
https://i.blackhat.com/BH-USA-25/Presentations/USA-25-Wang-LLMDYara-LLMs-Driven-Automated-YARA.pdf
From Prompts to Pwns: Exploiting and Securing AI Agents
AIエージェントへのコマンド実行やマルウェア感染を引き起こす攻撃手法についての発表。
AIエージェントは自然言語を通じて外部ツールやシステムと連携できるため、従来のアプリケーションよりも広範な攻撃対象領域を持つ。特に「信頼されない入力 → LLM解釈 → ツール実行」という普遍的な構造が、攻撃者にとって利用しやすい経路となる。発表では、プロンプトインジェクションや間接的 プロンプトインジェクション(RAG経由での悪性データ注入)といった攻撃が、どのようにLLMの判断を操作し、不正コマンドやマルウェア実行へ誘導できるかをデモ動画を紹介しながら発表していた。
PandasAIにおける CVE-2024-12366 では、自然言語で与えられた「データ解析の指示」がそのままコード生成・実行に繋がり、任意コード実行を引き起こす危険性があった。また、OSS Watering Hole攻撃ではGitHub Issueにマルウェアコードをダウンロード・実行するコマンドをIssueに追加してPublish、このIssueを解決しようとしたAIAgentがマルウェアコードを実行して感染する。 IDEに統合されたエージェント(Cursorなど)においては、Agentのルールを記載できる設定ファイル.cursorrulesやコードコメントを介して不正なルールや指示を挿入し、マルウェアコードを実行することができる。
防御策としては、従来のアプリケーションセキュリティ原則をAIエージェントにも適用し、プロンプトインジェクションの発生を前提に入力検証・信頼境界の分離・LLM出力の制御(リンクやコードの自動実行禁止)を徹底することが重要。さらに、権限の最小化とサンドボックス化による被害局所化を行い、多層防御(Defense in Depth)を導入することで安全性を高められる。
発表資料は以下。
https://i.blackhat.com/BH-USA-25/Presentations/US-25-Lynch-From-Prompts-to-Pwns.pdf
Autonomous Timeline Analysis and Threat Hunting: An AI Agent for Timesketch
デジタルフォレンジック分析を自律的に行う AI エージェント Sec‑Gemini の設計と活用についての発表。 Sec-GeminiはフォレンジックツールであるTimesketchと統合された自律的AIエージェントである。
Sec-Geminiは探索グラフ(Exploration Graph)を導入して、調査の進行状況・取得ログ・発見事項を構造的に記録する。この仕組みにより、ClasicなAgentの欠点である、AIが途中で文脈を失ったり、Contextがオーバーフローするといった課題を解決している。
探索グラフは「調査方向」「ログ取得操作」「取得ログに関する観察」「発見事項」という 4 種類のノードで構成され、エージェントは以下の 3 段階でグラフを更新しながら調査を進める。
- 最適な方向の優先順位付けとノードの追加
- ログ取得操作の実行と結果ノードの追加
- 取得ログの解析と観察・発見内容のノード追加
これらを繰り返すことで、探索の深度と網羅性を両立させ、進行中の調査の「見える化」と「説明可能性(Explainable)」を実現。
性能評価では、数百万件規模のログから重要指標の53%を3ドル程度で抽出できることが確認され、Forensics CTFシナリオにおいても、シナリオ情報ありで60%、なしでも50%の重要指標を検出する成果を上げた。
Invitation Is All You Need! Invoking Gemini for Workspace Agents with a Simple Google Calendar Invite
Google Gemini(ウェブ、モバイル、Android上のGoogleアシスタント)を標的とした Targeted Promptware Attackについての発表。
まず、メールの件名やGoogleカレンダーの招待タイトルなどに 間接プロンプトインジェクション を埋め込んだリソース(招待、メール、共有ドキュメントなど)を被害者に送信。 被害者が「今週の予定は?」などと Gemini に問い合わせると、その文脈で悪意あるプロンプトが実行され、Geminiが内蔵エージェントや権限を悪用して以下のような多数の悪質な行為を引き起こすことが可能になる。
- スパム送信やフィッシング
- 有害なコンテンツの生成(Geminiに特定の役割を演じさせ、事前に用意した文章を出力させる)
- 被害者のカレンダーからイベントを削除する
- スマート窓や照明など家庭内IoT機器の遠隔制御
- 患者の位置情報を取得(Android Utilities経由でウェブサイトを開かせIPアドレスを取得する) etc
この種の攻撃は、Geminiのエージェント間(インターエージェント)および端末内アプリ間(インターアプリ)のラテラルムーブメントを実現し、さらに物理的環境への影響(IoT制御など)が可能になる。
TARA(Threat Analysis and Risk Assessment)フレームワークを用いてリスクを評価し、73%が高・重大リスクに分類された。Googleにこの攻撃は報告され、ユーザー承認プロセスの強化や入力サニタイズ、プロンプトインジェクション検出機能などの対策が導入された。 「Invitation Is All You Need」とタイトルの通り、招待状だけで様々な攻撃ができることを示し、LLM統合アプリケーションが現実世界の攻撃対象となることを警告した発表だった。
(Arsenal) Harbinger: An AI-Powered Red Teaming Platform for Streamlined Operations and Enhanced Decision-Making
Harbinger は、レッドチーム活動における複数ツールの運用負担や情報過多を解消する AI 搭載プラットフォーム。 データを一元管理し、プレイブック実行を自動化、AI による次の行動提案を行うことで、作業効率と評価の効果を最大化する。
単一の画面(one‑pane glass)から各種操作を実行し、すべての接続されたシステムの状況を可視化できる。 攻撃や偵察の手順を再利用可能なスクリプト(Playbook)として保存し、即時実行でき、また出力結果を可視化して表示。 さらに出力結果をAIで解析して、次のアクションを提案する。
マルチプレイヤー、マルチC2にも対応しており、C2のコマンドの違いを平準化して、Beaconに送信する。
Blackhatの資料ではないが、他カンファレンスでの公開資料
- https://x33fcon.com/slides//x33fcon25_Matthijs_Gielen_and_Idan_Ron-Harbinger_An_AI-Powered_Red_Teaming_Platform_for_Streamlined_Operations_and_Enhanced_Decision-Making.pdf ß
所感:デモを見ただけだが、デザインも綺麗で非常に完成度の高い印象を持った。OSSで公開されているので、試してみようと思った。
DEFCON
AI vs. the APTs: Using LLMs to discover malware and undisclosed vulnerabilities
Appsec VillageのMain stageでの、AIを利用してOSSの脆弱性等を見つける発表。
私たちが作成しているコードの7割から9割はOSSから来ている。 そして、OSSの脆弱性は公開されないことが多く、サイレントパッチ(非公開修正)されることが多い。 その理由は、パッチ適用前に攻撃されることの回避、Reputation低下の回避、単純に人手が足りない等である。 このサイレントパッチを可視化する。
方法はLLMを利用して、ChangeLogを分析して、security関連の問題を特定、脆弱性の詳細を分析、最後にセキュリティエンジニアが結果を確認するシンプルなやり方を行う。 しかし、changeLogはFormatや言語がバラバラ等の問題があったので、以下のステップを行う。
- 最も人気な上位5 millionのOSSのchangLogのリストを作成する
- Scrapingで生のChangeLogを取得する
- LLMを利用してバラバラなChangeLogをstandard Formatに変換する
- LLMがセキュリティ関連の可能性がある変更を特定する
- CVE databaseを利用して、脆弱性を確認する
- セキュリティエンジニアが結果を確認して、スコアリングする
これにより、2024年に550(criticalは61)、2025年には490(criticalは48)の非公開脆弱性を確認。 具体的に、Axios(JavaScriptのHTTPクライアント)のプロトタイプ汚染の修正があったが、非公開のまま (AIKIDO-2023-10001)。
さらに、LLMを利用してNPMのpubilc packageにあるMalwareを特定する。 LLMはマルウェアをスキャンするのは得意ではないので、スキャン結果をLLMを用いてtriageする。
- public registriesをScraping
- LLMを利用して、changeLogを分析、フォーマットを整える
- スキャナーがマルウェアのindicatorsを確認・提供する (eval関数、外部DomainをCallする、難読コード、Binary等)
- LLMが3の結果を分析して、マルウェアかどうかを判定する
- セキュリティエンジニアが4の結果を確認する
結果として、4000以上のマルウェアコードが注入されたpackage versionを2025年6月に特定。 具体的には、react-html2pdfにmaliciousなjsコード、xrpパッケージにXRP SDK Attack, os-info-checker-es6にspaceを利用したマルウェアコードを発見。
所感:
個人的にこの出張で最も面白かった発表。発表もわかりやすいし、具体的な発見や、発見したプロセスも発表してくれているので参考になる。 研究で発見した正規のOSSパッケージにマルウェアコードを注入される具体例が発表され、改めてこういうケースは対策が難しいなと感じた。
Domain Fronting in 2025: a retro analysis
Malware Villageでの発表。
Domain Frontingというテクニックについて、現在でも有用かどうかを研究した講演。 Domain FrontingはクラウドベンダーのCDN(Azure, AWS, Google Cloud等)を利用して、本当の通信先を隠すテクニック。 このテクニックは、クラウドベンダーのCDNがFrontになり、CDNがBackにあるMaliciousの通信先にリダイレクトを行う。 主要クラウドベンダーが対策したため、悪用不可と思ったが、それが本当かどうかを検証。
Domain Frontingの類似テクニックとして、以下がある
- Domain Hiding: TLS 1.3のESNI/ECHといった新技術を利用し、SNIを隠蔽
- Domain Shadowing: 所有権の証明が不要なCDNを利用して、任意のドメインを登録
- Domain Borrowing: CDNのワイルドカード証明書の処理の不備を悪用
これらの手法で41のCDNでDomain Frontingが可能か実験。結果として、9/41 CDN(21.9%)でDomain Frontingが可能。
具体的な結果は以下のGithub
https://github.com/copethomas/defcon-33-domain-fronting?tab=readme-ov-file
所感:個人的にDomain Frontingはもう対策されたと思っていたので、意外な結果だった。ただし、有名なCDNに関しては対策がされているので、頭の片隅で有効なCDNがあることを認識しておき、それらと通信が発生した場合、マルウェア感染を疑うぐらいの心構えが良いかと感じた。
AIMAL Artificially Intelligent Malware Launcher
Demo LabsでのAIを利用したEvasionを行うツールの発表。
AV/EDR/IDSに対して、AIを利用して高度な検知回避を行うツール。 EDRの検知メッセージをopenAIのAPIに入力、その内容に応じてコードを書き換えて検知回避を行う。 主要な機能としては以下。
- Evasion Technique:
Process Hollowing | Ghosting | Herpaderping
- Execution Methods:
APC | Thread Hijacking
- Payloads:
AES + XOR Encrypt, online-hosted reverse shell
- AI Feedback loop
シグネチャや振る舞い検知の内容に応じて、コード生成
openAIのAPIはjunk codeの生成、XT/ET生成、junk code injectionやfake API noise等を行う。 結果としては、KarsperskyやMcAfee、BiteDefender等の検知回避に成功。
https://github.com/EndritShaqiri/AIMaL
MPIT (Matrix Prompt Injection Tool)
マクニカの凌さんらによるプロンプトインジェクション等についてのDemo Labsでの発表。
Matrix Prompt Injection Tool(MPIT) は、LLMアプリ向けの専用ペンテストツールとして設計され、多様な攻撃シナリオを網羅的に評価できるツールである。 「Expected Input」「Delimiter」「Trigger」「New Instruction」「Reason」という5要素の攻撃パターンでLLMアプリを攻撃することができる。
MPITはRCE, XSS, SQLi, Prompt Leaking, Markdown Injectionといった様々な攻撃を自動化し、レポート生成を行う。
また、Enhance Mode(遺伝的アルゴリズム)というモードがあり、効果的な攻撃シード(種要素)を自動的に発見し、脆弱性検知率を高める。 この効果的な種はLLMのアプリによって異なる。 Seed Poolを生成、評価 (スコアリング)、スコアの良いSeedを残すという処理を繰り返して、優れたSeedを残す。
このツールを脆弱性のあるShinoLLMAppsを利用してデモンストレーション。
所感:内容も面白く、何より発表の至る所で笑えるところや、アニメのキャラクターを使っていたりと、発表が上手すぎて非常に参考になった。 Githubは以下でスライドもUploadされている。
https://github.com/Sh1n0g1/mpit-matrix_prompt_injection_tool
BOAZ - A Multilayered Approach to AV/EDR Evasion Engineering
Demo LabsでのAV/EDRのBypassツールについての発表。
多層防御に対抗して、多層的に回避するテクニック・ツールの紹介。 シグネチャ/ヒューリスティック/振る舞い検知に対し、実行前・実行中・実行後の各段階での検知回避を行う。
AVのBlockは、Scanners, Emulators, Sensors, Unpackersがある。 まず実行前にPassiveとActive Scan, 実行中の検知、実行後の検知、そしてCloud Engineによる検知プロセスを経て、悪性かどうかを判断する。 これに対抗するため、Collection Evasion, Logical Evasion, Clasification Evasion, Temporal Evasion, Technical Evasion, Procedural Evasionを実装する。
面白かったが、非常にレベルが高い&難しく、低レイヤーの話を文章で表現するのは複雑すぎるので省略、Githubは以下。
https://github.com/thomasxm/BOAZ_beta
GlytchC2: Command execution and data exfiltration of any kind through live streaming platforms
トルコの友人のDemo Labsでの発表。
Twitch などのライブストリーミングプラットフォームを利用して、C2(コマンド&コントロール)およびデータの盗み出しを行うためのポストエクスプロイト用ツール。 以下のことが可能。
PNG画像にコマンドをエンコード/デコードすることによってこのテクニックを実現。デモでは通信に少し時間はかかるが、Twitchを利用してPowershellのコマンドの送受信が行われていた。 今後はYouTube、Instagramを介して、本手法を実装予定。
https://github.com/ccelikanil/GlytchC2
以上です、完全に自分用のメモでした。
いくつか海外のカンファレンスにも参加しましたが、やはりラスベガスは超大規模ですし、お祭り感があって楽しいですね。 来年も発表ネタを作って、参加したいな(そのためには頑張らねば・・・)。
まだBlack Hatはアーカイブが見れるので、機会があればまたまとめようと思います(こういう時は大抵やらない)。