Linux で AIDE に基づいてファイルシステムの整合性を検出する方法

Linux で AIDE に基づいてファイルシステムの整合性を検出する方法

1. 補助

AIDE (Advanced Instruction Detection Environment) は、ファイルとディレクトリの整合性チェックを実行するプログラムです。Tripwire の代替として開発されました。

AIDEの仕組み

AIDE は、比較基準として指定されたファイルの整合性サンプル ライブラリ (スナップショット) を構築します。これらのファイルが変更されると、対応するチェックサム値も必然的にそれに応じて変化します。AIDE はこれらの変更を識別し、管理者に警告することができます。 AIDE によって監視される属性の変更には、主に権限、所有者、グループ、ファイル サイズ、作成時間、最終変更時間、最終アクセス時間、増加したサイズ、リンクの数などがあり、SHA1 や MD5 などのアルゴリズムを使用して各ファイルの検証コードを生成できます。

このツールはかなり古く、Tripwire などの類似ツールと比較すると操作も簡単です。システムのスナップショットを取得し、HASH 値、変更時刻、および管理者によるファイルの前処理を記録する必要があります。このスナップショットにより、管理者はデータベースを構築し、それを外部デバイスに保存して保管することができます。
管理者がシステムの整合性チェックを実行する場合、管理者は以前に構築したデータベースを現在のシステムからアクセス可能な領域に配置し、AIDE を使用して現在のシステムの状態とデータベースを比較し、最後に現在のシステムで検出された変更を管理者に報告します。さらに、AIDE は、cron などのスケジュール スケジューリング テクノロジを使用してスケジュールに基づいて実行するように構成でき、毎日のシステム検出レポートを生成します。
このシステムは主に運用と保守のセキュリティ検出に使用されます。AIDE はシステム内のすべての悪意のある変更を管理者に報告します。

AIDEの特徴

  • メッセージダイジェストアルゴリズムをサポート: md5、sha1、rmd160、tiger、crc32、sha256、sha512、whirlpool
  • サポートされているファイル属性: ファイルタイプ、ファイル権限、inode、UID、GID、リンク名、ファイルサイズ、ブロックサイズ、リンク数、Mtime、Ctime、Atime
  • Posix ACL、SELinux、XAttrs、拡張ファイルシステム属性をサポート
  • プレーンテキスト構成ファイル、簡素化されたデータベース
  • 監視するファイルやディレクトリを簡単にフィルタリングできる強力な正規表現
  • Gzipデータベース圧縮をサポート
  • 独立したバイナリ静的コンパイルされたクライアント/サーバー監視構成パッケージ

[root@centos7 ~]$ yuminstall-y aide

AIDEをインストールする

ダウンロード: http://sourceforge.net/projects/aide

yum インストール補助
vi /etc/aide.conf
database=file:@@{DBDIR}/aide.db.gz #システム イメージ ライブラリの場所 database_out=file:@@{DBDIR}/aide.db.new.gz #システム イメージ ライブラリを新しく生成します (デフォルトでは /var/lib/aide/ に生成されます)。# 次に、データベースに含めるディレクトリ/ファイルを決定します。
/boot 通常
/bin ノーマル
/sbin 通常
/lib ノーマル
/lib64 ノーマル
#/opt NORMAL #ディレクトリ /usr NORMAL をチェックしないようコメントする
/root 通常
# これらはあまりにも不安定なので、チェックされていない個々のディレクトリを除外します!/usr/src
!/usr/tmp
#要件に応じて、以下に新しい検出ディレクトリ /etc/exports NORMAL を追加します
/etc/fstab 通常
/etc/passwd ノーマル

設定ファイルの詳細説明#データベースパスとログパスの変数を定義します

@@DBDIR /var/lib/aide を定義します。
@@ LOGDIR /var/log/aide を定義します。

# 圧縮を有効にする

gzip_dbout=はい

# 複数の権限をルールとして定義し、後で参照できるように変数に割り当てます

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
コンテンツ = sha256+ftype
権限 = p+u+g+acl+selinux+xattrs

# どのルールがどのファイルを監視するために使用されるか

