ハニーポットはじめました。
最近流行りのハニーポットを構築して、攻撃観測をはじめました。
モチベーションと目標は以下の通り
モチベーション
- 最新の攻撃動向を、サイトなどから調べること以外に自分で観測をして、動向などを自分で推測できるようになりたい
- 業務としてマルウェア解析をやっているが、サイトに置いてあるものはだいたい古いので、やっぱり新鮮なマルウェアをとっ捕まえて解析したい
- サーバー設定を変えることで、観測される攻撃はどのように変わるかや、適切な設定について(主にファイアウォールなど)を勉強したい
目標
-
まずはちゃんとハニーポットの管理をできるようにする(継続的に)
- ログ分析を行うために必要な知識を身につけ、注目すべき部分を自分で判断し、攻撃を推測できるようにする。
- ツールの操作(Kibanaなど)を把握する
- 可能な限り機能拡張を行う
といった感じです。
では早速、現在運用しているハニーポット「T-Pot」の紹介をば。
T-Pot
T-Potはドイツテレコムが作成したハニーポットプラットフォームです。
複数のハニーポットやツールをdocker上で動かし、攻撃観測を行います。
T-Potに含まれているツールは以下の通りです。
ハニーポット
- Cowrie
- Dionaea
- Glastopf
- Conpot
- honeytrap
- ElasticPot など
セキュリティツール
- Suricata(IDS/IPS)
- p0f(TCPパケットからOSのフィンガープリントを行うツール)
また、ELK(Elasticsearch, LogStash, Kibana)スタックを使ってログ収集、可視化、検索を行うことが可能です。
収集されたログや攻撃者によって配置されたマルウェアなどは、docker volumeというところに格納されるらしいです(あまりdockerについては知識がないので、これから勉強しようと思います。
保存期間は約30日とのこと。なので、保存期間が過ぎないうちにFTPクライアントなどを使用してローカルに落とすなど対処が必要になります。
詳しい内容については公式ページを見てください。
T-Pot選定理由
今回、攻撃観測にT-Potを使用する理由としては以下の通り
- インストールが簡単
- ELKスタックを使用した可視化、ログ検索が可能
- 有名どころのハニーポットてんこ盛り
- Webで検索して見ても、日本語のブログなどたくさんあって自分のものと比較しやすそう
もちろん自分で特定のハニーポットをインストールすることも考えました(最初はDionaea単体を運用する予定でした)が、「やるんだったら色々やってみたい」という欲がまさってしまいこちらを選択しました。
インストール対象の環境ですが、VPSをお借りしてそこでおこないました。
現在、観測20日目ぐらいを迎えております。
いい感じにログが溜まっておりますし、マルウェアも大量に置かれているためかなりワクワクしています。
この後は、攻撃観測を定期的に報告するのと、抽出したマルウェアの解析報告を行いたいと思います。
機械学習始めました
こんにちは。
今回は、今後の方針に追加予定の機械学習に関して書こうと思います。
現在は機械学習とかディープラーニングとか、AIとかなんやらってのがトレンドになっていますよね。
特に、マルウェア解析とかインシデントレスポンス関連の製品(EDR:Endpoint Detection And Response)でも、「機械学習を利用した~」なんて言葉を使った宣伝が非常に多いです(本当に機械学習が使われているかは別としてw)
というわけで、私もそこらへん気になってきたので勉強会なり自分で勉強しています。
勉強会については以下のものに参加しました。
「第24回北海道情報セキュリティ勉強会」
北海道でおそらく一番活発に活動していらっしゃるセキュリティ勉強会です。
講師の方も毎度豪華なのですが、今回はトレンドマイクロの方でした。
話の内容はどちらも面白く、加唐さんのほうでは標的型攻撃について、ウクライナなどで行われたインフラに対するサイバー攻撃などについてとても興味深い話をきけました。
また、マルウェア解析方面では知らない人はいない新井さんの講義では、マルウェアの自動分類にチャレンジするという形で、機械学習を使っていろいろ試してみようということでした。
で、ちょっとこのあたりから機械学習について興味を持ち始めたので、まずは環境を整えるところの説明をば。
環境設定
上の講義でもやったものをそのまま使っております。
アプリケーションとしては、「Anaconda Navigator」を使用しています。
https://docs.continuum.io/anaconda/navigator/
これをインストールすると、自動的にpythonもインストールされます。
主に、Pythonを使っていろいろやっていきますので、まとめていろいろ入れてくれるのは結構ありがたいです。
また、実際にソースコードを書いて実行させるときも、Anaconda Navigator内にある「jupyter notebook」を使ってやっていきます。
このjupyter notebookは結構高性能なので、私は頻繁に使っています。
私が参考にしている書籍
で、環境を整えるのと並行して、どんな本をベースとしていくかで結構悩みました。
私のスペックは以下の感じです。
- 文系大学卒で数学にはあまり抵抗はない(趣味でいろいろ数学を勉強中)
- 行列式はほとんど勉強していない。確率は統計学と金融工学である程度勉強
- プログラミング(C, Python, C#)に関してはある程度できる
- 仕事はセキュリティ系
そんな中で私が選択した本がこちら
今のところ方針としては、基礎づくりを第一として
- 機械学習って何?という点をまず理解
- どういったデータが必要なのかなど、考え方をある程度身につける
- 必要となるライブラリとかおおざっぱに把握
という感じです。
いきなり数学がちがちとか、細かいところまでやると途中でとん挫しそうなので、まずはおおざっぱに。
今後少しずつ勉強のまとめとかやっていこうと思います。
ksnctf14 john writeup
初めてwriteupを書きます。よろしくお願いします。
ksnctf 14 john
文字通りのjohn the ripperを使って解く問題だと思います。
最初はとりあえず表示されているものをそのままコピペしてjohnにかけましたがなんかだめぽ(時間がかかりすぎる)なので、中断。もう一度テキストを見直すと
user99に気になる文字列が・・・・・
書かれているファイルをwgetで取ってきてそれを使ってjohnにかけます。
<コマンド>
john -wordlist=とってきたファイル名 解析対象ファイル
<オプション>
-wordlist=XXXX:辞書を指定して、辞書の中の単語に合うかをチェックする
解析中も「どのユーザーのパスワードがわかったか」は表示されるのですが、わかったユーザーのものから順に表示していくという風になります。
解析対象ファイルの上から順に知りたい場合には、解析終了後に
<コマンド>
john --show 解析対象ファイル
とするとちゃんと並べ変えられた状態で表示されます。
そして、これを見るともう解けたも同然ですね。
john-the-ripperはSANS NETWARSの時に知って、それからあまり使う機会というのがなくなかなか基本的な操作を知る機会がなかったのですが、今回の問題で初歩的な使い方は理解できたのでよかったです!
また頑張って問題解いてwriteup書けるように頑張りたいですね。