GitHubActions

GitHub Actionsでセキュリティスキャンの導入方法 2026

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

GitHub Actionsでセキュリティスキャンを導入する手順

GitHub ActionsはCI/CDパイプラインに組み込みやすい特徴を持つため、開発効率とリスク管理の両立が可能です。本記事では、セキュリティスキャン導入の意義・ワークフロー構築方法・ツール選定のポイントを解説します。


セキュリティスキャン導入の意義と目的

CI/CDパイプラインにおけるセキュリティスキャンは、コード品質とプロジェクトの安定性を飛躍的に高める手段です。開発段階での脆弱性検出により、後工程への影響や修正コストを大幅に抑えることが可能です。

CI/CDにおける早期リスク発見の重要性

  • 問題発生時の修正コストは、リリース後の改善に対し10倍以上かかるケースが報告されている(IEEE, 2021)
  • プルリクエスト時に自動スキャンを実施すれば、不具合発見率が85%向上するという実証例あり(GitHub公式ドキュメント)

導入後の開発効率向上の期待値

項目 数値 補足
テスト回数削減 40% 自動スキャンで手動作業を最小限に
拘束時間短縮 25% 開発者負荷の分散効果
不具合件数 -67% 早期検出による修正範囲の削減

GitHub Actionsでのセキュリティスキャンの概要

GitHub Actionsでは、コードベースや依存関係の脆弱性を自動検出する仕組みが整っています。以下に主要な特徴を整理します。

CI/CDパイプラインとの統合方法

  1. ワークフロー定義.github/workflows/**security-scan.ymlにスキャンジョブを記述
  2. ツール選択:GitHub公式ツールまたは外部スキャナ(例: Snyk, Dependabot)のいずれかを選択
  3. 実行タイミング:プルリクエスト作成時、マージ前、定期的なスキャンを設定可能

検出可能な脆弱性タイプ一覧

タイプ 説明
依存関係の脆弱性 パッケージ管理ライブラリに含まれる危険なバージョン npm audit検出対象
コードベースの誤り SQLインジェクションやXSSなどの構文的リスク ESLintやSonarQubeが検出
設定ファイルの不備 環境変数に明記されたAPIキーなどの情報漏洩 GitHub Secretsと連携して検知可能

ワークフロー設定ファイル(YAML)の記述例

セキュリティスキャンを実行するためのワークフロー定義は、以下のように記述します。

ジョブ定義の基本構造

イベントトリガーの指定方法

  • on.push:mainブランチへのプッシュ時に実行
  • on.pull_request:mainブランチへのPR作成時に実行
  • schedule:定期的なスキャンを設定する場合、cron: '0 0 * * 0'で週単位の実行が可能

重要ポイント: ワークフロー定義は.github/workflows/ディレクトリに配置し、複数のスキャナを併用する場合はジョブ分離が必要です。


サポートされるスキャンツール一覧

GitHub Actionsは公式ツールと外部ツールの両方に対応していますが、セキュリティ強化には以下の選択肢があるため、目的に応じた組み合わせが推奨されます。

GitHub公式ツールとの連携方法

ツール名 機能 利点
Dependabot 依存関係の自動アップデートとスキャン GitHub内での管理が簡単
CodeQL 動的コード分析(SQL注入、バッファオーバーフローなど) 高精度な静的解析実行可能

外部ツールの統合可能性

  • Snyk: 依存関係とコンテナイメージのスキャンをサポート
  • Trivy: イメージとコンフィグファイルの脆弱性検出が得意
  • OWASP ZAP: Webアプリケーションの動的スキャンに対応

Pull Request時の自動検出設定方法

プルリクエスト時にセキュリティスキャンを自動実行するには、以下のような設定手順が必要です。

イベントトリガーの具体例

  1. .github/workflows/security-scan.ymlに以下の内容を追加:
    yaml
    on:
    pull_request:
    branches: [main]

  2. スキャンツールの実行設定: dependabotまたはactions/dependency-review-actionを使用し、結果をPRコメントとして出力

検出結果のPRコメント連携

  • 実行後、自動でコメントが追加され、検出された脆弱性の一覧が表示される
  • カスタマイズにより、特定レベル以上(例: HIGH以上)に限定して通知可能

  • ワークフロー定義を更新: on.pull_requestのブランチ指定や条件を調整

  • ツールの引数でフィルタリング: 例: severity: 'high'で検出レベルを制限
  • コメント形式のカスタマイズ: ツールの設定で通知文言を変更可能

セキュリティポリシーのカスタマイズ手順

組織固有のセキュリティ基準に合わせたポリシーの調整が必要な場合、以下のように対応できます。

基準値の変更方法

  • 依存関係のバージョン制限: package.jsonなどに"resolutions": { ... }を追加
  • スキャンツールの設定ファイル: .dependabot/config.yml.snykでルール定義
  • GitHub Enterprise向けのポリシー: プロダクト管理画面から「セキュリティ設定」をカスタマイズ

例外設定のベストプラクティス

ケース 対応方法 注意点
特定ライブラリの使用 allowlistに追加する 利用可能なバージョンは最新版限定
外部ツールとの連携時 APIキー管理をGitHub Secretsに移行 暴露リスク回避が必須
複雑な依存構造のプロジェクト モジュールごとにスキャンジョブを分離 手間はかかるが、精度向上に寄与

注意: 例外設定は最小限に留めること。開発とセキュリティのバランスを取るため、定期的な見直しが推奨されます。


スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-GitHubActions