← 研修トップ
OWASP Top 10 の群 — 何のリストで、どう作られ、どう読むか
同じ「Top 10」でも、数えたものが違います。Web 2025 はアプリの割合、API 2023 はチームの合意、LLM 2026 は投票と事故記録、Kubernetes 2025 はデータなし、Proactive Controls は危険ではなく「やること」の一覧。番号を読む前に、何を数えた一覧かを読む。十数本ある OWASP の Top 10 を横断し、それぞれの版・作り方・生死と主要項目の仕組みを、原文の逐語と手元のコンテナで動かす実演から積み上げます。
- 1約 8 分Top 10 は十数本ある — どれが生きていて、何を数えたか「OWASP Top 10」と呼ばれる一覧は Web 以外にも十数本あり、同じ「10」でも数えたものが違います。Web 2025 は弱点を持つアプリの割合、API 2023 はチームの合意、LLM 2026 は投票と事故記録、Proactive Controls は「やること」を並べています。
- 2約 8 分数えたのは「見つかった数」ではなく「持っていたアプリの割合」 — Web 2025Web Top 10 2025 が提供者に求めたのは、検査したアプリの数と、CWE ごとにそれを1つ以上持っていたアプリの数です。1つのアプリに同じ弱点が4件あっても4,000件あっても、計算上は同じ1つです。
- 3約 9 分検査に写りにくく、調査では1位 — ソフトウェアのサプライチェーン(A03:2025)A03:2025 Software Supply Chain Failures は、提供データでの出現総数も、対応づいた CVE の数も10項目で最少なのに、コミュニティ調査では回答者のちょうど50%が1位に挙げました。原文はデータに少ない理由を「テストの難しさ」と書いています。
- 4約 8 分例外の先で、判定が開いたままになる — Web 2025 の新項目 A10A10:2025 Mishandling of Exceptional Conditions は 2025 で新設された項目で、24 の CWE に失敗時に開く設計(CWE-636)を含みます。2021 の A10 だった SSRF は A01:2025 に統合されており、同じ番号が別の項目を指しています。
- 5約 8 分データが集まらなかった一覧 — API 2023 とプロパティ単位の認可API Security Top 10 2023 はデータを公募しましたが、リリースノートは `no data was contributed` と書き、各項目の Prevalence(広がり)はチームの合意で決めたと明記しています。提供データを数えて並べた一覧ではありません。
- 6約 8 分起きた記録は、防がれた分を数えない — LLM 2026 の投票と事故記録OWASP Top 10 for LLM Applications 2026 は、実務者の投票に重み 3/4、事故記録に重み 1/4 を置いて並べた一覧です。序文は、それ以前の版を「判断(judgment)で作った」と呼んでいます。
- 7約 9 分文脈に入れたものは、見つかる前提で置く — LLM08:2026 Hidden Context ExposureOWASP Top 10 for LLM Applications 2026 は、2025 版の LLM07 System Prompt Leakage を LLM08:2026 Hidden Context Exposure に改め、対象をシステムプロンプトから「アプリがモデルの文脈に組み立てるもの全部」に広げました。取得した方針文もツールの定義も入ります。
- 8約 9 分配った実行ファイルは、受け取った人が読める — Mobile 2024 M1OWASP Mobile Top 10 2024 の M1 は、アプリのコードや設定ファイルに埋め込んだ資格情報(hardcoded credentials)を脆弱性の第一の兆候に挙げます。配布したバイナリは受け取った全員の手元にあり、埋めた鍵は汎用の文字列抽出ツール1つで平文のまま出てきます。
- 9約 8 分パイプラインは、変更した側のブランチの指示を実行する — CI/CD の PPECI/CD Top 10 の CICD-SEC-4 Poisoned Pipeline Execution(PPE)は、ソース管理には触れられるがビルド環境には触れられない者が、パイプラインに自分の手順を実行させる危険です。
- 10約 8 分方針を置くまで、クラスタは通す — Kubernetes 2025 K01・K04Kubernetes Top 10 2025 の K01 は「既定のワークロード設定は強くない」、K04 は「クラスタ全体で方針を強制する既定の仕組みが無い」と書きます。k3s v1.37.0 で確かめると、ラベルの無い namespace では privileged: true の Pod がそのまま作られました。
- 11約 7 分危険の一覧と、やることの一覧 — Proactive Controls と Docker Top 10Proactive Controls v4(2024)と Docker Top 10 は、危険を数えた一覧ではなく「やること」を並べた一覧だと自分で書いています。並べ方も、前者は重要度順、後者は relevance 順です。
- 12約 7 分同じ弱点が、一覧ごとに別の名前で載る — 注入を横に並べる同じ CWE 番号が、一覧ごとに別の項目名の下に載ります。XSS(CWE-79)は Web 2025 では A05:2025 Injection に、LLM 2026 では LLM10:2026 Improper Output Handling に入り、SSRF(CWE-918)は API 2023 では独立項目 API7、Web 2025 では A01:2025 の一部です。