ملاحظة ميدانية 01 / أمن الأجهزة الطرفية

تحصين الأجهزة الطرفية، تم التحقق منه.

اختبار سلوك التحكم في التطبيقات بدلًا من اعتبار السياسة المنشورة دليلًا على الحماية.

  • Microsoft Intune
  • AppLocker
  • PowerShell

بقلم صالح أبو حسن · مهندس أمن معلومات أول

نقطة البداية.

عملت على قيود التحكم في التطبيقات لأجهزة Windows الطرفية، بما في ذلك واجهات سطر الأوامر وPowerShell. لم يكن التحدي العملي مجرد إظهار السياسة في Intune، بل التحقق من مسارات التنفيذ المسموح بها أو المحظورة فعليًا، مع الحفاظ على أعمال الإدارة المشروعة.

ما قمت به.

  1. اختبرت تنفيذ الأوامر في سياقات مستخدمين مختلفة، وتحققت من السلوك الفعلي بدلًا من الاعتماد على حالة التعيين وحدها.
  2. استخدمت PowerShell لمراجعة أحداث AppLocker الخاصة بملفات EXE وDLL، والبحث عن نشاط يشمل cmd.exe وpowershell.exe وpwsh.exe.
  3. فصلت بين سلوك السياسة وتوفّر التطبيق. فغياب الملف التنفيذي لـ PowerShell 7، على سبيل المثال، ليس دليلًا على أن AppLocker قد حظره.

القرارات والمفاضلات.

01

المراقبة قبل الفرض

يساعد وضع التدقيق على كشف مسارات التنفيذ المشروعة قبل أن تعطّلها قاعدة تقييدية. لكن ثمن ذلك أن نتائج التدقيق دليل على أثر محتمل، لا على حظر فعلي.

02

الحفاظ على الوصول الإداري

تحتاج قيود المستخدم القياسي وسير العمل الإداري إلى اختبارات منفصلة. فقدرة المسؤول على تشغيل واجهة أوامر لا تثبت أن كل مستخدم يستطيع ذلك.

03

تفضيل تغيير صغير يمكن مراقبته

التجربة الأولية المحدودة تجعل تحديد سبب أي حظر غير متوقع والتراجع عنه أسهل مما لو غُيّرت عدة طبقات من الضوابط دفعة واحدة.

قراءة أحداث واجهات الأوامر في AppLocker.

مثال يقتصر على القراءة، أُعيد بناؤه لدراسة الحالة هذه. يفحص سجل «EXE and DLL» دون تغيير السياسة.

PowerShell / مثال تقني
$filter = @{
    LogName   = 'Microsoft-Windows-AppLocker/EXE and DLL'
    Id        = 8002,8003,8004
    StartTime = (Get-Date).AddHours(-24)
}
try {
    $events = @(Get-WinEvent -FilterHashtable $filter -ErrorAction Stop)
} catch {
    if ($_.FullyQualifiedErrorId -like 'NoMatchingEventsFound*') {
        $events = @()
    } else { throw }
}

$events |
    Where-Object {
        $_.Message -match '(?i)cmd\.exe|powershell\.exe|pwsh\.exe'
    } |
    Select-Object TimeCreated,Id,Message

اقرأ النص البرمجي قبل تشغيله. على Windows: powershell -ExecutionPolicy Bypass -File .\read-applocker-events.ps1 (ينطبق ذلك على تلك العملية فقط).

ما تحققت منه.

جمعت الفحوصات بين التنفيذ الفعلي للأوامر وسجلات الأحداث المحلية. ومكّنني ذلك من التمييز بين إجراء مسموح به، وحدث في وضع التدقيق يفيد بأن الإجراء كان سيُحظر، وحظر تم فرضه. كما تحققت من وجود الملف التنفيذي قيد الاختبار في المسار المتوقع.

النطاق والحدود.

تصف هذه الملاحظات أعمال إعداد وتحقق محددة، ولا تدّعي أن كل جهاز أو تطبيق قد خضع للاختبار. ولا تزال عوامل جمع الأحداث ونطاق السياسة وسياق المستخدم هي التي تحدد ما تغطيه الأدلة.

الضابط الذي تم إعداده ليس كالضابط الذي تم التحقق منه.

مراجع تقنية.

Microsoft: Using Event Viewer with AppLocker (يُفتح في علامة تبويب جديدة)

الملاحظة الميدانية التالية / التحقيق في التهديدات

التنبيه نقطة بداية.

اقرأ دراسة الحالة التالية