Linux 脅威のカテゴリの概要
このドキュメントでは、Linux 脅威カテゴリのルールセットの概要、必要なデータソース、これらのルールセットによって生成されるアラートの調整に使用できる構成について説明します。
Linux 脅威カテゴリのルールセットは、CrowdStrike Falcon、Linux 監査システム(AuditD)、Unix システムログを使用して Linux 環境の脅威を特定するのに役立ちます。このカテゴリには、次のルールセットが含まれます。
- OS 権限昇格ツール: オープンソースの Linux 権限昇格ツールで一般的に見られる動作を検出します。
- 永続化メカニズム: 攻撃者が Linux ホストで永続的なアクセスを確立して維持するために使用するアクティビティ。
- 権限の変更: 特権認証の試行とアクションに関連するアクティビティ。通常、Linux ホストで権限の昇格や永続化に使用されます。
- マルウェア シグナル - 不審な LOTL バイナリ アクティビティ: 実際の環境で Linux マルウェアの観測されたアクティビティに基づいて、不審な組み込みツールの使用(環境寄生型)のシナリオを検出します。
- マルウェア シグナル - 不審なダウンロード アクティビティ: 実際の環境で Linux の悪意のあるダウンロード アクティビティに関連して確認された動作を検出します。
- マルウェア シグナル - 不審な実行: 実際の環境で検出された Linux マルウェアの観測された動作から生成されたシグナルを検出します。実行(TA0002)の動作に重点を置いています。
- Mandiant Front-Line Threats - このルールセットには、Mandiant による世界中のアクティブなインシデントの調査と対応から得られたルールが含まれています。これらのルールは、スクリプト インタープリタを使用した実行(T1059)、コマンド アンド コントロールにウェブサービスの使用(T1102)、スケジュールされたタスクを使用して永続性を維持する(T1053)など、よく見られる TTP を対象としています。
- Mandiant Intel Emerging Threats - このルールセットには、Mandiant Intelligence のキャンペーンと重要なイベントから導出されたルールが含まれています。これらのルールは、Mandiant が評価した、影響の大きい地政学的脅威活動を対象としています。こうした活動には、地政学的紛争、不正使用、フィッシング、マルバタイジング、ランサムウェア、サプライ チェーンの侵害が含まれます。
サポート対象のデバイスとログタイプ
Linux 脅威のカテゴリのルールセットはテスト済みであり、Google Security Operations のサポート対象となっている次のデータソースでサポートされています。
- Linux 監査システム(
AUDITD
) - Unix システム(
NIX_SYSTEM
) - CrowdStrike Falcon(
CS_EDR
)
Google Security Operations がサポート対象とするすべてのデータソースのリストについては、サポート対象のデフォルトのパーサーをご覧ください。
正しいログデータを生成するようにデバイスを構成する
Linux 脅威カテゴリのルールを設計どおりに機能させるには、デバイスが想定する形式でログデータを生成する必要があります。ログを収集して Google Security Operations に送信する各デバイスで、Linux Audit Daemon に次の永続的な監査ルールを構成します。
Linux Audit Daemon の永続監査ルールを実装する方法については、オペレーティング システム固有のドキュメントをご覧ください。
# Inserts the machine hostname into each log event
name_format = hostname
# Process creation (32 and 64-bit)
-a exit,always -F arch=b32 -S execve
-a exit,always -F arch=b64 -S execve
# Persistence: Cron
-w /etc/cron.allow -p wa -k cron
-w /etc/cron.d/ -p wa -k cron
-w /etc/cron.daily/ -p wa -k cron
-w /etc/cron.deny -p wa -k cron
-w /etc/cron.hourly/ -p wa -k cron
-w /etc/cron.monthly/ -p wa -k cron
-w /etc/cron.weekly/ -p wa -k cron
-w /etc/crontab -p wa -k cron
-w /var/spool/cron/ -p wa -k cron
# Persistence: System Startup
-w /etc/init/ -p wa -k init
-w /etc/init.d/ -p wa -k init
-w /etc/inittab -p wa -k init
# Persistence: Systemd Units and Generators
-w /etc/systemd/user -p wa -k systemd
-w /usr/lib/systemd/user -p wa -k systemd
-w /var/lib/systemd/linger -p wa -k systemd
-w /root/.config/systemd/user -pa wa -k systemd
-w /etc/systemd/system -p wa -k systemd
-w /usr/lib/systemd/system -p wa -k systemd
-w /run/systemd/system-generators -p wa -k systemd
-w /etc/systemd/system-generators -p wa -k systemd
-w /usr/local/lib/systemd/system-generators -p wa -k systemd
-w /usr/lib/systemd/system-generators -p wa -k systemd
-w /run/systemd/user-generators -pa wa -k systemd
-w /etc/systemd/user-generators -pa wa -k systemd
-w /usr/local/lib/systemd/user-generators -pa wa -k systemd
-w /usr/lib/systemd/user-generators -pa wa -k systemd
# Persistence: IAM
-w /etc/group -p wa -k iam_etcgroup
-w /etc/passwd -p wa -k iam_etcpasswd
-w /etc/gshadow -k iam_etcgroup
-w /etc/shadow -k iam_etcpasswd
-w /etc/sudoers -p wa -k iam_sudoers
-w /etc/sudoers.d/ -p wa -k iam_sudoers_d
-w /usr/bin/passwd -p x -k iam_passwd
-w /usr/sbin/groupadd -p x -k iam_groupmod
-w /usr/sbin/groupmod -p x -k iam_groupmod
-w /usr/sbin/addgroup -p x -k iam_groupmod
-w /usr/sbin/useradd -p x -k iam_usermod
-w /usr/sbin/userdel -p x -k iam_usermod
-w /usr/sbin/usermod -p x -k iam_usermod
-w /usr/sbin/adduser -p x -k iam_usermod
# Privilege Escalation
-w /bin/su -p x -k privesc
-w /usr/bin/sudo -p x -k privesc
# Persistence: Libraries
-w /etc/ld.so.conf -p wa -k libmod
-w /etc/ld.so.conf.d -p wa -k libmod
-w /etc/ld.so.preload -p wa -k libmod
# Persistence: PAM
-w /etc/pam.d/ -p wa -k pam
-w /etc/security/ -p wa -k pam
# Persistence: SSH
-w /etc/ssh/ -p wa -k sshconfig
-w /root/.ssh/ -p wa -k sshconfig
# Persistence: Shell Configuration
-w /etc/bashrc -p wa -k shellconfig
-w /etc/csh.cshrc -p wa -k shellconfig
-w /etc/csh.login -p wa -k shellconfig
-w /etc/fish/ -p wa -k shellconfig
-w /etc/profile -p wa -k shellconfig
-w /etc/profile.d/ -p wa -k shellconfig
-w /etc/shells -p wa -k shellconfig
-w /etc/zsh/ -p wa -k shellconfig
# Injection
-a always,exit -F arch=b32 -S ptrace
-a always,exit -F arch=b64 -S ptrace
# Failed Access Attempts
-a always,exit -F arch=b64 -S open -F dir=/bin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/etc -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/home -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/sbin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/srv -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/usr/bin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/usr/sbin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/var -F success=0 -k file_err
# Network connections
-a always,exit -F arch=b64 -S connect -F a2=16 -F success=1 -k net_v4
-a always,exit -F arch=b32 -S connect -F a2=16 -F success=1 -k net_v4
-a always,exit -F arch=b64 -S connect -F a2=28 -F success=1 -k net_v6
-a always,exit -F arch=b32 -S connect -F a2=28 -F success=1 -k net_v6
-a always,exit -F arch=b32 -S socket -F a0=2 -k sock_v4
-a always,exit -F arch=b64 -S socket -F a0=2 -k sock_v4
-a always,exit -F arch=b32 -S socket -F a0=10 -k sock_v6
-a always,exit -F arch=b64 -S socket -F a0=10 -k sock_v6
Linux 脅威のカテゴリに必要なフィールド
次のセクションでは、Linux 脅威カテゴリのルールセットで最大の利点を得るために必要な特定のデータについて説明します。デバイスが次のデータをデバイス イベントログに記録するように構成されていることを確認します。
データセット |
UDM フィールド(データの保存場所) |
定義 |
---|---|---|
プリンシパル プロセス パス |
|
現在実行中のプロセスのディスク上の位置(存在する場合)。 |
プリンシパル プロセス コマンドライン |
|
プロセスのコマンドライン パラメータ(利用可能な場合)。 |
ターゲット プロセス パス |
|
ターゲット プロセスのディスク上の位置(存在する場合)。 |
ターゲット プロセスのコマンドライン |
|
コマンドライン |
ネットワーク DNS クエリ ドメイン |
|
DNS クエリのドメイン名(利用可能な場合)。 |
Linux 脅威のカテゴリから返されるアラートの調整
ルール除外を使用して、ルールまたはルールセットが生成する検出数を減らすことができます。
ルールの除外では、ルールセットによる評価からイベントを除外する UDM イベントの条件を定義します。
1 つ以上のルール除外を作成して、このルールセットまたはルールセット内の特定のルールによる評価対象からイベントを除外する UDM イベントの条件を識別します。これを行う方法については、ルール除外を構成するをご覧ください。
たとえば、次の UDM フィールドに基づいてイベントを除外する場合があります。
principal.hostname
target.user.userid
principal.process.command_line
target.domain.name
target.process.command_line