Honeypot始めました
寒くなってきたのでハニポを立てることにしました。
設定とか
ハニポサーバ
ssh, telnetのハニーポットであるcowrieを、Docker上で動かすようにしました。 AWSのEC2の無料枠内を使ってます、今のところ問題なく動作しているみたいです。 ハニーポットとかAWSとか何もかも始めてでしたが1日でセットアップを終わらせることができました。 Dockerだとローカルで再現して検証するのが楽でいいですね。
docker-compose.ymlはこんな感じです。
version: '3' services: cowrie: image: cowrie/cowrie:latest ports: - "22:2222" - "23:2223" volumes: - ./etc/cowrie.cfg:/cowrie/cowrie-git/etc/cowrie.cfg:ro - ./var:/cowrie/cowrie-git/var
これだけで動く、最高!
cowrie/cowrieのイメージは一応cowrieの公式イメージだそうです、githubの方にリンク貼ってあるし多分問題ないでしょう。
設定は./etc/cowrie.cfg
に配置してあるのをコンテナにも置くようにして反映させています。
ログは./var
に置かれるようにしています、マルウェアも降ってくるのであんまり良くない気もしますが多分大丈夫でしょう。
コンテナにマウントする前に、./var内に適切にディレクトリを配置しておかないとエラーを吐くので注意が必要です。
以下のようになっていれば大丈夫です。
var/run var/lib var/lib/cowrie var/lib/cowrie/tty var/lib/cowrie/downloads var/log var/log/cowrie
出力はjson形式でやっています。 本当はElasticsearchに吐くようにしたいけど、AWS無料枠制限でこれ以上サーバを立てられないのでローカルにログを移動してそれをローカルのElasticsearchに投げてます。 雑ですね。
cowrieの設定は、telnetを開けて認証をランダムにしたくらいです。
ログ解析環境
解析環境は、ElasticsearchとKibanaをDockerで動かしています。 Docker素晴しい。 docker-compose.ymlはこんな感じ。
version: '3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.4.2 environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ulimits: memlock: soft: -1 hard: -1 expose: - 9200 ports: - 9200:9200 networks: intra: ipv4_address: 172.16.200.102 volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data kibana: image: docker.elastic.co/kibana/kibana:6.4.2 volumes: - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml:ro networks: intra: ipv4_address: 172.16.200.103 depends_on: - elasticsearch nginx: image: nginx:latest volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - ./nginx/htpasswd:/usr/local/nginx/.htpasswd:ro networks: intra: ipv4_address: 172.16.200.104 ports: - 80:80 networks: intra: driver: bridge ipam: driver: default config: - subnet: 172.16.200.0/24
kibana.ymlだけ用意する必要がある(Elasticsearchのアドレス指定のため)が、Nginxを消してKibanaの方に80:5601
とか設定すればnginx関連は不要になる。
他の用途に使っていたものを流用しているのであまり最適化されてないですね。TODO: あとでやる
いろいろ遊んでる。
運用状況
さっそく色々降ってきてるみたいで、有名なraspberryraspberry993311もいた。 他にもjirenみたいな名前のやつとかxorddosみたいな名前のやつとか来てました。
ログインをランダムにしているので、色んなログイン情報取れるのが良い感じ。
どこかのサーバからロシアの検索エンジンあてのクエリみたいなものが転送されてくるのが一番謎ですね。 AmazonとかにHTTPクエリっぽいのが転送されてきてました。
ストレージは30GBくらいまで持つみたいなので、ログはギリギリまで溜めて削除する運用方針です。
今後
次はtsharkとかでパケットのログも取りたいところです。 おもしろいログがあったら書きます。