バッファオーバーフロー対策
Buffer Overflow Countermeasures
ばっふぁおーばーふろーたいさく
確保したメモリ領域を超えてデータを書き込ませ、プログラムの制御を奪うバッファオーバーフロー攻撃への対策。入力データの長さを検査する、境界を確認しない危険な関数を使わない、メモリ安全な言語を選ぶといったコーディング上の対策に加え、スタックの破壊を検知するカナリア、データ領域でのコードの実行を禁止するDEP、メモリの配置をランダムにするASLRといった、OSやコンパイラの防御機構を組み合わせる。
Related
他の資格での定義
バッファオーバーフローを防ぐための対策。書き込むデータの長さを確かめてから領域に書き込む、長さを指定できる安全な関数を使う、境界のチェックを行う言語を使う、OSやコンパイラの保護機能(スタック保護、データ実行防止、アドレス空間配置のランダム化(ASLR))を有効にする、などがある。
確保した領域を超えるデータの書込みによって、プログラムの制御を乗っ取られることを防ぐ対策。入力の長さの検査や、境界を検査する安全な関数の使用、メモリ安全な言語の採用でプログラムの誤りを防ぎ、スタック保護、データ領域での実行の禁止(DEP)、アドレスの配置のランダム化(ASLR)で攻撃を成功しにくくする。
Related
関連キーワードの用語
ソフトウェアやハードウェアの脆弱性を、その原因となる弱点の種類(タイプ)で分類した一覧で、MITREが管理する。「CWE-79」がクロスサイトスクリプティング、「CWE-89」がSQLインジェクションのように識別番号が付き、個々の脆弱性を指すCVEに対して、CWEは脆弱性の種類を指す。危険度の高い弱点をまとめたCWE Top 25も公表されている。
脆弱性を作り込まないように、安全なプログラムの書き方の原則に従ってコーディングすること。セキュアコーディングとも呼ぶ。入力値の検証、出力時のエスケープ、プレースホルダの使用、エラーメッセージでの情報の出し過ぎの防止などを、コーディング規約、コードレビュー、SASTによる検査で徹底する。
プログラムの書き方について、組織やプロジェクトで定めた規則。名前の付け方、字下げなどの書式、使ってはならない命令、エラー処理の方法、注釈の書き方などを定め、読みやすさと保守性を高め、誤りや脆弱性を作り込みにくくする。静的解析ツールで遵守を確かめられる。
