もっとも危ないプログラミングエラー25、+16

    後藤大地  [2010/02/19]

    CWE is a Software Assurance strategic initiative sponsored by the National Cyber Security Division of the U.S. Department of Homeland Security.

    CWE - 2010 CWE/SANS Top 25 Most Dangerous Programming Errorsにおいて脆弱性の原因となる危険なプログラミングエラー25が発表された。開発者にセキュリティ問題の原因となるプログラミングに関する注意を促し、実際にソフトウェアが動作する前の段階で問題を発見し対処できるようにすることを目指したもの。2009年に発表されたリストの更新版にあたり、内容の多くが更新されている。2009年版を使っていた場合には、今回発表された2010年版を再度検討する価値がある。

    公開されている脆弱性に結びつくプログラミングエラートップ25をまとめると次のとおり。25にランクインしなかった16含めると、合計41のプログラミングエラーが報告されていることになる。

    スコア ID 内容
    1 346 CWE-79 クロスサイトスクリプティング
    2 330 CWE-89 SQLインジェクション
    3 273 CWE-120 Bufferオーバーフロー
    4 261 CWE-352 クロスサイトリクエストフォージェリ(CSRF)
    5 219 CWE-285 不正アクセス制御
    6 202 CWE-807 不正入力値に対処していないことに起因する脆弱性
    7 197 CWE-22 ディレクトリトラバーサル
    8 194 CWE-434 アップロートファイルに制限を設けないことに起因する脆弱性
    9 188 CWE-78 OSコマンドインジェクション
    10 188 CWE-311 重要データを暗号化していない起因する脆弱性
    11 176 CWE-798 パスワード等をソースコードにハードコーディングすることに起因する脆弱性
    12 158 CWE-805 範囲を越えるバッファアクセスに起因する脆弱性
    13 157 CWE-98 PHP Fileインクルージョン
    14 156 CWE-129 配列インデックスの誤った検証に起因する脆弱性
    15 155 CWE-754 例外的な状況における不適切なチェックに起因する脆弱性
    16 154 CWE-209 エラーメッセージに公開されてはならない情報が掲載されてしまう脆弱性
    17 154 CWE-190 整数オーバーフロー
    18 153 CWE-131 バッファサイズの誤った計算に起因する脆弱性
    19 147 CWE-306 クリティカルな処理に対する認証欠落に起因する脆弱性
    20 146 CWE-494 完全性チェックを実施しないコードのダウンロードに起因する脆弱性
    21 145 CWE-732 クリティカルなリソースに対する不正な保護権設定に起因する脆弱性
    22 145 CWE-770 制限を設けないリソース確保に起因する脆弱性
    23 142 CWE-601 信用されないサイトへのURLリダイレクトリ
    24 141 CWE-327 リスキーな暗号化アルゴリズムを利用することに起因する脆弱性
    25 138 CWE-362 レースコンディション
    スコア ID 内容
    26 136 CWE-749 適正に規制されていないAPIが提供されていることに起因する脆弱性
    27 129 CWE-307 認証処理に回数制限や時間制限を設けないことに起因する脆弱性
    28 125 CWE-212 重要データ削除処理の欠落に起因する脆弱性
    29 124 CWE-330 十分ではないランダム数値を利用していることに起因する脆弱性
    30 120 CWE-59 リンクフォロー脆弱性
    31 120 CWE-134 外部から指定可能な整形出力機能を使うことに起因する脆弱性
    32 119 CWE-476 ヌルポインタ処理に起因する脆弱性
    33 119 CWE-681 数値型の不正変換に起因する脆弱性
    34 118 CWE-426 アプリケーションの制御下にないリソースを検索することに起因する脆弱性
    35 116 CWE-454 信頼されない入力値を使った初期化処理に起因する脆弱性
    36 114 CWE-416 メモリ開放後に処理を実施することに起因する問題
    37 114 CWE-772 不要になったメモリを解法しないことに起因する問題
    38 106 CWE-799 インタラクションに制限を設けないことに起因する問題
    39 100 CWE-456 クリティカルな値を初期化しないことに起因する問題
    40 91 CWE-672 開放後のリソースを操作することに起因する問題
    41 77 CWE-804 推測可能なCAPTCHAに起因する問題

    発表されたランキングはあくまでも一般的なケースで整理した場合の順位になっている。どの脆弱性をどの程度重要なものとみなすかはプログラミング言語やユースケースなどコンテキストに依存して変化する。このためCWE - 2010 CWE/SANS Top 25 Most Dangerous Programming Errorsではカテゴリ別まとめも提供されている。提供されているカテゴリは次のとおり。

    カテゴリ
    コンポーネント完の不安全なインタラクション
    リスキーなリソース管理
    誤った防御方法やその欠落
    カテゴリ
    教育視点からのランキング
    プログラミング言語からのランキング
    設計または実装という観点からのランキング
    自動分析または手動分析という観点からのランキング
    開発者視点からのランキング
    顧客視点からのランキング
    技術インパクト視点からのランキング

    これらリストはプログラマやテスタ、アーキテクト、デザイナ、プロジェクトマネージャなどシステム開発に関わる人材にとって有益な資料になるのみならず、教育関係者における教材としても利用できる。また、システム開発を発注したり購入する顧客における要望チェックリストとしても利用できる。

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン