SAST(ソースコード静的検査)
Static Application Security Testing
さすと
プログラムを実行せずに、ソースコードやバイナリを解析して、脆弱性につながる記述(入力の検証の漏れ、危険な関数の使用など)を検出する検査の手法。開発の早い段階から実施でき、問題の箇所をコードの行の単位で特定できるが、誤検知が多く、実行時の設定や環境に起因する問題は見つけにくい。実行中のアプリケーションを外から検査するDASTと組み合わせる。
Related
他の資格での定義
ソースコードやバイナリを実行せずに解析し、セキュリティ上の脆弱性を検出するテスト手法。開発の早い段階で脆弱性を発見でき、CI/CDパイプラインに組み込んで自動実行される。SQLインジェクションやバッファオーバーフローなどのコーディング上の問題を検出する。
プログラムを実行せずに、ソースコードやバイナリを解析して脆弱性を検出する検査手法。SQLインジェクションやバッファオーバーフローにつながる危険な関数の使用や、入力値が無害化されずに出力に渡る経路などを見つける。開発の早い段階から自動で実行できる一方、誤検知が多く、実行時の設定や環境に起因する問題は見つけにくい。
Related
関連キーワードの用語
システムの企画・設計の段階からセキュリティ対策を組み込んでおく考え方。セキュアバイデザインともいう。完成した後に対策を追加するより手戻りが少なく、費用も抑えられ、運用中に脆弱性が見つかる危険も減らせる。
脅威に付け込まれる可能性がある、情報資産や管理策の弱点。ソフトウェアや機器の設計・実装上の欠陥(セキュリティホール)だけでなく、設定の不備や運用手順の不備も含む。ネットワークでは、ポートスキャンなどの脆弱性検査で不要に開いているポートや古いバージョンのサービスを洗い出し、パッチの適用や不要なサービスの停止で対処する。
動作中のアプリケーションに外部から検査用のリクエストを送り、その応答から脆弱性を検出する検査手法。攻撃者と同じ視点で、XSSやSQLインジェクション、設定不備などを実行環境を含めて確認できる。ソースコードがなくても実施できるが、問題の箇所をコード上で特定しにくく、検査が到達しない機能は確認できない。
検査対象のソフトウェアに、ファズと呼ぶ大量の異常値や想定外のデータを自動で入力し、異常終了や応答の停止などの挙動から未知の脆弱性を見つける検査手法。バッファオーバーフローなど、入力処理の不備を発見しやすい。正常な入力を少しずつ変化させる方式や、実行された経路の網羅度を手がかりに入力を生成する方式がある。
