Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
HTTP(S)ハニポを作ってみた
ninoseki
September 28, 2018
Technology
4
1.5k
HTTP(S)ハニポを作ってみた
第5回 ハニーポッター技術交流会 LT資料
ninoseki
September 28, 2018
Tweet
Share
More Decks by ninoseki
See All by ninoseki
AVTokyo 2020 Phishing Kit Analysis Workshop
ninoseki
2
800
Botconf 2019 OSINT 101
ninoseki
2
590
DNS changerとハニーポット
ninoseki
2
1.1k
MISP & TheHive/Cortex in 20 minutes
ninoseki
0
430
How to become a phisherman
ninoseki
0
840
OWASP Juice Shop どうでしょう
ninoseki
1
590
Other Decks in Technology
See All in Technology
現状のFedCMの動作解説と OIDCとの親和性について- OpenID TechNight vol.19
ritou
2
430
Camp Digital 2022: tailored advice
kyliehavelock
0
140
LINEのB2Bプラットフォームにおけるトラブルシューティング2選
line_developers
PRO
3
280
Custom GitHub Actions by Java
kazamori
0
280
IoTLT88-NTKanazawa-laundry-dry
yukima0707
0
210
JFrog 最新情報 - JFrog DevOps プラットフォームの今までとこれから / jfrog-update-for-devopskaigi-2022
tsuyo
0
150
FoodTechにおける商流・金流・物流の進化/Evolution of Commercial, Financial, and Logistics in FoodTech
dskst
0
380
マネージャーからみたスクラムと自己管理化
shibe23
0
980
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
100
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
410
Scrum Fest Osaka 2022 フルリモート下でのチームビルディング
moritamasami
2
1k
ROS再入門-はじめてのSLAM-
miura55
0
380
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
14
36k
Clear Off the Table
cherdarchuk
79
280k
Visualization
eitanlees
124
11k
Facilitating Awesome Meetings
lara
29
4k
Statistics for Hackers
jakevdp
781
210k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
What's in a price? How to price your products and services
michaelherold
229
9.4k
Bash Introduction
62gerente
597
210k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
269
11k
The Invisible Customer
myddelton
110
11k
Side Projects
sachag
450
37k
Done Done
chrislema
174
14k
Transcript
HTTP(S)ハニポを作ってみた Manabu Niseki (@ninoseki)
TL; DR • WOWHoneypotを参考にRubyでHTTP(S)ハニーポットを作っ てみた ◦ Sleep Warm: https://github.com/ninoseki/sleep_warm ◦
色々改良してみた • ハニポを作ってみるのはWebアプリケーションプログラミング の勉強にちょうどいいかも
モチベーション • なんで作ったのか? ◦ WOWHoneypotに(個人的に)感じた課題: ▪ テストがない! ▪ デプロイは完全に自動化したい !
▪ 超個人的に・・・ • XMLは書きたくない! • PythonよりRubyが好き!
作った • Sleep Warm: ◦ https://github.com/ninoseki/sleep_warm ◦ Ruby + RackベースのWebアプリケーションとして実装
◦ Rack: ▪ RubyでデファクトのWebアプリケーションインターフェース • PythonでいうWSGI • PerlでいうPSGI
アーキテクチャ
解決した課題 • テストがない! ◦ RSpec + rack/testでテストを実装 ▪ 1ルール =
1テストを実装 ◦ テストカバレッジ 100%
解決した課題 • デプロイは完全に自動化したい! ◦ Itamaeによるデプロイの自動化 ▪ Itamae: Cookpad製のプロビジョニングツール • “Configuration
management tool inspired by Chef, but simpler and lightweight.” OR ◦ “Deploy to Heroku”ボタンによるHerokuへのワンクリックデプロイ
“Deploy to Heroku”ボタンとは • Webアプリケーションの構成情報が記述されたマニフェスト ファイル(app.json)を読み取り、自動的にHerokuにデプロイし てくれるというもの
備考: Logz.io + Heroku = ゼロ円ハニポ • Logz.io: https://logz.io ◦
Logz.io = ELK as a service. ◦ フリー版: ▪ 3 GB / day ▪ 3 day retention • Heroku: https://heroku.com ◦ フリー版: ▪ 512 MB RAM ▪ 30 分間アクセス無しの状態だとスリープ状態に移行 • More details: ◦ Blog post: ゼロ円から始めるHTTP(S)ハニーポット ▪ https://ninoseki.github.io/2018/08/16/zero-yen-honeypot.html
解決した課題 • XMLは書きたくない! ◦ ルールはYAMLで1ファイルごとに記述
作ってみて思ったこと • WOWHoneypotクローンを作るのはWebアプリプログラミング の勉強にちょうどいいかも ◦ デフォルト 200 OK: ▪ 意外と最近の高級なWebアプリケーションフレームワークでこれを満たす
のは難しい ▪ Webアプリケーションフレームワークのルーティング周りの仕様の深い理 解 or より低レイヤーのミドルウェア(= 今回の場合はRack)の理解が求め られる ◦ マッチ & レスポンス: ▪ 先ほどと同じルーティング周りの理解 + HTTPリクエスト/レスポンスの取 り扱われ方に対する理解が必要
最後に • ハニーポットの運用もいいけど・・・ • 自分で作ってみるのも面白いぞ!