/boot/CONTENT_EX
/bin/CONTENT_EX
/sbin/CONTENT_EX
/lib/CONTENT_EX
/lib64/ CONTENT_EX #監視にはCONTENT_EXで定義されたルールを使用する
/opt/ CONTENT #optディレクトリのチェックサムとファイルタイプのみを監視する
/root/\..* PERMS #PERMS は /root 下のデータが頻繁に変更されるためハッシュチェック値を持ちません

# 監視対象外のファイル

!/etc/.*~
#p: 権限
#i: iノード:
#n: リンクの数
#u: ユーザー
#g: グループ
#s: サイズ
#b: ブロック数
#m: 時刻
#a: 時間
#c: ctime
#S: 成長しているサイズをチェック
#acl: アクセス制御リスト
#selinux SELinux セキュリティコンテキスト
#xattrs: 拡張ファイル属性
#md5: md5 チェックサム
#sha1: sha1 チェックサム
#sha256: sha256 チェックサム
#sha512: sha512 チェックサム
#rmd160: rmd160 チェックサム
#tiger: tiger チェックサム

ルールの定義

設定ファイル /etc/adie.conf を編集し、ルール変数 mon を定義し、/app ディレクトリ内のすべてのファイルを監視し、/app/saomiao.log は監視しないようにします。

[root@centos7 aide]$ vim /etc/aide.conf
 モン = p+u+g+sha512+m+a+c
 /アプリモン
 !/app/juli.sh

データベースを作成する

データベース ファイルを生成し、構成ファイル内の各ファイルのチェックサムを定義して、後で比較できるようにデータベースに格納します。プロンプトから、/var/lib/aide/aide.db.new.gz データベース ファイルが生成されていることがわかります。このデータベース ファイルは初期データベースです。侵入検出を実行すると、/var/lib/aide/aide.db.gz データベース ファイルと比較されます。2 つのデータベースに不一致がある場合は、侵入があったことを示すプロンプトが表示されます。

[root@centos7 aide]$aide --init
AIDE、バージョン 0.15.1
### /var/lib/aide/aide.db.new.gz の AIDE データベースが初期化されました。

ファイルがハッキングされ変更される様子をシミュレートする

シミュレーション ファイルが変更されました: saomiao.sh ファイルに改行を追加し、チェックサム、Mtime、Ctime の変更を促します。

[root@centos7 aide]$ echo >> /app/saomiao.sh

検出: AIDE の検出メカニズムは、現在のデータベースを計算し、それを aide.db.gz と比較することです。 aide.db.gz はデフォルトでは存在しないため、以前に作成した初期化データベース aide.db.new.gz の名前を aide.db.gz に変更する必要があります。

[root@centos7 aide]$mv aide.db.new.gz aide.db.gz

侵入検知

最後に、aide -C (大文字であることに注意してください) を使用して、計算されたデータを aide.db.new.gz と比較し、saomiao.sh ファイルの Mtime と Ctime SHA512 が変更されているかどうかを確認します。

タスクスケジュールを設定し、定期的な検査を実施する

crontab –e
30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #毎朝8:30に1回実行

情報をメールで送信することもできます:

30 08 * * * /usr/sbin/aide --check| mail –s “AIDE レポート“ [email protected]

2. RKハンター

RKHunter は、システムがルートキットに感染しているかどうかを検出するために特別に設計されたツールです。一連のスクリプトを自動的に実行して、サーバーがルートキットに感染しているかどうかを包括的に検出します。

RKHunterの特徴

  • 脆弱なファイルを検出します。
  • 隠しファイルを検出します。
  • 重要なファイルの権限を確認します。
  • 検出システムのポート番号。

インストール

[root@centos7 aide]$yum install rkhunter

検出

rkhunker -c コマンドを実行してシステムをテストします。 RKHunter の検出はいくつかの部分に分かれています。最初の部分では、主にシステムのバイナリ ツールを検出します。これらのツールはルートキットの主な感染ターゲットであるためです。各テストの後、Enter キーを押して確認する必要があります。

[ ok ] は異常なしを意味します

[ 見つかりません ] はツールが見つからなかったことを意味します。無視してください。

[警告] 赤色の警告の場合は、これらのツールが感染しているか、置き換えられていないかをさらに確認する必要があります。

