監査システムについて説明する前に、いくつか質問したいと思います。ユーザーが実行したコマンドをどのように監視しますか?ファイルまたはディレクトリがアクセスされたかどうかをどのように監視しますか?さまざまなセキュリティ関連のイベントをどのように記録しますか?システムコール、ネットワークアクセスなどをどのように監視し、最後にそれからレポートをどのように生成しますか? Linux監査システムは、上記のすべての質問に対する答えです。
Linux監査システムを使用すると、管理者は監査ルールを構成して、システムコール、ネットワークアクセス、ファイルなどを監視し、要約レポートを生成できます。このレポートは、後で分析して疑わしいアクティビティを調査できます。バージョン2.6以降、Linuxカーネルには auditdが付属しています。 デーモンが起動すると、事前設定されたルールが /etc/audit/audit.rulesから読み取られます。 。管理者はauditctlを使用できます 監査システムの制御、ルールの作成などのコマンド…他の2つの重要なコマンドは次のとおりです。
- ausearch –指定された基準に基づいて監査ログを照会できるようにするコマンド。
- aureport –レポートの生成に使用されるコマンド。
監査構成ファイルは、 / etc / auditにあります。 / var / log/auditでログを記録します。
- /etc/audit/audit.rules – auditd時に永続ルールが作成およびロードされるファイル デーモンが開始されます。
- /etc/audit/audit.conf –監査構成ファイル
- /etc/audit/rules.d/ –カスタムルールファイルを含むフォルダ。
以下は、監査が記録する情報のリストです。
- イベントのタイムスタンプ、種類、結果
- UID、イベントをトリガーしたGID
- 主語と目的語の感度ラベル
- SSH、Kerberosなどのすべての認証システムへのアクセス…
- ファイルの整合性チェック
- 情報のインポートとエクスポート。
- ユーザーID、件名、その他の属性に基づいてイベントを含めるか除外します。
- 監査構成ファイルとログを変更しようとします。
CentOSおよびUbuntuでauditdを構成する方法
CentOSの場合:
# yum install audit
Ubuntuの場合:
# apt-get install auditd :::::::::: Setting up auditd (1:2.4.5-1ubuntu2) ... update-rc.d: warning: start and stop actions are no longer supported; falling ba ck to defaults Processing triggers for libc-bin (2.23-0ubuntu3) ... Processing triggers for systemd (229-4ubuntu6) ... Processing triggers for ureadahead (0.100.0-19) ...
パッケージがインストールされると、 auditd デーモンが自動的に起動します。そうでない場合は、以下のコマンドを使用して開始できます:
# /etc/init.d/auditd start
アクティブな監査ルールを一覧表示します:
# auditctl -l No rules
監査ルールを作成する方法
ファイル/etc / passwdを監視するルールを作成しましょう
# auditctl -w /etc/passwd -p war -k audit-passwd
上記のコマンドは、ファイル / etc / passwdにウォッチを作成します 。
- – w / etc / passwd –ファイル / etc / passwdのウォッチを作成します
- -p戦争 –権限フィルターを設定します–書き込みの場合はw、読み取りの場合はr、属性の変更の場合はa、実行の場合はeです。
- – k audit-passwd –ここ audit-passwd ログからルールを一意に識別するための鍵です。
基本的に、上記のコマンドは / etc / passwdを追跡します ファイルの属性を書き込んだり、読み取ったり、変更したりしようとする人のために。
これでルールが作成されました。非特権ユーザーとしてログインし、 / etc / passwdにアクセスしてみましょう。 ファイル。
$ grep "someinformation" /etc/passwd
$ vim /etc/passwd
上記の2つのコマンドは、「ubuntu」というローカルユーザーによって実行され、これらのイベントは /var/log/audit/audit.logに記録されることが期待されています。 ファイル。
/ etc /passwdを変更またはアクセスした人を見つける方法
ausearchを使用します コマンド:
# ausearch -f /etc/passwd -i
type=PROCTITLE msg=audit(08/05/2016 11:56:10.088:72) : proctitle=grep --color=auto henry /etc/passwd type=PATH msg=audit(08/05/2016 11:56:10.088:72) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL type=CWD msg=audit(08/05/2016 11:56:10.088:72) : cwd=/home/ubuntu type=SYSCALL msg=audit(08/05/2016 11:56:10.088:72) : arch=x86_64 syscall=openat success=yes exit=3 a0=0xffffffffffffff9c a1=0x7ffebf6cb887 a2=O_RDONLY|O_NOCT TY a3=0x0 items=1 ppid=14098 pid=14992 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 s es=1302 comm=grep exe=/bin/grep key=audit-passwd ---- type=PROCTITLE msg=audit(08/05/2016 11:56:12.028:74) : proctitle=vim /etc/passwd type=PATH msg=audit(08/05/2016 11:56:12.028:74) : item=0 name=/etc/passwd inode=56913 dev=fd:01 mode=file,644 ouid=root ogid=root rdev=00:00 nametype=NORMAL type=CWD msg=audit(08/05/2016 11:56:12.028:74) : cwd=/home/ubuntu type=SYSCALL msg=audit(08/05/2016 11:56:12.028:74) : arch=x86_64 syscall=open success=yes exit=3 a0=0x556072132500 a1=O_RDONLY a2=0x0 a3=0x556072347f50 items =1 ppid=14098 pid=14993 auid=ubuntu uid=ubuntu gid=ubuntu euid=ubuntu suid=ubuntu fsuid=ubuntu egid=ubuntu sgid=ubuntu fsgid=ubuntu tty=pts0 ses=1302 comm=vi m exe=/usr/bin/vim.basic key=audit-passwd
上記のログ出力は、ユーザーが ubuntuを呼び出したことを示しています ファイル/etc / passwdにアクセスしました コマンドgrepを使用する およびvim 。デフォルトでは、ログ出力はUIDとGIDを使用しますが、オプション「 -i ‘はuidとgidを対応する名前(人間が読める形式のユーザー名とグループ名)にマップします。
特定のユーザーによる変更を監視する時計を作成するにはどうすればよいですか?
#auditctl -w /usr/local/test -p wa -F uid=1001 -k audit-temp
ログでイベントを検索します:
#ausearch -ua 1001 -i
上記のコマンドは、ユーザーID 1001によってトリガーされたすべてのイベントを一覧表示します。 。
永続的なルールの作成
注 : auditctlを使用して作成されたルール コマンドは一時的なものであり、 auditdまでアクティブになります デーモンが再起動されます。以下のコマンドはこのシナリオを説明しています。
# auditctl -l -w /etc/passwd -p rwa -k audit-passwd -a always,exit -S all -F dir=/etc -F perm=wa -F uid=1001 -F key=audit-temp -a always,exit -S all -F dir=/usr/local/test -F perm=wa -F uid=1001 -F key=audit
上記のコマンドは、アクティブなルールのリストを出力します。それでは、 auditdを再起動してみましょう。 デーモン。
# /etc/init.d/auditd restart [ ok ] Restarting auditd (via systemctl): auditd.service.
アクティブなルールをもう一度確認してください。
# auditctl -l No rules
auditd デーモンが再起動され、 auditctlを使用して作成されたすべてのルールが再起動されます コマンドは削除されます(一時的なものであるため)。 auditctlを使用して実験している場合 コマンドを実行し、それらのルールを永続的に作成する場合は、 /etc/audit/audit.rulesを編集できます。 /etc/audit/rules.d/ の下にファイルするか、新しいルールファイルを作成します フォルダ。
# echo "-D" > /etc/audit/rules.d/new.rules # auditctl -l >> /etc/audit/rules.d/new.rules
最初のコマンドは、新しいルールのセットを追加する前に、ルールの削除アクションを追加します。
監査レポートを生成する方法
概要レポート:
# aureport Summary Report ====================== Range of time in logs: 08/05/2016 11:45:39.464 - 08/08/2016 06:14:14.328 Selected time for report: 08/05/2016 11:45:39 - 08/08/2016 06:14:14.328 Number of changes in configuration: 7 Number of changes to accounts, groups, or roles: 5 Number of logins: 1 Number of failed logins: 6 Number of authentications: 8 Number of failed authentications: 6 Number of users: 3 Number of terminals: 8 Number of host names: 2 Number of executables: 37 Number of commands: 39 Number of files: 13 Number of AVC's: 0 Number of MAC events: 0 Number of failed syscalls: 12 Number of anomaly events: 0 Number of responses to anomaly events: 0 Number of crypto events: 0 Number of integrity events: 0 Number of virt events: 0 Number of keys: 2 Number of process IDs: 214 Number of events: 1337
上記のコマンドは、記録されたすべてのイベントの要約レポートを出力します。
失敗したすべてのログイン試行の要約レポートを印刷する
# aureport --login --summary -i Login Summary Report ============================ total auid ============================ 6 henry 1 ubuntu
実行可能ファイルイベントの要約レポートを生成します:
# aureport -x --summary
クエリされたすべての監査ファイルと、それらに含まれるイベントの時間範囲のレポートを生成します
# aureport -t Log Time Range Report ===================== /var/log/audit/audit.log: 08/05/2016 11:45:39.464 - 08/08/2016 06:17:01.068
日付範囲内に記録されたすべてのイベントのレポートを生成します:
# aureport --start 08/05/2016 00:00:00 --end 08/07/2016 00:00:00
ausearchからレポートを生成します 出力
# ausearch -k audit-temp | aureport -f -i
すべての監査ルールを削除する方法
# auditctl -D
注 :上記のコマンドは、実行中の auditd内のすべてのアクティブなルールを削除します デーモン。ただし、/ etc / audit/audit.rulesファイルの永続的なルールはauditdのたびに読み込まれます。 開始されます。
それがすべて監査ですか できる?いいえ! Linux監査システムはさらに多くのことを実行でき、ここにリストされているのはこの強力なシステムのほんの一部にすぎません。 auditdのマニュアルページをご覧ください。 、 auditctl 、 ausearch およびaureport 詳細については。