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

実装がすべてではない、開発者の周りから考える Web プロダクトセキュリティ

Big Buddha
November 25, 2023

実装がすべてではない、開発者の周りから考える Web プロダクトセキュリティ

2023年11月25日に開かれた「セキュリティ・ミニキャンプ 2023 in 広島」で使った講義用資料です。

SQL インジェクションや XSS など、名前が付いた有名な脆弱性や実装する際にセキュリティ的に気をつけないといけない箇所はいくつもあります。ですが、すでに名前が付けられ広く知られている脆弱性のみを考えることがサイバーセキュリティなのでしょうか?
本講義では実装以外の箇所で発生しうる脆弱な部分に焦点を当て、技術者としてサイバーセキュリティを考えるということはどういう視点を持つことなのか?を受講者と一緒に考えました。

余談ですが、最初は SLSA を深掘りする予定でしたが、ミニキャンプにしてはハードルが高すぎるというフィードバックを頂いたので「サプライチェーン」のイメージを受講者に持ってもらえる話へ切り替えました。もし全国大会の講師になることがあれば SLSA 3 な OSS を作らせるハンズオンでもしたいですね。

参考資料:

- ソフトウェアサプライチェーンのこれから / Securing Software Supply Chain - Speaker Deck https://speakerdeck.com/lmt_swallow/securing-software-supply-chain
- 開発環境のセキュリティおよびCI/CDパイプラインのセキュア化 - Speaker Deck https://speakerdeck.com/rung/training-devenv-security-ja
- サプライチェーンセキュリティにおける脅威と対策の再評価 | メルカリエンジニアリング https://engineering.mercari.com/blog/entry/20221215-supplychain-security-reevaluation/
- SLSA • Supply-chain Levels for Software Artifacts https://slsa.dev/
- ossf/s2c2f: The S2C2F SIG is a group working within the OpenSSF's Supply Chain Integrity Working Group formed to further develop and continuously improve the S2C2F guide which outlines and defines how to securely consume Open Source Software (OSS) dependencies into the developer’s workflow. https://github.com/ossf/s2c2f
- Usage Statistics and Market Share of Web Servers, November 2023 https://w3techs.com/technologies/overview/web_server
- yandex/gixy: Nginx configuration static analyzer https://github.com/yandex/gixy
- 多層防御とは?| 階層型セキュリティ | Cloudflare https://www.cloudflare.com/ja-jp/learning/security/glossary/what-is-defense-in-depth/
- プラクティス・ナビ IPA 情報処理推進機構 https://www.ipa.go.jp/security/economics/practice/practices/Practice213/
- Google - Site Reliability Engineering https://sre.google/sre-book/postmortem-culture/
- danluu/post-mortems: A collection of postmortems. Sorry for the delay in merging PRs! https://github.com/danluu/post-mortems
- Facebook Outage Deep Dive | ThousandEyes https://www.thousandeyes.com/blog/facebook-outage-deep-dive
- 情報セキュリティ10大脅威 2023 | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構 https://www.ipa.go.jp/security/10threats/10threats2023.html
- 自動車サプライチェーンの構造と問題点 https://tomiyo-job.com/media/?p=339
- トヨタの工場を止めたサイバー攻撃 サプライチェーン攻撃のリスクが露呈 | 日経クロステック(xTECH) https://xtech.nikkei.com/atcl/nxt/mag/nc/18/092400133/030900072/
- 悪意のあるPythonパッケージ27種を確認、日本も被害の可能性 | TECH+(テックプラス) https://news.mynavi.jp/techplus/article/20231120-2823025/
- Security という英単語から考えるサイバーセキュリティ - Speaker Deck https://speakerdeck.com/oldbigbuddha/security-toiuying-dan-yu-karakao-erusaibasekiyuritei

=== 講義の紹介文 ===

サイバーセキュリティという言葉を考えたとき、あなたはどのようなことを思い浮かべますか?少し知見がある方は SQL インジェクションやクロスサイトスクリプティングなどの具体的な脆弱性が思いつくかもしれません。これらの脆弱性はアプリケーションを実装する段階で発生してしまうものばかりですが、現実世界ではこのような実装の欠陥のみが攻撃対象になるわけではありません。
過去に起こった実際のインシデントを体験しつつ、「セキュリティを考える」という行動を一緒に0から考えてみましょう!

