
HardeningKitty وإعدادات تقوية Windows
بدأ المشروع كقائمة تقوية بسيطة لنظام Windows 10. بعد مرور بعض الوقت، تم إنشاء HardeningKitty لتبسيط تقوية Windows. الآن، يدعم HardeningKitty الإرشادات من Microsoft وCIS Benchmarks وDoD STIG وBSI SiSyPHuS Win10. وبالطبع قائمة التقوية الخاصة بي.
هذه قائمة تحقق للتقوية يمكن استخدامها في البيئات الخاصة والتجارية لتقوية Windows 10. يمكن استخدام قائمة التحقق لجميع إصدارات Windows، ولكن في Windows 10 Home لا يكون محرر نهج المجموعة (Group Policy Editor) مدمجًا ويجب إجراء التعديل مباشرة في السجل (registry). لهذا الغرض، يوجد وضع HailMary من HardeningKitty.
يجب النظر إلى الإعدادات كتوصية أمنية وخصوصية ويجب فحصها بعناية لمعرفة ما إذا كانت ستؤثر على تشغيل البنية التحتية الخاصة بك أو تؤثر على قابلية استخدام الوظائف الرئيسية. من المهم الموازنة بين الأمان وقابلية الاستخدام.
بدأ المشروع بإنشاء قائمة تحقق بسيطة للتقوية لنظام Windows 10. تحول التركيز إلى تدقيق مختلف الأطر / المعايير المعروفة مع تطوير HardeningKitty. في الوقت الحالي، يتم دعم العديد من معايير CIS وMicrosoft Security Baselines. مع تطوير وضع HailMary، سيصبح من الممكن أيضًا تطبيق إعدادات أي قائمة تحقق للتقوية على نظام Windows.
يدعم HardeningKitty تقوية نظام Windows. يتم استرداد تكوين النظام وتقييمه باستخدام قائمة النتائج (finding list). بالإضافة إلى ذلك، يمكن تقوية النظام وفقًا لقيم محددة مسبقًا. يقرأ HardeningKitty الإعدادات من السجل (registry) ويستخدم وحدات أخرى لقراءة التكوينات خارج السجل.
تم تطوير النص البرمجي (script) للأنظمة الإنجليزية. من الممكن أن يكون التحليل غير صحيح في لغات أخرى. يرجى إنشاء issue إذا حدث ذلك.
يتم تطوير HardeningKitty في هذا المستودع. في مستودع scip AG يوجد إصدار مستقر من HardeningKitty تم توقيعه بشهادة توقيع الكود الخاصة بـ scip AG. وهذا يعني أنه يمكن أيضًا تشغيل HardeningKitty على الأنظمة التي تسمح فقط بالنصوص البرمجية الموقّعة.
قم بتشغيل النص البرمجي بصلاحيات إدارية للوصول إلى إعدادات الجهاز. بالنسبة لإعدادات المستخدم، من الأفضل تنفيذها بحساب مستخدم عادي. من الناحية المثالية، يتم استخدام حساب المستخدم للعمل اليومي.
قم بتنزيل HardeningKitty وانسخه إلى النظام الهدف (النص البرمجي والقوائم). ثم يمكن استيراد HardeningKitty وتنفيذه:```powershell PS C:\tmp> Import-Module .\HardeningKitty.psm1 PS C:\tmp> Invoke-HardeningKitty -EmojiSupport
=^._.^=
_( )/ HardeningKitty 0.9.0-1662273740
[*] 9/4/2022 8:54:12 AM - Starting HardeningKitty
[] 9/4/2022 8:54:12 AM - Getting user information [] Hostname: DESKTOP-DG83TOD [*] Domain: WORKGROUP
...
[] [] 9/4/2022 8:54:12 AM - Starting Category Account Policies [😺] ID 1103, Store passwords using reversible encryption, Result=0, Severity=Passed [😺] ID 1100, Account lockout threshold, Result=10, Severity=Passed [😺] ID 1101, Account lockout duration, Result=30, Severity=Passed
...
[*] 9/4/2022 8:54:12 AM - Starting Category User Rights Assignment [😿] ID 1200, Access this computer from the network, Result=BUILTIN\Administrators;BUILTIN\Users, Recommended=BUILTIN\Administrators, Severity=Medium
...
[*] 9/4/2022 8:54:14 AM - Starting Category Administrative Templates: Printer [🙀] ID 1764, Point and Print Restrictions: When installing drivers for a new connection (CVE-2021-34527), Result=1, Recommended=0, Severity=High [🙀] ID 1765, Point and Print Restrictions: When updating drivers for an existing connection (CVE-2021-34527), Result=2, Recommended=0, Severity=High
...
[*] 9/4/2022 8:54:19 AM - Starting Category MS Security Guide [😿] ID 2200, LSA Protection, Result=, Recommended=1, Severity=Medium [😼] ID 2201, Lsass.exe audit mode, Result=, Recommended=8, Severity=Low
...
[] 9/4/2022 8:54:25 AM - HardeningKitty is done [] 9/4/2022 8:54:25 AM - Your HardeningKitty score is: 4.82. HardeningKitty Statistics: Total checks: 325 - Passed: 213, Low: 33, Medium: 76, High: 3.
### كيفية التثبيت
أولاً، أنشئ الدليل *HardeningKitty* ولكل إصدار دليل فرعي مثل *0.9.3* في مسار مُدرج في متغير البيئة *PSModulePath*.
انسخ الوحدة *HardeningKitty.psm1* و *HardeningKitty.psd1* ودليل *lists* إلى هذا الدليل الجديد.```powershell
PS C:\tmp> $Version = "0.9.3"
PS C:\tmp> New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version -ItemType Directory
PS C:\tmp> Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version\ -Recurse
لمزيد من المعلومات، راجع مقالة Microsoft تثبيت وحدة PowerShell.
يمكنك استخدام النص البرمجي أدناه لتنزيل أحدث إصدار من HardeningKitty وتثبيته.```powershell Function InstallHardeningKitty() { $Version = (((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).Name).SubString(2) $HardeningKittyLatestVersionDownloadLink = ((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).zipball_url $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest $HardeningKittyLatestVersionDownloadLink -Out HardeningKitty$Version.zip Expand-Archive -Path ".\HardeningKitty$Version.zip" -Destination ".\HardeningKitty$Version" -Force $Folder = Get-ChildItem .\HardeningKitty$Version | Select-Object Name -ExpandProperty Name Move-Item ".\HardeningKitty$Version$Folder*" ".\HardeningKitty$Version" Remove-Item ".\HardeningKitty$Version$Folder" New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version -ItemType Directory Set-Location .\HardeningKitty$Version Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\ -Recurse Import-Module "$Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\HardeningKitty.psm1" } InstallHardeningKitty
### أمثلة
#### التدقيق
الوضع الافتراضي هو _audit_. يقوم HardeningKitty بإجراء تدقيق، ويحفظ النتائج في ملف CSV وينشئ ملف سجل. تتم تسمية الملفات تلقائيًا وتتلقى طابعًا زمنيًا. باستخدام المعاملين _ReportFile_ أو _LogFile_، من الممكن أيضًا تعيين اسم ومسار خاصين بك.
يمكن استخدام المعامل _Filter_ لتصفية قائمة التقوية. لهذا الغرض يجب استخدام صيغة PowerShell ScriptBlock، على سبيل المثال `{ $_.ID -eq 4505 }`. العناصر التالية مفيدة للتصفية: ID، وCategory، وName، وMethod، وSeverity.```powershell
Invoke-HardeningKitty -Mode Audit -Log -Report
يمكن تنفيذ HardeningKitty بقائمة محددة يحددها المعامل FileFindingList. إذا تم تشغيل HardeningKitty عدة مرات على نفس النظام، فقد يكون من المفيد إخفاء معلومات الجهاز. يُستخدم المعامل SkipMachineInformation لهذا الغرض.```powershell Invoke-HardeningKitty -FileFindingList .\lists\finding_list_0x6d69636b_user.csv -SkipMachineInformation
يستخدم HardeningKitty القائمة الافتراضية، ويفحص فقط الاختبارات ذات الخطورة Medium.```powershell
Invoke-HardeningKitty -Filter { $_.Severity -eq "Medium" }
وضع config يسترجع جميع الإعدادات الحالية للنظام. إذا لم يتم تكوين إعداد ما، فسيستخدم HardeningKitty قيمة افتراضية مخزنة في قائمة النتائج. يمكن دمج هذا الوضع مع وظائف أخرى، على سبيل المثال لإنشاء نسخة احتياطية.
يقوم HardeningKitty بالحصول على الإعدادات الحالية وتخزينها في تقرير:```powershell Invoke-HardeningKitty -Mode Config -Report -ReportFile C:\tmp\my_hardeningkitty_report.csv
#### النسخ الاحتياطي
النسخ الاحتياطي مهم. مهم حقًا. لذلك، يمتلك HardeningKitty أيضًا دالة لاسترداد التكوين الحالي وحفظه في شكل يمكن استعادته جزئيًا.