0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

戻り値
$ 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?