معمل
تنفيذ حواجز الأمان لوكلاء الإنتاج
60 دقيقة
متقدم3 المحاولات المجانية
التعليمات
الهدف
إنشاء نظام حواجز أمان شامل يتحقق من صحة ويفلتر إجراءات وكيل استخدام الحاسوب قبل تنفيذها. هذا أمر بالغ الأهمية لعمليات النشر الإنتاجية حيث يمكن للوكلاء المستقلين التسبب في أضرار.
الخلفية
حققت Anthropic انخفاضاً بنسبة 50% في معدلات نجاح حقن المطالبات من خلال تنفيذ إجراءات أمان دقيقة. يجب أن تقوم حواجز الأمان الخاصة بك بـ:
- حظر الإجراءات الخطيرة
- طلب التأكيد للعمليات الحساسة
- تسجيل جميع الإجراءات للتدقيق
- تحديد معدل العمليات المكلفة
المتطلبات
أنشئ فئة SafetyGuardrails مع هذه الطرق:
1. validate_action(action: dict) -> ValidationResult
تحقق مما إذا كان الإجراء آمناً للتنفيذ:
@dataclass
class ValidationResult:
allowed: bool
reason: str
requires_confirmation: bool
risk_level: str # "low", "medium", "high", "blocked"
2. is_dangerous_command(text: str) -> bool
تحقق مما إذا كان النص المكتوب يحتوي على أوامر خطيرة:
rm -rfأوrm -r(حذف الملفات)sudo(تصعيد الصلاحيات)curl | bash(سكريبتات منقولة)chmod 777(صلاحيات خطيرة)> /dev/sda(الكتابة على القرص)- أنماط كلمات المرور/بيانات الاعتماد
3. is_sensitive_url(url: str) -> bool
تحقق مما إذا كان عنوان URL حساساً:
- مواقع البنوك (تحتوي على "bank"، "paypal"، "stripe")
- لوحات الإدارة (تحتوي على "admin"، "console"، "dashboard")
- صفحات المصادقة (تحتوي على "login"، "signin"، "oauth")
- وحدات تحكم السحابة (AWS، GCP، Azure)
4. check_rate_limit(action_type: str) -> bool
تنفيذ تحديد المعدل:
- بحد أقصى 10 نقرات في الدقيقة
- بحد أقصى 50 ضغطة مفتاح في الدقيقة
- بحد أقصى 5 تنقلات URL في الدقيقة
- يرجع True إذا كان ضمن الحد، False إذا تم تجاوزه
5. log_action(action: dict, result: ValidationResult) -> None
تسجيل الإجراءات مع الطابع الزمني وتفاصيل الإجراء ونتيجة التحقق. التخزين في الذاكرة لاسترجاع التدقيق.
6. get_audit_log() -> list[dict]
إرجاع جميع الإجراءات المسجلة مع الطوابع الزمنية.
مثال على الاستخدام
guardrails = SafetyGuardrails()
action = {
"action": "type",
"text": "sudo rm -rf /"
}
result = guardrails.validate_action(action)
# result.allowed = False
# result.reason = "Blocked: dangerous command detected (sudo, rm -rf)"
# result.risk_level = "blocked"
مستويات المخاطر
| المستوى | أمثلة | الاستجابة |
|---|---|---|
| منخفض | mouse_move، screenshot | السماح |
| متوسط | كتابة نص عادي، النقر | السماح |
| عالي | التنقل إلى البنك، كتابة كلمة المرور | طلب التأكيد |
| محظور | rm -rf، sudo، curl|bash | الحظر بالكامل |
تلميحات
- استخدم regex لمطابقة أنماط الأوامر الخطيرة
- قم بتخزين الطوابع الزمنية لتحديد المعدل في deque مع maxlen
- يجب أن يكون سجل التدقيق غير قابل للتغيير (إضافة فقط)
- ضع في اعتبارك كلاً من النص المكتوب واختصارات لوحة المفاتيح
معايير التقييم
validate_action يصنف الإجراءات بشكل صحيح حسب مستوى المخاطر25 نقاط
is_dangerous_command يكتشف جميع الأنماط الخطيرة20 نقاط
is_sensitive_url يحدد الوجهات الحساسة15 نقاط
check_rate_limit يفرض حدود الوقت بشكل صحيح20 نقاط
تسجيل التدقيق يلتقط تفاصيل الإجراء الكاملة20 نقاط
حلك
يمكنك استخدام أي لغة برمجة
3 محاولات مجانية متبقية