「家計にやさしいハニーポット入門」を出します!2017年10月22日(日)秋葉原UDXで行われる技術書典3にサークル参加します。頒布するのは「家計にやさしいハニーポット入門」というハニーポット構築本です。セキュリティには詳しくないけど、興味はあるサーバは構築・運用したことがあるといった方(一年前の自分)を想定して書きました。DockerやElasticsearch等々といったリッチなものは一切使わず、メモリ0.6GBのサーバでハニーポットを運用しようという感じの趣旨の本です。安く上げるためのあれこれTipsではなく、目的に合ったハニーポットを構築することに重きをおいた内容です。後ほどBOOTHにて電子版でも販売します。当日はよろしくお願いいたします。ある日唐突にハニーポットを運用してみたくなりました。以前IoTマルウェアの記事を書かせていただいた経緯もあり、そういったマルウェアからの攻撃を実際に受けてみたいなと思ったのが動機です。森久和昭さんの「サイバー攻撃の足跡を分析するハニーポット観察記録」が会社に置いてあって、カッコイイ!とミーハーな気持ちで運用し始めました。Kindle版この商品を含むブログを見る全くハニーポットについてなにも知らない状態だったので、調べてみたところ、ハニーポットの選定やインストール方法の記事は発見したのですが、運用にいくら位必要なのか明記しているのはあまりなかったので備忘録的に記しておきます。自宅にRaspberryPiが転がっていたのでそいつをハニーポット化してみようかとも思いましたが、自宅のネットワークに手を加えると同居人に鉄拳制裁を喰らうので今回はEC2を利用しました。ホスティングサービスを利用してハニーポットを構築する前に留意しておくべきなのはサービスの利用規約ですが、AWSの日本語規約は、現時点ではハニーポット運用は明示的に許可されてもいませんし、明示的に禁止されてもいません。今回の運用中、事業主から注意されるようなことはありませんでしたが、T-potを立てたサーバ自体が侵害されてしまった場合、事業主の判断でインスタンスを止められたり、規約違反としてサービスが利用できなくなる可能性もあります。規約は各ホスティングサービスによって異なりますので確認の上実施ください。黒彪さんが以下の記事にて各サービスに問い合わせた結果を載せていらっしゃるので、参考にしてください。blackle0pard.hateblo.jp今回EC2上に立てた環境は以下の通りです。16-10T-potの要求スペックが結構高い(ハニーポット+ELKで可視化して見ようと思うとメモリ最低4GB、ボリューム最低64GB)のでこんなことになっております。別にSSDにする必要はなかったと思うのですが、いい機会なので使ってみました。T-potのインストールについてはこちらがわかりやすかったので参考にさせていただきました。IPは作成すると追加料金がかかったことと(かなり微々たるものではありましたが)、割り当てられるIPが北米のものになってしまったので日本のIP帯にくる攻撃が見たかったため今回は割り当てていません。このような感じの構成で10日間、運用してみました。¥2,168※レートはあくまでもAmazonが管理しているので為替レートを即時反映しているわけではないと思われるこのスペックならそんなもんか〜と思っていたのですが、方々から「高い」と言われるので、日常的にサーバーを運用している人にとっては多分高いんだと思います。SSDをHDDにすればもう少し抑えられそうです。ちなみにさくらのVPSとかでも料金を見積もってみましたが、メモリ4GB以上/SSDで64GB以上...とするとこんな感じになってしまい、あまり値段的には変わらない感じでした。ConoHaはもう少し安いようなので、移動しようかなあと検討中です。ConoHaはハニーポット構築は不可とのことでした。攻撃を観察してみたい人はハニーポットOKなVPSとかでぽこっとサーバを立てて1週間とか運用してみると楽しいと思います。インストール時にトラブったんですがそれでも一時間半くらいで導入できました。※ポート22は2222へ、23は2223へ転送されるようになってます23日に急に観測数が跳ね上がっていますが、これは多分Shodanで見つけられるようになったのがその頃くらいからだからなのではないかと思われます。同じ期間の辻さんのハニーポット情報と結構違うような気がするなぁと思っていましたが、telnetやsshで試行されるユーザー名とパスワードは似た感じ、という印象です。先週の我が家のハニーポット情報です。上段、ポート別アクセス数(3時間毎)中断、試されたIDとパスワード(週を通じCowrieとDionaea毎)下段、攻撃元の国別件数(3時間毎)となっております。開けてあるポートもおそらく違うでしょうし(私は全ポート解放はしてません)、どの場所のIP帯かでも違うと思うので、環境差が出てしまった、という感じでしょうか。バージョン16-10だと、一部の検体はハニーポット(cowrie)であることを検出していて捕まえられないようです。リリースはされていませんが、17.06ブランチでは修正されているようなので、近々こちらにアップデートする予定です。Challengeに参加してきましたかなり遅いレポートですが、1月末に開催されたSECCON2016決勝大会(のワークショップの方)に行ってきました。私が参加したのは土曜日だけでしたが、「王様達のヴァイキング」がつくられた裏話などが聞けてとても面白かったです。Challenge」に参加してきました。環境は手元にはないので、内容の全てを詳細にレポートできませんが、参加していない方でも雰囲気を味わっていただけるかと思います。配線図は公開可能か不明だったので、ネットに落ちている配線図を引っ張ってきましたが、もし不明点や補足点などあれば、ご連絡いただければと思います。CTF(実践)という構成で行われました。Piに接続するところからワークショップが始まりました。Amazonでは5000円くらいで買えるようです。Piに接続できると、定番のLチカを行った後、以下の練習問題とともにIC「24LC256」が手渡されました。これは実際に九州大会予選で使用された問題だそうです(ICの内容自体は違った様子です)。PiでI2C通信ができるようにします。Piには既に準備されていたので上記手順は行わずに問題に着手することができました。ブレッドボード上にICを置き、配線をし、試しに書き込み・読み出しをしてみます。※回路図は公開可能か不明だったので記載しませんが、こちらなどを参考に配線すれば大丈夫かと思います。←先ほど書き込んだdateコマンドの結果うまく読み書きできました。実際に出題された問題は、同様にこのICからデータを読み出すと、以下のようにファイルが取り出せるという問題だったようです。Piでxxx.pyを実行すれば解けるものだったようです。PiからArduinoにプログラムを書き込んでArduinoをAVRマイコンライタにして、AVRにプログラムを(Arduinoを介して)書き込みました。IDEを起動させ、そこからArduinoを介してAVRにプログラムを書き込みます。Pi-Arduino間はUSBで接続します。IDEの設定を整えます。Nanoを選択Tools->Processor:“xxx(今の設定)”->ATmega328を選択File->Examples->ArduinoISP->ArduinoISPを選択Uploadボタンを押し、Arduinoに(ArduinoSIPプログラムを)書き込む以上でArduinoをAVRライタとして動かす準備ができました。今回利用するAVRは、ATTniy85なので、Arduino-AVR間は以下のような感じで配線します。ISP"を選択Uploadボタンを押し、AVRにプログラムを書き込むこれでAVRにプログラムを書き込む準備ができました。CTFに出題された問題は、IC一つのみ(問題文なし)。前半でも利用された24LC256が手渡されました。ここまででやってきたことで回答できるということなので、先ほどと同じ手順でICからデータを読み出します。Piの上でxxx.pyを実行すればよいのかな?と思ったのですが、ここでブレッドボード上に回路を組んでいる間にタイムアップ。最後のフラグは取得できませんでした。まとめ久しぶりにマイコンやブレッドボードに触れられて、とても楽しいワークショップでした。CTFの雰囲気を感じることができ参考になりました。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。