Skip to main content

GitHubコードスキャンでSnykのセキュリティ情報を表示する

2020年10月7日

0 分で読めます

Snykユーザーの多くはGitHubをソースコードのホスティングに利用しています。一般的には、ソースコードはGitHubで確認し、脆弱性に関する情報はSnykで確認するというように、2つの場所を使い分けることになります。Snykはこれまでも、開発者が使う場所にセキュリティ情報を届けることを目指してきました。たとえば、ローカルツール(CLIやIDEプラグインなど)や、GitHubのプルリクエスト、ステータスチェックを通じて情報を提供しています。

GitHubコードスキャンのリリースにより、コードスキャンに対応するGitHub Actionsのアップデートを通じて、セキュリティ情報(Snyk)を開発者の標準的なワークフローにさらに組み込めることを嬉しく思います。

GitHubコードスキャン

コードスキャンはGitHubのSecurityタブに新機能を追加するもので、本日よりすべてのGitHubユーザーが利用できます。コードスキャンを使うと、すべてのセキュリティツールを一か所に接続し、リポジトリに関連する脆弱性やセキュリティ上の問題をまとめて確認できます。

コードスキャンを使えば、セキュリティ上の問題が本番環境に到達する前にリポジトリ内で検出できます。対象には、アプリケーションのソースコード、アセット、設定ファイルなどが含まれます。

オープン中のSnykの脆弱性で絞り込んだGitHubコードスキャンの結果。重大度の高いSQLite3の脆弱性やシステムの入力検証に関する問題が含まれています。
GitHub Code scanningにおけるSnyk Containerの脆弱性

Snyk ContainerとSnyk Infrastructure as Code

本日より、Snyk Container(コンテナイメージのスキャン)とSnyk Infrastructure as Code(Kubernetesの設定ファイルやTerraformコードの設定ミスの検出)の両方が、既存のSnyk GitHub Actionsを使ったGitHubコードスキャンに対応します。

Snyk Actionを使ってDockerイメージの脆弱性をテストし、SARIFファイルをコードスキャンにアップロードする例を紹介します。SARIFはOASISによるオープン標準で、コードスキャンがセキュリティ上の問題をやり取りする際の形式として使用されています。

name: Snyk Container and GitHub Security example
on: push
jobs:
  snyk:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Build an image
      run: docker build . -t some-image       
    - name: Run Snyk to check image for vulnerabilities
      continue-on-error: true
      uses: snyk/actions/docker@master
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
      with:
        image: some-image
        args: --file=Dockerfile
    - uses: github/codeql-action/upload-sarif@v1
      with:
        sarif_file: snyk.sarif

ワークフローにupload-sarifアクションを使うための3行を追加するだけで、SnykのデータをGitHubにアップロードできます。

Snykの新しいInfrastructure as Code製品もGitHubコードスキャンに対応しています。KubernetesのJSONファイルやYAMLファイル、Terraformコードの設定ミスを検出し、その問題をGitHub上に直接表示できます。以下はシンプルなワークフローの例です。

name: Snyk Infrastructure as Code and GitHub Security example
on: push
jobs:
  snyk:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Run Snyk to check Kubernetes manifest file for issues
      continue-on-error: true
      uses: snyk/actions/iac@master
      env:
        SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
      with:
        file: your/kubernetes-manifest.yaml
    - uses: github/codeql-action/upload-sarif@v1
      with:
        sarif_file: snyk.sarif

上記のワークフローを実行すると、Snykが検出したセキュリティ設定の不備がGitHubに表示されます。

Snyk Infrastructure as Codeのレポート。securityContextのcapabilitiesに関する中程度の深刻度のKubernetes Deploymentの設定ミスを示しています。
Snyk Infrastructure as Code によって検出された問題の詳細

ここでは、問題の詳細に加え、問題のある行のコンテキストや、その問題を持ち込んだコミットも確認できます。

現在、Snyk Infrastructure as Code Actionが対応しているのはKubernetesの設定ファイルのみですが、まもなくTerraformにも対応し、その後、ほかの設定形式にも対応する予定です。

次のステップ

Snyk GitHub Actionsと新しいGitHubコードスキャンの連携をぜひお試しいただき、ご意見をお聞かせください。Actionsの改善や、Snykのすべての機能へのGitHubコードスキャン対応の拡大について、すでに素晴らしいアイデアがいくつかあります。開発者のワークフローの中心にセキュリティを組み込む機能を、今後さらに追加していきます。ぜひご期待ください。

Capture the Flagを始めよう

オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。

続きを読む

feature customer snowflake
Article

開発初期からセキュリティを確保:Snowflake Cortex Code向けSnyk Studioインテグレーションを発表

Snyk StudioがSnowflake Cortex Codeと連携し、開発中にAI生成コード、依存関係、コンテナの脆弱性をスキャンします。

blog feature pypi spoof
Article

オープンソースのメンテナーに、Snyk AI Security Platformをすべて無料で提供

オープンソースのメンテナーは、実際の脆弱性レポートに追われ、優先順位付けや修正、修正版のリリースを迅速に進めるための支援を必要としています。SnykのSecure Developer Programでは、条件を満たすプロジェクトにSnyk AI Security Platformを無料で提供します。

feature insights announcement
Blog

Node-gypサプライチェーン侵害:binding.gypに潜む自己増殖型npmワーム

新たなnpmワームがbinding.gypを悪用し、インストール時にnode-gypを起動。ライフサイクルスクリプトを使わずに悪意あるパッケージからコードを実行します。認証情報を窃取し、GitHub上に潜伏し、メンテナー間で自己増殖します。