3.8K Views
June 12, 23
スライド概要
CodeGuruはAmazon Web Servicesのサービスで、JavaとPythonのコード内の脆弱性を検出するために使用されます。CodeGuru Reviewerは、機械学習を使用して、OWASP10のセキュリティ脆弱性に基づいて、GitHub、Bitbucket、およびCodeCommitリポジトリ内のコードをスキャンし、潜在的な脆弱性を特定します。このサービスを使用することで、セキュリティ上の問題を把握し、適切に対処することができます。CodeGuruは課金されます。
おすすめタグ:AWS,CodeGuru,セキュリティ,脆弱性,機械学習
CodeGuruでOWASPな コードの脆弱性検出 篠田 敬廣 1
注意点 • 資料の内容は2023/06/08時点の情報となります • 本登壇で説明する内容は個人の見解も含まれます • 資料の内容にAWS公式と相違があった場合、AWS 公式を正とさせていただきます 2
• セキュリティ用語 • CodeGuruとは • CodeGuruの検証 • 料金 3
Guru:グル • • 語源はインドで「指導者」という意味 英語圏では「達人」など高度なスキル者 Glue:グルー • 接着剤や結合剤 4
ゴール コード内の脆弱性を CodeGuruで検出 5
セキュリティ関連の用語 OWASP CVW Bandit ウェブアプリケーションのセキュ リティに関する情報やベストプ ラクティスを共有する国際的 なコミュニティ セキュリティの脆弱性やパター ンを分類するための枠組み Pythonの脆弱性を検出す るツール 対策を講じるための情報を提 供 XSSやSQLインジェクション などのセキュリティ上の問題や ハードコードされた認証情報、 機密情報の検出 脆弱性を理解し、適切な対 策を講じるための情報とツール を提供 不適切なエスケープや入力 検証の不備による脆弱性も 検出します 6
CodeGuruとは 7
CodeGuru • コードの脆弱性を検出 →Reviewer • 実行コストのかかるコードを特定 →Profiler • コードレビューを自動化 • Java, Python • CodeCommit, GitHub, Bitbucketのリポジトリ対応 8
CodeGuru Reviewer • 機械学習/自動推論でセキュリティの脆弱性を検出 • 脆弱性 (OWASP10) と AWSのセキュリティベストプラクティスに基づいて レコメンデーション • パスワード、API キー、SSH キー、アクセストークン、データベース接続文字列、 JSON ウェブトークンなど機密情報を検出 • リポジトリのフルスキャン/増分スキャン • プルリク時に自動コードレビュー 9
CodeGuruの検証 10
検証の構成とシナリオ CodeGuru Reviewer フルスキャン 評価 11
OWASP を含んだ 脆弱性コードの準備 ChatGPT 12
OWASP10の脆弱性を含んだコード① SQLインジェクション • コードの脆弱性 • user_idパラメータに悪意のあるSQL コードを挿入することで、意図しないク エリが実行され、データベースに対して 不正操作が可能 13
OWASP10の脆弱性を含んだコード② アクセス制御 • コードの脆弱性 • admin以外でもログインできてしまう 14
レビュー結果 15
レビュー結果(詳細)① CWEの参照先リンクも出力してくれる 16
レビュー結果(詳細)② CodeGuruのエンジンで評価した 17
レビュー結果(詳細)③ Banditのツールが評価した 18
料金 19
CodeGuru Reviewerの料金 20
21
まとめ • ChatGPTで脆弱性を含んだコードを作成 • 機械学習/自動推論でコードの脆弱性を検出 • フルスキャン時間は5~10分 • フルスキャンはコードが少量でも一回$10かかる 22