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، ليس بدلاً منه
في الوحدة التالية، سنتناول إدارة الأسرار وأمان البنية التحتية.
:::