Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon Q Detector Library から学ぶセキュアコーディング
Search
iwasa
June 12, 2025
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon Q Detector Library から学ぶセキュアコーディング
iwasa
June 12, 2025
More Decks by iwasa
See All by iwasa
OWASP Juice Shop に AWS Security Agent で ペネトレーションテストを実施した結果
tak1wa
0
350
最近の医療 x AWS
tak1wa
0
430
3大クラウドから学ぶクラウド上でのランサムウェア対策
tak1wa
0
920
Lambdaの様々な新機能とユースケース
tak1wa
0
450
AWS最新機能を駆使したマルチテナントSaaSアーキテクチャーを考えてみる
tak1wa
0
1.1k
Tsumiki を使って仕様駆動開発をやってみよう
tak1wa
0
1k
社内開発で Amazon Q Developer を使っていたが Kiro に乗り換えた話
tak1wa
0
1.8k
Microsoft Azure プランの復習とプラン切り替えのお話
tak1wa
0
580
はじめての「さくらのクラウド」
tak1wa
0
430
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
180
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
640
How to make the Groovebox
asonas
2
2.3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
Code Reviewing Like a Champion
maltzj
528
40k
GitHub's CSS Performance
jonrohan
1033
470k
Producing Creativity
orderedlist
PRO
348
40k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Claude Code のすすめ
schroneko
67
230k
Being A Developer After 40
akosma
91
590k
Transcript
Amazon Q Detector Library から学ぶセキュアコーディング クラメソさっぽろIT勉強会 (仮) #10: セキュリティ 2025/06/13
© Classmethod, Inc.
目次 1. 自己紹介 2. セキュアコーディングとは 3. IPAによる実装原則 4. Amazon Q
Developer と Detector Library の概要 5. サポートされる言語とセキュリティ検出項目 6. 私の経験と C# における一般的な脆弱性と対策 7. 活用方法とメリット © Classmethod, Inc. 2
岩浅 貴大(いわさ たかひと) 所属: クラスメソッド株式会社 職種: ソリューションアーキテクト 経歴: 以前は C#
/ VB.NET 開発者として従事 現在は AWS アーキテクトを担当 最近よく使っている AWS サービス: Amazon Q Developer 自己紹介 © Classmethod, Inc. 3
セキュアコーディングの定義 セキュリティ脆弱性を作り込まないコーディング手法 攻撃者に悪用される可能性のあるコードを排除する取り組み 設計段階からセキュリティを考慮したアプローチ 出典: IPA「安全なウェブサイトの作り方」 OWASP「セキュアコーディングプラクティス」 セキュアコーディングとは © Classmethod,
Inc. 4
セキュアコーディング標準を採用する 多くのセキュリティ対策は複数の箇所で同様の対策実施を行うことになる。標準を採用 して共通的に対応することで効率的に対応することができる。 もしも採用した標準で対策が不十分な部分が見つかったとしても、同様に対応できるの で比較的簡単に修正することができる。 出典: IPA「セキュアプログラミング講座」 IPAによる実装原則 © Classmethod,
Inc. 5
Amazon Q Developer AWS が提供する開発者向けの AI アシスタント コードの品質向上とセキュリティ問題の検出が可能 Amazon Q
Detector Library Amazon Q Developer が使用する検出ルールのリファレンス セキュリティ、品質、パフォーマンスの問題を検出 事前に学習することで問題を未然に防止できる Amazon Q Developer と Detector Library © Classmethod, Inc. 6
セキュアコーディングのポイントを事前に学んでおく © Classmethod, Inc. 7
Amazon Q Detector Library は多様なプログラミング言語をサポートしています: Java Python JavaScript/TypeScript C#/.NET Go
Ruby PHP Kotlin 各言語に最適化されたセキュリティルールとベストプラクティスを提供 Amazon Q Detector Library のサポート言語 © Classmethod, Inc. 8
カテゴリ 検出項目例 認証・認可 弱いパスワードポリシー、不適切な権限設定 データ保護 機密情報の漏洩、安全でないデータ保存 コード注入 SQL インジェクション、XSS 脆弱性
暗号化 弱い暗号アルゴリズム、安全でない乱数生成 言語固有のセキュリティ検出 各言語の特性に合わせた検出ルールが用意されています 主要なセキュリティ検出項目 © Classmethod, Inc. 9
開発現場での実情 以前は C# / VB.NET 開発者として従事 多くの現場では機能開発に重点が置かれ、非機能要件はオマケくらいな感じだった XSSやSQLインジェクションなどの基本的な脆弱性対策は実施 言語固有の高度な脆弱性対策手法については知識不足だった →
というわけで私の経験のある C# を使って解説します!! 私の経験:ソフトウェアエンジニアの視点から © Classmethod, Inc. 10
1. SQL インジェクション 安全でないコード: // Noncompliant: Detected a formatted string
in a SQL statement. SqlCommand command = new SqlCommand(sql); 安全なコード: // Compliant: Use parameterized query string sql = "SELECT * FROM Customers WHERE EmployeeId = @EmployeeId"; SqlCommand command = new SqlCommand(sql); command.Parameters.Add(new SqlParameter("@EmployeeId", employeeId)); C# における一般的な脆弱性と対策 © Classmethod, Inc. 11
2. 安全でないデシリアライゼーション 安全でないコード: // Noncompliant: `TypeNameHandling.All` is not safe. JsonConvert.DeserializeObject<object>(
jsonpath, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All } ); 安全なコード: // Compliant: `TypeNameHandling.None` is safe. JsonConvert.DeserializeObject<object>( jsonpath, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.None } ); C# における一般的な脆弱性と対策 © Classmethod, Inc. 12
3. クロスサイトリクエストフォージェリ (CSRF) 安全でないコード: [HttpPost] // Noncompliant: No anti-forgery token
validation. public ActionResult UpdateProfile(User user) { ... } 安全なコード: [HttpPost] [ValidateAntiForgeryToken] // Compliant: Enforces validation public IActionResult UpdateProfile(User user) { ... } C# における一般的な脆弱性と対策 © Classmethod, Inc. 13
4. クロスサイトスクリプティング (XSS) 安全でないコード: // Noncompliant: Directly use untrusted data
return "value " + untrusted; 安全なコード: // Compliant: Encode untrusted data before use return "value " + HttpUtility.HtmlEncode(untrusted); C# における一般的な脆弱性と対策 © Classmethod, Inc. 14
5. HTTP Strict Transport Security (HSTS) ヘッダーの欠落 安全でないコード: // Noncompliant:
HSTS HTTP header is missing. public void ConfigureNoncompliant(IServiceCollection service) { service.AddControllers(); } 安全なコード: // Compliant: `AddHsts` header is used. public void ConfigureCompliant(IServiceCollection service) { service.AddControllers(); service.AddHsts(options => { options.Preload = true; options.IncludeSubDomains = true; options.MaxAge = TimeSpan.FromDays(365); }); } C# における一般的な脆弱性と対策 © Classmethod, Inc. 15
1. 公式ドキュメントの参照 https://docs.aws.amazon.com/amazonq/detector-library/ 2. 言語別のルールセットの確認 自分のプロジェクトで使用している言語に関連するルールを優先的に学習 C# 開発者は .NET フレームワーク固有の脆弱性に注目
3. コードレビュー時のチェックリストとして活用 レビュー効率の向上と見落としの防止 Amazon Q Detector Library の活用方法 © Classmethod, Inc. 16
1. Amazon Q Detector Library はセキュアコーディングを学ぶ貴重なリソース 2. 多様な言語をサポートし、言語固有のセキュリティルールを提供 3. 私の経験から
C# の例を紹介したが、各言語に応用可能な概念 まとめ © Classmethod, Inc. 17
© Classmethod, Inc.