Skip to main content

概要

AIネイティブのSASTは、Corgeaの次世代コードスキャン解決方法であり、アプリケーションコードのセキュリティ脆弱性を検出・修正することを目的としており、特にビジネスロジック、認証、コードの欠陥に重点を置いています。従来の静的アプリケーションセキュリティテスト(SAST)ツールとは異なり、AIネイティブのSASTは高度なAI駆動技術を用いて検出精度を高め、誤検知を減らし、開発者やセキュリティチームに実用的な洞察を提供します。 大規模言語モデル(LLM)と静的解析を組み合わせることで、AIネイティブのSASTはコードのより深いコンテキスト的理解を提供し、標準的なSASTツールでは見逃しがちな脆弱性を検出できるようにします。本ドキュメントは、AIネイティブSASTがどのように動作し、何を検出できるか、そして開発ワークフローへの統合方法について技術的概要を提供します。

主な特徴

  • LLMの推論能力と静的コード解析を組み合わせる
  • コンテキスト的理解を用いて脆弱性を正確に検出
  • ビジネスロジックと従来のSAST脆弱性の両方を特定する
  • 誤検知率が低いことでスキャン結果のノイズが低減されます
  • 明確な説明を伴う実践的な洞察
  • CI/CDパイプラインおよびプルリクエストとのシームレスな統合
  • ビジネスロジック脆弱性検出
  • 認証および認可の欠陥
  • 複数のカテゴリーにわたる包括的な脆弱性検出

脆弱性クラスを検出

AIネイティブのSASTは、従来のSASTツールでは見逃されがちなビジネスロジックの脆弱性を検出するのに優れています。以下はAIネイティブのSASTによって検出された具体的な脆弱性の一部です。
  • 不適切なアクセス制御(CWE-639):不正アクセスを許可する認可チェックが抜けている
  • 安全でない直接オブジェクト参照(CWE-639):適切な権限なしでオブジェクトに直接アクセス
  • パストラバーサル(CWE-22):不正ファイルにアクセスするディレクトリトラバーサル攻撃
  • 不正な認可(CWE-285):弱いアクセス制御
  • 特権エスカレーション(CWE-269):不適切な特権管理
  • 欠落機能レベルアクセス制御(CWE-285):保護されていない管理機能
  • SQL注入(CWE-89):データベース操作を可能にする非サニタイズ済みSQLクエリ
  • コマンドインジェクション(CWE-78):OSコマンドインジェクションの脆弱性
  • クロスサイトスクリプティング(XSS)(CWE-79):ウェブページへの悪意あるスクリプトの注入
  • LDAP注入(CWE-90):LDAPクエリ操作
  • XMLインジェクション(CWE-91):XMLコンテンツ操作
  • コード注入(CWE-94):動的コード実行の脆弱性
  • 表現言語注入(CWE-917):表現言語における注入
  • テンプレート注入(CWE-1336):サーバー側テンプレート注入
  • 安全でない認証(CWE-287):MFAの欠如または安全でないトークン管理
  • 壊れた認証(CWE-287):弱い認証機構
  • 不適切なセッション管理(CWE-384):セッションIDの誤管理
  • 認証管理(CWE-255):不適切な認証情報の保存または送信
  • 弱いパスワード要件(CWE-521):パスワード複雑さの強制が不十分であること
  • 安全でないデータストレージ(CWE-311):弱い暗号化または平文での保存
  • 弱い暗号(CWE-327):壊れたまたはリスクの高い暗号アルゴリズムの使用
  • 不十分なエントロピー(CWE-330):予測可能な乱数生成
  • ハードコードされたシークレット(CWE-798):埋め込まれた認証情報
  • 機密データ露出(CWE-200):情報漏洩
  • 不適切な証明書検証(CWE-295):SSL/TLS検証失敗
  • 不衛生なデータ処理(CWE-20):入力検証の不十分さ
  • 不適切な出力符号化(CWE-116):出力のサニタイズが不十分です
  • 質量割り当て(CWE-915):リクエストパラメータを内部オブジェクトにバインディング
  • XML外部エンティティ(XXE)(CWE-611):XMLパーサーの脆弱性
  • 信頼できないデータのデシリアライズ(CWE-502):安全でないオブジェクトのデシリアライズ
  • セキュリティの設定ミス(CWE-16):不適切なセキュリティ設定
  • デフォルト構成(CWE-1188):安全でないデフォルト設定の使用
  • セキュリティヘッダーの欠如(CWE-693):保護HTTPヘッダーの欠如
  • 冗長なエラーメッセージ(CWE-209):誤りを通じた情報開示
  • ディレクトリリスト(CWE-548):公開ディレクトリの内容
  • ビジネスロジック脆弱性(CWE-840):ユーザーが重要なプロセスを操作または回避できる欠陥
  • コードロジック脆弱性(CWE-633):条件やループのエラーが予期しない挙動を引き起こす
  • コンテキスト依存脆弱性(CWE-696):時間ベースまたは状態依存エラー
  • レース条件(CWE-362):制御されていないタイミング/操作順序
  • タイミング攻撃(CWE-208):時間ベースの情報漏洩
  • SSRF(CWE-918):サーバーサイドのリクエスト偽造による不正な内部要求
  • URLリダイレクト(CWE-601):未検証のリダイレクトおよび転送
  • DNS リバインディング(CWE-350):DNSベースのSSRF攻撃
  • 不適切なログ記録(CWE-532):ログ内の機密データ
  • 不十分なログ記録(CWE-778):セキュリティイベントログの欠如
  • 不適切なエラー処理(CWE-209):エラーメッセージにおける情報漏洩
  • 不適切な例外処理(CWE-248):不適切な例外管理によるセキュリティリスク
  • 監査記録欠如(CWE-778):不十分な活動追跡
  • 悪意あるコード(CWE-506):不正で有害な行為
  • バックドア(CWE-288):隠しアクセス機構
  • 時限爆弾(CWE-511):悪意ある行動を引き起こす
  • サプライチェーン攻撃(CWE-1357):依存関係が侵害されたかアップデート
  • データ流出(CWE-319):不正データ伝送
  • 非倫理的なデータ収集(CWE-359):不適切なデータ収集
  • 悪意あるネットワーク活動(CWE-293):疑わしい接続
  • クリプトマイニング(CWE-400):無許可のリソース使用
  • リソース枯渇(CWE-400):リソース消費によるサービス拒否
