RASP يحمي التطبيقات من الداخل أثناء التشغيل. على عكس WAFs التي تجلس أمام تطبيقك، RASP يجهز التطبيق نفسه لاكتشاف الهجمات وحظرها.
WAF التقليدي:
┌─────────┐ ┌─────────┐ ┌─────────────┐
│ الطلب │ ──▶ │ WAF │ ──▶ │ التطبيق │
└─────────┘ └─────────┘ └─────────────┘
│
(مطابقة الأنماط)
RASP:
┌─────────┐ ┌───────────────────────────────┐
│ الطلب │ ──▶ │ التطبيق │
└─────────┘ │ ┌─────────────────────────┐ │
│ │ وكيل RASP (مدمج) │ │
│ │ • يراقب التنفيذ │ │
│ │ • يحظر الهجمات │ │
│ │ • لديه سياق وقت التشغيل │ │
│ └─────────────────────────┘ │
└───────────────────────────────┘
| الجانب |
WAF |
RASP |
| الموضع |
محيط الشبكة |
داخل التطبيق |
| السياق |
طبقة HTTP فقط |
سياق وقت التشغيل الكامل |
| الإيجابيات الخاطئة |
أعلى |
أقل |
| مقاومة التجاوز |
أقل |
أعلى |
| تأثير الأداء |
منخفض |
متوسط |
| النشر |
تكوين الشبكة |
تكامل الكود/الوكيل |
| الرؤية |
محدودة |
كاملة |
| نوع الهجوم |
كيف يكتشفه RASP |
| SQL Injection |
يراقب استدعاءات برنامج تشغيل قاعدة البيانات للـ SQL المحقون |
| Command Injection |
يعترض استدعاءات exec النظام مع مدخلات ملوثة |
| اجتياز المسار |
يتتبع عمليات الملفات مع مسارات يتحكم فيها المستخدم |
| XXE |
يراقب محلل XML لتحميل الكيانات الخارجية |
| إلغاء التسلسل |
يحظر إنشاء الفئات الخطرة |
| SSRF |
يتحقق من استدعاءات عميل HTTP ضد القائمة البيضاء |
| الأداة |
اللغة |
النوع |
| OpenRASP (Baidu) |
Java، PHP، Node.js |
قائم على الوكيل |
| Sqreen (مستحوذ) |
Python، Node.js، Ruby |
SaaS + وكيل |
| ModSecurity (مع CRS) |
أي (reverse proxy) |
هجين WAF/RASP |
| الأداة |
اللغات |
الميزات |
| Contrast Security |
Java، .NET، Node، Python، Go، Ruby |
RASP كامل + IAST |
| Imperva RASP |
Java، .NET |
مقياس المؤسسات |
| Signal Sciences (Fastly) |
أي (وحدة) |
WAF + RASP |
| Dynatrace AppSec |
Java، .NET، Node، PHP، Go |
APM + الأمان |
wget https://github.com/baidu/openrasp/releases/download/v1.3.7/rasp-java.tar.gz
tar -xzf rasp-java.tar.gz
java -jar RaspInstall.jar -install /path/to/tomcat
security:
sql:
policy: log
command:
policy: block
file:
policy: log
xxe:
policy: block
whitelist:
sql:
- "SELECT * FROM users WHERE id = ?"
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
template:
spec:
containers:
- name: app
image: my-app:latest
env:
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/rasp/rasp.jar"
volumeMounts:
- name: rasp-agent
mountPath: /rasp
initContainers:
- name: rasp-init
image: rasp-agent:latest
command: ['cp', '/agent/rasp.jar', '/rasp/']
volumeMounts:
- name: rasp-agent
mountPath: /rasp
volumes:
- name: rasp-agent
emptyDir: {}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: rasp-alerts
spec:
groups:
- name: rasp
rules:
- alert: RASPAttackBlocked
expr: increase(rasp_attacks_blocked_total[5m]) > 10
for: 1m
labels:
severity: warning
annotations:
summary: "عدد كبير من الهجمات المحظورة بواسطة RASP"
| السيناريو |
التوصية |
| تطبيقات عالية القيمة |
استخدم RASP + WAF |
| الامتثال التنظيمي |
RASP يوفر رؤية عميقة |
| التطبيقات القديمة |
WAF قد يكون أسهل |
| الخدمات المصغرة |
فكر في service mesh + RASP |
| التطوير/التجهيز |
استخدم في وضع المراقبة |
| الإنتاج |
ابدأ بالتسجيل، تدرج إلى الحظر |
- ابدأ في وضع المراقبة: سجل الهجمات قبل الحظر
- اضبط لتطبيقك: أضف الأنماط الشرعية للقائمة البيضاء
- راقب الأداء: RASP يضيف حمل (~2-5% CPU)
- ادمج مع SIEM: غذِّ سجلات RASP لمراقبة الأمان
- طبق دفاعات متعددة: استخدم RASP جنباً إلى جنب مع WAF، ليس بدلاً منه
في الوحدة التالية، سنتناول إدارة الأسرار وأمان البنية التحتية.
:::