前回、構築手順を書いたkippo
ログをMySQL(mariaDB)で管理したいと思い、kippoで設定を試みるも、以下エラーが出て、途方にくれていた。

1
2015-07-21 00:41:42+0900 [-] Unable to format event {'log_namespace': 'twisted.logger._global', 'log_level': <LogLevel=warn>, 'fileNow': '/usr/lib64/python2.7/site-packages/twisted/python/log.py', 'format': '%(log_legacy)s', 'lineNow': 210, 'fileThen': '/usr/lib64/python2.7/site-packages/twisted/python/log.py', 'log_source': None, 'system': '-', 'lineThen': 210, 'log_logger': <Logger 'twisted.logger._global'>, 'time': 1437406902.593759, 'log_format': 'Warning: primary log target selected twice at <{fileNow}:{lineNow}> - previously selected at <{fileThen:logThen}>.  Remove one of the calls to beginLoggingTo.', 'message': (), 'log_time': 1437406902.593759}: Invalid conversion specification

調べてみると、Twistedのインターフェースが変わったようで、MySQL(mariaDB)にデータが入らなかった。

そこで、kippoをベースに作られた cowrie(タカラガイ) を発見。
こちらを利用することにした。

cowrieでは、先ほどの問題は解消していた。
Logging issue with Twisted 15

必要モジュールはkippoと同じなので割愛する。
こちらを参照されたし。

mariaDBをインストール

mariaDBをインストールする。

1
yum -y install mariadb-server mariadb-libs mariadb

madiaDBを起動する。

1
systemctl start mariadb.service

mariaDBを自動起動するように設定する。

1
systemctl enable mariadb.service

cowrieのログをmariaDBに入れるためデータベースを作成し、ログイン権限を設定する。

1
2
3
4
5
mysql
use mysql
CREATE USER 'cowrie'@'localhost' IDENTIFIED BY 'your password';

GRANT ALL PRIVILEGES ON *.* TO cowrie@localhost IDENTIFIED BY 'your password';
create database cowrie;

mariaDBの設定はこれでおしまい。

次にcowrieを使えるようにしていく。
必要パッケージをインストールする。

1
yum -y install MySQL-python

cowrieを使えるようにする。rootユーザー以外で作業をしよう。

1
2
git clone https://github.com/micheloosterhof/cowrie.git
cd cowrie

cowrie.cfg を修正。最小限の項目について説明する。

1
2
3
4
5
6
7
8
listen_port = 22222 ## 好きなポートを指定する。デフォルトは2222

[database_mysql] ## データベースの接続設定を行う。

host = localhost
database = cowrie
username = cowrie
password = cowrie
port = 3306

cowrieで使うテーブルを、先ほど作成したデータベースcowrieの中に作成していく。cowrie/doc/sqlの中にsqlファイルがあるので、こちらを使う。

1
2
3
cd cowrie/doc/sql
cat mysql.sql | mysql -u cowrie -p cowrie
cat update*.sql | mysql -u cowrie -p cowrie

mariadbにログインしてテーブルができていることを確認する。

1
2
3
4
5
6
7
8
9
10
11
12
13
MariaDB [cowrie]> show tables;
+------------------+
| Tables_in_cowrie |
+------------------+

| auth |
| clients |
| downloads |
| input |
| sensors |
| sessions |
| ttylog |
+------------------+

7 rows in set (0.00 sec)

ここまで出来れば後は、cowrieを起動する。

1
sh start.sh

必要あれば、22ポートのアクセスを、cowrieのlistenしているポートに転送してあげれば、あとは不正アクセスを待つだけ(自身でアクセスしてmariaDBにデータが入っていることを確認しよう)。

最後に、恒例の観察日記

クラッカーの行動を今回も観察してみよう。
サーバを停止しようと試みたが出来ず、rebootで我慢したようだ。
クラッカーのうちの多くは動画のように愉快犯である。

[kippo_log.gif]

参考