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
雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect serv...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hiroga
June 26, 2022
Technology
2.8k
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
55
Gaussian Splatting Hands-on
hiroga
0
110
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
730
LlamaGen: LlamaのNext-Token予測を使った画像生成 / Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
hiroga
0
590
人事評価GPTsで評価の本質に向き合おう! / HR GPTs: Essential evaluations focus!
hiroga
1
470
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
430
AWS Startup Day 2023 今日ここで! コスト削減ハンズオン / Cost-Saving Hands-On today!
hiroga
0
190
ChatGPT社内活用資料 / Internal use of ChatGPT
hiroga
0
190
マルチテナントSaaSのカスタム要件に、 Auth0テナントを分割せず向き合う! / Multi tenant SaaS with Auth0
hiroga
1
3.3k
Other Decks in Technology
See All in Technology
Dynamic Workersについて
yusukebe
2
590
Amazon Bedrock AgentCore ワークショップ JAWS UG TOHOKU / amazon-bedrock-agentcore-workshop-jawsug-tohoku-2026
gawa
8
330
Ruby::Boxでできること、Refinementsでできること
joker1007
3
390
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.3k
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2k
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
760
Agentic Defenseとともにセキュリティエンジニアが輝き続けるには / How Security Engineers Can Keep Excelling with Agentic Defense
yuj1osm
0
100
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/3 - 2026/5
oracle4engineer
PRO
1
200
Claude code Orchestra
ozakiomumkj
3
980
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
160
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development
yoshidashingo
1
370
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
18
9.5k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Google's AI Overviews - The New Search
badams
0
1k
sira's awesome portfolio website redesign presentation
elsirapls
0
270
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
ラッコキーワード サービス紹介資料
rakko
1
3.6M
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Between Models and Reality
mayunak
4
330
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
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ヘッダのみに限定する方法の一例 • その他、ご助言をくださった皆様 参考