GitHub

ギットハブ

GitHubで実現するセキュリティ

GitHubで実現するセキュリティ

ソースコードのセキュリティにおける課題

アプリケーションセキュリティ

  • 自社で利用しているOSSの依存関係と脆弱性を把握できておらず、影響範囲を特定できていない
  • 社内のルール上、シークレット情報をソースコードの中に混入させないようにしているが、徹底できていない
  • 過去に静的解析ツールを利用したが、膨大な量のアラートが出て運用がうまく回らず、利用をあきらめた

利用者向けセキュリティ

  • 開発者自身でリポジトリの公開設定を編集できるため、企業資産等の機密情報が漏えいするリスクがある
  • ID/パスワードが盗まれたり、パーソナルアクセストークンやSSHキーが漏洩して不正ログインされる危険性がある
  • ある従業員が退職したにも関わらず、退職後もアクセス可能な状態が続いていた

GitHub Enterpriseでセキュリティを担保

Application Security

サプライチェーン
サプライチェーン
オープンソースコンポーネントの
安全性とコンプライアンス維持
コード
コード
ワークフローの一部として
コードの脆弱性を検知・修正
開発ライフサイクル
開発ライフサイクル
セキュリティやコンプライアンス
ポリシーをコードとして作成・実行

Developer Security

サプライチェーン
データ
権限設定による
機密情報漏洩の防止
コード
ネットワーク
接続元の確認による
セキュアなアクセス
開発ライフサイクル
ユーザ
多要素認証・認可により信頼レベルに
応じたアクセス制御

GitHubが提供する現在のセキュリティ機能

サプライチェーン
サプライチェーン
  • Dependency Graph
    依存関係を閲覧・把握
  • Advisory database
    パッケージの脆弱性を記録しているデータベース
  • Dependabot alerts
  • Dependabot security updates
    依存パッケージの脆弱性に関する通知と自動修正用のPull Request作成
  • Dependency review
    Pull Request内で新たな依存関係と脆弱性を確認
コード
コード
  • Secret scanning
    Git履歴に潜んでいるAPIトークンや他のシークレットを検知
  • Code scanning
    すべてのgit push操作に対する静的解析、ワークフローに統合されてCodeQLによる解析
開発ライフサイクル
開発ライフサイクル
  • Branch protection
    ブランチやPull Requestがマージされる際に条件を定義
  • Commit signing
    すべてのコミットが署名されていることを条件に
  • Security Center
    (Security Overview)

    Organization内のリスク状況を可視化

※ GitHub Enterpriseの有償オプション「GitHub Advanced Security」にて提供

コードセキュリティ~シークレット検知~

コードセキュリティ~シークレット検知~
  • 外部サービスと通信するための認証用トークンや秘密鍵の情報(シークレット)がGitHubにPushしたコードに紛れ込んでいないかどうか自動検出
    サポートしているシークレット情報はこちら
  • 機能有効化後、すべてのgitヒストリをスキャン
  • Push Protection機能により、シークレット情報が含まれるソースコードがPushされることを未然に防止
  GHEC GHES
Secret Scanning

※GitHub Enterpriseの有償オプション「GitHub Advanced Security」にて提供

コードセキュリティ~シークレット検知~

コードセキュリティ ~コードの脆弱性検知~

コードセキュリティ ~コードの脆弱性検知~
  • 開発中のコードを自動解析し、脆弱性を引き起こすパターンのコードを書いていないかどうかをチェックすることが可能(CodeQL)
  • スキャン項目はGitHub上のコミュニティによって開発されたGitHubクエリセット(2,000以上のパターンに対応)やカスタムクエリを実行可能
  • 他の静的解析ツールによる拡張が可能
    ※現在はShiftLeftやAnchoreなどと連携が可能
  • サポート言語・環境
    https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/
  GHEC GHES
Code Scanning

※GitHub Enterpriseの有償オプション「GitHub Advanced Security」にて提供

コードセキュリティ ~コードの脆弱性検知~
コードセキュリティ ~コードの脆弱性検知~

Code Scanningの効果

Code Scanningの効果
  • 開発の早期に脆弱性を発見
    既知の脆弱性を開発のフェーズで予防することにより、修正コストの削減
  • 正確な解析
    CodeQLはコードのコールグラフ、コードの意味を解釈して解析を実行するため、非常に高い正確性(=誤検知が少ない)を実現。また、解析結果のレビューにかかる時間を削減
  • 優先順位付けされたアラート
    解析結果は3段階に優先順位付けされるため、重要なものから対処することが可能
  • コミュニティの活用
    GitHubや他の企業、オープンソースコミュニティによって作成されたクエリを活用

お問い合わせ・資料請求

株式会社マクニカ  GitHub 担当

月~金 8:45~17:30