العودة للدورة|استخدام كلود للحاسوب: بناء وكلاء سطح المكتب والمتصفح المستقلين
معمل

تنفيذ حواجز الأمان لوكلاء الإنتاج

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 محاولات مجانية متبقية