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
470
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
290
最近の医療 x AWS
tak1wa
0
370
3大クラウドから学ぶクラウド上でのランサムウェア対策
tak1wa
0
850
Lambdaの様々な新機能とユースケース
tak1wa
0
430
AWS最新機能を駆使したマルチテナントSaaSアーキテクチャーを考えてみる
tak1wa
0
1k
Tsumiki を使って仕様駆動開発をやってみよう
tak1wa
0
980
社内開発で Amazon Q Developer を使っていたが Kiro に乗り換えた話
tak1wa
0
1.7k
Microsoft Azure プランの復習とプラン切り替えのお話
tak1wa
0
560
はじめての「さくらのクラウド」
tak1wa
0
410
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
My Coaching Mixtape
mlcsv
0
140
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Done Done
chrislema
186
16k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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.