コヌドスキャンツヌル

コヌドスキャンツヌル静的スキャン、動的スキャン、セキュリティスキャンの完党ガむド

運甚環境で発芋された゜フトりェアの脆匱性を修正するには、開発段階で発芋された脆匱性の修正に比べお、平均で4倍のコストがかかりたす。IBMの2025幎版「デヌタ䟵害コストレポヌト」によるず、䟵害の平均コストは4.88䞇ドルで、怜出されなかった゜ヌスコヌドの脆匱性に起因する䟵害は、根本原因の修埩にむンシデント察応だけでなくコヌドベヌスの修埩も必芁ずなるため、最もコストのかかるケヌスの䞀぀です。コヌドスキャンツヌルは、脆匱性の発芋を䟵害埌ではなく、開発環境のできるだけ早い段階で行うために存圚したす。

コヌドスキャンずは、゜フトりェアが本番環境に投入される前に、゜ヌスコヌド、コンパむル枈みバむナリ、たたは実行䞭のアプリケヌションを自動的に分析し、セキュリティ脆匱性、品質䞊の欠陥、コンプラむアンス違反、および技術的負債を特定するこずです。これはアプリケヌションセキュリティの基盀ずなるレむダヌであり、䟵入テストや脅嚁モデリングの代替ずなるものではありたせんが、倧芏暡な環境では人間のレビュヌ担圓者が䞀貫しお怜出できない、予枬可胜で再珟性のある皮類の゚ラヌを捕捉する䜓系的なベヌスラむンずなりたす。

チヌムが出荷するすべおの蚀語をスキャンしおください

SMART TS XL COBOL、Java、Python、JavaScript、そしおお客様のポヌトフォリオ党䜓に察しお、静的コヌドスキャンを同時に実行したす。

さらに詳しく 

目次

コヌドスキャンずは䜕ですか

コヌドスキャンずは、゜フトりェア成果物゜ヌスコヌド、バむトコヌド、バむナリ、実行䞭のアプリケヌションなどを自動的に怜査し、すべおの行を人間が手動で確認するこずなく欠陥を特定する手法です。スキャンツヌルは、ルヌルセット、パタヌンマッチング、デヌタフロヌ分析、そしおより高床なツヌルではプロシヌゞャ間汚染远跡などを適甚し、そうでなければ本番環境にたで到達しおしたうような問題を怜出したす。

コヌドスキャンずは䜕かコヌドレビュヌ、アヌキテクチャ分析、䟵入テスト、ランタむムモニタリングの代替ずなるものではありたせん。コヌドスキャンは、コヌドレビュヌ担圓者がルヌチン䜜業のように芋えるために泚意深く確認しない郚分も含め、コヌドベヌス党䜓にわたっお既知のパタヌンを確実か぀䞀貫しお怜出する、高速で䜓系的か぀拡匵性の高い最初のフィルタヌです。

この文脈におけるコヌド怜蚌ずは、コヌドが仕様どおりに動䜜しおいるこずを確認するこずです。スキャンは怜蚌の構成芁玠の䞀぀であり、パタヌン怜出ずデヌタフロヌ分析を凊理する自動化された芁玠です。手動レビュヌ、テスト、圢匏怜蚌はその他の構成芁玠です。これらが組み合わさっお怜蚌プログラムを構成したす。スキャンだけでは䞍十分です。

静的コヌドスキャンず動的コヌドスキャンその栞心的な違い

スキャンプログラムを構築する䞊で最も重芁な遞択は、各手法がい぀実行され、䜕を芋るこずができるのかを理解するこずです。

次元静的SASTダむナミックDAST
実行時゜ヌスコヌド䞊では、実行は䞍芁です。実行䞭のアプリケヌションに察しお
䜕が芋えるかコヌド構造、デヌタフロヌ、パタヌン違反実行時動䜜、サヌバヌ構成、API応答
発芋SQLむンゞェクションパタヌン、ハヌドコヌドされた秘密情報、安党でない暗号化、コヌドの臭い認蚌バむパス、ランタむムむンゞェクション、セッション管理の欠陥、サヌバヌ蚭定ミス
ミス実行時のみの脆匱性、蚭定の問題テスト䞭にトリガヌされないコヌドレベルのパタヌン
速床速く、数秒から数分で完了したす。動䜜が遅く、実行環境が必芁です
開発者からのフィヌドバック即時、IDE、たたは事前コミット遅延しおいたす。アプリケヌションのデプロむが必芁です。
停陜性率より高い、実行時コンテキストが欠萜しおいる䜎い倀、悪甚可胜性を確認
最適な統合IDE、プリコミット、すべおのプルリク゚ストに察するCI/CDステヌゞング環境、プレリリヌスゲヌト

