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
100
Gaussian Splatting Hands-on
hiroga
0
140
マルチモーダル理解と生成の統合 DeepSeek Janus, etc... / Multimodal Understanding and Generation Integration
hiroga
0
790
LlamaGen: LlamaのNext-Token予測を使った画像生成 / Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
hiroga
0
660
人事評価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
その Valkey 使いこなしていますか?
onk
PRO
5
1.8k
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.5k
企画を Software Factory-ready にする——開発が高速になったとき、PdMの仕事はどう変わったか
yachibit
1
130
AWS DevOps Agentはどこまで任せられるか 〜機能の現在地と、機能拡張の実践〜
nyankotaro
0
120
macOS Golden Gate 時代のMac管理
tategami
0
120
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
160
Metadata - Section 2: Simple Metadata & Meta Tags
mohab1
0
110
Browser Spec: Testing Hotwire with Ruby
takahashim
1
160
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
140
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
320
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
160
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
150
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
530
Claude Code のすすめ
schroneko
67
230k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
740
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Technical Leadership for Architectural Decision Making
baasie
3
610
Everyday Curiosity
cassininazir
0
360
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
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ヘッダのみに限定する方法の一例 • その他、ご助言をくださった皆様 参考