Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Amazon Q Detector Library から学ぶセキュアコーディング
Search
iwasa
June 12, 2025
540
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
AI-DLC の紹介
tak1wa
0
460
医療情報システムの安全管理に関するガイドライン第7.0版の変更点を確認してみた
tak1wa
0
410
OWASP Juice Shop に AWS Security Agent で ペネトレーションテストを実施した結果
tak1wa
0
480
最近の医療 x AWS
tak1wa
0
610
3大クラウドから学ぶクラウド上でのランサムウェア対策
tak1wa
0
1.1k
Lambdaの様々な新機能とユースケース
tak1wa
0
500
AWS最新機能を駆使したマルチテナントSaaSアーキテクチャーを考えてみる
tak1wa
0
1.2k
Tsumiki を使って仕様駆動開発をやってみよう
tak1wa
0
1.1k
社内開発で Amazon Q Developer を使っていたが Kiro に乗り換えた話
tak1wa
0
1.8k
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
How GitHub (no longer) Works
holman
316
150k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
690
What's in a price? How to price your products and services
michaelherold
247
13k
Docker and Python
trallard
47
4.2k
WENDY [Excerpt]
tessaabrams
12
39k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
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.