Upgrade to Pro — share decks privately, control downloads, hide ads and more …

雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks

雑な攻撃からELBを守る一工夫 +おまけ / Know-how to protect servers from miscellaneous attacks

hiroga

June 26, 2022
Tweet

More Decks by hiroga

Other Decks in Technology

Transcript

  1. 目次
 • はじめに
 • 攻撃
 • 防御
 • まとめ
 •

    ???
 • 今度こそおわり
 • 参考

  2. 思ってたのと違った
 思ってた攻撃
 • APIエンドポイントを調べた上での標的型攻撃 
 • アプリケーションが用いるパスに対して、SQL インジェクションなどを試みる 
 実際の攻撃


    • AWSが持っているIPアドレスを狙った無差別型 攻撃(たぶん)
 • .envの誤コミットや.gitの誤デプロイなど、広くあ りそうな間違いを狙う
 • Binanceなどの大手暗号資産取引所への攻撃 の余波らしいものもある
 攻撃

  3. 大手暗号資産取引所への攻撃の余波 
 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
 ※あくまで私の案件で観測された攻撃を分類しただけで、汎用性や網羅性は全く保証できません。 

  4. 推測
 手法
 • AWSの持っているIPアドレスの範囲を自動で 攻撃?
 • 過去に攻撃対象だったIPアドレスを、私達が引 き当ててしまった?
 • 世界中のIPv4の範囲を自動で攻撃?

    
 • DNSサーバーへのブルートフォース攻撃が成 功し、ドメインを取得した? 
 攻撃者がIPアドレスでアクセスしていると推測した場 合、TLS証明書とはドメインが違うのを無視しているこ とになる。まあ攻撃者は気にしないか... 
 目的
 • 侵入可能なサーバーの探索? 
 • セキュリティの勉強?
 攻撃

  5. 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. 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アドレスか ら逆引きできるのでは? 攻撃者、なぜやらない?
  7. 実験
 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'))
 ちょっと待った!