タスクスケジュールを設定し、定期的な検査を実施する

crontab –e
30 08 * * * /usr/sbin/aide --check--report=file:/tmp/aide-check-` date +%Y%m%d `.txt #毎朝8:30に1回実行

情報をメールで送信することもできます:

30 08 * * * /usr/sbin/aide --check| mail –s “AIDE report“ [email protected]

2. RKハンター

RKHunter は、システムがルートキットに感染しているかどうかを検出するために特別に設計されたツールです。一連のスクリプトを自動的に実行して、サーバーがルートキットに感染しているかどうかを包括的に検出します。

RKHunterの特徴

  • 脆弱なファイルを検出します。
  • 隠しファイルを検出します。
  • 重要なファイルの権限を確認します。
  • 検出システムのポート番号。

インストール

[root@centos7 aide]$yum install rkhunter

検出

rkhunker -c コマンドを実行してシステムをテストします。 RKHunter の検出はいくつかの部分に分かれています。最初の部分では、主にシステムのバイナリ ツールを検出します。これらのツールはルートキットの主な感染ターゲットであるためです。各テストの後、Enter キーを押して確認する必要があります。

[ ok ] は異常なしを意味します
[ 見つかりません ] はツールが見つからなかったことを意味します。無視してください。
[警告] 赤色の警告の場合は、これらのツールが感染しているか、置き換えられていないかをさらに確認する必要があります。

プログラムが毎回検出するたびにユーザーに確認を求めるのではなく、自動的に検出するようにしたい場合は、次のようにします。

rkhunter --check --skip-keypress

同時に、毎週または毎月の自動検出を実現したい場合は、スケジュールされたタスクに追加して自動実行することができます。

crontab -e
1 10 7 * * * ルート /usr/bin/rkhunter --check --cronjob

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux システムで Vim を使用してリモート ファイルを読み書きするコマンドの詳細な説明
  • Linuxシステムにおける仮想デバイスファイルのさまざまな実用的な使用法の詳細な説明
  • Linux で実行可能ファイルを実行するときに「そのようなファイルまたはディレクトリはありません」というプロンプトが表示される場合の解決策
  • Linuxで大きなファイルを素早くコピーする方法
  • Linuxファイル削除後にスペースが解放されない問題の詳しい説明
  • Linux ファイル管理コマンド例の分析 [表示、閲覧、統計など]
  • Linux でのファイル コンテンツの重複排除と交差と差異の実装

<<:  MySQL MGR の利点は何ですか?

>>:  Vue.jsのレンダリング関数の使い方の詳しい説明

推薦する

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...

Vue のデータ応答性に関する詳細な理解

目次1. ES 構文のゲッターとセッター2. ES構文でのdefineProperty 3. Vue...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

Docker のインストールと構成イメージの高速化の実装

目次DockerバージョンCentOS に Docker エンジンをインストールするシステム要件古い...

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux https://github.com/reactjs/...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...

MySQLクエリが遅い場合の理由と解決策

Python プログラムを書き、Mysql ライブラリを集中的に操作したためです。データ量が多くない...

Windows10にMySQL5.6.35データベースを2つインストールする

次のように、Win10 での 2 つの MySQL5.6.35 データベースのインストールを記録しま...

Windows システムでの MySQL 8.0.21 インストール チュートリアル (図とテキスト)

インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...

Centos7 に mysql 8.0.13 (rpm) をインストールする詳細なチュートリアル

yum か rpm か? yum によるインストール方法は非常に便利ですが、公式サイトから MySQ...

角丸四角形の HTML+CSS 実装コード

退屈していたので、突然角丸四角形の実装を思いつきました。しかし、私たちはこの話題についてあまりにも長...

VUEトークンの無効化プロセスの詳細な説明

目次ターゲット思考分析コード着陸要約するターゲットトークンの有効期限切れシナリオの処理トークンは、ユ...

XHTMLタグは適切に使用する必要があります

<br />123WORDPRESS.COM の以前のチュートリアルでは、Web ページ...

IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...

ウェブページの幅を携帯電話の画面(ビューポート)の幅に自動的に適応させる実装コード

一般的な書き方は次のとおりです。 XML/HTML コードコンテンツをクリップボードにコピー<...