IT用語帳
A-1New情報セキュリティマネジメント · 情報セキュリティ管理策

セキュリティに配慮したコーディング

Secure Coding

せきゅりてぃにはいりょしたこーでぃんぐ

脆弱性を作り込まないように、安全なプログラムの書き方の原則に従ってコーディングすること。セキュアコーディングとも呼ぶ。入力値の検証、出力時のエスケープ、プレースホルダの使用、エラーメッセージでの情報の出し過ぎの防止などを、コーディング規約、コードレビュー、SASTによる検査で徹底する。

共有:

Related

関連キーワードの用語

PD-Sコーディング標準

プログラムの書き方について、組織やプロジェクトで定めた規則。名前の付け方、字下げなどの書式、使ってはならない命令、エラー処理の方法、注釈の書き方などを定め、読みやすさと保守性を高め、誤りや脆弱性を作り込みにくくする。静的解析ツールで遵守を確かめられる。

A-1DAST(プログラムの動的検査)

動作中のアプリケーションに外部から検査用のリクエストを送り、その応答から脆弱性を検出する検査手法。攻撃者と同じ視点で、XSSやSQLインジェクション、設定不備などを実行環境を含めて確認できる。ソースコードがなくても実施できるが、問題の箇所をコード上で特定しにくく、検査が到達しない機能は確認できない。

A-1バッファオーバーフロー対策

確保したメモリ領域を超えてデータを書き込ませ、プログラムの制御を奪うバッファオーバーフロー攻撃への対策。入力データの長さを検査する、境界を確認しない危険な関数を使わない、メモリ安全な言語を選ぶといったコーディング上の対策に加え、スタックの破壊を検知するカナリア、データ領域でのコードの実行を禁止するDEP、メモリの配置をランダムにするASLRといった、OSやコンパイラの防御機構を組み合わせる。

A-1CWE(共通脆弱性タイプ一覧)

ソフトウェアやハードウェアの脆弱性を、その原因となる弱点の種類(タイプ)で分類した一覧で、MITREが管理する。「CWE-79」がクロスサイトスクリプティング、「CWE-89」がSQLインジェクションのように識別番号が付き、個々の脆弱性を指すCVEに対して、CWEは脆弱性の種類を指す。危険度の高い弱点をまとめたCWE Top 25も公表されている。

A-1静的解析

プログラムを実行せずに、ソースコードや実行ファイルの内容を調べて分析する手法。マルウェアの解析では、逆アセンブルなどで検体のコードや埋め込まれた文字列を調べ、機能や通信先を推定する。ソフトウェアの開発では、ツールでソースコードを検査して不具合や脆弱性を見つけるのに使う。

SAMISRA-C

自動車業界が策定したC言語のコーディング規約。安全性・信頼性の高い組込みソフトウェア開発のためのルール集で、未定義動作の回避やコードの可読性向上を目的とする。車載システムに限らず組込み全般で参照される。