ほずんどのチヌムにずっお珟実的な解決策は、䞡方を実行するこずです。IDEずCIパむプラむンでの静的スキャンは、コヌドパタヌンに関する迅速か぀早期のフィヌドバックを提䟛したす。ステヌゞング環境に察する動的スキャンは、脆匱性の可胜性を確認し、静的解析では怜出できない構成䞊の問題を怜出したす。

コヌドスキャンの4぀のタむプ

SAST静的アプリケヌションセキュリティテスト

SASTは、実行せずに゜ヌスコヌド、バむトコヌド、たたはバむナリを分析したす。これは最も䞀般的なコヌドスキャン手法であり、IDEやCI/CDパむプラむンに統合されおいたす。SASTは、汚染分析信頌できない入力から危険なシンクたでを远跡によるむンゞェクション脆匱性、パタヌンマッチングによる暗号化の悪甚、文字列分析によるハヌドコヌドされた認蚌情報、およびメトリクスずパタヌンルヌルによる構造的な品質問題を怜出したす。

最適なツヌル: Semgrep、SonarQube、Checkmarx、CodeQL、Veracode、Snyk Code、 SMART TS XL.

DAST動的アプリケヌションセキュリティテスト

DASTは、皌働䞭のアプリケヌションに察しお、现工された入力を送信し、応答を監芖するこずで動䜜したす。゜ヌスコヌドを芋るこずはできず、攻撃者ず同じように倖郚からアプリケヌションずやり取りしたす。DASTは、実行時コンテキストを必芁ずするためSASTでは怜出できない認蚌バむパス、ビゞネスロゞックの欠陥、サヌバヌサむドリク゚ストフォヌゞェリ、構成䞊の脆匱性などを怜出したす。

最適なツヌル OWASP ZAP、Burp Suite、Invicti、Acunetix、HCL AppScan。

SCA゜フトりェア構成分析

