ファイル改ざん検知ツール OSSEC

# OSSEC
https://ossec.github.io/
OSSEC は inotify を利用したリアルタイムのファイル改ざん検知ができる HIDS である。
OSSEC は Daniel B. Cid によって書かれ2004年に公開された。その後2008年に Third Brigade 社が取得し、2009年にさらにそれを Trend Micro 社が買収した。

# HIDS
OSSEC 以外の主な HIDS は以下の通り。

* [AFICK](http://qiita.com/bezeklik/items/298dafd2aeb053b4ca88) 3.6.0 (2017/12/08) - SourceForge に rpm パッケージがある。
* [AIDE](http://qiita.com/bezeklik/items/d144d77a3e54cd35c06b) 0.16 (2016/07/25) - CentOS の Base リポジトリにある。
* [OSSEC](http://qiita.com/bezeklik/items/2143c02f1432d90f5c38) 3.0.0 (2018/07/17) - inotify 対応。Atomic リポジトリにある。
* [Samhain](http://qiita.com/bezeklik/items/6b7fb75f1a37b0fc41a2) 4.3.1 (2018/09/25) - inotify 対応。要コンパイル。
* [Tripwire](http://qiita.com/bezeklik/items/2dfb871b9397211c735b) 2.4.3.7 (2018/03/31)- EPEL リポジトリにある。

# インストール

## OSSEC HIDS Server のインストール
```bash
yum install -y epel-release wget && curl -s http://www.atomicorp.com/installers/atomic | sh && yum install -y ossec-hids-server
```
inotify-tools は EPEL リポジトリの方が新しい。
また Atomic リポジトリはスクリプト内で wget を使用しているのでコマンドがないとエラー出力なしでこける。
ossec-hids パッケージは指定しないでも依存関係でインストールされる。

## ossec-configure
```bash
/var/ossec/bin/ossec-configure
```
ossec-hids パッケージに含まれる ossec-configure コマンドで、対話式による設定ファイルの更新ができる。

```text
OSSEC Configuration utility v0.1

1- What kind of installation do you want? (server, agent, local) [Default: server]: local

2- Setting up the configuration environment.

3- Configuring the OSSEC HIDS.

  3.1- Do you want e-mail notification? (y/n) [Default: y]:
   - What's your e-mail address? root@localhost
   - What's your SMTP server ip/host? localhost

  3.2- Do you want to run the integrity check daemon? (y/n) [y]:

  3.3- Do you want to run the rootkit detection engine? (y/n) [y]:

  3.4- Active response allows you to execute a specific
       command based on the events received. For example,
       you can block an IP address or disable access for
       a specific user.
       More information at:
       http://www.ossec.net/en/manual.html#active-response


   - Do you want to enable active response? (y/n) [y]: n

  3.5- Do you want to enable remote syslog (port 514 udp)? (y/n) [y]:

    -- /var/log/messages (syslog)
    -- /var/log/secure (syslog)
    -- /var/log/maillog (syslog)
    -- /var/log/httpd/error_log (apache log)
    -- /var/log/httpd/access_log (apache log)
Configuration complete.
```
/var/ossec/etc/ossec.conf が更新され、旧ファイルは /var/ossec/etc/ossec.conf.bak として保存される。
一般的にサーバー/クライアント型として紹介されるが、最初の質問で local と回答すると単独で動作する。

### リアルタイム監視の有効化
```
sed -i.org '/directories check_all/s/"yes"/"yes" realtime="yes"/' /var/ossec/etc/ossec.conf
systemctl start ossec-hids && systemctl enable $_
tailf /var/ossec/logs/ossec.log
```
ログに `Real time file monitoring started.` と出力されるまでリアルタイム監視は開始されない。検証環境では開始まで10分程度かかった。

http://ossec-docs.readthedocs.io/en/latest/manual/syscheck/#realtime-options
http://ossec-docs.readthedocs.io/en/latest/manual/syscheck/#real-time-monitoring

## OSSEC Web UI
https://github.com/ossec/ossec-wui
README には「OSSEC Web UI は現在メンテナンスされておらず、非推奨。アラート監視には Kibana か Splunk または同様のプロジェクトを使用することを勧める」との記載。

Atomic リポジトリに ossec-wui パッケージが一応あるが、あまりパッケージのメリットがないので GitHub から最新を取得する。

```bash
yum -y install php{,-gd}
sed -i.org 's|;date.timezone =|date.timezone = Asia/Tokyo|' /etc/php.ini
curl -L https://github.com/ossec/ossec-wui/archive/master.tar.gz -o ossec-wui.tar.gz
tar vzxf ossec-wui.tar.gz --strip=1 -C /var/www/html && cd /var/www/html
./setup.sh
```
```
Setting up ossec ui...

Username: <username>
New password: <password>
Re-type new password: <password>
Adding password for user ossec
Enter your web server user name (e.g. apache, www, nobody, www-data, ...)
apache
You must restart your web server after this setup is done.

Setup completed successfully.
```
```bash
chown apache. -R /var/www/html
chcon -t httpd_sys_content_t /var/ossec
chcon -R -t httpd_sys_content_t /var/ossec/{logs,stats,queue/{agent-info,syscheck}}
systemctl start httpd && systemctl enable $_
firewall-cmd --permanent --add-service=http{,s} && firewall-cmd --reload
```

# セキュリティ関連記事
* [PHPセキュリティ強化モジュール Suhosin](http://qiita.com/bezeklik/items/5e8b1f76465e39dc6cd0)
* [DoS攻撃/ブルートフォース攻撃対策アプリの近況](http://qiita.com/bezeklik/items/6d86a162e278f576e4ca)
* [Linuxアンチウイルスソフト ClamAV](http://qiita.com/bezeklik/items/4696e15c889ffff6bc41)
* [Linux Malware Detect](http://qiita.com/bezeklik/items/43a7d4fce6bc23fe84d3)
* [ルートキット検出ツール Rootkit Hunter (rkhunter)](http://qiita.com/bezeklik/items/bc7affef8afe7c63f2ce)
* [ルートキット検出ツール chkrootkit](http://qiita.com/bezeklik/items/7964ce67f1a1363b694e)
* [ファイル改ざん検知ツール AFICK](http://qiita.com/bezeklik/items/298dafd2aeb053b4ca88)
* [ファイル改ざん検知ツール AIDE](http://qiita.com/bezeklik/items/d144d77a3e54cd35c06b)
* [ファイル改ざん検知ツール OSSEC](http://qiita.com/bezeklik/items/2143c02f1432d90f5c38)
* [ファイル改ざん検知ツール Samhain](http://qiita.com/bezeklik/items/6b7fb75f1a37b0fc41a2)
* [脆弱性スキャナー OpenVAS](http://qiita.com/bezeklik/items/a64cad37eb03a1db2de4)
* [脆弱性スキャナー Nikto](http://qiita.com/bezeklik/items/12643654dc0c45f4eb29)
* [Linuxセキュリティ監査ツール Lynis](http://qiita.com/bezeklik/items/cf9be2deb546c69123e7)