![](/business/dx/manufacturers/assets_c/2023/07/github_logo-thumb-400x180-69311.png)
GitHub
ギットハブ
GitHubで実現するセキュリティ
![GitHubで実現するセキュリティ](/business/dx/manufacturers/github/image/github_pro_security_dr01.png)
ソースコードのセキュリティにおける課題
アプリケーションセキュリティ
- 自社で利用しているOSSの依存関係と脆弱性を把握できておらず、影響範囲を特定できていない
- 社内のルール上、シークレット情報をソースコードの中に混入させないようにしているが、徹底できていない
- 過去に静的解析ツールを利用したが、膨大な量のアラートが出て運用がうまく回らず、利用をあきらめた
![](/business/dx/manufacturers/github/image/github_pro_security_dr02.png)
利用者向けセキュリティ
- 開発者自身でリポジトリの公開設定を編集できるため、企業資産等の機密情報が漏えいするリスクがある
- ID/パスワードが盗まれたり、パーソナルアクセストークンやSSHキーが漏洩して不正ログインされる危険性がある
- ある従業員が退職したにも関わらず、退職後もアクセス可能な状態が続いていた
![](/business/dx/manufacturers/github/image/github_pro_security_dr03.png)
GitHub Enterpriseでセキュリティを担保
Application Security
サプライチェーン
![サプライチェーン](/business/dx/manufacturers/github/image/github_pro_security_icon01.png)
オープンソースコンポーネントの
安全性とコンプライアンス維持
安全性とコンプライアンス維持
コード
![コード](/business/dx/manufacturers/github/image/github_pro_security_icon02.png)
ワークフローの一部として
コードの脆弱性を検知・修正
コードの脆弱性を検知・修正
開発ライフサイクル
![開発ライフサイクル](/business/dx/manufacturers/github/image/github_pro_security_icon03.png)
セキュリティやコンプライアンス
ポリシーをコードとして作成・実行
ポリシーをコードとして作成・実行
Developer Security
サプライチェーン
![データ](/business/dx/manufacturers/github/image/github_pro_security_icon05.png)
権限設定による
機密情報漏洩の防止
機密情報漏洩の防止
コード
![ネットワーク](/business/dx/manufacturers/github/image/github_pro_security_icon06.png)
接続元の確認による
セキュアなアクセス
セキュアなアクセス
開発ライフサイクル
![ユーザ](/business/dx/manufacturers/github/image/github_pro_security_icon07.png)
多要素認証・認可により信頼レベルに
応じたアクセス制御
応じたアクセス制御
GitHubが提供する現在のセキュリティ機能
![サプライチェーン](/business/dx/manufacturers/github/image/github_pro_security_icon01.png)
サプライチェーン
- Dependency Graph
依存関係を閲覧・把握 - Advisory database
パッケージの脆弱性を記録しているデータベース - Dependabot alerts
- Dependabot security updates
依存パッケージの脆弱性に関する通知と自動修正用のPull Request作成 - Dependency review※
Pull Request内で新たな依存関係と脆弱性を確認
![コード](/business/dx/manufacturers/github/image/github_pro_security_icon02.png)
コード
- Secret scanning※
Git履歴に潜んでいるAPIトークンや他のシークレットを検知 - Code scanning※
すべてのgit push操作に対する静的解析、ワークフローに統合されてCodeQLによる解析
![開発ライフサイクル](/business/dx/manufacturers/github/image/github_pro_security_icon03.png)
開発ライフサイクル
- Branch protection
ブランチやPull Requestがマージされる際に条件を定義 - Commit signing
すべてのコミットが署名されていることを条件に - Security Center
(Security Overview)
Organization内のリスク状況を可視化
※ GitHub Enterpriseの有償オプション「GitHub Advanced Security」にて提供
コードセキュリティ~シークレット検知~
![コードセキュリティ~シークレット検知~](/business/dx/manufacturers/github/image/github_pro_security_dr04.png)
- 外部サービスと通信するための認証用トークンや秘密鍵の情報(シークレット)がGitHubにPushしたコードに紛れ込んでいないかどうか自動検出
サポートしているシークレット情報はこちら - 機能有効化後、すべてのgitヒストリをスキャン
- Push Protection機能により、シークレット情報が含まれるソースコードがPushされることを未然に防止
GHEC | GHES | |
Secret Scanning | ○ | ○ |
※GitHub Enterpriseの有償オプション「GitHub Advanced Security」にて提供
![コードセキュリティ~シークレット検知~](/business/dx/manufacturers/github/image/github_pro_security_dr05.png)
コードセキュリティ ~コードの脆弱性検知~
![コードセキュリティ ~コードの脆弱性検知~](/business/dx/manufacturers/github/image/github_pro_security_dr06.png)
- 開発中のコードを自動解析し、脆弱性を引き起こすパターンのコードを書いていないかどうかをチェックすることが可能(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」にて提供
![コードセキュリティ ~コードの脆弱性検知~](/business/dx/manufacturers/github/image/github_pro_security_dr07.png)
![コードセキュリティ ~コードの脆弱性検知~](/business/dx/manufacturers/github/image/github_pro_security_dr08.png)
Code Scanningの効果
![Code Scanningの効果](/business/dx/manufacturers/github/image/github_pro_security_dr09.png)
- 開発の早期に脆弱性を発見
既知の脆弱性を開発のフェーズで予防することにより、修正コストの削減 - 正確な解析
CodeQLはコードのコールグラフ、コードの意味を解釈して解析を実行するため、非常に高い正確性(=誤検知が少ない)を実現。また、解析結果のレビューにかかる時間を削減 - 優先順位付けされたアラート
解析結果は3段階に優先順位付けされるため、重要なものから対処することが可能 - コミュニティの活用
GitHubや他の企業、オープンソースコミュニティによって作成されたクエリを活用
お問い合わせ・資料請求
株式会社マクニカ GitHub 担当
- TEL:045-476-2010
- E-mail:github-rt@macnica.co.jp
月~金 8:45~17:30