Amazon Linux2でOSS版tripwireを使って改ざん検知する方法

AWS

Amazon Linux2でOSS版tripwireを使って改ざん検知する方法

改ざん検知はPCI DSSなどセキュリティを強化する際には、必ず必要になります。

例えば侵入者にサーバに侵入されがWebコンテンツを改ざんなどの被害を受けてしまうことがあります。

そのような場合に、早期に改ざんを検知し、被害を最小限に食い止める必要があるためです。

改ざん検知用ソフトウェアとして有名なのはTripwireですが、有料版のTripwire Enterpriseと無料で利用できるOSS版Tripwireがあります。

今回は、Amazon Linux2上でOSS版のtripwireを使うための手順について説明します。

工夫したところは、通常のOSS版のtripwireだと、メールでレポートを送信する機能はあるのですが、ログに出力することができません。サーバ台数が多くなると一台一通メールが送られるとチェックするだけでかなり時間がかかってしまい煩わしいです。そのため、スクリプトを使って改ざん検知の結果をログに出力するようにしました。

ちなみにAmazon Linuxでも同じ手順で使用できました。

EPELリポジトリの有効化

amazon-linux-extras enable epel
yum clean metadata
yum install epel-release

Tripwireのインストール

yum install tripwire
Importing GPG key とメッセージが表示される。
Is this ok [y/N]: と聞かれるので yと入力しEnterを押す

サイト鍵を生成する

twadmin --generate-keys --site-keyfile /etc/tripwire/site.key --site-passphrase (任意のサイトパスワード)
Generating key (this may take several minutes)...Key generation complete.

ローカル鍵を生成する

twadmin --generate-keys --local-keyfile /etc/tripwire/`hostname`-local.key --local-passphrase (任意のローカルパスワード)
Generating key (this may take several minutes)...Key generation complete.

設定ファイルを修正する

vim /etc/tripwire/twcfg.txt 

ROOT                   =/usr/sbin
POLFILE                =/etc/tripwire/tw.pol
DBFILE                 =/var/lib/tripwire/$(HOSTNAME).twd
REPORTFILE             =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
SITEKEYFILE            =/etc/tripwire/site.key
LOCALKEYFILE           =/etc/tripwire/$(HOSTNAME)-local.key
EDITOR                 =/bin/vi
LATEPROMPTING          =false
LOOSEDIRECTORYCHECKING =false
MAILNOVIOLATIONS       =true
EMAILREPORTLEVEL       =3
REPORTLEVEL            =1     # 改ざん検知したファイル名だけを表示させたいのでREPORTLEVELを一番低い1にする
MAILMETHOD             =SENDMAIL
SYSLOGREPORTING        =false
MAILPROGRAM            =/usr/sbin/sendmail -oi -t

設定ファイルを生成する

echo (設定したサイトパスワード) | twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txt 
Please enter your site passphrase: 
Wrote configuration file: /etc/tripwire/tw.cfg

ポリシーファイルを生成する

echo (設定したサイトパスワード) | twadmin -m P --site-keyfile /etc/tripwire/site.key /etc/tripwire/twpol.txt

データベースの初期化

echo (設定したローカルパスワード) | tripwire -m i -L /etc/tripwire/`hostname`-local.key
Wrote database file: /var/lib/tripwire/(ホスト名).twd
The database was successfully generated.

テストファイルの配置

検知されるか確認するためテスト用のファイルを配置してみます。

touch /root/dummy.txt

ファイルチェックの実行

改ざん検知のチェックをコマンドを実行します。

tripwire --check -s -n

レポートの生成

改ざん検知のレポートを生成します。先ほど配置したファイルが検知されることを確認します。

Added:	"/root/dummy.txt"

チェック用スクリプトの作成

OSSのtripwireだと改ざんチェックの結果を良い感じでログに出力してくれないので、下記のスクリプトを作成してタイムスタンプ付きでログを出力してくれるようにします。

#!/bin/bash

LOG_FILE=/var/log/tripwire/tripwire.log.$(date + %Y%m%d)

mkdir -p /var/log/tripwire

/usr/sbin/tripwire --check -s -n

TIMESTAMP=$(date --iso-8601=seconds)
RESULT=$(/usr/sbin/twprint -m r -r `find /var/lib/tripwire/report/ -type f | sort | tail -n 1` -s)
echo -ne "$RESULT" | while read line
do
  formatted_line=$(echo -n $line | tr -d '":')
  echo "$TIMESTAMP $formatted_line" >> $LOG_FILE
done

CRON設定

下記のようなスクリプトを作成して、1時間に一回改ざんチェックをするようにします。

crontab -e
0 * * * * (チェックスクリプトのパス) > /dev/null 2>&1

あとは出力されたログをkinesisエージェントを使ってS3に送り、Lambda関数を使って日時でチェックをするなどすると良いかなと思います。

関連記事

  1. AWS

    AWSでCloudFrontを使った方が良い理由

    今回はAWSでCloudFrontを使用する際に、設定しておいた方が良…

  2. AWS

    AWSでEC2インスタンスを安全に使うための3つの注意点

    今回はAWSでEC2インスタンスを起動した際に、安全に使うために行った…

  3. AWSコンソール用の安全なユーザーの作成方法

    AWS

    AWSコンソール用の安全なユーザーの作成方法

    AWSに最初にアカウントを作るとルートユーザーというものが作られます。…

  4. AWSをセキュリティを高めて安全に使う方法

    AWS

    AWSをセキュリティを高めて安全に使う方法

    今回はAWSを安全に使うための方法についてご説明します。AWSは簡…

  5. PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWS

    PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWSでセキュリティグループはEC2やRDS(リレーショナルデータベー…

  6. AWS

    AWSでOSの脆弱性対策をする方法

    今回はAWSで作成したEC2インスタンスのOSの脆弱性対策をする方…

最近の記事

  1. AWSでCloudFrontを導入する際に注意する点

    AWS

    AWSでCloudFrontを導入する際に注意する点
  2. AWSでS3の利用料を節約するためにやって置いた方がよいこと

    AWS

    AWSでS3の利用料を節約するためにやって置いた方がよいこと
  3. webサイトをhttps化するメリットと注意点

    PCI DSS

    webサイトをhttps化するメリットと注意点
  4. AWS

    AWSでコンプライアンスのための監査ログを取得する方法
  5. AWS

    AWSを利用してPCI DSS準拠のシステムを構築する3つのメリット
PAGE TOP