IT用語帳
A-1セキュリティ実装技術・評価 · セキュア開発・実装

SAST(ソースコード静的検査)

Static Application Security Testing

さすと

プログラムを実行せずに、ソースコードやバイナリを解析して脆弱性を検出する検査手法。SQLインジェクションやバッファオーバーフローにつながる危険な関数の使用や、入力値が無害化されずに出力に渡る経路などを見つける。開発の早い段階から自動で実行できる一方、誤検知が多く、実行時の設定や環境に起因する問題は見つけにくい。

共有:

Related

他の資格での定義

Related

関連キーワードの用語

A-1コンテナイメージの脆弱性管理

コンテナイメージに含まれるOSパッケージやライブラリの既知の脆弱性を検出し、修正していく取組み。イメージスキャナを使ってビルド時、レジストリへの登録時、稼働中に継続して検査し、信頼できる最小構成のベースイメージを使う、署名で改ざんを防ぐといった運用を行う。稼働中のコンテナに直接パッチを当てるのではなく、修正版からイメージを作り直して入れ替えるのが原則。

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

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

A-1ファジング

検査対象のソフトウェアに、ファズと呼ぶ大量の異常値や想定外のデータを自動で入力し、異常終了や応答の停止などの挙動から未知の脆弱性を見つける検査手法。バッファオーバーフローなど、入力処理の不備を発見しやすい。正常な入力を少しずつ変化させる方式や、実行された経路の網羅度を手がかりに入力を生成する方式がある。

A-1動的解析

プログラムを実際に動作させ、その振る舞いを観察して分析する手法。マルウェアの解析では、サンドボックスなどの隔離した環境で検体を実行し、作成するファイル、レジストリの変更、通信先などを記録して機能を調べる。ソフトウェアの検証では、実行時のメモリの使い方や脆弱性の有無を調べるのに使う。

A-1コーディング標準

プログラムを書くときに従う、命名規則、字下げ、コメントの書き方、使用を禁止・制限する構文などの組織やプロジェクトの取決め。書き手によるばらつきを抑えて読みやすさと保守性を高め、誤りや脆弱性の作り込みを防ぐ。遵守の確認は静的解析ツールで自動化することが多い。

A-1シフトレフト

テストや品質の確認、セキュリティ対策などを、開発工程の後ろ(右)ではなく、要件定義、設計、実装といった早い段階(左)に移して行う考え方。欠陥は早く見つけるほど修正の費用が小さいことを根拠とし、DevOpsやDevSecOpsで重視される。