静的解析
Static Analysis
せいてきかいせき
プログラムを実行せずに、ソースコードや実行ファイルの内容を調べて分析する手法。マルウェアの解析では、逆アセンブルなどで検体のコードや埋め込まれた文字列を調べ、機能や通信先を推定する。ソフトウェアの開発では、ツールでソースコードを検査して不具合や脆弱性を見つけるのに使う。
Related
他の資格での定義
プログラムを実行せずに、ソースコードを解析して誤りや規約違反、脆弱性を検出する手法。開発の早い段階で問題を発見でき、コーディング標準の遵守確認にも使われる。
プログラムを実行せずにソースコードを解析し、潜在的なバグ、セキュリティ脆弱性、コーディング規約違反などを検出する手法。バッファオーバーフロー、未初期化変数、メモリリークなどの問題を早期に発見できる。
マルウェア検体を実行せずに、逆アセンブルや文字列抽出によってコードの構造や機能を調べる解析手法。実行による二次被害がない一方、パッカーや難読化が施されていると解析に手間が掛かる。
プログラムを実行せずにソースコードを解析し、潜在的なバグ、セキュリティ脆弱性、コーディング規約違反などを検出する手法。バッファオーバーフロー、未初期化変数、メモリリークなどの問題を早期に発見できる。
Past Exams
過去問での出題
過去問で 4 回出題(システムアーキテクト試験 2・応用情報技術者試験 1・システム監査技術者試験 1)
出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。
Related
関連キーワードの用語
動作中のアプリケーションに外部から検査用のリクエストを送り、その応答から脆弱性を検出する検査手法。攻撃者と同じ視点で、XSSやSQLインジェクション、設定不備などを実行環境を含めて確認できる。ソースコードがなくても実施できるが、問題の箇所をコード上で特定しにくく、検査が到達しない機能は確認できない。
不審なプログラムやファイルを、本来の環境から隔離した仮想環境で実行し、その挙動を観察する仕組み。ファイルの作成、レジストリの変更、外部への通信などを記録して、シグネチャでは検知できない未知のマルウェアを判定する動的解析に使われる。仮想環境であることを察知して活動を止めるマルウェアもあるため、解析妨害への対処も必要になる。
攻撃者をおびき寄せるために、脆弱に見せかけてインターネット上に設置するおとりのシステム。正規の利用者がアクセスしないため到達した通信はほぼすべて攻撃とみなせ、攻撃の手口や使われたマルウェアの検体を収集・解析して、攻撃の動向の把握や対策の検討に役立てる。踏み台に悪用されないよう、外部への通信を制限して運用する。
脆弱性を作り込まないように、安全なプログラムの書き方の原則に従ってコーディングすること。セキュアコーディングとも呼ぶ。入力値の検証、出力時のエスケープ、プレースホルダの使用、エラーメッセージでの情報の出し過ぎの防止などを、コーディング規約、コードレビュー、SASTによる検査で徹底する。
プログラムを実際に動作させ、その振る舞いを観察して分析する手法。マルウェアの解析では、サンドボックスなどの隔離した環境で検体を実行し、作成するファイル、レジストリの変更、通信先などを記録して機能を調べる。ソフトウェアの検証では、実行時のメモリの使い方や脆弱性の有無を調べるのに使う。
実行中のアプリケーションに対して外部から疑似的な攻撃リクエストを送信し、脆弱性を検出するテスト手法。ソースコードを必要とせず、ブラックボックス的に検査する。XSS、SQLインジェクション、認証の不備などを実際の動作環境で発見できる。