ビジネスロジックの脆弱性に加え、AIネイティブSASTは、一般的なSASTスキャンで検出される標準的なセキュリティ上の欠陥にも対応し、約900件の**Common Weakness Enumeration(CWE)**をカバーします。

シークレットスキャン

Corgeaは、ハードコードされた認証情報、APIキー、機密データを検出する包括的なシークレットスキャン機能も提供します。シークレットの検出方法と安全な保存方法を確認できます。

包括的な脆弱性カバレッジ

CorgeaのAIネイティブSASTは、OWASPトップ10やトップ25のCWEなどの業界標準を超えた広範な脆弱性カバレッジを提供します。当社のプラットフォームは、新たな脅威に先んじて対応し、さまざまなプログラミング言語やフレームワークにわたる幅広いセキュリティ課題に対応するため、脆弱性データベースを継続的に拡充しています。

カバレッジの深さと広さ

脆弱性を複数の観点からカバーし、コードベースを詳細に分析します。
Corgeaは異なるプログラミング言語の微妙な違いと、それぞれ独自のセキュリティ課題を理解しています。当社のAIモデルは、C/C++のメモリ管理問題からPythonやRubyの動的型付けの課題まで、サポート言語ごと特有の脆弱性を特定するよう訓練されています。
一般的なフレームワークは独自のセキュリティ上の懸念をもたらします。Corgeaの分析は、.NET、Django、Ruby on Rails、Gin、Express.js、Springなどのフレームワークの複雑さを考慮し、ターゲットを絞った脆弱性検出と修復を提供します。
言語固有の問題を超えて、当プラットフォームは複数の言語で起こりうる脆弱性にも対応しています。例えば:
  • 安全でない暗号技術
  • 不適切な入力検証
  • レースコンディション
  • 認証および認可の欠陥
当社のAIモデルは常に更新され、常に時代の先を行い、変化するセキュリティ環境の中で新たな脆弱性を検出し、修正できるようにします。

包括的なカバレッジが重要な理由

リスクの低減

幅広い脆弱性に対処することで、セキュリティ侵害、データ漏洩、その他の潜在的な脅威のリスクを最小限に抑えます

コンプライアンス

業界特有のセキュリティ要件や規制基準を満たし、違反罰則のリスクを減らします

