SAST(静的解析)機能について
静的解析(SAST)機能は、ソースコードをコンパイル前の段階で解析し、アプリケーションに潜む脆弱性を早期に検出する機能です。開発の初期段階からセキュリティ対策を進めやすくなり、手戻りの削減や、効率的な脆弱性対応に役立ちます。
また、コードの断片単位でも解析を開始できるため、ビルドの成功を待つことなく確認を進めることができます。既存の開発プロセスや各種ツールとの統合にも対応し、開発スピードを損なわずにセキュリティを組み込むことが可能です。
特長
コンパイル前のコードを解析
未加工のソースコードも解析できるため、脆弱性の特定には最も効果的である開発の初期段階でソースコードを解析することができます。また、コンパイルやビルドの成功を懸念する必要がなく、コードフラグメント(断片)を投入すれば解析が始まります。
オープンでカスタマイズ可能なクエリ
Checkmarxの製品にはオープンなクエリ言語が採用されており、何をどのように解析したかを簡単に確認できます。また、特定の環境に合わせた素早いカスタマイズが可能で、フレームワークに含まれないサニタイズにも対応できます。この機能により、過検知の割合を減らし、許容できる範囲にまでノイズを抑えることが可能です。
ベストコーディングプラクティスや特定の規約を順守するために、自社オリジナルのクエリを追加して利用することもできます。
最適な修正ポイントの提案
ソースコードの脆弱性を特定するだけでなく、アプリケーションのデータフローを俯瞰し、効果的な修正箇所の特定を支援します。複数の脆弱性が1回の修正で取り除けるような、効率的な対処にも役立ちます。
差分解析による解析時間の短縮
独自のインクリメンタル・スキャン(差分解析)により、少数のソースコードのみを変更した場合は、必ずしもコードベース全体を再スキャンする必要がありません。前回の解析結果と関連ファイルから変更箇所を特定し、変更箇所のみを解析対象とすることで、解析結果を素早く得ることができます。開発スピードの速いアジャイル開発では特に有効です。
AIの力でコミット前から脆弱性を予防 Optional
お使いのIDE上で、コーディング中のコードを自動解析し、脆弱性の発生を早期に検知します。AIコーディングアシストにより、問題点の指摘だけでなく、その場で修正案を提示し、手戻りの少ない開発を支援します。
検出結果と連動したハンズオン学習 Optional
オプションのCodebashingとの連携により、脆弱性検出結果から該当する学習コンテンツへ直接アクセスすることが可能です。デモ環境での疑似攻撃や対策実装を通じて、脆弱性の本質と修正方法を深く理解できます。
機能
セキュリティ専門家や開発者は検出された脆弱性を調査し、最適な修正方法を決めなければなりませんが、SAST Viewerでは、攻撃ベクターをソースからシンクまでのデータフローで表示し、各ノードをクリックすることで関連するメソッドやコード行を表示します。
ダッシュボード
ダッシュボード画面から、対応状況のトリアージや言語ごとの検出結果を比較することが可能です。
プロジェクト内で複数結果がある場合は、再検出されている件数や新たに検出された脆弱性などを一目で確認することができます。

最適な修正箇所の特定
Checkmarxは脆弱性を特定するだけではありません。検出された脆弱リスト化に加え、グラフ理論のアルゴリズムを使用して攻撃ベクターを統合し、複数の攻撃ベクターが交差する、コード修正に最適な個所を特定します。グラフビューは全体的な修正を達成するために、最低限必要な修正箇所を指摘し、開発者のコード修正を支援します。

取得できる解析結果 レポート
SAST機能を利用することで、以下の様な情報を含む解析結果を簡単に取得することができます。
脆弱性検査結果の統計情報
脆弱性検査結果の総合的な情報が表示されます。危険度の高い脆弱性から優先的に対処するなど、計画的に脆弱性対策を行うのに役立ちます。



脆弱性についての説明
脆弱性の説明が表示されますので、脆弱性の理解に役立ちます。

サンプルコード
脆弱性対策済みのコードの一例を確認しながら、サンプルを通して対策にお役立ていただけます。

検出可能な脆弱性
- SQLインジェクション
- セッション固定攻撃
- クロスサイトスクリプティング
- セッションポイズニング
- コードインジェクション
- 補足されていない例外
- バッファオーバーフロー
- 解放されていないリソース
- パラメータの改ざん
- 検証されていない入力
- クロスサイトリクエストフォージェリ
- URLリダイレクト攻撃
- HTTPレスポンスの分割
- 危険なファイルアップロード
- ログの偽造
- ハードコーディングされたパスワード
- DoS攻撃
- XMLエンティティ拡張(XEE)攻撃
- 安全でないデシリアライゼージョン など
プログラミング言語やフレームワークを幅広くサポート
最新のプログラミング言語やフレームワークを追加しやすい設計となっており、多様な開発環境に対応します。
対応している言語
- Java
- Apex
- C#
- Ruby
- JavaScript
- VBScript
- VB.NET
- Perl
- ASP
- HTML5
- VB6
- Python
- PHP
- Groovy
- C/C++
- Scala
- Android (Java)
- PL/SQL
- Objective-C
- GO
- Swift
- TypeScript
- Kotlin
- SQL
- COBOL
- RPG
- Dart
- Lua
- Rust
対応しているフレームワーク
- Spring/Spring Boot/Spring MVC
- Hibernate
- Struts
- ASP.NET Core
- ASP.NET MVC
- Entity Framework
- Angular/AngularJS
- ReactJS
- VueJS
- Zend
- Symfony
- CakePHP
- Django
- Flask
- Jinja and DTL
- Ruby on Rails
- gin-gonic/gin
- gorilla-mux
- Akka
- Finatra
- Ktor
- Vert.x
- VisualForce
- Lightning (Aura)
- Lightning Web Components
- Flutter など
※ 詳細は、メーカーサイト(英語)をご参照ください。
サポートされている標準規格
以下の標準規格にも対応しています。
- OWASP TOP 10 - 2021
- OWASP Mobile TOP 10 - 2024
- OWASP API TOP 10 - 2023
- PCI DSS 4.0
- FISMA
- SANS Top 25
- MISRA
- HIPAA
- BSIMM
- MITRE CWE
AIの力でコミット前から脆弱性を予防 【Optional】
オプションのAI機能 Checkmarx Developer Assist を追加いただくことで、コーディングの段階から脆弱性を検知し、コミット時における脆弱性の混入を低減します。
脆弱性のオンザフライ解析
普段お使いのIDE上で、コーディング中のコードをリアルタイムに解析し、脆弱性となり得る箇所を自動で検出・警告します。

AIコーディングアシスト機能
検出された脆弱性は、クリック一つでAIによるコード修正提案を提示します。
コードの前後関係や利用コンテキストを理解したうえで提案するため、内容に問題がなければ、そのままコードとして適用することが可能です。

検出結果と連動したハンズオン学習 【Optional】
オプションのCodebashingとの連携により、脆弱性検出結果から該当する学習コンテンツへ直接アクセスすることが可能です。
デモ環境での疑似攻撃や対策実装を通じて、脆弱性の本質と修正方法を深く理解できます。
