*本資料の内容 (添付文書、リンク先などを含む) は de:code 2020 における公開日時点のものであり、予告なく変更される場合があります。
#decode20 #
セキュアなソフトウェアを実現する
GitHubのコード解析のご紹介
Z02
田中 裕一
GitHub Japan
Senior Solutions Engineer
本セッションについて
対象者
課題
ゴール
• ソフトウェア開発者、開発部門マネジャー/リーダー、ソフトウェア開発ツール
管理者、DevOps/アジャイル開発/DX推進部門担当者、GitHubの企
業導入を検討している方
• セキュアなソフトウェア開発
• GitHub Advanced Securityによるセキュアなソフトウェア開発手法の理
解
セッションアジェンダ
GitHub Advanced Securityは、ソフトウェア開発ライフサイクル全体
をカバーするセキュリティ機能を提供します。本セッションでは以下の3
点を紹介します。
コードのセキュリティ: 開発の早い段階で脆弱性を検知するか
依存関係のセキュリティ: 依存関係の脆弱性の検知
安全なデプロイ: シークレット情報の漏洩やコードリークへの対策
セキュリティ侵害コスト
8億円
2019年US企業におけるセキュリティ侵害1件あたりの
平均コスト
30%
今後2年間以内にセキュリティ侵害の可能性
Sources Cost of a Data Breach Report 2019, Ponemon & IBM Security
品質の低い
コードが
セキュリティ侵害を
引き起こす
53%の侵害はアプリケーション
コードの脆弱性によって生じている。
Source: 2019 Data Breach Investigations Report, Verizon
開発フェーズでコードの安全性を
担保する事が必要
セキュリティリサーチャーの人数対
ソフトウェア開発者の人数570倍
ソフトウェア
開発者
セキュリティ
リサーチャー
~ 40M
~ 70K
開発中に修正することで
膨大なコストの節約が可能
開発 構築 テスト/QA 運用 侵害
修正コスト
SDLC
Stages
開発 構築 テスト デプロイ 侵害
$80 $240
$960
$7,600
セキュリティシフトレフト
$ Millions
GitHubを使って
あらゆる開発フェーズを安全に
ソースコードデプロイ環境依存関係
コンプライアンス・ポリシー管理
依存関係
セキュリティアラート
自動セキュリティフィックス
ディペンデンシーインサイト
GHEC
デプロイ環境
シークレットスキャニング
ソースコード
Code Scanning
from AddExpr a, Variable v, RelationalOperation cmp
where a.getAnOperand() = v.getAnAccess()
and cmp.getAnOperand() = a
and cmp.getAnOperand() = v.getAnAccess()
and forall(Expr op | op = a.getAnOperand() |
op.getType().getSize() < 4)
and not a.getExplicitlyConverted().getType().getSize() < 4
select cmp, "Bad overflow check"
コード上のゼロデイ脆弱性や
既存の脆弱性(とその関連)を探索
CodeQLによる脆弱性の探索を通常の
開発者ワークフローに提供
Securing Software, Together
CodeQL
全てのPull RequestはAdvanced Security
組み込みのクエリによる解析を実施
変更をコミット Pull Request バグを修正
ブランチ作成 masterにマージ
あらゆるセキュリティ専門家によって
CodeQLのクエリを拡充
自社カスタム
コミュニティ
GitHub
お客様の社内で発見した
脆弱性や、関連する
脆弱性を発見するクエリ
Microsoft, Google, Uber
といった企業を筆頭とした
コミュニティによるクエリ
GitHubが作成したクエリ
• CodeQLによってコードベース全体からすべての
類似の脆弱性を発見することが可能
• 新規に作成したカスタムクエリをコードスキャニング
のクエリセットに追加することで、それ以降は
同様の脆弱性を入れ込んでいないか自動で
解析することが可能に
• 例: Microsoftでは、セキュリティインシデントの
根本原因を突き止めた際には、それを引き起こす
コードを検索するCodeQLクエリを作成し、広範な
コードベースに対して類似の脆弱性がないかどうか
をードベースに対して実行
バリアント解析
セキュリティバグ 調査 コード化
継続的に
モニター
類似バグの
発見
将来のバグを
予防
類似バグの
改修
PRで修正
Improve
query
バグ改修
品質保証テスト
ペネトレーションテスト
バグバウンティ
監査ログ
従来のセキュリティリサーチ GitHub Advanced Securityによるバリアント解析
CodeQL
Advance
d
Security
バリアント解析による安全なソフトウェア開発
GitHub
Advanced
Securityの効果
81%
静的解析の結果のレビュー
に費やされる時間の削減。
120
過去2年間で発見された
CVEの数。過去3ヶ月だと
50を超える。
3x
正確性の向上
Microsoftで発見された
脆弱性の数
1700+
オープンソースコミュニティに
よって開発されたCodeQL
クエリの数
GitHub Advanced Security
依存関係を常に安全に保つ
コード中のシークレットを即座に検知
コード中の脆弱性を高精度で検知
一つのセキュリティバグからそれに
類似する他の脆弱性も未来に
渡って予防
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
© 2020 GitHub, Inc. All rights reserved.
本情報の内容 (添付文書、リンク先などを含む) は、公開日時点のものであり、予告なく変更される場合があります。
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

【de:code 2020】 セキュアなソフトウェアを実現する、GitHub のコード解析のご紹介