OWASP Top 10

OWASP(Open Web Application Security Project)が発表(はっぴょう) した Web アプリケーションセキュリティリスク Top 10。

A01 - Broken Access Control

権限(けんげん) 制御(せいぎょ)不備(ふび) 。アプリケーションの認証(にんしょう)認可(にんか) 、セッション管理(かんり) などにおいて不適切(ふてきせつ)設定(せってい)実装(じっそう) があり、攻撃者(こうげきしゃ)許可(きょか) されていないリソースへのアクセスや操作(そうさ)実行(じっこう) できてしまう。

A02 - Cryptographic Failures

暗号化(あんごうか)失敗(しっぱい) 。ソフトウェアアプリケーションで使用(しよう) される暗号化(あんごうか) 方式(ほうしき)実装(じっそう) にエラーがあり、攻撃者(こうげきしゃ)機密(きみつ) 情報(じょうほう)()() ったり変更(へんこう) したり、またはシステムに不正(ふせい) アクセスを(おこな) える可能性(かのうせい) がある。

A03 - Injection

インジェクション攻撃(こうげき) 。アプリケーションがユーザー入力(にゅうりょく) データを適切(てきせつ)検証(けんしょう) ・フィルタリングしないため、攻撃者(こうげきしゃ)悪意(あくい) のあるコマンドやコードを実行(じっこう) 環境(かんきょう)挿入(そうにゅう) して実行(じっこう) できる。

(おも)種類(しゅるい) :

  • SQL Injection
  • XML Injection
  • LDAP Injection
  • OS Command Injection
  • Code Injection

開発者(かいはつしゃ) がユーザー入力(にゅうりょく) データを適切(てきせつ)検証(けんしょう) ・フィルタリング・エスケープしなかったり、安全(あんぜん) でないライブラリやメソッドを使用(しよう) したことが原因(げんいん) となることが(おお) い。

A04 - Insecure Design

安全(あんぜん) でない設計(せっけい) 。ソフトウェア設計(せっけい)欠陥(けっかん) があり、システムが攻撃(こうげき)効果的(こうかてき)防御(ぼうぎょ) できない。欠陥(けっかん) には以下(いか)(ふく) まれる:

  • 不適切(ふてきせつ) なシステムアーキテクチャ
  • 不完全(ふかんぜん) なセキュリティモデル
  • セキュリティリスク分析(ぶんせき)不足(ふそく)
  • 不適切(ふてきせつ)権限(けんげん) 管理(かんり)

A05 - Security Misconfiguration

セキュリティの設定(せってい) ミス。アプリケーションやシステムが適切(てきせつ)設定(せってい)更新(こうしん)保護(ほご)監視(かんし) されていないため、攻撃(こうげき)侵入(しんにゅう)() けやすくなる。攻撃者(こうげきしゃ) はこれらの設定(せってい) (じょう)脆弱性(ぜいじゃくせい)悪用(あくよう) して不正(ふせい) アクセス権限(けんげん)取得(しゅとく) し、機密(きみつ) データを窃取(せっしゅ) したりシステムを破壊(はかい) したりする可能性(かのうせい) がある。

A06 - Vulnerable and Outdated Components

脆弱(ぜいじゃく)(ふる) いコンポーネント。アプリケーションで使用(しよう) される外部(がいぶ) コンポーネント、データベース、フレームワークなどにセキュリティ脆弱性(ぜいじゃくせい) があったり、(ふる) くなっていたりすると、攻撃者(こうげきしゃ) がそれらを悪用(あくよう) してアプリケーションを攻撃(こうげき) できる。

A07 - Identification and Authentication Failures

識別(しきべつ)認証(にんしょう)失敗(しっぱい) 。システムがユーザーの身元(みもと)適切(てきせつ)識別(しきべつ)検証(けんしょう) できない。この脆弱性(ぜいじゃくせい)以下(いか)起因(きいん) する可能性(かのうせい) がある:

  • 不適切(ふてきせつ) なアカウント・パスワード管理(かんり)
  • 不適切(ふてきせつ) なセッション管理(かんり)
  • 認証(にんしょう) 情報(じょうほう)保護(ほご) 不足(ふそく)
  • 不適切(ふてきせつ) な ID 管理(かんり)

A08 - Software and Data Integrity Failures

ソフトウェアとデータの完全性(かんぜんせい)失敗(しっぱい) 。アプリケーションがデータやソフトウェアの悪意(あくい) ある変更(へんこう)削除(さくじょ)改竄(かいざん)防止(ぼうし) できない。これによりアプリケーションの動作(どうさ) 異常(いじょう)不適切(ふてきせつ) なアクセス権限(けんげん)付与(ふよ)発生(はっせい) し、機密性(きみつせい)可用性(かようせい) のリスクにつながる可能性(かのうせい) がある。

A09 - Security Logging and Monitoring Failures

セキュリティログと監視(かんし)失敗(しっぱい) 。Web サイトやアプリケーションに効果的(こうかてき) なセキュリティ監視(かんし) メカニズムがなく、すべてのセキュリティイベント、エラー、攻撃(こうげき) などを記録(きろく)適時(てきじ)対応(たいおう) できない。適切(てきせつ)監視(かんし) メカニズムがないと、攻撃(こうげき)() けても検出(けんしゅつ) できない可能性(かのうせい) がある。

A10 - Server-Side Request Forgery (SSRF)

サーバーサイドリクエストフォージェリ。アプリケーションが外部(がいぶ) クライアントからの送信(そうしん) リクエストを適切(てきせつ)制限(せいげん) しなかったり、受信(じゅしん) したリクエストを適切(てきせつ)検証(けんしょう) しなかったりすると、攻撃者(こうげきしゃ) がこの脆弱性(ぜいじゃくせい)悪用(あくよう) して被害(ひがい) システムに任意(にんい) のリクエストを送信(そうしん) できる。

テストツール

Zed Attack Proxy (ZAP)

OWASP が公式(こうしき)維持(いじ) しているオープンソースの Web 侵入(しんにゅう) テストツール。システムに模擬(もぎ) 攻撃(こうげき)分析(ぶんせき)(おこな) い、セキュリティ脆弱性(ぜいじゃくせい)特定(とくてい) できる。