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

ツール
ツール

不正アクセスをシュミレーションするツールです。セキュリティテストやデモ、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 – 実際の攻撃ツール
Q よくある質問 (FAQ)
Q. 不正アクセスシミュレーションツールを使用する際の最大の注意点は何ですか?
A.
必ず本番環境から隔離されたテスト環境で実行し、許可のないシステムに対しては絶対に使用しないという倫理的・法的な配慮が必要です。
Q. 企業のSIEMやSOCの検知トレーニングにはどのツールがおすすめですか?
A.
MITRE ATT&CKフレームワークに準拠した「Atomic Red Team」や、多様なログフォーマットに対応した「Log-Monster」がおすすめです。

コメント

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