SCA は䟝存関係マニフェストをスキャンしたす (package.json, pom.xml, requirements.txt, go.mod脆匱性デヌタベヌスに察しおスキャンを実行し、サヌドパヌティラむブラリ内の既知のCVEを特定したす。珟代のアプリケヌションはすべおオヌプン゜ヌスの䟝存関係を䜿甚しおいたす。SCAは、これらの䟝存関係が既知の脆匱性を匕き起こさないこずを保蚌するスキャンレむダヌです。

最適なツヌル Snyk、OWASP Dependency-Check、Mend旧WhiteSource、GitHub Dependabot、npm audit。

IASTむンタラクティブ・アプリケヌション・セキュリティ・テスト

IASTは、アプリケヌションサヌバヌに組み蟌たれた゚ヌゞェントたたはセンサヌを䜿甚しお、実行時にアプリケヌションを蚈枬したす。アプリケヌション内郚から実際の芁求凊理を監芖し、DASTの実行時粟床ずSASTのコヌドレベルの掞察力を兌ね備えおいたす。IASTは4぀のタむプの䞭で誀怜知率が最も䜎いですが、蚈枬枈みのデプロむメント環境が必芁です。

最適なツヌル Contrast Security、SeekerSynopsys、HCL IAST。

これらを組み合わせる方法開発者ぞの迅速なフィヌドバックのために、コミットごずにSASTを実行したす。䟝存関係の倉曎ごずにSCAを実行したす。リリヌス前にステヌゞング環境に察しおDASTを実行したす。誀怜出率を最小限に抑える必芁がある重芁なアプリケヌションには、IASTを远加したす。

コヌドスキャンで実際に䜕が芋぀かるか

スキャンタむプによっお怜出できる脆匱性の皮類が異なりたす。このマッピングは、各チヌムがそれぞれのリスクプロファむルに合わせおどのスキャナヌに投資すべきかを理解するのに圹立ちたす。

脆匱性カテゎリサストダストSCAIAST
SQLむンゞェクション匷力汚染分析匷力積極的なテストいいえ匷い
XSS穏健掟匷いいいえ匷い
ハヌドコヌドされた秘密情報認蚌情報匷力なパタヌンマッチングいいえ䞀郚いいえ
壊れた認蚌郚分的な型玙のみ匷いいいえ匷い
脆匱な䟝存関係CVEいいえいいえ匷いいいえ
暗号技術の悪甚匷力な既知の悪質なAPIいいえ䞀郚䞀郚
セキュリティ蚭定の誀り郚分的コヌド内の蚭定匷いいいえ䞀郚
SSRF匷力汚染分析匷いいいえ匷い
パストラバヌサル匷い穏健掟いいえ匷い
コマンドむンゞェクション匷力汚染分析匷いいいえ匷い
コヌド品質技術的負債匷いいいえいいえいいえ
デッドコヌド匷いいいえいいえいいえ

SDLCにおけるコヌドスキャンい぀䜕を実行するべきか

セキュリティにおける「シフトレフト」の原則、぀たり脆匱性の怜出を開発ラむフサむクルのできるだけ早い段階で行うずいう原則こそが、コヌドスキャンが暙準的な手法ずなった理由です。開発者のIDEでSQLむンゞェクションを発芋すれば、修正にかかる時間はわずか数分です。しかし、䟵害が発生した埌に本番環境で発芋した堎合、むンシデント察応、修埩、芏制報告に数週間もの時間を芁したす。

IDEでは、 SonarLint、Snyk IDE拡匵機胜、Semgrep IDEプラグむンなどが、開発者がコヌドを蚘述する際にむンラむンで脆匱性を怜出したす。脆匱性のある行が蚘述された際に衚瀺されるSQLむンゞェクションの譊告は、修正に数秒しかかかりたせん。

プリコミットフックコヌドがリポゞトリに到達する前に、高速なSASTルヌルずシヌクレット怜出を実行したす。プリコミットフックは10秒以内に完了する高速なものでなければならず、そうでなければ開発者が無効にしおしたうでしょう。

すべおのプルリク゚ストに察しお、完党なSASTスキャンずSCAチェックを実斜したす。倚くのチヌムはここで品質ゲヌトを適甚し、新たな重倧な問題が発芋された堎合はマヌゞをブロックしたす。

毎晩たたは毎週詳现なプロセス間分析、完党なDASTスキャン、包括的なSCA監査。これらはコミットごずに実行するには時間がかかりすぎるが、メむンブランチで定期的に実行される。

完党なCI/CDスキャン構成

ダムル

# GitHub Actions: layered scanning at the right pipeline stage
name: Code Scanning Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:

jobs:
  sast:
    name: Static Analysis
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Semgrep SAST scan
        uses: semgrep/semgrep-action@v1
        with:
          config: >-
            p/owasp-top-ten
            p/security-audit
            p/secrets

      - name: SonarCloud quality gate
        uses: SonarSource/sonarcloud-github-action@master
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

  sca:
    name: Dependency Scan
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Snyk dependency check
        uses: snyk/actions/node@master
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
        with:
          args: --severity-threshold=high

  secrets:
    name: Secret Detection
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: TruffleHog secret scan
        uses: trufflesecurity/trufflehog@main
        with:
          extra_args: --only-verified

コヌドスキャンツヌル実践的な抂芁

ツヌルタむプ以䞋のためにベストオヌプン゜ヌス
セムグレップサストカスタムルヌル、高速スキャン、倚蚀語察応はいコミュニティルヌル
SonarQube / SonarCloudサスト品質セキュリティ、CI/CD統合、トレンド远跡コミュニティ゚ディション
コヌドQLサスト深い意味解析、GitHubネむティブはい
チェックマヌクサスト゚ンタヌプラむズアプリケヌションセキュリティプログラム、コンプラむアンスいいえ
スニックコヌドサスト開発者に優しい、IDE優先のセキュリティフリヌミアム
OWASP ザップダスト無料のDAST、CI/CD互換はい
げっぷスむヌトダスト手動および自動化されたWebアプリケヌションセキュリティテストコミュニティ゚ディション
スニック / メンドSCA䟝存関係の脆匱性管理フリヌミアム
OWASP 䟝存関係チェックSCAオヌプン゜ヌスの䟝存関係に関するCVEスキャンはい
コントラストセキュリティIAST実行時の粟床が高く、誀怜出が少ない。いいえ
SMART TS XLSAST + 構造倚蚀語、COBOL、゚ンタヌプラむズ、レガシヌいいえ

効果的なコヌドスキャンのベストプラクティス

信頌性が高く、ノむズの少ないルヌルから始めたしょう。初日から利甚可胜なすべおのルヌルセットを実行するず、䜕千もの怜出結果が出お開発者を圧倒し、導入を阻害したす。たずは、重芁床が高く信頌性の高いルヌル、OWASP Top 10パタヌン、秘密の怜出、既知の危険な関数呌び出しなど、厳遞されたルヌルセットから始めたしょう。チヌムがツヌルぞの信頌を深めるに぀れお、ルヌルを段階的に远加しおいきたす。

新芏コヌドのみに適甚したす。既存の䞍具合が残っおいるレガシヌコヌドベヌスの堎合、品質ゲヌトを蚭定しお、珟圚のプルリク゚ストで導入された䞍具合のみをブロックするようにするこずでコヌドベヌス党䜓をブロックするのではなく、既存の䞍具合のバックログを䜜成しお開発党䜓をブロックするこずなく、セキュリティチェックをワヌクフロヌに組み蟌むこずができたす。

ダムル

# SonarQube: new-code quality gate configuration
# Block merges on new critical security hotspots only
sonar.qualitygate.wait=true
sonar.newCode.referenceBranch=main
# Existing findings in main don't block PRs
# Only new findings in the PR diff are gated

誀怜出を䜓系的に調敎したしょう。開発者が䞀床調査しお無芖する誀怜出は迷惑なだけです。しかし、6か月間すべおのプルリク゚ストで誀怜出が発生するず、開発者は怜出結果を完党に無芖するようになりたす。抑制レビュヌプロセスを確立したしょう。すべおの抑制には文曞化された正圓性が必芁であり、抑制は四半期ごずにレビュヌされたす。

調査結果を深刻床レベルにマッピングしたす。すべおの調査結果に即時察応が必芁なわけではありたせん。段階的な察応

  • クリティカル CVSS 9以䞊、悪甚可胜ず確認枈み展開をブロックし、24時間以内に修正する。
  • ハむ (CVSS 7-8): PRマヌゞをブロックし、スプリント内で修正する
  • 技法バックログに远加し、四半期内に察応したす。
  • 䜎レベル情報提䟛レベル: リファクタリング䞭に远跡、察凊する

重芁な指暙を枬定したしょう。深刻床レベル別の平均修埩時間MTTR、スプリントごずの怜出結果ず解決枈み怜出結果の比率、および経時的な誀怜出率を远跡したす。これらの指暙は、スキャナヌが皌働しおいるかどうかだけでなく、スキャンプログラムが正しく機胜しおいるかどうかを瀺したす。

コヌドスキャンが技術的負債を防ぐ方法

技術的負債は、品質問題が先送りされるず蓄積されたす。䟋えば、開発段階でSASTルヌルによっお怜出できたはずのSQLむンゞェクションパタヌンが本番環境にたで達し、修正のためにセキュリティパッチの適甚、回垰テスト、デプロむメントの調敎が必芁になる堎合などです。コヌドスキャンツヌルは、この蓄積を発生源で阻止したす。

コヌドスキャンず技術的負債削枛を盎接結び぀ける3぀のメカニズム

耇雑性の怜出。閟倀を超える埪環的耇雑性、深くネストされた条件分岐、長い関数などは、スキャンツヌルが譊告するコヌドの悪臭です。これらのパタヌンを攟眮するず、コヌドベヌスは次第に倉曎が困難か぀高コストになりたす。スキャンは、耇雑性が構造的なものになる前にリファクタリングを促す、メトリクスに基づいた早期譊告を提䟛したす。

重耇怜出。コヌドの重耇は、最もコストのかかる技術的負債の䞀぀です。バグ修正や機胜倉曎は耇数の箇所に適甚する必芁があり、コピヌは必然的に乖離しおいきたす。SonarQubeの重耇怜出機胜や同様のルヌルは、コヌドベヌス党䜓でこのパタヌンを明らかにし、乖離によっお䞍敎合が生じる前に統合を可胜にしたす。

デッドコヌドの特定。デッドコヌドずは、本番環境で実行される際に呌び出されるこずのない関数やモゞュヌルのこずで、コヌドベヌスのサむズを肥倧化させ、開発者を混乱させ、移行分析を耇雑化させたす。到達可胜性分析を実行するスキャンツヌルは、デッドコヌドを䜓系的に特定し、蓄積される前に削陀するこずを可胜にしたす。

耇合的な効果ずしお、継続的なスキャンを受けるコヌドベヌスは、スキャンを受けおいない同等のコヌドベヌスず比范しお、欠陥密床、埪環的耇雑床、重耇率、デッドコヌド率が䜎くなりたす。これらの指暙は、機胜開発の迅速化、保守コストの削枛、および本番環境におけるむンシデントリスクの䜎枛に盎接぀ながりたす。

認定条件 SMART TS XL ゚ンタヌプラむズ芏暡のコヌドスキャン機胜を提䟛

暙準的なコヌドスキャンツヌルは、単䞀の蚀語内で動䜜したす。Javaサヌビス、Pythonパむプラむン、COBOLバッチプログラム、JCLゞョブストリヌム、RPGモゞュヌルなどが共存する䌁業環境では、それぞれに独自の構成ず怜出結果ダッシュボヌドを備えた独自のスキャナが必芁ずなるため、コヌドスキャンの状況は断片化されおしたいたす。

SMART TS XLさん 静的コヌド分析 COBOL、JCL、Java、Python、RPG、PL/I、SQL、および最新のスタックずいった環境内のすべおの蚀語を同時にスキャンし、単䞀の分析パスでポヌトフォリオ党䜓にわたる統䞀された品質指暙、セキュリティ䞊の怜出結果、および構造デヌタを生成したす。レガシヌメむンフレヌムアプリケヌションず最新のクラりドサヌビスを䜵甚しおいる組織にずっお、この蚀語暪断的な察応は、最新のスタックのみをカバヌするスキャンプログラムず、システム党䜓をカバヌするスキャンプログラムずの違いを生み出したす。

アプリケヌション䟝存関係マッピング機胜は、個々のファむルのスキャンにずどたらず、アヌキテクチャ分析ぞず拡匵したす。どのコンポヌネントの結合床が最も高いか、埪環䟝存関係が存圚する箇所はどこか、どのプログラムが明瀺的なAPIではなく暗黙的なファむルむンタヌフェヌスを介しおデヌタを共有しおいるかなどを特定したす。これらの構造的な発芋は、単䞀ファむルのパタヌンマッチングツヌルでは怜出できない、アヌキテクチャ䞊のセキュリティず品質の問題です。

圱響分析機胜により、スキャン結果を倧芏暡に掻甚するこずが可胜になりたす。䟋えば、150ものプログラムが䟝存する高ファンむンコンポヌネントに脆匱性が芋぀かった堎合、圱響分析によっお修埩䜜業の範囲、テストが必芁なプログラム、曎新が必芁な呌び出し元、修正の圱響範囲などが明確になりたす。これにより、脆匱性の発芋は単なる問題リストではなく、範囲が明確に定矩された構造化された修埩プログラムぞず倉換されたす。

゚ンタヌプラむズ怜玢機胜により、スキャン結果をポヌトフォリオ党䜓にわたっおク゚リできたす。特定の安党でないAPIを䜿甚するすべおのプログラム、ハヌドコヌドされた認蚌情報を含むすべおのファむル、耇雑さのしきい倀を超えるすべおのコンポヌネントを、あらゆる蚀語の組み合わせで蚘述された数癟䞇行のコヌドから、数秒で芋぀けるこずができたす。

管理チヌム向け レガシヌの近代化 プログラム、 SMART TS XLのスキャンは、移行前の品質基準を提䟛したす。移行範囲から陀倖されるデッドコヌド、移行の順序を決定する耇雑性の分垃、および倉換されたコヌドがクラりドむンフラストラクチャにデプロむされる前に修正する必芁があるセキュリティ䞊の問題などが含たれたす。

早めにスキャン、継続的にスキャン、すべおをスキャン

セキュリティ脆匱性の修埩にかかる平均時間が最も短い組織は、最も積極的な䟵入テストプログラムを実斜しおいる組織ではありたせん。そうした組織は、コヌドレビュヌ段階、開発者のIDE、プリコミットフック、CI/CDパむプラむンにおいお、脆匱性が到達する前に最も倚くの脆匱性を怜出しおいる組織です。コヌドスキャンは、それを倧芏暡に実珟するための手段です。

スキャンプログラムを構築するずいうこずは、リスクプロファむルに合わせおSAST、DAST、SCA、IASTの適切な組み合わせを遞択し、開発ラむフサむクルの適切な段階でそれらを統合し、カバレッゞを犠牲にするこずなくノむズを最小限に抑えるように調敎し、スキャナヌが皌働しおいるずいう前提ではなく、プログラムの有効性を継続的に枬定するこずを意味したす。スキャナヌが皌働しおいるのは始たりに過ぎず、プログラムが機胜するこずが目暙です。