Big Buddha

November 25, 2023
Tweet

More Decks by Big Buddha

Other Decks in Technology

Transcript

  1. 実装がすべてではない
    開発者の周りから考える
    Web プロダクトセキュリティ
    ~セキュリティ・ミニキャンプ 2023 in 広島~

    View full-size slide

  2. 自己紹介
    ● 山川 森羅(OJI/oldbigbuddha)
    ● 放送大学
    ● コミュニティ活動が好き
    ● VTuber が好き
    ● 株式会社 Flatt Security でインターン

    View full-size slide

  3. 私とセキュリティ・キャンプ
    ● セキュリティ・ミニキャンプ in 愛知 2019 受講生
    ● セキュリティ・キャンプ 全国大会 2022 オンライン B受講生
    ● セキュリティ・ミニキャンプ オンライン 2022オンライン チューター
    ● セキュリティ・ミニキャンプ in 広島 2023 講師 ← イマココ

    View full-size slide

  4. 講義の流れ
    1. Introduction: 「サイバーセキュリティ」ってなに?
    2. たった一文字で情報漏洩?設定ミスが引き起こす惨劇
    3. サプライチェーン理解への第一歩
    4. まとめ

    View full-size slide

  5. 講義の方針
    知識よりも考え方を重要視
    する講義です
    🙅講義を受けたからから
    〇〇に詳しくなった
    🙆講義を受けた上で周りを
    見返してみたら気にすること
    が増えた
    最年少の意見であろうと最
    年長の意見であろうと講師
    の意見であろうと等しくひ
    とつの「意見」であり発言者
    の属性に思考の優劣は存在
    しません

    View full-size slide

  6. Introduction
    「サイバーセキュリティ」ってなに?

    View full-size slide

  7. 自分なりの
    「サイバーセキュリティ」
    を考えてみよう

    View full-size slide

  8. 以下の問に自分なりの答えを考えてみよう
    Q.「サイバーセキュリティ」ってなんですか?

    View full-size slide

  9. グループワーク
    ● 自分なりの「サイバーセキュリティ」を言語化しよう
    (目安: 5分)
    ○ 注意: 一般的な定義は使わない
    ○ ヒント: “Security”の語義を英英辞典(Oxford
    Learner's Dictionaries など)で調べてみよう
    ● 自分なりの「サイバーセキュリティ」をチームに共有しよう
    ● チームなりの「サイバーセキュリティ」を kintone へ投稿しよう
    終了時刻: 10:21

    View full-size slide

  10. kintone を見る時間

    View full-size slide

  11. 個人的な「サイバーセキュリティ」
    サイバー空間で
    「起こるかもしれない悪いこと」
    から自分や周りを守ること

    View full-size slide

  12. 個人的な「サイバーセキュリティ」の背景
    引用: Security という英単語から考えるサイバーセキュリティ
    https://speakerdeck.com/oldbigbuddha/security-toiuying-dan-yu-karakao-erusai
    basekiyuritei

    View full-size slide

  13. 「サイバー空間で起こるかもしれない悪いこと」の例
    ● オンラインサービスで情報漏洩が発生し、個人情報が流出した
    ● オンラインバンキングのフィッシング詐欺に引っかかり、全財産を窃盗されてしまった
    ● 自分が管理してるHPが改ざんされてしまい、脅迫文を掲示するために悪用されてし
    まった
    ● SNS アカウントが乗っ取られ、スパム活動に利用されたため周りからの信頼を失って
    しまった
    ● サーバーが乗っ取られて本来閲覧できる情報が見れなくなった、もしくはその逆
    ● などなど……

    View full-size slide

  14. 「サイバー空間で起こるかもしれない悪いこと」の例
    まとめると: 情報漏洩、情報の改ざん、乗っ取り・なりすまし
    ● オンラインサービスで情報漏洩が発生し、個人情報が流出した
    ● オンラインバンキングのフィッシング詐欺に引っかかり、全財産を窃盗されてしまった
    ● 自分が管理してるHPが改ざんされてしまい、脅迫文を掲示するために悪用されてし
    まった
    ● SNS アカウントが乗っ取られ、スパム活動に利用されたため周りからの信頼を失って
    しまった
    ● サーバーが乗っ取られて本来閲覧できる情報が見れなくなった、もしくはその逆
    ● などなど……

    View full-size slide

  15. 個人的な「サイバーセキュリティ」
    情報漏洩、情報の改ざん、乗っ取り・なりすまし
    のような攻撃から自分自身や身の回りを守ること

    View full-size slide

  16. 【再掲】講義の方針
    ● 知識よりも思考を重要視する講義です
    ○ 󰢄講義を受けたからから〇〇に詳しくなった
    ○ 󰢎講義を受けた上で周りを見返してみたら気にすることが増えた
    ● 最年少であろうと年上であろうと講師であろうと等しく
    ひとつの「意見」であり発言者の属性に思考の優劣は存在しません

    View full-size slide

  17. 一般的な「サイバーセキュリティ」
     サイバーセキュリティという言葉は、一般的には、情報の機密性、完全性、可用性を確保
    することと定義されています。
     機密性とは、ある情報へのアクセスを認められた人だけが、その情報にアクセスできる状
    態を確保すること。完全性とは、情報が破壊、改ざん又は消去されていない状態を確保す
    ること。可用性とは、情報へのアクセスを認められた人が、必要時に中断することなく、情
    報にアクセスできる状態を確保することをいいます。
    引用: サイバーセキュリティって何?|国民のためのサイバーセキュリティサイト
    https://www.soumu.go.jp/main_sosiki/cybersecurity/kokumin/intro/intro_security.html

    View full-size slide

  18. 情報の機密性
    ある情報へのアクセスを認められた人だけが、その情報にアクセスできる状態を確保する
    こと。
    情報の機密性が確保されている例
    ● 会社の内部情報は決められた従業員だけしか閲覧することができない
    ● EC サイトの購入履歴や発送先住所、支払い情報は本人しかみることができない
    ● 未公開のイベント情報を一般人は知ることができない

    View full-size slide

  19. 情報の完全性
    情報が破壊、改ざん又は消去されていない状態を確保すること。
    情報の完全性が確保されている例
    ● 受信したメールが改ざんされていない
    ● 過去に編集したデータがその時の状態で閲覧することができる
    ● ダウンロードしてきたソフトウェア・アプリが開発者が意図したファイルである
    (何者かによって差し替えられたふぁいるではない)

    View full-size slide

  20. 情報の可用性
    情報へのアクセスを認められた人が、必要時に中断することなく、情報にアクセスできる状
    態を確保すること
    情報の可用性が確保されている例
    ● イベント参加者が正しいスケジュールを見たいときに確認できる
    ● プロジェクト関係者が開発中の資料を見たいときに閲覧できる
    ● 正しい抽選結果を抽選参加者が確認できる

    View full-size slide

  21. 選考課題振り返り

    View full-size slide

  22. ● 「視野を広げる」という講義に合わせて設計した課題
    ○ 見直すと自分なりの新しいアイディアがでるかも?
    ● 全国大会を意識した課題
    ○ 明確な答えは存在しないからこそ、自分の考えを明確にする
    ことが重要
    そもそもなぜ振り返る?

    View full-size slide

  23. 1. 攻撃者はログイン中の PC からどのような情報を抜き取ることができるでしょうか?
    窃取できる情報の種類だけではなく、なぜその情報を攻撃者が PC から窃取できる
    かも 合 わせて 答 えてください。
    2. 利用者のアカウント情報をデータベースに保存する際に気を付けることを調べて答え
    てください。本問題には LLM を利用せず、Web 上の情報や本、自らの体験などを元
    に 回 答 を 考 えてください。
    講師が設定した選考課題(一部省略)

    View full-size slide

  24. 1. 攻撃者はログイン中の PC からどのような情報を抜き取ることができるでしょうか?
    窃取できる情報の種類だけではなく、なぜその情報を攻撃者が PC から窃取できる
    かも 合 わせて 答 えてください。
    → 普段利用している情報端末にどのような情報が保存されているかを考え直しても
    らうための 問 題
    2. 利用者のアカウント情報をデータベースに保存する際に気を付けることを調べて答え
    てください。本問題には LLM を利用せず、Web 上の情報や本、自らの体験などを元
    に 回 答 を 考 えてください。
    → 前問を少し発展させた問題、作問当時は DB にパスワードを保存する際の手法で
    一部の界隈が盛り上がっていたので情報収集しやすいかなと思った
    OJI が設定した選考課題(一部省略)

    View full-size slide

  25. 1. 攻撃者はログイン中の PC からどのような情報を抜き取ることができるでしょうか?
    窃取できる情報の種類だけではなく、なぜその情報を攻撃者が PC から窃取できる
    かも 合 わせて 答 えてください。
    A. 日 常 的 にしている 会 話 のログ(Slack、Discord、メール)、ログイン 中 の
    オンラインサービスのセッション情報、Password Manager に登録している情報
    2. 利用者のアカウント情報をデータベースに保存する際に気を付けることを調べて答え
    てください。本問題には LLM を利用せず、Web 上の情報や本、自らの体験などを元
    に 回 答 を 考 えてください。
    A. パスワードにユーザーごとに決められた値(Salt)を付与した上で、任意の回数ハッ
    シュ化(Stretching)を行う、DB外に保存している値(Papper)を鍵とした暗号化
    を行うことによりオフライン攻撃に対してさらに強くなる
    講師的な回答(これが絶対的な正答ではない)

    View full-size slide

  26. たった一文字で情報漏洩?
    設定ミスが引き起こす惨劇

    View full-size slide

  27. まずは体験してみよう

    View full-size slide

  28. ● 会員制のサイトを運営するために nginx を利用
    ● nginx の設定を行った際にひと文字だけ抜けていた
    ● 設定上問題がないため、nginx は正常に動作する
    ● 設定ミスのためエイリアストラバーサルによる攻撃余地を
    生んでしまい、アクセスログを窃取された
    ● URL には一部機密情報(トークンやフォームの入力内容など)
    が含まれていたため、個人情報が漏洩した
    シナリオ

    View full-size slide

  29. ● Apache と並んで世界的に有名な Web サーバー
    ● Web サイトの三割に nginx が使われている
    nginx について
    引用: https://w3techs.com/technologies/overview/web_server

    View full-size slide

  30. ● nginx の設定ミスによって発生する有名な脆弱性
    ● ディレクトリトラバーサルの一種で、外部から見れないはずの
    ファイルを取得できる
    ● 他のトラバーサル攻撃に比べて親ディレクトリしか参照できない
    という制約がある
    ● 具体的な話はハンズオン用の資料に書いたので、読みながら
    理解しよう!
    エイリアストラバーサルについて

    View full-size slide

  31. ハンズオン
    ● kintone で共有される資料を参考にエイリアストラバー
    サルを体験しよう
    ● 少しでも分からなくなったら手をあげよう
    ○ 講師やチューターが助けに行くよ
    ● 早く終わった人はグループ内の人を助けてあげてね
    終了時刻: 11:15

    View full-size slide

  32. グループワーク
    ● 以下のお題に対して自分の意見をチームで共有する
    ○ この設定ミスが再発しないためにするべきことはなにか?
    ■ 偶数チーム
    ○ 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ■ 奇数チーム
    終了時刻: 11:35

    View full-size slide

  33. kintone を見る時間

    View full-size slide

  34. 個人的な回答
    ● この設定ミスが再発しないためにするべきことはなにか?
    ○ gixy などの検査ツールを用いる
    ○ このミスが発生したことを文書化する(会社などの場合)
    ● 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ○ nginx の設定以外で防ぐことは可能!
    ○ 機密情報を URL に含めない
    ■ どうしても含める必要があれば短命なものにする
    ○ alias に設定するディレクトリを独自のものにする
    ■ 例: /data/images など

    View full-size slide

  35. yandex/gixy
    yandex/gixy: Nginx configuration static analyzer
    https://github.com/yandex/gixy

    View full-size slide

  36. OJI はなぜこの答えにたどり着いたのか?
    ● この設定ミスが再発しないためにするべきことはなにか?
    ○ gixy などの検査ツールを用いる
    ○ このミスが発生したことを文書化する(会社などの場合)
    ● 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ○ nginx の設定以外で防ぐことは可能!
    ○ 機密情報を URL に含めない
    ■ どうしても含める必要があれば短命なものにする
    ○ alias に設定するディレクトリを独自のものにする
    ■ 例: /data/images など

    View full-size slide

  37. これは何
    ● この設定ミスが再発しないためにするべきことはなにか?
    ○ gixy などの検査ツールを用いる
    ○ このミスが発生したことを文書化する(会社などの場合)
    ● 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ○ nginx の設定以外で防ぐことは可能!
    ○ 機密情報を URL に含めない
    ■ どうしても含める必要があれば短命なものにする
    ○ alias に設定するディレクトリを独自のものにする
    ■ 例: /data/images など

    View full-size slide

  38. Defense in depth
    (多層防御)

    View full-size slide


  39. 「多層防御」(DiD)とは、複数のセ
    キュリティ製品や手法を駆使して、組
    織のネットワーク、Webプロパティ、
    リソースを保護するサイバーセキュリ
    ティ戦略のことです。
    多層防御とは?| 階層型セキュリティ | Cloudflare
    https://www.cloudflare.com/ja-jp/learning/s
    ecurity/glossary/what-is-defense-in-depth/

    View full-size slide

  40. Defense in depth(多層防御)
    ● 複数の防御策を取ることでより堅牢に様々な
    攻撃から情報を守る戦略
    ● ひとつの場所ですべてを守りきるのではなく、そ
    の層に適した守り方を重ねたほうが良い
    ● セキュリティを考える上で基本的な考え方の
    ひとつ

    View full-size slide

  41. 多層防御的な発想
    ● この設定ミスが再発しないためにするべきことはなにか?
    ○ gixy などの検査ツールを用いる
    ○ このミスが発生したことを文書化する(会社などの場合)
    ● 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ○ nginx の設定以外で防ぐことは可能!
    ○ 機密情報を URL に含めない
    ■ どうしても含める必要があれば短命なものにする
    ○ alias に設定するディレクトリを独自のものにする
    ■ 例: /data/images など

    View full-size slide

  42. プラクティス・ナビ IPA 情報処理推進機構
    https://www.ipa.go.jp/security/economics/practice/practices/Practice213/

    View full-size slide

  43. これは何?
    ● この設定ミスが再発しないためにするべきことはなにか?
    ○ gixy などの検査ツールを用いる
    ○ このミスが発生したことを文書化する(会社などの場合)
    ● 万が一ミスが発生した場合、情報漏洩は本当に防げないのか?
    ○ nginx の設定以外で防ぐことは可能!
    ○ 機密情報を URL に含めない
    ■ どうしても含める必要があれば短命なものにする
    ○ alias に設定するディレクトリを独自のものにする
    ■ 例: /data/images など

    View full-size slide

  44. ポストモーテム

    View full-size slide


  45. ポストモーテムとは、インシデント、そ
    の影響、それを軽減または解決する
    ために取られた措置、根本原因、およ
    びインシデントの再発を防止するた
    めのフォローアップ措置についての
    書面による記録である。
    Google - Site Reliability Engineering
    https://sre.google/sre-book/postmortem-culture/
    DeepL 訳

    View full-size slide

  46. ポストモーテム
    ● インシデント(事件、事故)が発生した際に
    根本原因を十分に理解・解析し、チーム向けに
    まとめた文書
    ● 過ちを批判するのではなく、徹底的に分析し
    次へ繋げていく姿勢が大事
    ● セキュリティに直接的に紐づく手法ではないが
    過去から学ぶ姿勢・文化は非常に重要

    View full-size slide

  47. danluu/post-mortems: A collection of postmortems. Sorry for the delay in merging PRs!
    https://github.com/danluu/post-mortems

    View full-size slide

  48. README に書いてある目次、Config Error もある
    設定ミスが Facebook と Instagramの
    ダウンを引き起こした
    Facebook Outage Deep Dive |
    ThousandEyes
    https://www.thousandeyes.com/blog/faceb
    ook-outage-deep-dive

    View full-size slide

  49. 前半まとめ
    ● 設定ミスなど運用の問題によって
    情報漏洩などは起こりえることを体験した
    ● それを防ぐためには根本的な原因を分析し
    仕組み的な対策をするのが良い
    ● 高度で複雑化した現代においてはひとつで
    何でもカバーではなく、多層防御が大切

    View full-size slide

  50. 前半戦、お疲れ様でした!
    (少し休憩)

    View full-size slide

  51. 後半戦スタート!

    View full-size slide

  52. サプライチェーン理解への第一歩

    View full-size slide

  53. Q. 鎖の強度はどこで見る?
    C₁、C₂、C₃ ……
    1. 一番小さい値(min(C₁, C₂, C₃, …))
    2. 平均値(average(C₁, C₂, C₃, …))
    3. 合計値(sum(C₁, C₂, C₃, …))
    4. 一番大きい値(max(C₁, C₂, C₃, …))

    View full-size slide

  54. Q. 鎖の強度はどこで見る?
    C₁、C₂、C₃ ……
    1. 一番小さい値(min(C₁, C₂, C₃, …))
    2. 平均値(average(C₁, C₂, C₃, …))
    3. 合計値(sum(C₁, C₂, C₃, …))
    4. 一番大きい値(max(C₁, C₂, C₃, …))
    鎖の中で一番脆い部分が鎖全体の強度!

    View full-size slide

  55. 現実世界も鎖と同じ
    企画 準備 作成 運搬 ・・・
    連なりが途切れちゃうとすべてが止まる

    View full-size slide

  56. サプライチェーン
    (Supply Chain)

    View full-size slide

  57. サプライチェーンの概念図
    生産者
    消費者へ届けるための
    任意のプロセス
    消費者
    色々な要素が連なっている
    色々な要素へ依存している

    View full-size slide

  58. サプライチェーンの概念図
    生産者 消費者
    正常
    正常
    正常
    正常
    正常
    インシデント
    一箇所でも問題が起こると供給が止まる

    View full-size slide

  59. 現実世界で考えてみよう

    View full-size slide

  60. 自動車で考えてみる
    ● 自動車は一箇所で作られるわけではない
    ● まずは顧客がお店で注文をする
    ● お店が製造会社へ発注する
    ● 製造会社は工場で生産するために、大きな部品を発注する
    ● 発注された部品メーカーは更に別のメーカーへ部品・素材を
    発注する
    ● 場合によっては更に別のメーカーへ発注する

    View full-size slide

  61. 自動車で考えてみる
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ

    View full-size slide

  62. どこかでインシデントが発生すると?
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ
    インシデント

    View full-size slide

  63. どこかでインシデントが発生すると?
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ
    インシデント
    部品作れん……

    View full-size slide

  64. どこかでインシデントが発生すると?
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ
    インシデント
    部品作れん……
    車作れん……

    View full-size slide

  65. どこかでインシデントが発生すると?
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ
    インシデント
    部品作れん……
    車作れん……
    車来ない……

    View full-size slide

  66. どこかでインシデントが発生すると?
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ
    インシデント
    部品作れん……
    車作れん……
    車来ない……
    車を注文したのになかなか来ない……

    View full-size slide

  67. サプライチェーンの概念図
    生産者 消費者
    正常
    正常
    正常
    正常
    正常
    インシデント
    一箇所でも問題が起こると供給が止まる

    View full-size slide

  68. 「サイバーセキュリティ」とどう関係する?

    View full-size slide

  69. サプライチェーンとセキュリティ
    ● サプライチェーンの脆弱な部分へのサイバー攻撃
    ○ 組織向け情報セキュリティ10大脅威 2023 第2位
    ○ 2020年時点では4位、どんどん順位が上がってる
    ● ソフトウェアサプライチェーン
    ○ ソフトウェアにも「サプライチェーン」が存在している
    ○ 全国大会へ行くと関連講義が受けれるかも?

    View full-size slide

  70. サプライチェーンとセキュリティ
    ● サプライチェーンの脆弱な部分へのサイバー攻撃
    ○ 組織向け情報セキュリティ10大脅威 2023 第2位
    ○ 2020年時点では4位、どんどん順位が上がってる
    ● ソフトウェアサプライチェーン
    ○ ソフトウェアにも「サプライチェーン」が存在している
    ○ 全国大会へ行くと関連講義が受けれるかも?

    View full-size slide

  71. 最近あったサプライチェーン攻撃
    トヨタの工場を止めたサイバー攻撃 サプライチェーン攻撃のリスクが露呈 | 日経クロステック(xTECH)
    https://xtech.nikkei.com/atcl/nxt/mag/nc/18/092400133/030900072/

    View full-size slide

  72. 何が起こった?
    ● トヨタ自動車のサプライヤー(部品メーカー)がマルウェアの
    被害を受けた
    ● 被害を受けた会社は社内サーバーを全停止
    ● トヨタ自動車が持つ「サプライチェーン」の一箇所でインシデン
    トが発生したことにより、他の生産ラインも一時ストップ
    ● この影響により1万3千台以上の生産が見送りになった

    View full-size slide

  73. 自動車サプライチェーン
    製造メーカー
    部品メーカー
    素材・部品メーカー
    お店へ

    View full-size slide

  74. みんなもサプライチェーンを調べてみよう

    View full-size slide

  75. グループワーク
    ● サプライチェーンについて調べてみよう!
    ● 調査のとっかかり
    ○ どのような業界でサプライチェーンが存在している?
    ○ サプライチェーンが止まってしまった事件は?
    ○ どういう対策が提案されている?
    ● グループで調べて、kintone にまとめよう!
    終了時刻: HH:MM

    View full-size slide

  76. サプライチェーンとセキュリティ
    ● サプライチェーンの脆弱な部分へのサイバー攻撃
    ○ 組織向け情報セキュリティ10大脅威 2023 第2位
    ○ 2020年時点では4位、どんどん順位が上がってる
    ● ソフトウェアサプライチェーン
    ○ ソフトウェアにも「サプライチェーン」が存在している
    ○ 全国大会へ行くと関連講義が受けれるかも?

    View full-size slide

  77. サプライチェーンとセキュリティ
    ● サプライチェーンの脆弱な部分へのサイバー攻撃
    ○ 組織向け情報セキュリティ10大脅威 2023 第2位
    ○ 2020年時点では4位、どんどん順位が上がってる
    ● ソフトウェアサプライチェーン
    ○ ソフトウェアにも「サプライチェーン」が存在している
    ○ 全国大会へ行くと関連講義が受けれるかも?

    View full-size slide

  78. 把握しきれない依存先
    ● エディタ
    ● 開発補助ツール
    ● ビルドツール
    ● ライブラリ
    ○ ライブラリが依存しているライブラリが依存している(ry
    ● クラウド
    ● 開発者に必要なオンラインサービス
    ● more and more……

    View full-size slide

  79. ソフトウェアで考えてみる
    開発者
    ライブラリ・ツール
    オンラインサービス
    ライブラリ・ツール
    利用者の元へ
    ソフトウェア

    View full-size slide

  80. 最近も悪意あるライブラリが発見された
    悪意のあるPythonパッケージ27種を確認、日本も被害の可能性 | TECH+(テックプラス)
    https://news.mynavi.jp/techplus/article/20231120-2823025/

    View full-size slide

  81. ソフトウェアサプライチェーン
    開発者
    ライブラリ・ツール
    オンラインサービス
    ライブラリ・ツール
    利用者の元へ
    ソフトウェア
    ここらへん

    View full-size slide

  82. 技術者はどう対応していけば良い?
    ● ソフトウェアサプライチェーン攻撃は近年活発化
    ● ここ2年ほどで対策を考えられてきているが、まだ一般化はし
    ていない(まさにこれからの話題)
    ● 細かいお話はここでは割愛
    ○ 気になる人は目指せ全国大会!
    ● 自分で調べるならキーワードはここらへんかも?
    ○ SLSA、sigstore、OpenSSF、CI/CD

    View full-size slide

  83. 後半まとめ
    ● サプライチェーンという捉え方をお伝えした
    ● 現実世界ではすでにサプライチェーンに対する
    攻撃が始まっている
    ● 特に「ソフトウェアサプライチェーン」はここ数年
    で出てきた超ホットな話題

    View full-size slide

  84. 講義まとめ
    ● 運用ミス、サプライチェーンなど実装とは関係ない部分に
    注視してシステムが攻撃される余地をお話しました
    ● 既知の脆弱性への対策はもちろん必須ですが、技術者としてなに
    を気をつけないか?を自分なりに考えることは非常に大切です
    ● 皆さんの「世界を見る目」が少しでも変わればこの講義を
    受講した価値があると思います

    View full-size slide

  85. 長時間の受講お疲れ様でした!
    小竹さんの講義もお楽しみに😁

    View full-size slide

  86. ※ これから先は没になったスライドです
    ほとんど未完成ですので、参考程度に……

    View full-size slide

  87. 色々な文脈で使われるサプライチェーン
    ● 製造業サプライチェーン
    ● 産業サプライチェーン
    ● ソフトウェアサプライチェーン
    サプライチェーン対策のための国内投資促進事業費補助金
    (METI/経済産業省)
    https://www.meti.go.jp/covid-19/supplychain/
    サプライチェーン|用語集|物流事例・お役立ち情報|大和物流株式会
    社 https://www.daiwabutsuryu.co.jp/useful/words/supply-chain

    View full-size slide

  88. 色々な文脈で使われるサプライチェーン
    ● 製造業サプライチェーン
    ● 産業サプライチェーン
    ● ソフトウェアサプライチェーン
    SLSA • Supply-chain Levels for Software Artifacts https://slsa.dev/

    View full-size slide

  89. 2020年頃から急増
    ソフトウェアサプライチェーン攻撃の歴史
    Watch - メモリも暗号化してソフトウェア サプライチェーンリスクを防ぐ方法について
    https://cloudonair.withgoogle.com/events/security-summit/watch?talk=d2-05
    昔から
    存在はしていた

    View full-size slide

  90. 様々な組み合わせによって実現されるモダンな環境
    ソースコード ビルド/デプロイ 実行環境
    開発者
    様々なライブラリ・ツール
    依存
    依存
    依存 依存 依存
    依存

    View full-size slide

  91. ソースコード ビルド/デプロイ 実行環境
    開発者
    様々なライブラリ・ツール
    依存
    依存
    依存 依存 依存
    依存
    どこ気にすればええねん

    View full-size slide

  92. 近年出てきた「フレームワーク(= 考え方)」
    ● Supply-chain Levels for Software Artifacts(SLSA)
    ○ 個人、企業を問わず活用できるチェックリスト及びツール群
    ● Secure Supply Chain Consumption Framework (S2C2F)
    ○ OSS を消費(利用)する場面に注目したフレームワーク
    ● CIS Software Supply Chain Security Benchmark
    ○ まだ GitHub に関するチェックリストしか存在しない
    CIS 自体は色々な分野のベストプラクティスを提供している
    ことで有名

    View full-size slide

  93. 近年出てきた「フレームワーク(= 考え方)」
    ● Supply-chain Levels for Software Artifacts(SLSA)
    ○ 個人、企業を問わず活用できるチェックリスト及びツール群
    ● Secure Supply Chain Consumption Framework (S2C2F)
    ○ OSS を消費(利用)する場面に注目したフレームワーク
    ● CIS Software Supply Chain Security Benchmark
    ○ まだ GitHub に関するチェックリストしか存在しない
    CIS 自体は色々な分野のベストプラクティスを提供している
    ことで有名

    View full-size slide

  94. SLSA による脅威が発生しえる箇所の定義
    SLSA • Supply chain threats https://slsa.dev/spec/v1.0/threats-overview

    View full-size slide

  95. SLSA が開発現場へもたらすもの
    ● ソフトウェアサプライチェーンに関する共通認識・語彙
    ● For 生産者: ベストプラクティスやチェックリスト
    ● For 消費者: ソフトウェアの信頼度
    ○ SLSA がセキュリティレベルを段階的に定めている

    View full-size slide

  96. SLSA の原則
    ● Trust platforms, verify artifacts
    ○ プラットフォームを信頼し、成果物を検証する
    ● Trust code, not individuals
    ○ 個人ではなくコードを信頼する
    ● Prefer attestations over inferences
    ○ 推測ではなく証明を優先する

    View full-size slide

  97. 過去の事件と SLSA の脅威モデル
    ● SolarWinds 事件
    ○ “Compromise Build Process”(ビルドプロセスへの侵害)

    ● CodeCov 事件
    ○ “Upload modified package”(ビルド成果物とは異なるパッケージ)
    ● 他の6つのモデルも現実の事件と照らし合わせながら紹介さ
    れている

    View full-size slide