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

ソフトウェアセキュリティはAIの登場でどう変わるか - OWASP LLM Top 10

ソフトウェアセキュリティはAIの登場でどう変わるか - OWASP LLM Top 10

2024.11.11 明日の開発カンファレンス2024につき改訂(TLF SOSS講演も反映)
2024.2.17 微修正
2024.2.15 デブサミ2024きっかけでリバイス (OWASP LLM 1.1/祝AISI設立)
2023.10.24 追記・セクション明確化
2023.8.30 Q&A追加などupdate
2023.8.27 増補版
2023.8.26 初版:塩尻サイバーセキュリティ勉強会 2023 夏

( 更新は、特別カスタマイズ版を除きスライドを上書き更新していきます)

岡田良太郎 オカダリョウタロウ

OWASP Japan Lead
アスタリスク・リサーチ Executive / Researcher
ビジネス・ブレークスルー(BBT)大学講師
神戸デジタル・ラボ CSA

The English version is available. Ask me. :
How Software Security Will Change with the Rise of AI - OWASP Top 10 for LLM

Riotaro OKADA

October 25, 2023
Tweet

More Decks by Riotaro OKADA

Other Decks in Technology

Transcript

  1. 岡田 良太郎 Riotaro OKADA 日本のセキュリティリサーチャ。 (株)アスタリスク・リサーチ代表取締役。 • OWASP Project committer

    / Japan chapter lead (Distinguished Lifetime member Award 2024) • Hardening Project (Good Design Award 2023) • BBT大学非常勤講師 (サイバーセキュリティ) • サイバートレーニングCYDER 実行委員 • 2021年1月に出版された「CISOハンドブック」の執筆メン バー
  2. OWASP.org / OWASP Japan chapter (オワスプジャパン) Open Worldwide Application Security

    Project • https://github.com/owasp-ja • OWASPトップ10 for LLM日本語 • OWASPトップ10 2021日本語 • OWASP Proactive Controls 2018日本語 • OWASP ASVS 4.0 日本語 • Mobile ASVS日本語 • 開発者のためのOWASPチートシート一覧表 Github: owasp-ja
  3. システムリスクの教科書 OWASP Top 10 Risk • A01 アクセス制御の不備 • A02

    暗号化の失敗 • A03 インジェクション • A04 安全が確認されない不安な設計 • A05 セキュリティの設定ミス • A06 脆弱で古くなったコンポーネント • A07 識別と認証の失敗 • A08 ソフトウェアとデータの整合性の不具合 • A09 セキュリティログとモニタリングの失敗 • A10 サーバーサイドリクエストフォージェリ (SSRF) (c) Riotaro OKADA 4 https://owasp.org/Top10/ja/
  4. システムの安全性レベル = f (脅威レベル, 対応力レベル) 1 システムの外部からの脅威 • インターネットの全体的な治安 •

    システムリソースを狙う脅威 • ユーザの誤動作、誤用、悪用 • システム固有の資産を狙う脅威 2 システム側の対応力 • アーキテクチャ選択 • コンポーネント:サプライチェイン • 共通機能(認証、データの扱い) • 実装コード • プラットフォームの影響 • 防御レベルの選択と設定 • 適切なテストの配備と実践 • CI/インテグレーションの調整 • 設定とシークレット © Asterisk Research, Inc. 7
  5. ENISA Threat Landscape 2024 • 可用性への脅威(DDoS)とランサムウェアが 引き続き最も大きな脅威。 • クラウド環境を利用したステルス攻撃(LOTS 手法)で、正規サイトを用いたC2通信が活a発

    化。 • 地政学的要因が引き続きサイバー攻撃の大きな 動機。 • 防御回避技術の進化:サイバー犯罪者がLOT (Living Off The Land)手法を駆使し、環境に 溶け込む。 • ビジネスメール詐欺(BEC)の急増。 • 報告期限を利用した恐喝が新たな手口に。 • ランサムウェア攻撃は高い水準で安定。 • AIを活用した詐欺・サイバー犯罪:FraudGPT やLLMで詐欺メールや悪意のあるスクリプト生 成。 • 脆弱性の19,754件が報告され、そのうち9.3% が「クリティカル」、21.8%が「高」 • 情報窃盗ツールが攻撃チェーンの重要要素に。 • ハクティビストと国家関与の類似。 • データリークサイトの信頼性が低下、重複や誤 報が増加。 • モバイルバンキングトロイの木馬の急増と攻撃 手法の複雑化。 • MaaS(Malware-as-a-Service)が急速に進化。 • サプライチェーン攻撃の社会工学的手法: OSSのXZ Utilsにバックドアが埋め込まれた事 例。 • データ流出が増加傾向。 • DDoS-for-Hireサービスにより、未熟な攻撃者 でも大規模攻撃が可能。 • ロシアの情報操作がウクライナ侵攻において依 然として重要。 • AIを利用した情報操作の可能性が浮上。
  6. 脆弱性対応は幅広い層にわたる 脆弱性発生箇所 どんな状態か 対応手段の提供者 対応・復旧 シフトレフト デスクトップやスマートフォン デバイスのOSに問題があり、保護 が手薄、あるいは脆弱な状態に なっている

    プラットフォーマ (Apple, Googleなど) アップデート適用、 設定調整 ガイドの更新 自動アップデート活用、 更新情報プロセス強化 アプリケーションソフトウェア バグや、踏み台などの脆弱性 開発会社、販売会社 アップデート適用、設定 調整、 アプリの選定と廃棄 ネットワーク機器、デバイス 装置のファームウェアが古いある いは悪用されやすい設定になって いるため脆弱な状態 メーカー アップデート適用 ネットワーク機器や 構成の見直し システム:オープンソースや サードパーティAPIなど システムで利用しているOSで使わ れているOSSのソースコードに問 題が発見され脆弱性があるという ことが広く知られる OSSプロジェクト、 LinuxやMicrosoftなど OSベンダー 動作検証と アップデート適用 ソフトウェア構成分析 SCAの導入、SBOM システム:プログラムコード 自社あるいはSIerが開発したコー ドに問題があり、脆弱になってい る コードを書いた人ないし、 開発プロジェクトチーム プログラムの修正 ノウハウの見直し SAST、ハンズオン 生産技術的強化 システム:クラウドサービス、 アプリケーションの設定 コンフィギュレーションの問題で、 データが侵害されやすい状態など で脆弱になっている クラウドベンダーあるいは その先進的なユーザ 設定の修正 脆弱性検査の統合か モニタリングの強化 ユーザ、オペレータ 利用が許可されている機能あるい はデータの取り扱いを誤用してし まう ユーザ自身、ならびにその 組織 応急対応と原因究明 非常事態の対応訓練 業務データ取り扱い訓練 ユーザビリティ向上 December 2, 2024
  7. 事前対策 Proactive Controls v4 (2024) https://top10proactive.owasp.org/archive/2024/ • C1: アクセス制御の実施 •

    C2: 暗号化によるデータの保護 • C3: すべての入力の検証と例外処理 • C4: セキュリティを初期段階から考慮 • C5: デフォルト設定のセキュリティ確保 • C6: コンポーネントのセキュリティ確保 • C7: デジタルIDのセキュリティ確保 • C8: ブラウザのセキュリティ機能の活用 • C9: セキュリティログの記録と監視の実施 • C10: サーバーサイドリクエストフォージェリーの防止 (c) Riotaro OKADA 11
  8. 共通機能の検証ポイントを決める OWASP ASVS 5.0 https://github.com/owasp-ja/asvs-ja • V1: セキュリティ決定ドキュメント • V2:

    認証 • V3: セッション管理 • V4: アクセス制御 • V5: バリデーション、サニタイゼーション、エンコー ディング • V6: 保存時の暗号化 • V7: セキュリティログ記録とエラー処理 • V8: データ保護 • V9: 通信 • V10: セキュアコーディングアーキテクチャと実装 • V11: ビジネスロジック • V12: ファイルとリソース • V13: API と Web サービス • V14: 構成 • V50: Web フロントエンドセキュリティ • V51: OAuth と OIDC • V53: WebRTC (c) Riotaro OKADA 12
  9. OSSセキュリティの課題 • セキュリティ重視の欠如: 多くのOSSプロジェクトでは、セキュリティよりも機能性を 優先 (70%以上が高リスク残存との観測) • 監視されていない依存関係 レポジトリへの攻撃に弱く、隠れた脆弱性を内包 •

    リソースの不足 セキュリティ対応のノウハウ、実装改善の知見の不足 OpenSSF 2024: 調査データ 「OSSの開発に携わるエキ スパートの約3分の1が、セ キュアなソフトウェア開発 に不慣れだと感じている」 Prompt:「私の OSS プロジェクトに CVE が掲載されました。 このプロジェクトの開発者としてどのように対応すべきでしょうか」
  10. SSDF (NIST SP800-218) …参考文献が過剰… • BSAFSS: SM.3, DE.1, IA.1, IA.2

    • BSIMM: CP1.1, CP1.3, SR1.1, SR2.2, SE1.2, SE2.6 • EO14028: 4e(ix) • IEC62443: SM-7, SM-9 • NISTCSF: ID.GV-3 • OWASP ASVS: 1.1.1 • OWASP MASVS: 1.10 • OWASP SAMM: PC1-A, PC1-B, PC2-A • PCISSLC: 2.1, 2.2 • SCFPSSD: Planning the Implementation and Deployment of Secure Development Practices • SP80053: SA-1, SA-8, SA-15, SR-3 • SP800160: 3.1.2, 3.2.1, 3.2.2, 3.3.1, 3.4.2, 3.4.3 • SP800161: SA-1, SA-8, SA-15, SR-3 • SP800181: T0414; K0003, K0039, K0044, K0157, K0168, K0177, K0211, K0260, K0261, K0262, K0524; S0010, S0357, S0368; A0033, A0123, A0151
  11. SAMM 安全なソフトウェア開発におけるトップ3の失敗要因 1. 脅威分析 - 解像度が低い • 何に対する対策が必要なのかがクリアに理解されておらず共有もされていな い 2.

    アーキテクチャの選択と設計の欠陥 • アーキテクチャ、詳細設計、エラー処理、認証などの一般的なセキュリティ 機能要件に一貫性がない 3. ガバナンスの欠如/適切な支援・道具・情報が得られない • 生産技術面の問題、ツールの不自由さと偏り、ミスマッチなガイドライン
  12. 脅威・リスク分析 – お茶の間で脅威を考慮に入れた検討のひとこま 「私は、出版業界の企業向けに(ファイルアップローダーの機能追加)を開発します」 「そこで、このシステムに対する • 最近のサイバー攻撃の可能性をリストしてください • 潜在的な業界固有のコンプライアンスをリストしてください •

    設計と実装に対する一般的な効果的な対策をリストしてください 「Python(とか)で入力検証のサンプルコードを書いてください。 • コードに脆弱な箇所があるかどうか確認できますか? • どう修正できますか • うーん、ファイルアップローダーをシステムに追加するのは諦めました。 リスクが高すぎます。代替案を検討してください。
  13. コード生成とテストに関しては… まるなげはリスキー。その副操縦士は、コンテキスト無視だから。 大事なことを知らない • ビジネスロジック • コンプライアンス規則 • 法的リスク •

    アーキテクチャ • 共通機能などのコンテキスト 脆弱性を正確に検知できるか • 人は1000行書けば2-30のバグ がある(NIST 8151) • デフォルトで最大30~40%程度し か発見できない • 発見する問題や深さに偏りがある それでも、セキュアコーディングの基礎を学ぶ には有益です。
  14. Aspect Requirements Definition Design (Architecture Design) Coding Testing Deployment Operations

    (Monitoring) Maintenance AI's Role • Supporting requirements analysis; • Assisting with threat modeling • Proposing security best practices; • Identifying architecture vulnerabilities • Code generation assistant; • Providing security advice (detecting vulnerabilities) • Generating test cases; • Assisting with security testing • Optimizing automation; • Proposing security deployment guidelines • Threat detection and log analysis; • Supporting incident response • Supporting vulnerability management; • Optimizing patch application Examples • Proposing requirements aligned with project goals; • AI-driven threat modeling tools (predicting potential attack vectors) • Recommendations based on security design; • Discovering potential vulnerabilities during design phase • Copilot suggesting code; • Early detection of vulnerabilities such as input sanitization • Generating unit and automated test cases; • Automatic scans for security holes (e.g., preventing SQL injections or XSS attacks) • Optimizing CI/CD pipelines (automating deployment processes); • Checking configurations for safe deployment • Real-time threat detection via security monitoring tools; • AI-analyzed log data and alerts (e.g., detecting unauthorized access) • Automatically gathering new vulnerability information and proposing patches; • Supporting automated update processes Considerations • AI doesn't fully understand the business or regulatory environment, so developers must make final decisions • AI learns from existing code and designs, so there's a risk of unintentionally generating copyrighted code • The source of AI- generated code is often unclear, increasing the risk of using copyright- protected code unintentionally • Even test code may raise copyright concerns, so AI- generated content must be reviewed thoroughly • While deployment itself carries minimal copyright risks, AI- generated configurations should be audited • AI-generated reports and logs may be subject to legal audits, so ensuring their reliability and transparency is essential • AI-generated patches might involve proprietary technologies, increasing the risk of introducing legal issues Prompt: ”自社あるいは顧客に依頼されるソフトウェア開発の各段階におい て、AIがDevSecOpsアドバイザーとして効果的に機能する方法を現 実として列挙できますか? エンジニアの知識を補完し必要十分な知識を技術的に反映できる助 けとなるケースを示してください。セキュリティを考慮に入れる助 けも必要です。その上で、利用上の注意として原理的に限界がある ことや、あるいは利用にあたり知的財産または法的リスクが高いも のを示してください。ただし、可能性議論ではなく実際に問題とな る可能性が高いもののみを指摘してください。その回避方法も提示 してください”
  15. ソフトウェア開発におけるAIによるDevSecOps支援:役割、適用例、及び留意事項 GPT-4o + いくらかのプロンプト 26 項目 要件定義 設計 (アーキテクチャ設計) コーディング

    テスト デプロイ 運用 (モニタリング) 保守 AIの役割 • 要件分析の支援 • 脅威モデリング の支援 • セキュリティベストプラク ティスの提案 • アーキテクチャの脆弱性特定 • コード生成アシスタ ント • セキュリティアドバ イス提供 (脆弱性の検 出) • テストケースの生成 • セキュリティテスト の支援 • 自動化の最適化 • セキュリティデプ ロイメントガイドラ インの提案 • 脅威検出とログ分析 • インシデント対応の支 援 • 脆弱性管理の支 援 • パッチ適用の最 適化 例 • プロジェクト目 標に合致した要件 の提案 • AI駆動の脅威モ デリングツール (潜在的な攻撃ベ クトルの予測) • セキュリティ設計に基づく推 奨事項 • 設計段階での潜在的な脆弱性 の発見 • Copilotによるコード 提案 • 入力サニタイズなど の基本的な脆弱性の早 期検出 • ユニットテストと自 動化テストケースの生 成 • セキュリティホール の自動スキャン (例: SQLインジェクション やXSS攻撃の防止) • CI/CDパイプライン の最適化 (デプロイ プロセスの自動化) • 安全なデプロイの ための設定確認 • セキュリティモニタリ ングツールによるリア ルタイム脅威検出 • AI解析によるログデー タとアラート (例: 不正 アクセスの検出) • 新たな脆弱性情 報の自動収集と パッチ提案 • 自動更新プロセ スの支援 考慮事項 • AIはビジネスや 規制環境を完全に 理解していないた め、最終決定は開 発者が行う必要が ある • AIは既存のコードや設計から 学習するため、著作権で保護さ れたコードを意図せず生成する リスクがある • AI生成コードの学習 データは出所が不明確 であることが多い ・意図せず著作権で保 護されたコードを使用 するリスクはある ・対策レベルは網羅さ れていない • テストコードであっ ても著作権に関する懸 念があるため、AI生成 コンテンツの徹底的な レビューが必要 • デプロイ自体の著 作権リスクは少ない が、AI生成の設定は 監査が必要 • AI生成のレポートやロ グは法的監査の対象と なる可能性があるため、 信頼性と透明性の確保 が重要 • AI生成のパッチ にはプロプライエ タリ技術が含まれ る可能性があり、 法的問題が発生す るリスクがある
  16. チャレンジアイデア! • AIツールの使用に関する全社的なガイドラインの詳細は役立つよ • ビジネスリスクを理解する(プロファイリング)のブレーンストーミング • 設計とコードに関しては、ヒントと”入口”の入手 • コードレビュー、検証、セキュリティプロセスの定義 •

    開発プロジェクトRAG (Retrieval-Augmented Generation) アイデア(事例募集) • 特別な要件、リスクプロファイル、脅威情報、設計、ガイドライン、ディスカッション 記録、アーキテクチャ、コンプライアンス、共通機能、セキュリティ対策にかかわる情 報を放り込むアイデア • リスクと要件に適切に対応し続けるために、モデルと学習データの定期的な更新を確保 すること
  17. 根本的な問題:AIも標的なんですよ (OWASP LLMリスクトップ10およびLLMガバナンスガイド) AI ならではの攻撃 • データ汚染:攻撃者はトレーニン グデータを改ざんしてAIの動作を 操作します。 •

    敵対的攻撃:わずかな操作でAIを 欺き、誤った判断をさせます。 • プロンプト注入:複雑な技術でAI がプロンプトを処理する方法の弱 点を悪用します。 AIを保護手法例(アプリケーション) • レート制限とユーザ認証: アクセスと利用を制御するために、強固 なレート制限とユーザー認証を優先 • AI防御の階層化: 高度な技術とAIの統合を活用し、複数の AIモデルを使用して不正使用のシナリオ を検知し、対応 参考:#DefendAI(米陸軍)、AI Cyber Defense Initiative(Google)
  18. LLMのセキュリティリスク 1. LLM01: プロンプトインジェクション 2. LLM02: 安全が確認されていない出力 ハンドリング 3. LLM03:

    トレーニングデータの汚染 4. LLM04: モデルのDoS 5. LLM05: サプライチェインの脆弱性 6. LLM06: 機微情報の漏出 7. LLM07: 安全が確認されていない プラグイン設計 8. LLM08: 過剰な代理行為 9. LLM09: 過度の信頼 10. LLM10: モデルの盗難 OWASP Top 10 for LLM 2023
  19. Key Takeaways – AIを活用してプロアクティブに敵を知り、ソフトウェアを確かなものに • セキュリティを事後対応から、事前対策的なものに変革できる。 AIがあれば、脅威に対応するだけでなく、先手を打つことができます。AIは、リスクがより深刻な問題となる前に、 そのリスクを予測し、検知し、対処することを可能にします。 • 攻撃者やユーザの思考を理解する助けになる。

    AIは攻撃者の行動に関する洞察力を与え、脆弱性や潜在的な悪用を予測するのに役立ちます。これにより、脅威 を予測し、より強固な防御策を講じる能力が強化されます。 • 人間+AIを最強タッグにするにはコツがいる。 AIは重労働を処理しますが、方向性や最終的判断は人間が行う。依頼の境界線を設定する。 法的・倫理的な側面の正当性を確保し、出力を検証する責任は人間にある。 AIは人間に取って代わるのではなく、人間を強化するために使う。 人間側の能力を上げていこう。
  20. ありがとうございました • github.com/owasp-ja に! • Issueなどで感想をお寄せください • プルリクも大歓迎です • お好みのレポジトリをぜひWatchし参画してください

    • システムへの脅威と、それから自分のシステムを衛る方法を習得してください • サプライチェイン(AIモジュール含む)の検証 • コードのセキュリティ問題 • コンテナ、API、AI… • 継続的チューニング • Hardening Project • オカダへのご相談、歓迎です! (c) Riotaro OKADA 37
  21. We can build more innovative, faster, and more secure software,

    with our creativity, strategy and collaboration. Thank you Riotaro OKADA [email protected]
  22. LLM01: プロンプトインジェクション 命令と外部データを分離しないLLMの性質による 脆弱性。 直接あるいは間接的な巧妙な入力によって大規模 な言語モデル(LLM)を操作し、LLMが意図し ない動作を引き起こします • 機密情報の収集 •

    プロンプトの漏出・破壊 • 通常の操作を装った、意思決定プロセスへの干渉 • 倫理・コンプライアンスのセーフガードのバイパス December 2, 2024 • 防御策 • 入力値検証のレイヤー化 • アクセスコントロール • 連携される外部モジュールの認証 • 入力元インターフェースの限定 • 拡張許可のHuman In the Loop
  23. 「入出力」にかかわるもの 1. LLM01: プロンプトインジェクション 2. LLM02: 安全が確認されていない出力 ハンドリング 3. LLM03:

    トレーニングデータの汚染 4. LLM04: モデルのDoS 5. LLM05: サプライチェインの脆弱性 6. LLM06: 機微情報の漏出 7. LLM07: 安全が確認されていない プラグイン設計 8. LLM08: 過剰な代理行為 9. LLM09: 過度の信頼 10. LLM10: モデルの盗難
  24. 「権限」にかかわるもの 1. LLM01: プロンプトインジェクション 2. LLM02: 安全が確認されていない出力 ハンドリング 3. LLM03:

    トレーニングデータの汚染 4. LLM04: モデルのDoS 5. LLM05: サプライチェインの脆弱性 6. LLM06: 機微情報の漏出 7. LLM07: 安全が確認されていない プラグイン設計 8. LLM08: 過剰な代理行為 9. LLM09: 過度の信頼 10. LLM10: モデルの盗難
  25. 「アーキテクチャ」にかかわるもの 1. LLM01: プロンプトインジェクション 2. LLM02: 安全が確認されていない出力 ハンドリング 3. LLM03:

    トレーニングデータの汚染 4. LLM04: モデルのDoS 5. LLM05: サプライチェインの脆弱性 6. LLM06: 機微情報の漏出 7. LLM07: 安全が確認されていない プラグイン設計 8. LLM08: 過剰な代理行為 9. LLM09: 過度の信頼 10. LLM10: モデルの盗難
  26. 「Human In the Loop」 1. LLM01: プロンプトインジェクション 2. LLM02: 安全が確認されていない出力

    ハンドリング 3. LLM03: トレーニングデータの汚染 4. LLM04: モデルのDoS 5. LLM05: サプライチェインの脆弱性 6. LLM06: 機微情報の漏出 7. LLM07: 安全が確認されていない プラグイン設計 8. LLM08: 過剰な代理行為 9. LLM09: 過度の信頼 10. LLM10: モデルの盗難
  27. AI関連ソフトウェアの保護施策のポイント • 入力値検証の複雑性が高まる • 形式、データ長、コード(従来) • 倫理性、プライバシー、機密の入出力 • 新たな保護すべきリソースは増える •

    データベースアクセス、ログ(従来) • 訓練データ、入力データ、プロンプト、RAGの追加データ • サプライチェインに新たなカテゴリが登場 • OSSなどサードパーティソフトウェアコンポーネント(従来) • 訓練済みモデル • 学習用データなどエンジンやデータ • ユーザ認証、連携認証 • ユーザアカウント、APIキー • アプリケーション認証 • スロットリングがコストとSLAの両方にきいてくる • セキュリティテスト • コンプライアンスは今後強化されるだろう • 用途のリスクベースアプローチが主流になってくる • 運用 • Human in the loop の適切な配備、 そのための設計が重要になってくる (Security, Availability, Safety) • システム更新 • ソフトウェアアップデート、セキュリティ脆弱性対応 (Security) • AIモデルの性能、機能 (Availability) • 倫理フィルタなど保護レベルの更新 (Safety) (c) Riotaro OKADA 47