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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
iwasa
June 12, 2025
500
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
医療情報システムの安全管理に関するガイドライン第7.0版の変更点を確認してみた
tak1wa
0
190
OWASP Juice Shop に AWS Security Agent で ペネトレーションテストを実施した結果
tak1wa
0
400
最近の医療 x AWS
tak1wa
0
500
3大クラウドから学ぶクラウド上でのランサムウェア対策
tak1wa
0
990
Lambdaの様々な新機能とユースケース
tak1wa
0
460
AWS最新機能を駆使したマルチテナントSaaSアーキテクチャーを考えてみる
tak1wa
0
1.1k
Tsumiki を使って仕様駆動開発をやってみよう
tak1wa
0
1.1k
社内開発で Amazon Q Developer を使っていたが Kiro に乗り換えた話
tak1wa
0
1.8k
Microsoft Azure プランの復習とプラン切り替えのお話
tak1wa
0
600
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
9
850
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
4 Signs Your Business is Dying
shpigford
187
22k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Building Applications with DynamoDB
mza
96
7.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Design in an AI World
tapps
1
270
Optimising Largest Contentful Paint
csswizardry
37
3.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
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.