
أداة فحص مضيف قابلة للتوسيع للفرق الحمراء، تقوم بتحميل فحوصات واعية بـ OpSec بشكل ديناميكي لجمع معلومات المستخدم، النطاق، الصلاحية، وبيانات الاعتماد من نقاط نهاية ويندوز عبر execute-assembly.
أداة فرز مضيف قابلة للتوسع والتكوين.
تهدف SitRep إلى توفير بديل خفيف وقابل للتوسع لفرز المضيف. يتم تحميل الفحوصات ديناميكيًا أثناء التشغيل من ملفات مستقلة. وهذا يسمح للمشغلين بتعديل الفحوصات الحالية بسرعة، أو إضافة فحوصات جديدة حسب الحاجة.
يتم تجميع الفحوصات حسب الفئة ويمكن وضع علامة عليها على أنها آمنة/غير آمنة من حيث الأمن العملياتي (OpSec). يتم تحميل الفحوصات غير الآمنة فقط في حالة توفير العلامة /AllowUnsafe.
يتم تمييز النتائج المثيرة للاهتمام بـ "[*]"
يتم فصل الفحوصات إلى فئات. وهذا يسمح بعرضها في مجموعات مناسبة. الفحوصات التالية متاحة حاليًا:
البيئة
الدفاعات
الأذونات
البرامج
بيانات الاعتماد
الفحوصات التالية مميزة حاليًا على أنها غير آمنة من حيث الأمن العملياتي:
يجب عليك مراجعة هذا التكوين وتحديث علامات OpSec حسب الحاجة.
جميع الفحوصات مفعلة افتراضيًا. ومع ذلك، نظرًا لأن الفحوصات تُحمَّل ديناميكيًا، فمن الممكن تعطيلها.
تعطيل فحص
تتضمن CheckBase خاصية منطقية "Enabled" وقيمتها الافتراضية true. يمكن تعيين ذلك في الفئة المشتقة عن طريق إضافة مُنشئ. المثال أدناه يعطل فحص CurrentUser (CurrentUser.cs):
public CurrentUser()
{
base.Enabled = false;
}
استبعاد الفحوصات من البناء
نظرًا لأن الفحوصات تُحمَّل ديناميكيًا، فمن الممكن استبعاد فحص من البناء دون تعديلات أخرى. أسهل طريقة للقيام بذلك هي النقر بزر الماوس الأيمن على فئة الفحص في Visual Studio واختيار "استبعاد من المشروع". يمكن إعادة إضافة الفحص عن طريق اختيار "تضمين في المشروع" من نفس القائمة السياقية.
لهذه الطريقة ميزة إزالة الكود من الأداة المترجمة.
تشغيل جميع الفحوصات
SitRep.exe /AllowUnsafe
تشغيل الفحوصات الآمنة فقط من حيث الأمن العملياتي (الافتراضي)
SitRep.exe
تم تصميم SitRep ليتم تنفيذه عبر execute-assembly (أو ما يعادله)

ترث الفحوصات من CheckBase وتنفذ واجهة ICheck. وهذا يفرض الأنماط اللازمة للتحميل الديناميكي للفحوصات. يمكن إضافة طرق وفئات أخرى حسب الحاجة.
تكشف واجهة ICheck عن الخصائص والطرق التالية:
يجب على الفئات المشتقة تجاوز طريقة "ToString()" المعرفة في CheckBase. يتم استدعاء هذه الطريقة عند عرض مخرجات كل فحص.
يتم توفير الوصول إلى الطرق الأصلية عبر فئات في مجلد "NativeMethods". يتم تسمية كل فئة على اسم ملف dll الذي يتفاعل معه.
الفحوصات مسؤولة عن توفير معالجة الأخطاء الخاصة بها. تقوم الفحوصات الحالية بتغليف طريقة "الفحص" بالكامل في كتلة try-catch، ويتم تشجيع استخدام هذا النمط.
يظهر أدناه مثال على فحص فارغ:
using SitRep.Interfaces;
using System;
namespace SitRep.Checks.Software
{
class ExampleCheck : CheckBase, ICheck
{
public bool IsOpsecSafe => true;
public int DisplayOrder => 1;
public Enums.Enums.CheckType CheckType => Enums.Enums.CheckType.Credential;
public void Check()
{
try
{
throw new NotImplementedException();
}
catch
{
Message = "Check failed [*]";
}
}
public override string ToString()
{
throw new NotImplementedException();
}
}
}
نرحب بطلبات السحب (PRs). يرجى التأكد من أن الفحوصات مستقلة (أي لا تعتمد على مخرجات الفحوصات الأخرى). بقدر الإمكان، يجب أن تكون الفحوصات مكتفية بذاتها، مع وجود جميع الكودات أحادية الاستخدام داخل فئة الفحص.
هل حاولت يومًا محاكاة نقطة نهاية Windows منضمة إلى نطاق؟ هذا هو السبب.
يستخدم SitRep كودًا من Seatbelt وSharpUp ومنشورات عشوائية على StackOverflow. تمت إضافة الإسنادات حيثما كان ذلك مناسبًا.