オープンソースでIDS 〜 AIDE 〜

0
    OSS研究室の大野です。
    IDSを実装するためのOSSであるAIDEを調査・検証しました。

    aide (Advanced Intrusion Detection Environment) はオープンソースソフトウェアのIDS(Intrusion Detection System)です。
    ファイル改ざんやファイル削除、追加等を検知することができます。

    aideは、ファイルの差分検査だけでなく、ユーザ名、グループ名、パーミッション等、いろいろな項目の検査を行うことができますので、システムに合わせて柔軟なチェックを実施することができます。

    aideは、Red Hat Enterprise Linux, CentOS, Ubuntu等、主要なLinuxディストリビューションで採用されています。
     

    aideの使用方法は以下の通りです。
     
    Aide 0.15.1

    Usage: aide [options] command

    Commands:
      -i, --init        データベースの初期化
      -C, --check       データベースのチェック
      -u, --update      データベースのチェックと更新
          --compare     2つのデータベースの比較

    Miscellaneous:
      -D, --config-check  設定ファイルのテスト
      -v, --version       aideのバージョンとコンパイルオプションの表示
      -h, --help          ヘルプメッセージの表示

    Options:
      -c [cfgfile]  --config=[cfgfile]   設定ファイルを[cfgfile]に指定
      -B "OPTION"   --before="OPTION"    設定ファイルを読む前に OPTION を適用
      -A "OPTION"   --after="OPTION"     設定ファイルを読んだ後に OPTION を適用
      -r [reporter] --report=[reporter]  [reporter]で指定したURLに結果を出力
      -V[level]     --verbose=[level]    デバッグレベルを[level]に設定

    ファイル検査のルールは、aideの設定ファイル(CentOSの標準設定では/etc/aide.conf)に記載します。

    [書式]
    # 検査対象の設定
    ファイル名またはディレクトリ名    ルール

    # 検査対象外の設定
    !ファイル名またはディレクトリ名

    ルールは以下の項目を設定することができます。
     
    ルール 説明
    p パーミッション
    i iノード
    n リンク数
    u ユーザ
    g グループ
    s サイズ
    b ブロック数
    m ファイル更新時間
    a ファイルアクセス時間
    c フィアル作成時間
    S 増分サイズ
    acl アクセスコントロールリスト
    selinux SELinuxセキュリティコンテキスト
    xattrs 拡張ファイル属性
    md5 md5チェックサム
    sha1 sha1チェックサム
    sha512 sha512チェックサム
    rmd160 rmd160チェックサム
    tiger tigerチェックサム
    havel havelチェックサム
    gost gostチェックサム
    crc32 crc32チェックサム
    whirlpool whirlpoolチェックサム
    R p+i+n+u+g+s+m+c+acl+selinux+xattrs+md5
    L p+i+n+u+g+acl+selinux+xattrs
    E Empty Group
    > p+u+g+i+n+S+acl+selinux+xattrs

    上記のルールを組み合わせたカスタムルールを作成することも可能です。

    (カスタムルールの作成例)
    FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256

    NORMAL = FIPSR+sha512

    [aide.confの設定例]
    #
    #
    カスタムルール
    #
    FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256
    NORMAL = FIPSR+sha512
    PERMS = p+i+u+g+acl+selinux

    #
    # ファイルの内容を含めた検査を行う
    #
    /boot  NORMAL
    /bin   NORMAL
    /sbin  NORMAL

    /lib   NORMAL
    /lib64 NORMAL
    /opt   NORMAL
    /usr   NORMAL
    /root  NORMAL

    #
    # ファイルの内容は除外し、パーミションのみ検査を行う
    #
    /etc   PERMS

    #
    # 検査を除外する
    #
    !/var/log
    !/usr/src
    !/tmp
    !/usr/tmp


    以下はaideを使用したIDSスクリプトです。
    aideでファイル改ざんチェックを行い、改ざんを検出した場合に管理者にメール通知を行っています。
     
    #!/bin/bash
    LANG=C

    export LANG

    umask 066

    # aideデータベース保存ディレクトリ
    DBDIR="/var/lib/aide"

    # 管理者メールアドレス
    RCPT="admin@host100.designet.co.jp"

    # 一時ファイル作成ディレクトリ
    TEMPDIR="/tmp"

    # ファイル改ざんチェック
    temp=`mktemp --tmpdir=${TEMPDIR}`
    aide --update --report=file://${temp} > /dev/null
    if [ $? -eq 0 ]
    then
        # ファイル変更が検知されない場合は終了
        rm -f ${DBDIR}/aide.db.new.gz
        rm -f ${temp}
        exit 0
    fi

    now=`date +%Y%m%d%H%M%S`

    # 管理者にメール通知
    cat ${temp} |¥
    mail -s "result of aide: ${now}" ${RCPT}

    # aideデータベースの更新
    BACKUP="aide.db.${now}.gz"

    mv ${DBDIR}/aide.db.new.gz ${DBDIR}/${BACKUP}
    cp -p ${DBDIR}/${BACKUP} ${DBDIR}/aide.db.gz

    rm -f ${temp}
    exit 0


    このスクリプトをcrontab等から定期的に自動起動することで、Linuxシステムのファイル改ざんを検知することができます。

    aideを使えば、Linuxシステムを安心して使えるようになりますね。


    コメント
    コメントする








       

    calendar

    S M T W T F S
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    << July 2020 >>

    selected entries

    categories

    archives

    recent comment

    links

    profile

    search this site.

    others

    mobile

    qrcode

    powered

    無料ブログ作成サービス JUGEM