
5つの検出ステージ(MD5、HEXパターン、YARA、ClamAV、統計的解析)を備えたマルチエンジンLinuxマルウェアスキャナー。リアルタイムのinotify監視、隔離、マルチチャネルアラートを特徴とします。
Linux 向けマルウェアスキャナ — 多段階の脅威検出(MD5、SHA-256、HEX、YARA、統計解析)、ClamAV 統合、リアルタイム inotify 監視、隔離・クリーン・復元操作、およびマルチチャネルアラート(メール、Slack、Telegram、Discord)。
(C) 2002-2026, R-fx Networks <[email protected]>
(C) 2026, Ryan MacDonald <[email protected]>
GNU GPL v2 に基づいてライセンスされています。
43 倍高速なネイティブスキャンエンジン — ネイティブスキャンパイプラインはバッチ並列処理により完全に書き直されました。約 10,000 ファイルでの実環境ベンチマーク:
| バージョン | 実行時間 | ファイル数 | 検出数 |
|---|---|---|---|
| v1.6.6 | 1,217s | 9,931 | 35 |
| v2.0.1 | 28s | 9,931 | 35 |
MD5 および HEX シグネチャのマッチングは、Aho-Corasick 並列ワーカーによるバッチ grep を使用するようになり、ファイルごとのパターンコンパイルのオーバーヘッドと、スキャンごとの約 50 万回のサブプロセス fork を排除しました。並列ワーカー数は scan_workers で設定します(デフォルト: auto)。
その他のハイライト:スキャンライフサイクル管理(--kill、--pause、--stop/--continue、-L)、CPU ハードウェアの自動検出による SHA-256 ハッシュスキャン(scan_hashtype)、ネイティブ YARA スキャン(scan_yara=1)、Discord webhook アラート、Slack/Telegram アラートの修正、ネイティブエンジンでの ClamAV HEX ワイルドカードサポート、およびコードベース全体にわたる 200 以上のバグ修正。
詳細は CHANGELOG を参照してください。
./install.sh
maldet -a /home/?/public_html
maldet -r /home/?/public_html 2
maldet -co scan_yara=1 -a /home/?/public_html
maldet -q SCANID
maldet -m users
maldet -u
---
## 1. はじめに
LMDのアーキテクチャ、検出段階、対応プラットフォーム。
Linux Malware Detect (LMD) は、GNU GPLv2ライセンスで公開されているLinux向けマルウェアスキャナで、共有ホスティング環境で直面する脅威に焦点を当てて設計されています。ネットワークエッジの侵入検知システムからの脅威データを利用して、攻撃で実際に使用されているマルウェアを抽出し、検出用のシグネチャを生成します。さらに、LMDのチェックアウト機能によるユーザー提出物や、マルウェアコミュニティのリソースからも脅威データを取得します。
LMDは、従来のAV製品が見逃しがちなマルウェアの種類に焦点を当てています。PHPシェル、JavaScriptインジェクタ、base64エンコードされたバックドア、IRCボット、そしてオペレーティングシステム内部ではなく共有ホスティングのユーザーアカウントを標的とするその他のWebアプリケーション層の脅威です。
**検出段階**
- 脅威を正確に識別するためのMD5ファイルハッシュ照合
- 並列ワーカーを備えたネイティブなバッチgrepエンジンによるHEXパターン照合
- 複合シグネチャ (csig) スキャン。複数パターンのブール論理 (AND/OR/しきい値)、大文字小文字を区別しない照合、ワイド (UTF-16LE) 照合、範囲制限付きギャップワイルドカードに対応
- フルモジュール対応とカスタムルールを備えたネイティブYARAルールスキャン
- 難読化された脅威 (base64、gzinflate) を検出するための統計的ストリング長分析
- LMDが管理するClamAVシグネチャによる拡張カバレッジのためのClamAV統合
**スキャンと監視**
- すべてのファイル、最近変更されたファイル、またはリスト内のファイルをスキャン
- カーネルinotifyによるリアルタイムファイル監視 (作成/変更/移動イベント)
- ModSecurity2 の `inspectFile` フックによるHTTPアップロードスキャン
- 無人での大規模運用のためのバックグラウンドスキャン
- スキャンごとのインクルード/エクスクルード正規表現フィルタリング
**隔離と対応**
- 権限ゼロのファイル保存を備えた隔離キュー
- スキャンIDによる一括隔離/復元
- マルウェア除去のためのシグネチャ固有のクリーナールール
- 完全なファイル復元 (コンテンツ、所有者、パーミッション、mtime)
**アラートとレポート**
- 統一rfxnデザイン (ティールブランド、カードエントリ) のHTML+テキストメールアラート
- ローカルMTAのない環境向けSMTPリレーサポート (TLS/SSL)
- Slack Block Kit、Telegram MarkdownV2、Discord埋め込みによるエントリごとのアラート
- `alert/custom.d/` オーバーライドによるカスタマイズ可能なアラートテンプレート
- ファイルごとのヒット詳細と色分けされたヒットタイプを備えたスキャンレポート
**インフラストラクチャ**
- デュアルエンジンカバレッジのためのClamAVシグネチャ自動リンク
- 12以上のホスティングコントロールパネルを自動検出する日次cron
- CPU/IOリソース制御 (nice、ionice、cpulimit)
- シグネチャとバージョンの自動更新
- systemdサービスユニットとSysV initスクリプトのサポート
### 対応プラットフォーム
LMDは、bashと標準GNUユーティリティを備えた任意のLinuxディストリビューションで動作します。テスト済みプラットフォーム:
| Platform | Init System | Package Config Path |
|----------|-------------|---------------------|
| RHEL / Rocky / AlmaLinux 8, 9, 10 | systemd | `/etc/sysconfig/maldet` |
| CentOS 6, 7 | SysV / systemd | `/etc/sysconfig/maldet` |
| Debian 10, 11, 12 | systemd | `/etc/default/maldet` |
| Ubuntu 20.04, 22.04, 24.04 | systemd | `/etc/default/maldet` |
| Gentoo | OpenRC | — |
| Slackware | SysV | — |
| FreeBSD | — | — (部分対応、inotifyなし) |
---
## 2. インストール
システムへのLMDのインストール、アップグレード、および削除。
同梱の `install.sh` スクリプトがすべてのインストールタスクを処理します。以前のインストールは自動的にバックアップされます。```bash
./install.sh
インストーラーは次の処理を行います:
/usr/local/maldetect にファイルをコピーします/usr/local/sbin/ に maldet シンボリックリンクを作成します/etc/cron.daily/maldet にインストールしますconf.maldet)、カスタムシグネチャ、および無視ファイルを保持します以前のインストールは /usr/local/maldetect.bk{PID} に保存され、最新のバックアップへの maldetect.last シンボリックリンクが作成されます。
デフォルトのパス:
/usr/local/maldetect/usr/local/sbin/maldet/etc/cron.daily/maldet/usr/lib/systemd/system/maldet.serviceユーザー向けの全設定とそのデフォルト値です。完全なリファレンスは man maldet(1) を参照してください。
メインの設定ファイルは /usr/local/maldetect/conf.maldet です。設定を容易にするため、すべてのオプションにコメントが付いています。特に記載がない限り、オプションは無効/有効に 0/1 を使用します。
設定は実行時に -co フラグを使用して上書きすることもできます:```bash
maldet -co quarantine_hits=1,email_addr=[email protected] -a /home
### 3.1 一般オプション
| 変数 | 目的 | デフォルト |
|----------|---------|---------|
| `autoupdate_signatures` | cronでシグネチャを毎日自動更新 | `1` |
| `autoupdate_version` | cronでLMDバージョンを毎日自動更新 | `1` |
| `autoupdate_version_hashed` | LMD実行ファイルのSHA-256ハッシュをアップストリームと照合(フォールバックはMD5) | `1` |
| `sigup_interval` | 独立したcronジョブ(`/etc/cron.d/maldet-sigup`)による自動シグネチャ更新チェックの間隔(時間)。0 = 無効 | `6` |
| `cron_prune_days` | 隔離・セッション・一時データを保持する日数 | `21` |
| `cron_daily_scan` | cronによる毎日の自動スキャンを有効化 | `1` |
| `scan_days` | 毎日のcronスキャンで変更されたファイルを遡って検出する日数 | `1` |
| `import_config_url` | リモート設定オーバーライドをダウンロードするURL | — |
| `import_config_expire` | インポートした設定のキャッシュ有効期限(秒) | `43200` |
| `sig_import_md5_url` | カスタムMD5シグネチャをダウンロードするURL | — |
| `sig_import_hex_url` | カスタムHEXシグネチャをダウンロードするURL | — |
| `sig_import_yara_url` | カスタムYARAルールをダウンロードするURL | — |
| `sig_import_sha256_url` | カスタムSHA-256シグネチャをダウンロードするURL | — |
| `sig_import_csig_url` | カスタム複合シグネチャをダウンロードするURL | — |
| `session_legacy_compat` | TSVとともにレガシー平文セッションファイルを生成: `auto`(旧形式セッションを検出)、`1`(常に)、`0`(TSVのみ) | `auto` |
### 3.2 アラート