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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
60
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
480
生成AI元年を個人的に振り返る / Reflecting on First Year of the Generative-AI
hiroga
0
440
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
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
560
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
0
130
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
200
Deep Data Security 機能解説
oracle4engineer
PRO
2
110
データレイクの「見えない問題」を可視化する
sansantech
PRO
1
200
技術・能力を向上する原理原則 #きのこセッションa #きのこ2026
bash0c7
0
120
入門!AWS Blocks
ysuzuki
1
190
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
140
元銀行員がAIだけでアプリを量産!「バイブコーディング実演セミナー 」
tatsuya1970
0
110
AI 不只幫你寫 Code: 當專案從 300 暴增到 1500, 我們如何撐住 DevOps
appleboy
0
220
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
510
Featured
See All Featured
BBQ
matthewcrist
89
10k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Accessibility Awareness
sabderemane
1
140
Documentation Writing (for coders)
carmenintech
77
5.4k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
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ヘッダのみに限定する方法の一例 • その他、ご助言をくださった皆様 参考