効率

AI搭載の誤検知および自動修正機能により、セキュリティレビュープロセスを効率化します

継続的改善

継続的に拡充される脆弱性データベースと脅威インテリジェンスにより、変化するセキュリティ環境に対応

テイント分析の確認

Corgeaがデータフローを特定できるコードの問題では、Full ViewTaint Analysisタブが表示されます。信頼できないデータがソースからアプリケーション内を通り、脆弱なシンクに到達するまでの流れを追跡できます。複数のファイルをまたぐフローにも対応します。
1

問題を開く

スキャンの問題一覧で行をクリックすると、問題の詳細サイドバーが開きます。
2

Full Viewを開く

サイドバーでOpen Full Viewをクリックします。Taint Analysisタブはサイドバーのプレビューではなく、Full Viewで使用できます。
クイックビューサイドバーで「Open Full View」ボタンがハイライトされています
3

Taint Analysisタブを開く

Taint Analysisを選択します。Corgeaがデータフローを順番に示すトレースを読み込みます。初めてタブを開くときは、生成に数秒かかることがあります。
4

トレースを確認

各ステップには、役割、ファイルパス、行番号、簡単な説明が表示されます。ステップをクリックするとインラインコードビューアでファイルが開き、該当行に移動します。
問題のTaint Analysisタブ:全画面で、ソース、伝播、シンクステップをインラインコードビューアの隣に示します
トレースは3つのステップタイプに分類されます。
  • ソース — 信頼できない入力がアプリケーションに入る場合
  • Propagation — テイントされた値を伝達する中間関数やファイル
  • Sink — データが脆弱な処理に到達する箇所
Corgeaがこの問題に対して提供している情報によっては、スキャン時間のデータフロー(例:Semgrep、SARIF、Checkmarxの検出結果)、到達可能性コールグラフ、またはスキャン時間トレースが利用できない場合のAI生成解析から得られる場合があります。タブヘッダーは使用されたソースを示します。

AIネイティブSASTの背後にある技術

AIネイティブのSASTは、Corgea独自のCodeIQ技術を搭載し、AIと抽象構文木(AST)を組み合わせて包括的な分析を実現します。
1

プロジェクトレベル分析

AIネイティブのSASTはプロジェクト全体を解析し、コードコンポーネント間の相互作用の完全な全体像を構築し、脆弱性を見落とさないようにします。
2

コンテキスト知能

AIエンジンはミドルウェア、設定、テンプレートなどのコードコンテキストを理解しています。
3

誤検知還元

コンテキストと論理の理解により、従来のツールでよく見られる誤陽性が減ります。

従来の方法との比較

従来の静的解析手法には大きな制限があります:
  • ソースシンク解析は検証の手順を見逃す
  • コールグラフは実行時の挙動をミスします
  • ベクトル探索とRAGは過度な一般化に悩まされています

統合とワークフロー

統合ポイント

  • CI/CDパイプライン:コミット/PRでの自動スキャン
  • プルリクエストレビュー:マージ前の脆弱性分析
  • IDE統合:開発中のリアルタイムフィードバック

対応言語とフレームワーク

Corgeaは、複数のプログラミング言語およびその人気フレームワークを対象に、スキャン、誤検知検出、自動修正の包括的なサポートを提供し、約900の共通弱点列挙(CWE)をカバーしています。

言語サポート

