DSaaSの変更監視で改ざん検知

記事タイトルとURLをコピーする

福岡オフィスの渡辺です。
今回はDSaaSを使ったファイルの改ざん検知方法を紹介します。
これを行うと、「不正侵入やミスオペレーションで、大事なファイルが改ざんされてしまった〜(涙)」と言った場合に検知できるようになります。

1.はじめに

DSaaS(Deep Security as a Service)とは、Trend Micro社のクラウド型総合サーバセキュリティサービスです。
統合というだけあって、多くの機能があるのですが、その中の一つが変更監視です。
今回はこの変更監視機能で改ざん検知を実装してみます。

2.今回のシナリオ

  • Amazon LinuxやCentOSでWebアプリを動かしている。
  • ドキュメントルートは、/var/www/vhosts/www.example.com。
  • ドキュメントルート内の改ざん検知をしたいが、/logと/tmp配下は監視対象外としたい。

3.前提

  • 既にOSにはDSA(Deep Security Agent)がインストール済みで、DSM(Deep Security Manager)から監視対象になっている。

4.設定

4-1.変更監視ルールを新規作成

DSMにログインしたら、ポリシー > 変更監視ルール > 新規 > 新しい変更監視ルール の順に選択していきます。

ルールの名前を入力します。
何でもいいのですが、今回は「Unix - Directory changed in /var/www/vhosts/www.example.com location」としました。

<FileSet base="/var/www/vhosts/www.example.com" onChange="true">
    <include key="**" />
    <exclude key="/log/**" />
    <exclude key="/tmp/**" />
</FileSet>

コンテンツ >  カスタム(XML)を選択し、コンテンツに上記を入力します。
なお、変更監視ルールの書き方については、マニュアルがあります。

ちなみに**とアスタリスクが2つあるのは、以下の理由です。

FileSetやRegistryKeySetなどの階層型のデータの種類を表すエンティティセットでは、セクションベースのパターン照合がサポートされます。
  • (スラッシュ): 階層の各レベルに該当する箇所でパターンの各セクションを区切ります
  • ** (2個のアスタリスク): ゼロ個以上のセクションに相当します

4-2.変更監視ルールをポリシーに割り当てる

既存ポリシー(例ではtest policy)に変更監視ルールを割り当てます。

変更監視ルールが大量に出てくるので、まずは検索欄に先ほど作ったルールの名前(example.com)を入れてフィルタリングします。
ルールにチェックを入れてOKを選択すると、ポリシーへの割り当てが完了します。

このようになっていれば、設定できています。

5.テストしてみよう

[root@centos ~]# touch /var/www/vhosts/www.example.com/index.html 
[root@centos ~]# touch /var/www/vhosts/www.example.com/log/file1.txt
[root@centos ~]# touch /var/www/vhosts/www.example.com/tmp/file1.txt
[root@centos ~]# echo "hoge" >> /var/www/vhosts/www.example.com/index.html
[root@centos ~]# echo "hoge" >> /var/www/vhosts/www.example.com/files/file1.txt
[root@centos ~]# echo "hoge" >> /var/www/vhosts/www.example.com/tmp/file1.txt

例えば、こんな感じでファイルを更新してみます。

https://cdn-ak.f.st-hatena.com/images/fotolife/s/serverworks/20200711/20200711183208.jpg

変更監視イベントを見ると、ファイルの作成やアップデートを検知できています。
logやtmpといった監視対象外ディレクトリはしっかりと除外され、検知されていません。
期待通りの動作をしてくれました。

なお、検知タイミングについて注意事項があります。
Linuxに関してもバージョン11.0からリアルタイム検知できるようになったのですが、検知まで最大10分かかります。
Supported features by platform

10 秒~10 分の間隔で定期的にチェックを行って検知します(ポーリング)。
ポーリングの間隔は変更監視の検索にかかる時間から自動的に決定され、変更はできません。

変更監視 (Integrity Monitoring) でのリアルタイム検知について

このようなメールも受け取ることができます。

6.まとめ

DSaaSでファイルの改ざん検知をできることが確認できました。
これだけのためにDSaaSを導入はなかなか無いと思いますが、既にDSaaSユーザーの方は追加で設定をいれてみると安心が一つ追加できるかもしれません。

渡辺 信秀 (記事一覧)