LoginSignup
0
1

More than 5 years have passed since last update.

AIDEの戻り値について。

Posted at

はじめに

AIDEの簡単な操作はAIDEを使ってファイルの改竄検知を行う。で行いました。
今回はaideコマンド実行時の戻り値について「aide(1) - Linux man page」を参考に試してみたことをまとめてみました。

ヘルプ : -h, --help

-hオプションを付与することでコマンドオプションについて確認ができます。

ヘルプ
$ sudo aide -h
Aide 0.14 

Usage: aide [options] command

Commands:
  -i, --init        Initialize the database
  -C, --check       Check the database
  -u, --update      Check and update the database non-interactively
      --compare     Compare two databases

Miscellaneous:
  -D, --config-check    Test the configuration file
  -v, --version     Show version of AIDE and compilation options
  -h, --help        Show this help message

Options:
  -c [cfgfile]  --config=[cfgfile]  Get config options from [cfgfile]
  -B "OPTION"   --before="OPTION"   Before configuration file is read define OPTION
  -A "OPTION"   --after="OPTION"    After configuration file is read define OPTION
  -r [reporter] --report=[reporter] Write report output to [reporter] url
  -V[level] --verbose=[level]   Set debug message level to [level]
戻り値
$ echo $?
0

当然ですが戻り値は0です。

初期化 : -i, --init

初期化
$ sudo aide -i

AIDE, version 0.14

### AIDE database at /var/lib/aide/aide.db.new.gz initialized.
戻り値
$ echo $?
0

データベースの初期化は成功すると戻り値として0を返します。

チェック : -C, --check

チェックオプションの場合はいくつかのパターンが考えられます。

変更なし

チェックした対象に異常(変更)がなかった場合。

チェック
$ sudo aide --check

AIDE, version 0.14

### All files match AIDE database. Looks okay!
戻り値
$ echo $?
0

この場合は正常ということになるので戻り値として「0」を返します。

ファイル追加

知らないファイルが追加された場合を想定してechoコマンドでチェック対象下にファイルを作成します。

ファイル追加
$ echo test > /root/aide-test.txt

追加したらチェックしてみます。

チェック
$ sudo aide --check
AIDE found differences between database and filesystem!!
Start timestamp: 2017-05-09 12:40:40

Summary:
  Total number of files:  60777
  Added files:      1
  Removed files:    0
  Changed files:    1


---------------------------------------------------
Added files:
---------------------------------------------------

added: /root/aide-test.txt

---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /root

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------


Directory: /root
  Mtime    : 2017-05-09 12:39:22              , 2017-05-09 12:40:31
  Ctime    : 2017-05-09 12:39:22              , 2017-05-09 12:40:31

先ほど追加したaide-test.txtaddedとして検知されています。
また、追加したのが/root配下だったので/rootchangedとなってディレクトリもチェック対象となっているのがわかります。
これによってわかることは、誰かが侵入した痕跡を無くすためにファイルを削除しても、ディレクトリのタイムスタンプが変更されるため検知ができるということです。

戻り値
$ echo $?
5

この場合、戻り値は「1(added)+4(chenged)=5」となります。

ファイル変更

ファイルの改竄を想定してファイルの内容を書き換えてチェックしてみました。

チェック
$ sudo aide --check
AIDE found differences between database and filesystem!!
Start timestamp: 2017-05-09 12:37:04

Summary:
  Total number of files:  60777
  Added files:      0
  Removed files:    0
  Changed files:    2


---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /root
changed: /root/aide-test.txt

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------


Directory: /root
  Mtime    : 2017-05-09 12:35:38              , 2017-05-09 12:36:58
  Ctime    : 2017-05-09 12:35:38              , 2017-05-09 12:36:58

File: /root/aide-test.txt
  Size     : 0                                , 10
  Mtime    : 2017-05-09 12:35:38              , 2017-05-09 12:36:58
  Ctime    : 2017-05-09 12:35:38              , 2017-05-09 12:36:58
  Inode    : 280877                           , 280993
  MD5      : 1B2M2Y8AsgTpgAmY7PhCfg==         , zWxWuS8Dv/wfLTIjnNCPTg==
  RMD160   : nBGFpcXp/FRhKAiXfuj1SLIljTE=     , 6MFLupcRlOJ+rJvp/EhoDXy0sok=
  SHA256   : 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NM , ZS6XNHjHYKkKpR7In82NBLUv5A6kKDKc

ここで変更があったのは変更したファイルaide-test.txtとそのファイルが存在するディレクトリ/rootになります。

戻り値
$ echo $?
4

戻り値は「4(changed)」となります。2箇所だから「あれ?4(changed)+4(changed)=8じゃないの?」と思ったりもするかもしれないですが、あくまでも戻り値は変更箇所があったということを示すだけですので1つでも2つでも、それ以上でも数は関係ありません。
でないと戻り値でのチェックができなくなってしまいますよね。

削除

今度は知らないうちにファイルが削除されていた場合についてです。

削除
$ rm /root/aide-test.txt 
rm: remove regular file ‘/root/aide-test.txt’? y
[root@ip-10-0-0-205 aide]# aide --check
AIDE found differences between database and filesystem!!
Start timestamp: 2017-05-09 12:29:56

Summary:
  Total number of files:  60777
  Added files:      0
  Removed files:    1
  Changed files:    1


---------------------------------------------------
Removed files:
---------------------------------------------------

removed: /root/aide-test.txt

---------------------------------------------------
Changed files:
---------------------------------------------------

changed: /root

--------------------------------------------------
Detailed information about changes:
---------------------------------------------------


Directory: /root
  Mtime    : 2017-05-09 12:26:38              , 2017-05-09 12:29:49
  Ctime    : 2017-05-09 12:26:38              , 2017-05-09 12:29:49

aide-test.txtがremovedでその削除したディレクトリである/rootがchangedになります。

戻り値
$ echo $?
6

ファイルが削除されたので「2(removed)+4(changed)=6」となります。

おわりに

とりあえずよく利用するオプションの戻り値を確認しました。
これを使ってスクリプトなんかを作成し、cronで実行したりなんかするといいのかなと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1