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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect serv...
Search
hiroga
June 26, 2022
Technology
2.9k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks
hiroga
June 26, 2022
More Decks by hiroga
See All by hiroga
Lip Reading with LLMs? Visual Speech Recognition
hiroga
0
96
Gaussian Splatting Hands-on
hiroga
0
130
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
780
LlamaGen: LlamaのNext-Token予測を使った画像生成 / Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
hiroga
0
650
人事評価GPTsで評価の本質に向き合おう! / HR GPTs: Essential evaluations focus!
hiroga
1
490
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
460
AWS Startup Day 2023 今日ここで! コスト削減ハンズオン / Cost-Saving Hands-On today!
hiroga
0
200
ChatGPT社内活用資料 / Internal use of ChatGPT
hiroga
0
200
マルチテナントSaaSのカスタム要件に、 Auth0テナントを分割せず向き合う! / Multi tenant SaaS with Auth0
hiroga
1
3.4k
Other Decks in Technology
See All in Technology
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
230
SREでアラート疲れを 解決しよう!
kairim0
1
210
OR学会2026年秋期大会_機械学習と数理最適化の融合による、配合レシピ最適化システム開発事例
brainpadpr
0
110
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
660
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
570
全PRの83%が AIレビューだけでマージできるようになった開発組織は その後どうなったか @2026/10
athug
0
130
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
180
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
160
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
320
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
6
1.4k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Practical Orchestrator
shlominoach
192
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Statistics for Hackers
jakevdp
799
230k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Designing for humans not robots
tammielis
254
26k
Chasing Engaging Ingredients in Design
codingconduct
0
350
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Facilitating Awesome Meetings
lara
57
7.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
WENDY [Excerpt]
tessaabrams
14
40k
Transcript
雑な攻撃からサーバーを守る一工夫 +おまけ 2022-06-26 JAWS-UG 福岡 #12:9度目もちょっと濃い目にAWSの話をしてみよう #jawsugfuk #jawsug Hiroaki
Ogasawara @xhiroga
目次 • はじめに • 攻撃 • 防御 • まとめ •
??? • 今度こそおわり • 参考
免責 • 発表者はセキュリティの専門家ではありません。 ◦ 現在学習中の内容を発表しています。 ◦ 誤りが含まれる可能性があります。 はじめに
自己紹介 はじめに
使ってね! はじめに
None
攻撃
None
ごく普通のアーキテクチャです 攻撃 ALB ECS DB リスナーは HTTPSのみ 有効 React (SPA)
(数年前)CTO「WAF導入したい〜!」 攻撃 現 CTO WAF導入したい〜! コストかかりません? でも攻撃されてますよ
マジすか?
マジ。 攻撃来てました。 URL未公開なのに。 (攻撃元IPアドレスも乗っ取り被害者の 可能性があるため隠してます) 攻撃 全部ウチのサーバーに 存在しないパス
思ってたのと違った 思ってた攻撃 • APIエンドポイントを調べた上での標的型攻撃 • アプリケーションが用いるパスに対して、SQL インジェクションなどを試みる 実際の攻撃
• AWSが持っているIPアドレスを狙った無差別型 攻撃(たぶん) • .envの誤コミットや.gitの誤デプロイなど、広くあ りそうな間違いを狙う • Binanceなどの大手暗号資産取引所への攻撃 の余波らしいものもある 攻撃
大手暗号資産取引所への攻撃の余波 GET /bapi/fiat/v1/public/fiatpayment/menu?currency=CNY Accept: application/json, text/plain, */* Host: www.binance.com
User-Agent: BNC/2.37.0 (build 10; iOS 14.8.0) Alamofire/4.9.0 Mclient-X-Tag: pch5D9lsORjgObhyjdSK timeout: 3000 Connection: close 実際の攻撃 攻撃 無差別攻撃 GET /.env Host: ***.***.***.*** User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: */* Accept-Encoding: gzip ※あくまで私の案件で観測された攻撃を分類しただけで、汎用性や網羅性は全く保証できません。
影響 • 存在しないパスにアクセスされるので、4XXエラーが大量に出る ◦ モニタリングの4XXが使い物にならない • 万が一存在する脆弱性を突かれたら不安 攻撃
推測 手法 • AWSの持っているIPアドレスの範囲を自動で 攻撃? • 過去に攻撃対象だったIPアドレスを、私達が引 き当ててしまった? • 世界中のIPv4の範囲を自動で攻撃?
• DNSサーバーへのブルートフォース攻撃が成 功し、ドメインを取得した? 攻撃者がIPアドレスでアクセスしていると推測した場 合、TLS証明書とはドメインが違うのを無視しているこ とになる。まあ攻撃者は気にしないか... 目的 • 侵入可能なサーバーの探索? • セキュリティの勉強? 攻撃
防御
Hostヘッダーで防ぐ 攻撃 無差別攻撃(再掲) GET /.env Host: ***.***.***.*** User-Agent: Mozilla/5.0 (Windows
NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: */* Accept-Encoding: gzip 大手暗号資産取引所への攻撃の余波(再掲) GET /bapi/fiat/v1/public/fiatpayment/menu?currency=CNY Accept: application/json, text/plain, */* Host: www.binance.com User-Agent: BNC/2.37.0 (build 10; iOS 14.8.0) Alamofire/4.9.0 Mclient-X-Tag: pch5D9lsORjgObhyjdSK timeout: 3000 Connection: close IPアドレス総当りで攻撃しているせいか *1、Host ヘッダーが的外れ
※あくまで私の案件で効果が高かっただけで、違う攻撃には効果が薄い可能性があります。
6/22 12:16ごろ適用 → 観測範囲では攻撃を 100%ブロック ※6/22以降のAllowedはおそらく全て正常なリクエスト
それ以外の案 • ALBのHost-based Routingで防ぐ ◦ 指定したホスト名以外は403を返す • CDNで防ぐ ※私達がWAFを用いたのは、単にすでにWAFを使っていたから 防御
参考: ALBへのアクセスを特定のHostヘッダのみに限定する方法の一例 - Developers.io
試したけど上手く行かなかった案 防御 マネジメントルール 有効だが取りこぼしも ある
まとめ
意外と攻撃を受けている • 見直してみましょう。 • 繰り返しますが、発表者は専門家ではありません。 ◦ 学習中の内容や誤っている可能性のある内容を含 みます。 • 皆さんの事例もこの後教えてください!
まとめ
ちょっと待った!
Hostヘッダーで防ぐ ちょっと待った! 無差別攻撃(再掲) GET /.env Host: ***.***.***.*** User-Agent: Mozilla/5.0 (Windows
NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Accept: */* Accept-Encoding: gzip 大手暗号資産取引所への攻撃の余波(再掲) GET /bapi/fiat/v1/public/fiatpayment/menu?currency=CNY Accept: application/json, text/plain, */* Host: www.binance.com User-Agent: BNC/2.37.0 (build 10; iOS 14.8.0) Alamofire/4.9.0 Mclient-X-Tag: pch5D9lsORjgObhyjdSK timeout: 3000 Connection: close IPアドレス総当りで攻撃しているせいか *1、Host ヘッダーが的外れ いやいや、ドメインってIPアドレスか ら逆引きできるのでは? 攻撃者、なぜやらない?
IPアドレスからドメイン名を引く方法(2案) 1. PTRレコードを見る 2. TLSでサーバー証明書を取得し、証明書内のドメインを読む 2. を実験します💡 ちょっと待った!
実験 import ssl from os import environ import OpenSSL host_ip
= “8.8.8.8” cert = ssl.get_server_certificate((host_ip, 443)) x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert) components = x509.get_subject().get_components() hostname_byte = components[0][1] print(hostname_byte.decode('UTF-8')) ちょっと待った!
結果: できる! ちょっと待った! dns.google
• そもそもが「雑な攻撃」なので、攻撃者もいちいち気にしていない? • 同一IPで複数Hostを提供している場合にややこしい? • 私達のサーバーを狙った攻撃ではない? • etc… → 結論、攻撃者の考えはよくわからない...
なぜ使わない...? ちょっと待った!
補足 セキュリティエンジニアの友人に伺いました。 IPアドレスを基にTLS証明書を取得し、記載されているドメインと突き合わせる手法は、ホワイトハッカーが脅威 ハンティングの一環でフィッシングサイトを検出するために利用しているとのこと。 ちょっと待った!
今度こそおわり
今度こそおわり • 雑な攻撃は一工夫で防げる • セキュリティを考え出すと、本質的な理解が必要だなぁ と気づく • 参加者の皆様、セキュリティの話しましょう!!! ちょっと待った!
参考
• [AWS]AWSのIP帯域を狙った攻撃の実態と対策 • ALBへのアクセスを特定のHostヘッダのみに限定する方法の一例 • その他、ご助言をくださった皆様 参考