現実逃避でハニーポットを構築した話
はじめに
研究室で「(報告できるような)進捗ないな〜明日の進捗報告どうすっかな〜」と嘆いていたところ突如ハニーポットを構築したくなったので構築してみました.
サーバの準備
サーバの用意から始めます.
クーポンの利用
某ハックでさくらのデータセンターを訪問したときにもらったクーポンがあったのでさくらのクラウドを利用しました.
クーポンの登録手順は下記のサイトが参考になります.
manual.sakura.ad.jp
サーバの作成
用意するサーバのスペックは後述します.
サーバの作成手順は下記のサイトが参考になります.
manual.sakura.ad.jp
SSHなどの設定
下記のサイトを参考にするといいと思います. qiita.com
自分の環境はMacなのでいつもはssh-copy-id
でサクッとやっちゃいます.
ハニーポットの選定
ハニーポットと言っても様々なものがありますが今回は構築が簡単かつ可視化機能が優れているという点からT-Potを選びました.
T-Pot 17.10 - Multi-Honeypot Platform rEvolution
T-Potのコンセプト
- Ubuntu Server 16.04 LTSをベースにしたネットワークインストラーである
- ハニーポットデーモンとサポートコンポーネントはdockerでコンテナ化されている
- 同一のネットワークインターフェイスで複数のハニーポットデーモンを実行できる
- conpot, cowrie, dionaeaなどのdocker化されたハニーポットのイベントをELK Stackでいい感じに収集して可視化できる
サーバの必要スペック(for T-Pot)
- 4[GB] RAM (6-8[GB] recommended)
- 64[GB] SSD (128[GB] SSD recommended)
- Network via DHCP
- A working, non-proxied, internet connection
T-Potの導入
基本的に公式サイトの手順に従うだけですが下記のサイトでは日本語で解説されています. qiita.com
しかし,上記のサイトのKibana Web UIへのアクセスの項目は情報が古くなっているため注意が必要です(T-Pot 17.10からSSHでトンネルを張る必要がなくなりました).
現在ではhttps://<your.ip>:64297
にアクセスするだけで Kibana Web UI を使用することができます.
Just open a web browser and access and connect to
https://<your.ip>:64297
, enter
- user: user you chose during the installation
- pass: password you chose during the installation
可視化
Kibana Web UI のスクリーンショットです.
最後に
思ってたよりも簡単にハニーポットを構築することができて驚きました.
次は生のデータを分析してみたいと思います.
SecHack365@福岡に行ってきた話
SecHackのオフラインイベントで福岡に行ってきました(8/22~8/24)
0日目(8/21)
帰省先(実家)から昼頃帰ってきて研究室でSecHack用の資料を作っていた.
気がついたら0時を過ぎていた.
家に帰ってから荷造りをして2時頃に寝た.
1日目(8/22)
05:00
起床.
08:00
羽田空港到着.
台風19号と20号で欠航するんじゃないかと心配していたがなんとかなった.
11:00
福岡空港到着.
いい感じに晴れてて最高の気分になった.
12:30
ラーメンデータベース福岡ランキング1位の博多一双に到着.
今までに経験したことがないドギツイ豚骨臭で期待が高まる.
40分ほど並びようやく入店.
特製ラーメンを注文しカウンターで着丼を待つ.
3分ほどで着丼.
カプチーノのような豚骨スープの深いコクに感動して涙を流しながら麺をすすった(泣いたのは嘘
14:00
Nulab訪問.
CEOの橋本さんとCTOの縣さんから貴重なお話を聞かせて頂いた.
本日は、セキュリティの未来を生み出すU-25ハッカソン" #SecHack365 "のみなさまが、「先端科学技術企業訪問」として #ヌーラボ 福岡本社に来てくれました!🔐橋本や縣のセッションのみならず、たくさんのヌーラボメンバーとのミートアップタイムも行いましたよ😊#nulab pic.twitter.com/jlPZ1cijHe
— Nulab,inc. | (株)ヌーラボ (@nulabjp) 2018年8月22日
18:00
宿泊先に移動して夕飯.
圧倒的人権.
イカソーメンが名物らしいがそんなに好きじゃないので肉ばっか食べてた.
26:00
就寝.
早めに寝るべきだったけど強い人達と雑談するのが楽しくて夜更かし(?)してしまった.
2日目(8/23)
8:30
朝ごはんチャレンジ失敗.
09:00
中間報告開始.
毎度のことながらドクペータワー最高過ぎる.
13:00
休憩.
海に行った.
テンションが上って15年ぶりに海に潜ってしまった.
15:00
中間報告再開.
18:00
中間報告終了.
完全にこれだった.
18:30
中間報告終了後に自分のプロジェクトテーマが本当にこれでいいのか改めて考えた.
自分のテーマは研究に近いもので,大学でもできるためこれをSecHackでやるのは微妙だなと以前から思っていた.
進捗としては中間報告の時点である程度形にはなっており,必要なデータを揃えれば査読なしの研究会になら論文として投稿できそうだった(本当か?
しかし,このテーマを続けてもSecHackが求めるイノベーション感はだせないだろうなと感じていた.
そこで何人かのトレーニーと相談し,IoTに関するプロジェクトにJOINさせてもうら形になった.
19:00
夕飯.
人権.
23:00
4チームに別れてNight Challenge(ミニハッカソン)開始(1チーム5~6人)
- 台風情報を収集する
- 自身の位置が、暴風圏に入るかどうか判断する
- 危険な場合は、通知する
- 危険でない場合は、お勧めの近隣スポットをリコメンドする
- オリジナル機能 Idea 1 (自由な発想で機能を付けて下さい)
- オリジナル機能 Idea 2 (自由な発想で機能を付けて下さい)
28:00
Night Challenge終了.
危うくAll Night Challengeになるところだった.
自分はオリジナル機能として二郎リコメンドを実装した.
IPアドレスから現在地を取得し,最寄りの二郎をリコメンドする.
コマンドライン引数に地名が含まれていた場合はその地名から最寄りの二郎をリコメンドする.
リコメンド結果はTypetalkに通知している.
#!/usr/bin/env python # -*- coding: utf-8 -*- import geocoder import pandas as pd import requests import sys def nearest_jiro(): args = sys.argv if len(args) == 1: g = geocoder.ip('me') else : geo_address = args[1] g = geocoder.google(geo_address) if g.latlng is not None: lat = g.latlng[0] lng = g.latlng[1] else: print('Not Found') g = geocoder.ip('me') lat = g.latlng[0] lng = g.latlng[1] dist = float('inf') nearest_jiro_name = 'jiro' nearest_jiro_url = 'url' df = pd.read_csv('./jiro.csv') for index, row in df.iterrows(): temp_dist = abs(lat-row['lat']) + abs(lng-row['lng']) # print(row['name']) if dist > temp_dist: dist = temp_dist nearest_jiro_name = row['name'] nearest_jiro_url = row['url'] print(nearest_jiro_name, nearest_jiro_url) return nearest_jiro_name, nearest_jiro_url def typetalk_post(name, url): # hogeにはpost先のURLとトークンが入る r = requests.post('hoge', {'message': name + '\n' + url}) if __name__ == '__main__': name, url = nearest_jiro() typetalk_post(name,url)
3日目(8/24)
08:30
朝ごはんチャレンジ失敗.
09:00
コースワーク開始.
Night Challengeの発表をした後にプロジェクトの担当トレーナーにあいさつをしにいった.
13:00
倫理セッション.
法と倫理について考えた.
15:00
解散.
16:00
福岡空港到着.
実家用にお菓子と明太子と地酒,研究室用にお菓子を買った.
小腹が空いたのでラーメンを食べた(ラーメン以外の食べ物をしらないため)
21:00
羽田空港到着.
まとめ
- 本場の豚骨ラーメンは美味い
- 海は最高
- IoTに関する知見を増やす
SecHack365@北海道に行ってきた話
SecHackのオフラインイベントで北海道に行ってきました(6/29~7/1)
0日目 (6/28)
期末試験があったがSecHack関連のタスクが未完了だったので何も対策せずに受けた.
単位はちゃんときました
1日目 (6/29)
05:00
起床. まだ荷造り終わってなかったので最終確認とかをした.
10:00
羽田空港到着.
12:30
新千歳空港到着.
(北海道着いたらめっちゃ雨降ってた)
12:45
ラーメン道場で昼食
やっぱり空港のラーメンはスープが微妙
15:00
さくらインターネットの見学
データセンタの中に入るのは初めてだったのでとても新鮮だった.
区域毎に反省点を改善するために設備をアップデートしていく姿勢に感動した.
20:00
夕飯.
圧倒的人権
2日目 (6/30)
09:00
ここからが本番.
くぼたつ本 の著者の久保田 達也さんにアイデア発想法についてレクチャーをしてもらった.(くぼたつ本はただでもらった).
今までの自分のアイデアは自身の技術力に依存する傾向があり,ありきたりのモノしか思いつくことができなかった.(どうすれば実現できるか?考える癖がついていたため)
一度実現可能性を考えずにめちゃくちゃな案をだしてみるのも1つの手だということを知ったので日々の生活に取り入れていきたいと思う.
11:00
NICTER Open Network Security Test-Out Platform (NONSTOP)のハンズオンを受けた.
個人的に興味があるデータセットもあったので時間ができたら弄りたい.
13:00
コースワーク
自分のプロジェクトは研究寄りでイノベーション感がないのでとても不安になったが,周りに似たような不安を抱いている院生がいたので安心した(?).
本当にこのまま進めていいのか?と不安になっていたが,NICTの人に「このまま進めていいんじゃない?」と言われたのでこのまま進めることにした.
15:00
縁日
- データセット活用入門(ついでに感染IoT機器を探してみよう)
- ネットワークハッキング ~自由を手に入れよう!誰でもできるネットワークすり抜け術~
に参加した.
データセット活用入門(ついでに感染IoT機器を探してみよう)
簡単なスクリプトを書いてダークネットトラフィックに関するデータを扱った.
- IoT機器に関連した宛先ポートにスキャンしているホストを探す
- ホストの80/TCPにアクセスする
- HTTPレスポンスを収集
ネットワークハッキング ~自由を手に入れよう!誰でもできるネットワークすり抜け術~
ネットワークのトンネリング技術の体験をした.
などのコマンドを使った
ネットワークトンネリングツールの使い方よりも使いどころを知ることが大切
様々なレベルの制約がついたネットワーク環境を与えられ,wgetできれば勝ち?という講義だった. 最終的にWeb(80/TCP), mail(25/TCP), SSH(22/TCP), ICMP(ICMP)通信が禁止されたネットワークからwgetすることができた(iodine).
まとめ
SSHすごい!
19:00
夕飯.
普段食べてるものと比べるとレベルが高すぎて人権を感じた.
3日目 (7/1)
09:00
コースワーク
色々とアドバイスを頂いた.
13:00
解散.
そのまま,バスで新千歳空港に行き,実家と研究室用に日本酒とお菓子を買った.
19:00
羽田空港着
飯まとめ
3 + 1日目(7/2)
月曜の1限から期末テスト!
飛行機の中で1時間くらい勉強してそのままテストを受けた
院生の期末試験に対するモチベはこんなものだと思う
もちろん単位はきた
まとめ
SecHack365@神奈川に行ってきた話
SecHack365の初顔合わせに行ってきました(5/18~5/20).
1日目
10:00
起床(14:00受付ということなので遅め)
11:30
出発
13:45
目的地到着(乗り換えミスって昼食をとる時間が消滅)
14:00
歓迎セッションとオリエンテーション開始
トレーナーもトレーニーも強い人ばかりでちょっと怖くなった(場違い感)
習慣化についての話がとても印象に残った(ラーメンを食べすぎて高血圧?になったので毎晩4kmランニングをしよう!と春休み中に決意したにもかかわらず3週間でやめてしまった自分には考えさせられる話だった).習慣化のコツを雑に説明すると「高い目標を設定すると継続が難しい.なので,このくらいなら毎日継続できるかな?程度のやさしめの目標を設定する.」ということっぽい.
要は目標を実行に移すタイミングがボトルネックになっているのでそこのハードルを下げて継続していこうという話.
その話を踏まえてマンダラートを書いた.
19:00
夕食(バイキング形式)と交流会
久しぶりに人権のある飯を食べた
21:00
発表スライドの微修正とか就寝準備とか
25:00
就寝
2日目
08:00
起床&朝食(バイキング形式)
やはり人権のある飯はうまい
09:00
アイデアソンをした.
みんな面白いことを考えていてすごいなとなった(マネしたい).それと同時に自分はこんなアイデアでいいのか???ともなったが「面白いですね」とか「細部までよく考えているんですね」とか言われてちょっと嬉しくなった.
12:00
昼食(メイン以外バイキング)
人権のある飯はうまい
13:00
コースワーク(表現駆動)
自己紹介を含めた持ち込みアイデアのプレゼンをした.参加者のプレゼンをみて「実績や経歴も強いし,アイデアも面白いし最強かよ」となった.
自分は膨大なWebアクセスログから悪性Webアクセスログを高速に抽出する手法についてプレゼンした.現時点で色々と問題点があるので今後は論文を読んだり助言をもらったりして解決していきたい.
19:00
夕食(バイキング形式)
人権のある飯はうまい
20:00
Night Challenge
適当に決まったチームに分かれていくつかの課題を解いた(俳句の自動生成とか)
25:00
就寝
3日目
08:00
起床&朝食(バイキング形式)
人権のある飯はうまい
09:00
コースワーク(表現駆動)
昨日のプレゼンの続き
12:00
昼食(メイン以外バイキング形式)
人権のある飯はうまい
13:00
個人活動
自分は同じような技術を使いそうなアイデアを発表した人や院生の人と世間話?をしていた.この時間がかなり有意義だった.同様の技術を使いそうな人とはその技術についての話で盛り上がったし,似た分野の研究をしている院生とは最近読んだ面白い論文の話をして盛り上がった.
話をしたほとんどの人がセキュスペを持っていたので安全確保支援士の登録について(するか or しないか)聞いてみたけどやっぱりみんなしないらしい.
自分も学生のうちは16万円も払えないし失効してもいいかなと思っていたので1人で納得してしまった.
15:30
解散
本当に楽しい3日間だった.次の北海道回まで進捗をだしていきたい.
19:00
90分ならんで関内二郎を食べた(横浜といえば関内二郎)
ちなみに大豚 汁なし ニンニクヤサイです.
やはり関内二郎の乳化スープは最高ですね.
23:00
自宅到着(寄り道したので時間がかかった)
まとめ
- みんなつよい
- 習慣化がんばる
- 進捗出す
- 関内二郎は美味しい
SecHack365(2018)の選考を通過?した話
SecHack365の選考を通過しました.
SecHack365とは
25 歳以下の学生や社会人から公募選抜する 40 名程度の受講生を対象に、サイバーセキュリティに関するソフトウェア開発や研究、実験、発表を一年間継続してモノづくりをする機会を提供する長期ハッカソンです。
というものです.
詳しくは修了後(2019年3月)に書こうと思います(修了できたら).
応募の動機
これ系のイベントはセキュリティ・キャンプが有名ですが,
私は年齢制限で参加不可能になってしまい,完全にお気持ちになっていたので
SecHack365の存在を知ったときはすぐさま課題フォーム埋めを始めました.
この他の動機としては
- 必要経費50万円全額補助で日本各地にラーメンを食べに行ける
- 行き詰まった研究に何らかのアドバイスを貰える
- セキュリティ界隈の強い人と出会って刺激を貰える
などが挙げらます.
選択コース
私は表現駆動コースに応募しました.
このコースを選んだ理由ですが最終的なプロダクト例に"論文"があったからです.
私はあるツールを作りたいと思い,できればそれを論文にしたかったのでこのコースを選択しました.
課題
応募にあたって勿論課題がありました.
課題の内容に関しては転載不可ということなので,ここに詳しくは書けませんが,
過去に参加した大会(PCK, SuperCon, 高専プロコンなど)や投稿した論文についての
話をしました.
最後に
選考を通過したということは少なからず期待されている?ということなので
1年間しっかり頑張って"成果"を残したいと思います!