
# مدقق انحراف سياسة Salesforce
تم إصداره كمصدر مفتوح من قبل NCC Group Plc - https://www.nccgroup.com/
تم تطويره بواسطة Jerome Smith (@exploresecurity) مع الشكر لـ Stephen Tomkinson (@neonbunny9)
https://www.github.com/nccgroup/SFPolDevChk
تم إصداره بموجب AGPL - راجع LICENSE لمزيد من المعلومات.
داخل Salesforce، يمكن تجاوز سياسات كلمات المرور وإعدادات الجلسة المحددة على مستوى المؤسسة العلوي بتلك الموجودة على مستوى ملفات التعريف. وعلى الرغم من أن هذا الأمر مقصود، فإن أي تغييرات في هذه المجالات داخل ملف تعريف، حتى لو تم التراجع عنها لاحقًا لتتوافق مع إعدادات المؤسسة، تتسبب في خروج ملف التعريف عن التزامن مع المؤسسة. بعبارة أخرى، لن تنتقل التغييرات اللاحقة في سياسات كلمات المرور وإعدادات الجلسة على مستوى المؤسسة إلى ملفات التعريف هذه. وبمرور الوقت، ومع إضافة ملفات التعريف ونسخها، قد يؤدي ذلك إلى سوء إعداد غير مقصود لمجموعات معينة من المستخدمين. يكشف SFPolDevChk عن ملفات التعريف التي أصبحت غير متزامنة بهذه الطريقة، ويستعرض سياسات كلمات المرور وإعدادات الجلسة لكل منها لإبراز أي انحرافات عن تلك المحددة على مستوى المؤسسة.
المتطلبات:
requests (مغطاة بواسطة )requirements.txtأنشئ ملف إعداد بتنسيق JSON (بحيث لا تبقى بيانات الاعتماد داخل سجل الأوامر):
{
"hostname": "somewhere.my.salesforce.com",
"username": "",
"password": "",
"token": "<optional token>"
"debug": <optional debug level (0, 1 or 2)>
}
ثم شغّل:
git clone https://github.com/nccgroup/SFPolDevChk
pip install -r requirements.txt
python3 sfpoldevchk.py <config_file>

في المثال أعلاه، يكون صف ملف التعريف 'Read Only' فارغًا فيما عدا ذلك. والسبب هو أن سياسة كلمات المرور لهذا الملف الشخصي كانت، في ذلك الوقت، مطابقة للسياسة المحددة للمؤسسة. ومع ذلك، إذا تغيرت إعدادات المؤسسة، فإن المستخدمين المعينين لهذا الملف الشخصي لن يلتقطوا تلقائيًا سياسة كلمات المرور المنقحة (تشغيل الأداة مرة أخرى سيبين الفروق حينها).
تنفذ هذه الأداة عمليات للقراءة فقط. لذلك قد يكون من المفاجئ رؤية 'Modify Metadata Through Metadata API Functions' كمتطلب للحساب المستخدم لتشغيل الأداة. ومع ذلك، في وقت كتابة هذا، لا يبدو من الممكن تكوين حساب بصلاحيات القراءة فقط لواجهة Metadata API. من https://developer.salesforce.com/docs/atlas.en-us.226.0.api_meta.meta/api_meta/meta_quickstart_prereqs.htm:
حدد مستخدمًا لديه صلاحية API Enabled وصلاحية Modify Metadata Through Metadata API Functions أو صلاحية Modify All Data. هذه الصلاحيات مطلوبة للوصول إلى استدعاءات Metadata API. إذا كان المستخدم يحتاج إلى الوصول إلى البيانات الوصفية وليس إلى البيانات، فقم بتمكين صلاحية Modify Metadata Through Metadata API Functions. بخلاف ذلك، قم بتمكين صلاحية Modify All Data.
لذلك بدا من الأفضل استخدام 'Modify Metadata Through Metadata API Functions' كحد أدنى بدلاً من 'Modify All Data'. (من باب الاهتمام، تم تشغيل حالة اختبار باستخدام 'View All Data' - وقد فشلت.)