ハニーポットをパワーアップさせた。
AWSのLightSailが少し安くなっていた。
RAM 1Gでも$5なのでとてもおすすめ。
前回のハニーポットはRAM 500Mで制限がとても多かったのでいっそのこと最初から作り直した。
作るのに4日くらいかかった。その代わりSystemdやrsyslogとか若干わかるようになった。うれしい。
便宜上、suricataとufwもハニポってことにしてるけど許してくださいな。
構成
AWSのVPSに各ハニーポット等を設置して、それらをS3にいったんアップロード。
自宅のPCにインストールしたELKにてログを収集して分析する。
前回と比べてufwとdionaeaが追加された。
使用したもの
Suricata
IDSとして動作。
アクセスを一般的なシグネチャにマッチさせることでどのような攻撃が来たかをパッとで判断できる。Dionaea
様々なポートに対するアクセスをキャプチャできるハニーポット。BlackHole機能に期待。WOWHoneypot
HTTPに特化したハニーポット。
作り方
OS: Ubuntu 18.04
方針として各ログをLogrotateのPostscriptでs3にアップロードします。
詳細は各情報元をご参照ください。
「動けばいい」で作っているのでこの記事によって引き起こされた問題等の責任は負えません。
rootで作業したのでsudoとか使ったとか忘れました。
もの | ばしょ |
---|---|
Suricata | /var/log/suricata/eve.json |
Dionaea | /opt/dionaea/var/lib/dionaea/dionaea.json |
Cowrie | /var/log/cowrie/cowrie.json |
ufw | /var/log/ufw.log |
WOWhoneypot | /home/wow/wowhoneypot/log/access_log |
ハニポ
Suricata
以下のコマンドを実行
2. Installation — Suricata 4.1.0-dev documentation
sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata
また、ルールの管理は suricata-update が便利だったのでこちらを使います。
Quick Start — suricata-update 1.1.0dev0 documentation
pip install --upgrade suricata-update sudo suricata-update
これらのコマンドを使うことでルールはいろいろ設定されています。
アラート以外にもHTTPやssh等の監査ログ、統計ログが出てしまっているので /etc/suricata/suricata.yml
で調整します。
Dionaea
最近アップデートされたようですね。非常にインストールが楽になったような気がします。
Ubuntu 18.04でも以下のコマンドで動きました。
Installation — dionaea 0.8.0 documentation
git clone https://github.com/DinoTools/dionaea.git /opt/dionaea cd /opt/dionaea sudo apt-get install \ build-essential \ cmake \ check \ cython3 \ libcurl4-openssl-dev \ libemu-dev \ libev-dev \ libglib2.0-dev \ libloudmouth1-dev \ libnetfilter-queue-dev \ libnl-3-dev \ libpcap-dev \ libssl-dev \ libtool \ libudns-dev \ python3 \ python3-dev \ python3-bson \ python3-yaml mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dionaea .. make sudo make install
http serviceについては必要ないので設定から削除して、ihandler-enableにlog_jsonを移動させます。
Cowrie
これをなぞるだけ。
cowrie/INSTALL.md at master · cowrie/cowrie · GitHub
ログ出力先の設定を変えました。
ufw
ufwはlogging levelをhighに設定。 ufwのログはrsyslogにて制御しているため適宜設定を変えます。
WOWHoneypot
こちらのインストール方法を見ながらインストールします。 github.com
Logrotate
各ハニポのログは1時間おきにs3にアップロードしたいと考えました。
その時に有効なのがLogrotateです。
postscript
というものを使うと任意のコマンドを実行することができるためs3にアップロードするように調整します。
サービス登録
OSをシャットダウンしたとしても自動で起動するようにサービスとして登録を行います。
Serviceセクションの Type
をうまく使うとハニポの起動コマンドでもサービスとして登録できました。
自宅ELK分析環境
OS: CentOS 7.X
今回はELKを分析環境として利用します。メモリは8GBぐらいあれば足りるでしょう。
ElasticSearch、Logstash、Kibanaを以下のURLからダウンロードします。
それぞれ yum localinstall
等でインストールしましょう。
kibana
kibanaはlocalhostのみで待ち受けているため以下を変えます。
server.host: "0.0.0.0"
http:// IPアドレス:5601でアクセスができるはずです。
Logstash
ハニポのログをElasticSearchにぶっこむ設定を行います。本来であれば型をしてしたテンプレートファイルを作成すると思いますが、今回は面倒なので作成しません。
サンプルとしてufwの取り込み設定のコンフィグをあげます。
inputセクションでどこからデータを持ってくるのかを指定して、filterセクションでデータの加工を行います。最後にoutputセクションでどこへデータを送るのかを指定します。
iptables.patはこちらからいただきました。
iptables Grok Pattern · GitHub
特にfilterセクションではとても便利で、UAの解析やgeoipの取得やリバースDNSの取得など様々な加工を行うことができます。
非常にたくさんのプラグインがあるのでぜひ活用してください。
configのアップロードは別の記事にしようと思います。
それぞれハニポのログを別のパイプラインとして登録をすると以下のようにいい感じになります。
ここまでくるとs3を経由してハニポのログが自宅PCのElasticSearchに入りました。 kibanaから確認してみましょう。
kibanaでの設定
まずはインデックスを設定する必要があります。以下の順にクリックします。
Management → index Patterns → Create Index Pattern
画像のようにハニポのログが種類別、日付別のインデックスになっているのでそれぞれインデクスを作成します。
ログを見てみよう
honeypot-suricata-*のログを見てみます。
いい感じにカラムを指定するとこんな感じになります。SuricataはIDSなのでシグネチャ名とペイロードまで確認することができますね。
honeypot-*で特定のIPアドレスを指定して検索してみましょう。
このインデックスであればハニーポットの種別を問わない検索ができます。
特定のIPアドレスがさまざまなログを残してくれているようです。ありがとうございます。
さいごに
T-POTという素晴らしいハニーポット分析環境がありますが、自分で一から作ってみると環境に愛着がわいておすすめですよ。
TODO
- configの需要が有りそうならconfigのブログをかく
- 気が向いたときにログの記事をかく
- ログ分析のやり方の記事をかく
久しぶりにはにぽ植えた
はじめに
タイトル通り久しぶりにハニーポットを植えてみました。
前回はハニーポットとしてcowrieを使い
分析環境としてSplunkを使い、リアルタイム分析ができる環境でした。
まあこれでもよかったのですが、どうせならもうちょっと拡大したいと思い
新しく環境を作りました。
T-Potでええやんとも思いましたが、VPS上で運用するにはお金もかかるし
家にリソースが余っているパソコンがあったため有効活用しようということで使っていません。
使ったものについて
- Cowrie
- WOWHoneypot
- Suricata
WOWHoneypot
dionaeaとかglastopfとかようわからんし環境作るのが面倒だった。
しかしWOWHoneypotはほんとお手軽。
構成について
ハニポはAWSのLightsailで構築。
logrotateで1日一回s3にログをアップロードするような構成。
自宅PCのELKは
Logstashでs3に取りに行く。
cowrieとSuricataに関してはjsonなのでそのまま設定。
wowhoneypotについてはgrokを使って自分でパース。
Kibanaについて
dashboardはVisualizationから作って
Visualizationはsaved searchからつくるって考えるとどう構成するのがいいのか考え中。
とりあえずは検索できるのでまあよし。
画像とか
suricata
どのシグネチャを有効にするのかを考えなければ
cowrie
よく見るやつ。
password
input command
wowhoneypot
いろいろなところにアクセスしようとしている。
今後
ufw まとめ
ufwめんどかったから使ったコマンドまとめる
firewallを有効化する
# ufw enable Firewall is active and enabled on system startup
firewallを無効化する
# ufw disable
設定確認
# ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), deny (routed) New profiles: skip To Action From -- ------ ---- 80 ALLOW IN Anywhere 443 ALLOW IN Anywhere Anywhere ALLOW IN 192.168.1.2 80 (v6) ALLOW IN Anywhere (v6) 443 (v6) ALLOW IN Anywhere (v6)
設定追加
ポートで
ufw allow 80
ipで
ufw allow from 192.168.1.2
ポートフォワーディング
1.フォワーディング有効化
# vim /etc/ufw/sysctl.conf 8行目辺り net/ipv4/ip_forward=1 を有効化
2.ポートフォワーディング
# vim /etc/ufw/before.rules *nat :PREROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 2222 -j REDIRECT --to-port 22 -A PREROUTING -p tcp --dport 2223 -j REDIRECT --to-port 23 COMMIT を先頭行に追加
設定有効化
ufw reload
はい。
はにぽ1
gweerwe323f
三級ファイナンシャル・プランニング技能士になった
せっかく資格試験に受かったので一応記録として残しておこうと思う。
資格はめっちゃ簡単らしいけど、それなりに勉強しないと落ちる。
FPって?
www.u-can.co.jp
ユーキャンのページが分かりやすかった。
要するに保険とか、税金などその名の通りお金に関する資格。
知っといて損はないよね
受けた経緯
去年の年末、バイトで稼いだ金額が103万円超えるとか超えないとかで
どうして超えると面倒なのかとかを調べてたところから始まり。
そこから、社会人になる上で保険とか税金とか知らないとヤバくね???
って思ったのが勉強する決心を決めた。
勉強量について
たぶん2週間くらいで受かると思う。
ただ、相続とか贈与とかは現状自分には関係なかったところだったから
イメージが掴めず、大変だった。
感想
この資格を受けて本当に良かったと思う。
今まで知らなかったようなこととか勉強できたし
こういうのって法律で決まってたりするから知らないからというものでもないもの。
これからも継続的に勉強をしていきたいと思う。
あと、合格証書がかっこいい。うれしい。
みなさんも受けてみてはいかがでしょうか。
トラコン最優秀賞とった
せっかく最優秀賞とったので調子乗ってブログにまとめたいと思います。
めっちゃうれしい。
あとこれは個人の感想です。
こちらのブログが
素晴らしかったので真似して書こうと思います
今後トラコンに出る人の参考になれば幸いです
お前誰?
情報科学専門学校 情報セキュリティ学科4年
サークルの「IPFactory」に在籍している普通の学生
近い将来、SOCで働くことが決まっているため、
ログ解析とかSIEMとかの技術を勉強してる
トラコンについて
トラコンって?
今まで第2回大会と第4回大会、今回の第6回大会に出場しました
第2回大会は今でも印象に残っていて1日目は環境構築を行って、2日目はその作った環境に
トラブルが起きてそれを直すって感じだった
当時は全く勉強をしていなかったカスだったけど
一緒に出てくれた先輩とかが強くてものすごい勉強になってこのコンテストやべぇなとなっていた
昨今のトラブルシューティングコンテストは学生主体となり、やり方がガラッと変わったので
1日目からがっつりトラブルシューティングを行うことになった。しんどさが倍になった。
勉強をする範囲も膨大なのでトラコン用の勉強をすることはほぼ不可能で
勝つためには日ごろ興味を持ってネットワークやサーバーの構築を行っているかがカギとなる
結果発表の時に運営の人が言っていた「経験が必要」的な言葉は
「ネットワークやサーバーを日ごろからいじってる」って意味なのかなと思う
このコンテストを機にネットワークやサーバーを好きになる人もいるだろうし
学生ならとりあえず一回は出てみよう! ほんとおススメ!
トラコンの成績表晒し
— うーろんちゃ氏 (@hnron) 2016年9月7日
自分はWCDIチーム pic.twitter.com/o6P7jh6Y4Q
今回の問題はこんな感じでした。
IPFactoryの作戦
- メンバーそれぞれの技量に任せる
これだけだった。
ネットワーク3人、サーバー1人、なんでも1人の構成で出場。私はサーバー担当。
ある程度チーム内でこの人は何ができて何ができないかは知っていたため
ネットワークっぽい問題をネットワークチームにぶん投げ。
ネットワークチームはとりあえず問題をみておおよその難易度の検討をつけて
1問2人であーだこーだ言いながらやってたみたい。たぶん。
サーバーチームはWeb寄りの私と、サーバーガチプロのなんでも屋一人で分野ごと分担。
1人1問でずっとやってた。
みんな解きたい問題勝手に解いてって感じで、一応同じ問題解くと効率悪いと思って割り当てだけしてた。
ネットワークチームは1問目と3問目やって私は2問目、きみは4問目。ハイ頑張ってスタイル。
事前に集まって作戦会議とか事前勉強とかは全くしてない(小声)
いや、作戦会議してました。
情報共有はどうしようかとなったときに、slackでいいかとなりました。
configをすぐ張り付けられるし便利そうなため。
ホワイトボードも一応使ったけど、構成図を書いただけであんまり使ってなさそうだった。 席から遠くて書くのも面倒だし、書いている時間がもったいなかった。(サーバー側だったからかも)
ネットワークチームは椅子をルーターの前までもっていってやりやすいようにやってたみたいだし
1日目
チームの一人が深夜バスに乗り遅れて、朝一の新幹線で颯爽と登場
チームみんな予定通り到着。
いざコンテストが始まってみるとサーバーにつなぐための自分のIPアドレスがわからなかったりでWireshark必須だった。
問題自体は自分の分野だったしそこまで苦ではなかった。
sql_modeとか、pam_mountについては初めて知ったし
「めっちゃ便利」とか思ってた。
1日目は普通に自信あったし、1日目終了時でどこのチームも「だめでした、、、」って言ってたので
「勝ったわこれ」と心の中で思ってたのは秘密。
2日目
午前中も調子よく問題が解けて良かったけど
午後は完全に意味不明で終わった。
作戦は特に変わらなかったけど、ネットワークチームから1人持ってきて
サーバー問をやってもらってたけど撃沈
どう考えても2日目の午後の問題多いし原因わからんしで、少しだけイライラしてた♡ 3位くらいになれればいいかなと思ってたけど1位になれたのでうれしい
感想
ドMが集まるこのコンテストはかなり楽しいし、かなりしんどいけど本当にためになると思うし
ログの大切さだとかネットワーク、サーバーの知識を問われるコンテストはあんまりないのでは?と思う
学校でも若干持ち上げてくれるし、神奈川新聞にも小さな記事で載ることができたし
いい思い出ができた。
私はこれ以降、このコンテストに出るつもりはあまりないです。
なので後輩が出場してもらってぜひ上位をとってきてほしいです。
@MarshMallow_sh めっちゃ出たいです!
— のいじー (@nekotanu0206) 2016年8月28日
がんばって。
といた問題
ELFのバイナリがあってそのバイナリがMySQLに対して問い合わせているよう。
旧環境、新環境の2つがあって新環境に移行したら、いろいろできなくなっちゃったって話みたい。
straceでエラー文確認して、ググって対処して終わり。
- pam_mountのやつ
なんか設定を見るとパスとかがほんと微妙に間違っていたから
動くように直した
- レプリケーションのやつ
これも微妙に設定が違っていたからいろいろなおした
Pycharmでライブラリのパスを追加
ほんとにいつも忘れるのでメモ
PyCharm -> Preferences -> Project Interpreter
この時の一番右上の設定マークのボタンを押してmoreを選択。
そして、+とかーとかのところにある
の一番右のフォルダっぽいのを選択。
+でパスを追加する
OK!