Slide 1

Slide 1 text

GitHub Advanced Security for Azure DevOps と .NET Security かめがわ かずし(@kkamegawa)

Slide 2

Slide 2 text

Who am I? personal: name: KAMEGAWA Kazushi(Last-First) alias: kkamegawa community: MVP: Microsoft MVP for Developer Technologies(2009-) Users Group: Team Foundation Server Users Group URL: https://dev.azure.com/tfsug/tfsuginfo Blog: URL: https://kkamegawa.hatenablog.jp devblog radio: https://devblog.connpass.com/

Slide 3

Slide 3 text

This contents based on 2023/7/11

Slide 4

Slide 4 text

GitHub Advanced Security for Azure DevOps(GHAzDo) 2022/11のIgniteでプライベートプレビュー開始 2023/5のBuildでパブリックプレビュー開始 https://aka.ms/advancedsecurity-signup GitHub Advanced Security for Azure DevOps 機能を構成する - Azure Repos | Microsoft Learn ※ Public Preview申し込んでも音沙汰なかったから、お付き合いのある営業の方いたらその方が早いかも… 機能的にはGitHubと同じ CodeQL Dependency Alert Secret Scanning

Slide 5

Slide 5 text

課金 90日以内にコミットしている人数x$49でAzure Subscriptionにチャージされる レポジトリ数は無関係(重複課金されない) GitHub Advanced Security for Azure DevOps への課金 - Azure Repos | Microsoft Learn 2023/7/1 8/1 9/1 10/1 10人 0人 8人 有効 無効 5人 有効 5人 有効 ⊃ ※5人は8人のrepoに含まれる 8人

Slide 6

Slide 6 text

Secret Scanning アップロードされたコードからアクセスキーの検出 Gitコミット時もチェック AWS S3, Azure Blob, OpenAI API Key等対象 値をちょっと変えても検出される サポートされているシークレット値 サンプルや誤検出である場合、コミットメッセージに skip-secret-scanning:trueを追加

Slide 7

Slide 7 text

設定方法 現在レポジトリ単位で設定(めんどくさい) Organization、Project単位の一括設定はない もちろんプレビュー有効にしていないorgでは出てこない

Slide 8

Slide 8 text

GitHubのSecurity risk view こんなのAzure DevOps側にもほしいねぇ 多分できるとしたらDefender for DevOps?

Slide 9

Slide 9 text

GitHub Advanced Security for Azure DevOps ソースコード中の不用意なシークレットキー コミットをブロック

Slide 10

Slide 10 text

CodeQL パッケージ依存関係スキャン NuGet, npm 等 静的コード解析 結構いいスペック必要(hosted Agentではつらいかも) ※100KL以上で16GB RAM/4 or 8 core推奨 ローカルで動かすCLI版もある GitHub Advanced Security for Azure DevOps のコード スキャン アラート - Azure Repos | Microsoft Learn CodeQL によるコード スキャンについて - GitHub Docs CodeQL を実行するための推奨ハードウェア リソース - GitHub Docs

Slide 11

Slide 11 text

CodeQLでの脆弱性検査 CodeQL によるコード スキャンについて - GitHub Docs

Slide 12

Slide 12 text

検出されたリスク対処 一つずつやらない/誤判定を決定 今のところwork item連携はない(これは GitHubも同じ)

Slide 13

Slide 13 text

YAML Pipeline ビルドができるプロジェクトで なくてはならない autobuildタスクで全ビルド カスタムビルドして解析対象のみ languagesに解析対象言語を 指定(, で区切る)。現在11言語 結果はrepos内に表示

Slide 14

Slide 14 text

FAQ GitHubのレポジトリのスキャンできない?  できません。Azure Reposのみ  GitHubにあるAdvanced Security使ってください(課金は別) 結果が見えないんだけど?  共同作成者以上の権限を設定してください  ちなみにGitHubでもRepo Adminなどの強い権限が必要です Dependabotないの?  今のどころありません 機能差はないの?  ほぼないですが、CodeQL CLIは今含まれていないそうです(フィードバック済 み)