不正アクセスをシュミレーションツール

ツール

不正アクセスをシュミレーションするツールです。セキュリティテストやデモ、SIEM/SOCのトレーニング用に設計されたものもあります。

1. Atomic Red Team (MITRE ATT&CKに基づく)

# インストール
git clone https://github.com/redcanaryco/atomic-red-team.git
cd atomic-red-team

# Windowsイベントログを生成(一部Linuxでも動作)
./atomic-red-team/execution/frameworks/scripts/Invoke-AtomicTest.ps1

2. Log-Monster (SIEMテスト用)

# インストール
git clone https://github.com/neu5ron/log-monster.git
cd log-monster

# 不正アクセスログ生成
python log-monster.py \
  --output /var/log/attacks.log \
  --attacks "sql_injection,xss,bruteforce" \
  --count 1000

3. VECTR (セキュリティ評価プラットフォーム)

# Dockerで実行
docker run -d -p 8080:8080 --name vectr securityriskadvisor/vectr
# WebUIから不正アクセスシナリオを実行

4. OSSECテストルール

# OSSECのテストモードを使用
ossec-control enable test-rule

# テスト攻撃を生成
echo "Dec 31 23:59:59 server1 sshd[1234]: Failed password for root from 192.168.1.100" | /var/ossec/bin/ossec-logtest

5. Metasploitフレームワーク (実際の攻撃シミュレーション)

# Metasploitをインストール
sudo apt install metasploit-framework -y

# テスト用スクリプトでログを生成
msfconsole -q -x "
use auxiliary/scanner/ssh/ssh_login
set RHOSTS 127.0.0.1
set USERNAME root
set PASS_FILE /usr/share/wordlists/rockyou.txt
set STOP_ON_SUCCESS false
run
exit
"

6. Splunk Attack Range (企業向け)

# インストール
git clone https://github.com/splunk/attack_range.git
cd attack_range

# 設定ファイルを編集後
python3 attack_range.py -a simulate -st T1003.001 -t 300

7. Caldera (MITRE ATT&CK自動化)

# Dockerで実行
docker run -d -p 8888:8888 mitre/caldera:latest

# APIを使用して攻撃を実行し、ログを生成
curl -X POST http://localhost:8888/api/v2/operations \
  -H "Content-Type: application/json" \
  -d '{"name":"test_attack","adversary_id":"test"}' 

8. SIEM用テストデータジェネレーター

JSON形式の不正アクセスログ生成

#!/usr/bin/env python3
# generate_siem_logs.py

import json
import random
from datetime import datetime, timedelta
import time

def generate_attack_event():
    attack_types = [
        {
            "name": "SQL Injection",
            "severity": "high",
            "technique": "T1190",
            "indicators": ["' OR '1'='1", "UNION SELECT", "--", "/*"],
            "source": "web"
        },
        {
            "name": "Brute Force SSH",
            "severity": "medium",
            "technique": "T1110",
            "indicators": ["Failed password", "Invalid user", "Connection closed"],
            "source": "network"
        },
        {
            "name": "Phishing Attempt",
            "severity": "high",
            "technique": "T1566",
            "indicators": ["suspicious attachment", "malicious link", "spoofed sender"],
            "source": "email"
        },
        {
            "name": "Data Exfiltration",
            "severity": "critical",
            "technique": "T1048",
            "indicators": ["large outbound transfer", "unusual port", "encrypted traffic"],
            "source": "network"
        }
    ]

    attack = random.choice(attack_types)
    timestamp = datetime.now().isoformat() + "Z"

    event = {
        "timestamp": timestamp,
        "event_type": "security_alert",
        "attack_type": attack["name"],
        "severity": attack["severity"],
        "mitre_technique": attack["technique"],
        "source_ip": f"{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}.{random.randint(1,255)}",
        "destination_ip": "192.168.1.100",
        "user": random.choice(["admin", "user1", "service_account", None]),
        "description": f"Detected {attack['name']} attempt from external IP",
        "indicators": random.sample(attack["indicators"], random.randint(1, len(attack["indicators"]))),
        "recommended_action": random.choice(["block_ip", "reset_password", "investigate", "quarantine"]),
        "confidence": random.randint(70, 95)
    }

    return event

# ログを生成
with open('/var/log/siem/alerts.json', 'a') as f:
    for i in range(100):
        event = generate_attack_event()
        f.write(json.dumps(event) + '\n')
        time.sleep(random.uniform(0.1, 2.0))

9. Wazuhテストツール (HIDS/NIDS)

# Wazuhマネージャーでテストアラート生成
/var/ossec/bin/ossec-control restart

# テストルールのトリガー
echo "Dec 31 23:59:59 server sudo: pam_unix(sudo:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/pts/0 ruser= rhost=  user=root" >> /var/log/secure

注意点

  1. 倫理的配慮: これらのツールはテスト環境でのみ使用
  2. 法的制約: 許可なく他人のシステムに対して使用しない
  3. 分離環境: 本番環境と隔離したネットワークで実行
  4. 目的限定: 教育、テスト、研究目的のみ
  5. ログ管理: 生成したログの適切な管理と破棄

おすすめツール

  • 教育/デモ用: 自作スクリプト – 完全にコントロール可能
  • 企業トレーニング: Atomic Red Team – MITRE ATT&CK準拠
  • SIEMテスト: Log-Monster – 多様なフォーマット対応
  • 実戦的テスト: Metasploit – 実際の攻撃ツール

コメント

タイトルとURLをコピーしました