ネイティブ言語サポート:LINQ、async/awaitパターン、ジェネリックを含むC#言語構成文の堅牢なサポート。フレームワーク:.NET、ASP.NET Core、BlazorCorgeaは、エンタープライズレベルの.NETアプリケーションにおける不適切な認証、安全でないデシリアライズ、CSRFなどの脆弱性に対応します。
ネイティブ言語サポート:デコレーター、コンテキストマネージャー、理解などPython特有の機能を分析します。フレームワーク:Django、Flask、FastAPIウェブアプリケーションとバックエンドサービスの両方に焦点を当て、SQLインジェクション、XSS、安全でない直接オブジェクト参照などの課題に取り組んでいます。
ネイティブ言語サポート:Rubyの動的な性質を理解し、メタプログラミング機能やブロックも理解しています。フレームワーク:Ruby on Rails、シナトラRuby特有の脆弱性の特定と修正を専門としており、大量割り当ての問題、保護されていないルート、安全でないファイルアップロードなどが含まれます。
母語サポート:Goルーチン、チャネル、インターフェースなどのGo固有の構造を分析します。フレームワーク:Gin、Echo、Fiber(繊維)レースコンディション、エラー処理、暗号関数の安全でない使用など、Go固有のセキュリティ問題を対象とします。
ネイティブ言語サポート:JavaScriptとTypeScriptの両方をサポートし、async/wait、クロージャー、TypeScriptの型システムなどの機能が含まれます。フレームワーク:Node.js、Express.js、Next.js、NestJS、Angular、React、Vue.jsクライアントサイドとサーバーサイドのセキュリティをカバーし、プロトタイプ汚染、安全でない依存関係、DOMベースのXSSなどに対応します。
ネイティブ言語サポート:ジェネリック、注釈、ラムダ式などのJava特有機能を分析します。フレームワーク:Spring、Jakarta EE、Play FrameworkエンタープライズJavaエコシステムを対象に、XML外部エンティティ(XXE)攻撃、LDAPインジェクション、安全でないオブジェクトのデシリアライズなどの脆弱性に対応します。
ネイティブ言語サポート:PHP独自の構文や言語構造、特性や属性を扱います。リモートコード実行、ファイル包含脆弱性、SQLインジェクション攻撃など、一般的なウェブアプリケーションの脆弱性に対応します。
ネイティブ言語サポート:Kotlin固有の機能(ヌルセーフティ、コルーチン、拡張関数など)を分析します。Androidとサーバーサイドのアプリケーションを対象に、不適切なデータ露出や安全でない通信などの問題に対応します。
ネイティブ言語サポート:オプション、プロトコル拡張、ジェネリック、値型などSwift固有の機能を分析します。iOSとmacOSアプリケーションを対象に、安全でないデータ保存、不適切なSSL/TLS検証、安全でないプロセス間通信などの脆弱性に対応します。
ネイティブ言語サポート:ポインタ、メモリ管理、テンプレートなどの低レベルプログラミング構造を扱います。メモリ関連の脆弱性、バッファオーバーフロー、C/C++アプリケーションで一般的なシステムレベルのセキュリティ問題に焦点を当てています。誤検知および自動修正のために有効化されています。まもなくスキャンに入ります。

主な能力

包括的スキャン

高度なアルゴリズムがコードベースをスキャンし、幅広いCWEをカバーする潜在的なセキュリティ脆弱性を特定します

誤検知

AI搭載システムは、真の脆弱性と誤検知を正確に区別します

自動修正

実行可能でコンテキスト認識のある修正を提供し、自動適用または実装前にレビュー可能です

フレームワーク固有の分析

各言語内の異なるフレームワークの微妙なニュアンスを理解し、ターゲットを絞ったセキュリティ洞察を提供します

インテリジェントファイルフィルタリング

スキャン性能と精度を最適化するために、Corgeaはセキュリティ分析に関係のないファイルを自動的に除外します:

飛ばすファイル

  • メディアファイル(イメージ、動画、フォント)
  • スタイルファイル(CSS、SCSS、LESS)
  • ドキュメントおよびマークダウンファイル
  • 設定アーカイブおよび圧縮ファイル
  • テストファイルおよびテストディレクトリ
  • モックおよびフィクスチャーデータ
  • コードカバレッジレポート
  • 自動生成コードファイル
  • 最小化またはバンドルされたコード
  • データベース移行ファイル
  • 型定義ファイル
  • コンパイル済みバイナリおよびビルド出力

コンテキスト用ファイル

脆弱性を直接スキャンするわけではありませんが、CorgeaはREADMEファイル、設定例、アプリケーション設定ファイルなど、分析のコンテキストを明確にするために特定のファイルを参照することがあります。

カスタム構成

さらに、リポジトリのルートにある corgea.yaml 設定ファイルを使ってスキャン動作をカスタマイズできます:
これにより、プロジェクトのニーズに応じて特定のディレクトリやファイルパターンを除外できます。

なぜ私たちはフィルターをかけるのか

私たちのインテリジェントなフィルタリングアプローチ:
  • 実際のアプリケーションコードに焦点を当てることで精度 を向上させる
  • テストファイルやサードパーティコードからのノイズ を低減します
  • より高速なスキャン結果のためにパフォーマンス 最適化
  • あなたが管理するコード内で検出 優先順位をつける
近日公開:Rust言語サポート