レッスン 5-2
供給網のリスク
自分が
自分で
なぜ通るのか
自分の
供給網の
信じて取り込む境目
境目は、
- 依存を
入れる 時。 名前だけを 書いて 版を 決めないと、 入れる たびに 中身が 変わり得る - ビルドの
時。 ビルドの 仕組みが 破られると、 正しい 手順で 作った 物に 別の コードが混ざる - 署名の
時。 署名は 「この 鍵の 持ち主が 出した」 ことを 示すだけで、 中身が 安全だとは 示さない - 委託先の
接続。 保守の ための 入口は、 委託先が 破られれば、 そのまま 入口になる
何が入っているかを知らない
もう
CISA は、
脆いコードと直したコード
ラボの
版を固定しないか、版とハッシュを固定するか
labpkglabpkg==1.0 \--hash=sha256:...直した方の ... の
脆い方は、
入っている部品を一覧にして照らす
from importlib import metadata def parts(path):ds = metadata.distributions(path=[path])return {d.metadata["Name"].lower():d.version for d in ds} KNOWN = {("labpkg", "1.0"): "LAB-0001"} def check(sbom):return [KNOWN[(n, v)]for n, v in sbom.items()if (n, v) in KNOWN]parts は、KNOWN は
ログでの見え方と検知
直した
ERROR: THESE PACKAGES DO NOT MATCHTHE HASHES FROM THE REQUIREMENTS FILE.labpkg==1.0 from file:///lab/wheels/Expected sha256 beb50c96Got 82d0e736実際の
| 見る物 | な |
|---|---|
| ハッシュの | 中身の |
| 依存を | 新しい |
| 更新の | ビルドに |
最後の
直し方と、直ったことの確かめ方
自分の
- 作業用の
フォルダに wheels を 作り、 手作りの labpkg 1.0 を 1 つ置く - 名前だけの
requirements で、 手元の wheels からだけ 入れる 設定で 入れ、 入る ことを 確かめる - labpkg の
配布ファイルの ハッシュを 取り、 版と ハッシュを 固定した requirements に 書き換える - 同じ
名前と 版のまま 中身の 違う labpkg に 置き換え、 名前だけの 方は 黙って 入り、 固定した方は ハッシュの 食い 違いで 止まる ことを 確かめる - 入れた
フォルダから 部品の 一覧を 作り、 ラボの 既知の 穴の 表と 照らして、 labpkg 1.0 が 引っかかる ことを 確かめる - 終わったら、
作業用の フォルダごと消す
def test_pinned_rejects_swap(lab):swap_wheel(lab, body="changed")r = pip_install(lab, "req-pinned.txt")assert r.returncode != 0assert b"HASHES" in r.stderr def test_sbom_finds_known(lab):pip_install(lab, "req-pinned.txt")hits = check(parts(lab / "site"))assert hits == ["LAB-0001"]試験は
依存の
関わる事例
SolarWinds の
Log4Shell (Apache Log4j の
委託先の
IPA の
- 2024年5月29日、情報処理・印刷 (受託業務) イセトー ランサムウェア被害 入口 VPNからの
不正アクセスで 社内ネットワークに 侵入された - 2023年5月31日、ソフトウェア (ファイル転送製品) とその利用組織 MOVEit Transfer の
脆弱性の 入口 インターネットに大規模悪用 公開された MOVEit Transfer の ウェブアプリの 未知の SQL インジェクション (CVE-2023-34362) を 突かれ、 LEMURLOOT と いう ウェブシェルを 置かれた - 2022年10月31日、医療 大阪急性期・
総合医療センター ランサムウェア被害 入口 患者給食の委託事業者の 給食センターに、 リモート保守用の ファイアウォール (SSL-VPN) の 脆弱性か 漏洩していた IDと パスワードで 侵入され、 常時接続の RDPで 病院の 給食サーバーに 入られた - 2021年12月10日、ソフトウェア部品 (Java のログ出力ライブラリ) Log4Shell (Apache Log4j の
脆弱性) 入口 Log4j 2 のJNDI 機能が 攻撃者の 用意した LDAP などの 接続先を 防げず、 ログに 書かせた 文字列から 任意の コードを 読み込んで 実行させられた - 2020年12月13日、IT 管理ソフトウェアとその利用組織 (政府機関、重要インフラ、民間企業) SolarWinds Orion の
サプライチェーン侵害 入口 Orion のソフトウェアの ビルドシステムが 侵害され、 2020年3月から 6月に 出た 正規の 更新に 悪意ある コードが入った
確認クイズ
1 問目
依存の
- ア 同じ版の
名前のまま、 配布ファイルの 中身が 替わること - イ 固定する
前から、 作り手の ビルドで 混ざっていたコード - ウ 固定した
版 その ものに、 まだ 知られていない 穴が あること
答えと理由を見る
答え ア
ハッシュの
2 問目
広く
- ア
その 部品の 作り手は誰か - イ 自分たちの、
どの 製品の どこに、 その 部品の どの 版が 入っているか - ウ
その穴を 使った 攻撃が、 どの 国から 来ているか
答えと理由を見る
答え イ
直す順番は、
説明課題
次の
- 依存の
1 つに ついて、 部品の 一覧を どう 作り、 既知の 穴と どう 照らすか
模範解答を見る
まず依存の
一次資料
どれも
- Software Bill of Materials (SBOM) (CISA、英語)。
SBOM を、 ソフトウェアの 部品の 入れ子の 一覧、 材料の 表と 説明していること - SP 800-161 Rev. 1 Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations (NIST、英語)。
作られ方、 組み込まれ方、 配られ方が 見えにくいことが 供給網の リスクに 結び 付くこと - 情報セキュリティ10大脅威 2026 (IPA、
日本語) 。組織の 2 位 「サプライチェーンや 委託先を 狙った 攻撃」、 8年連続 8回目 - SolarWinds Corporation Form 8-K (
米証券取引委員会に 。出された SolarWinds の 届出、 英語、 2020年12月14日) 2020年3月から 6月の 更新に 入った こと、 ビルドの 仕組みが 破られた こと、 ソースコードの 置き場には 無かったこと - AA20-352A Advanced Persistent Threat Compromise of Government Agencies, Critical Infrastructure, and Private Sector Organizations (CISA、英語)。
混ざった 部 品が SolarWinds の 正規の 署名の 証明書で 署名されていたこと - Apache Log4j Vulnerability Guidance (CISA、英語)。
Log4Shell が CVE-2021-44228 である こと、 広く 使われる 部品であること - Review of the December 2021 Log4j Event (Cyber Safety Review Board、
英語、 。2022年7月11日) Log4j を 使っている 所の 一覧が 無く、 企業と 作り手が 探して 奔走したこと - AA23-158A CL0P Ransomware Gang Exploits CVE-2023-34362 MOVEit Vulnerability (CISA、英語)。
CVE-2023-34362 の 悪用で、 公開された ウェブアプリの 下の データベースから データが 盗まれたこと - 不正アクセスに
よる 。個人情報漏えいに 関する お詫びと ご報告 (イセトー、 日本語、 2024年10月4日) 扱ってはならない サーバへの 便宜的な 保管と、 消すべき データを 消していなかったこと - 株式会社イセトーに
対する 。個人情報の 保護に 関する 法律に 基づく 行政上の 対応に ついて (個人情報保護委員会、 日本語、 2025年3月19日) データを 置く 場所の 決まりが 社内だけの 物で、 委託元との 契約書に 書かれていなかったこと - 調査報告書 (大阪急性期・
総合医療センター 情報セキュリティインシデント調査委員会、 。日本語、 2023年3月28日) 給食の 委託事業者の 側からの 侵入、 責任の 分かれ目の 不明瞭さ、 脆弱性の 管理の 役割分担
次へ
次の