SOC Prime Bias:

31 3月 2026 17:23

Pay2Keyを徹底解剖:Linuxランサムウェア変種の技術分析

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
Pay2Keyを徹底解剖:Linuxランサムウェア変種の技術分析
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

Pay2Keyは、2025年8月末にLinuxバリアントを導入した、イランに関連付けられたランサムウェア作戦です。このマルウェアはルート権限で動作し、セキュリティ防御を無効にし、ChaCha20によってファイルを暗号化します。その挙動は設定ファイルによって管理され、完全ファイル暗号化モードと部分暗号化モードの両方をサポートします。分析はオペレーターの技術と、Linux専用ランサムウェア対策の必要性の高まりを強調しています。

調査

Morphisec Threat Labsは、Pay2Key Linuxサンプルのリバースエンジニアリングレビューを行いました。研究者たちは、特権の検証、JSON設定の解析、ファイルシステムの発見を通じて /proc/mounts、サービスの終了、SELinuxとAppArmorの無効化、cronベースの永続化、ファイルごとの鍵を内部に保持するObfuscated metadata blockを使用したChaCha20暗号化を文書化しました。サンプルには、ネットワークC2トラフィックやデータの流出の証拠は見られませんでした。

緩和策

報告書は、暗号化が始まる前に実行を停止できるLinux専用のアンチランサムウェアツールを展開し、ムービングターゲットディフェンスをサポートし、実行時の整合性保護を維持することを勧めています。また、不要なサービスを無効にしたり、SELinux/AppArmorポリシーを強化することで攻撃面を減らすことも推奨されています。特権プロセスの異常な活動を追跡するエンドポイント保護も、耐性をさらに向上させることができます。

対応

Pay2Keyが検出された場合は、システムを隔離し、悪意あるプロセスを停止し、cronの永続エントリを削除します。ファイルパーミッションが保たれていることを確認し、バックアップから暗号化されたデータを復元します。その後、関連するIOCを記録し、関連する活動のために広い環境を調査するフォレンジック調査を行う必要があります。

"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef operator fill:#ff9900 %% Nodes representing each ATT&CK technique persistence_cron["<b>Technique</b> – <b>T1053.003 Scheduled Task/Job: Cron</b><br/>Creates or modifies a cron job to ensure execution after system reboot"] class persistence_cron technique defense_impair["<b>Technique</b> – <b>T1562 Impair Defenses</b><br/>Disables SELinux and AppArmor to weaken host protection mechanisms"] class defense_impair technique indicator_removal["<b>Technique</b> – <b>T1027.005 Indicator Removal from Tools</b><br/>Removes securityu2011tool indicators to evade detection"] class indicator_removal technique discovery_mounts["<b>Technique</b> – <b>T1083 File and Directory Discovery</b><br/>Reads /proc/mounts, filters pseudou2011filesystems and classifies mounts for target selection"] class discovery_mounts technique obfuscation_storage["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b><br/>Stores encryption metadata using a hardu2011coded string and obfuscates the payload"] class obfuscation_storage technique deobfuscate["<b>Technique</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/>Decodes the obfuscated payload during processing"] class deobfuscate technique impact_encryption["<b>Technique</b> – <b>T1486 Data Encrypted for Impact</b><br/>Generates peru2011file ChaCha20 keys and encrypts data, producing ransomu2011demanding files"] class impact_encryption technique %% Flow connections persistence_cron –>|leads_to| defense_impair defense_impair –>|leads_to| indicator_removal indicator_removal –>|leads_to| discovery_mounts discovery_mounts –>|leads_to| obfuscation_storage obfuscation_storage –>|leads_to| deobfuscate deobfuscate –>|leads_to| impact_encryption "

攻撃フロー

シミュレーション実行

前提条件: テレメトリー&ベースライン事前チェックが完了している必要があります。

根拠: このセクションは、検出ルールをトリガーするように設計された敵対者技術(TTP)の正確な実行を詳細に説明します。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃の説明 & コマンド:

    シミュレーションされた攻撃者は既にLinuxホストに足掛かりを得ており、ランサムウェアの展開準備を行います。まず、彼らはルート権限で動作していることを確認し、その後、暗号化中の中断を避けるために故意にセキュリティ制御を無効にし、重要なサービスを停止します。この段階では、ルールの否定条項を満たすためにcronエントリを作成しないようにします。

    1. 特権確認 – 攻撃者は id -u を実行し、コマンドラインに“root”として表示されるUID 0を確認します。
    2. サービス中断systemctl stop を使用して、攻撃者は ssh サービスを停止し、リモートからの干渉を防ぎます。
    3. プロセス中断 – 攻撃者は低優先度のバックグラウンドプロセス(sleep 300 &)をkillして、 kill パターンを示します。
    4. 防御無効化 – SELinuxを許可モードに設定し(setenforce 0)、AppArmorを無効にします(aa-disable).

    これらのステップにより、“root”を含む execve イベントが生成され、 selection1 (“stop”、“kill”や“disable”コマンドを含む)と selection2/selection3 (“crontab”を含まない)を発生させ、Sigmaルールをトリガーします。 crontab。これによりSigmaルールをトリガーします。

  • 回帰テストスクリプト:

    #!/usr/bin/env bash
    set -e
    
    echo "[*] ステップ 1 – ルート権限の確認(“root”を含む)"
    id -u | grep ^0 && echo "ルート権限が確認されました"
    
    echo "[*] ステップ 2 – サービスを停止(systemctl stop sshd)"
    sudo systemctl stop sshd || true
    
    echo "[*] ステップ 3 – ダミープロセスの生成と停止"
    sleep 300 &
    DUMMY_PID=$!
    sudo kill -9 $DUMMY_PID || true
    
    echo "[*] ステップ 4 – SELinuxとAppArmorを無効化"
    sudo setenforce 0 || true
    sudo aa-disable || true
    
    echo "[+] シミュレーション完了 – 検出が発動したはずです。"
  • クリーンアップコマンド:

    #!/usr/bin/env bash
    set -e
    
    echo "[*] サービスの復旧"
    sudo systemctl start sshd || true
    
    echo "[*] SELinux(強制)およびAppArmorの再有効化"
    sudo setenforce 1 || true
    sudo aa-enable || true
    
    echo "[*] 残りプロセスがないことを確認"
    pkill -f "sleep 300" || true
    
    echo "[+] クリーンアップ完了。"