
يفحص الملفات المحددة بحثًا عن الأنماط المحددة في القواعد. يُستخدم هذا للعثور على الأسرار التي قد تكون كتبتها عن طريق الخطأ في ملف. يُستخدم هذا الماسح لإظهار كيفية تعبئة [تقرير الثغرات](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/) في GitLab بواسطة ماسح مخصص. يمكنك مشاهدة عرض توضيحي له أثناء العمل باتباع التوثيق في مشروع [Secret List](https://gitlab.com/gitlab-de/tutorials/security-and-governance/custom-scanner-integration/secret-list).
مرحبًا بك في Fern Pattern Scanner. يقوم هذا الماسح بفحص ملفاتك المقترحة ويبحث عن أي أنماط محددة في rules/rules.yaml باستخدام regex. ثم يتم إنشاء تقرير يحتوي على جميع النتائج. يُستخدم هذا المشروع لعرض كيفية دمج ماسح أمني مخصص في GitLab واستخدامه لملء تبويب أمان خط الأنابيب وتقارير الثغرات وأداة طلب الدمج
ملاحظة: يتطلب الوصول إلى تقارير الثغرات اشتراك GitLab Ultimate
يمكنك تفعيل هذا الماسح الأمني بإضافة ما يلي إلى ملف .gitlab-ci.yml:
include:
- remote: "https://gitlab.com/gitlab-de/tutorials/security-and-governance/custom-scanner-integration/fern-pattern-scanner/-/blob/main/jobs/.fern-pattern-scanner.gitlab-ci.yml"
يمكنك مشاهدة الماسح يعمل على مشروع Secret List. عند اكتمال الماسح، يقوم بإنشاء تقرير باسم gl-secret-detection-report.json. يتم التحقق من صحة هذا التقرير وتحميله في تقرير الثغرات وأداة طلب الدمج.
إذا كنت ترغب في تجاهل فحص مسارات معينة في المشروع الذي يعمل عليه الماسح، يمكنك تعيين المتغير التالي بقيم مفصولة بفواصل:
variables:
FERN_ANALYZER_EXCLUDED_PATHS: "docs, tests"
إذا كنت ترغب في تشغيل مجموعة القواعد الخاصة بك من أنماط regex في GitLab، يجب عليك القيام بما يلي:
patterns:
- name: 'PATTERN NAME 1'
pattern: 'REGEX 1'
- name: 'PATTERN NAME 2'
pattern: 'REGEX 2'
fern_secret_detection:
script:
- /app/fern-pattern-scanner scan --rules "/path/to/rules.yaml" --report
قم بإيداع الكود الخاص بك وسيبدأ الماسح في العمل مع مجموعة القواعد الجديدة. لا يقوم هذا الماسح بفحص فروقات الالتزامات (commit diffs)، بل يبحث عن الأنماط عبر المشروع بأكمله.
عند اكتمال خط الأنابيب، يمكنك النقر على التبويب الأمني لعرض جميع المشكلات المكتشفة. إذا كان لديك GitLab Ultimate، يمكن أيضًا رؤية هذه المشكلات في تقرير الثغرات
يمكنك استخدام هذا الماسح لاكتشاف الأنماط لأنواع ملفات محددة على جهازك المحلي. لتشغيل هذا الماسح على جهازك المحلي، اتبع الخطوات التالية:
$ go install gitlab.com/gitlab-de/tutorials/security-and-governance/custom-scanner-integration/fern-pattern-scanner
ملاحظة: سيؤدي ذلك إلى تنزيل الملف إلى $GOBIN. إذا كنت جديدًا على Go، فإن هذه منصة التجربة تشرح تثبيت Go.
$ wget https://gitlab.com/gitlab-de/tutorials/security-and-governance/custom-scanner-integration/fern-pattern-scanner/-/raw/main/rules/rules.yaml
...
Resolving gitlab.com (gitlab.com)... 2606:4700:90:0:f22e:fbec:5bed:a9b9, 172.65.251.78
Connecting to gitlab.com (gitlab.com)|2606:4700:90:0:f22e:fbec:5bed:a9b9|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 283 [text/plain]
Saving to: ‘rules.yaml’
rules.yaml 100%[===================>] 283 --.-KB/s in 0s
2023-05-20 16:02:46 (22.5 MB/s) - ‘rules.yaml’ saved [283/283]
ملاحظة: يمكنك أيضًا تنزيل الملف مباشرة من المشروع
$ fern-pattern-scanner scan --rules path/to/rules.yaml
INFO[0000] The scanner is starting
INFO[0000] Skipping the following directories: []
INFO[0000] Possible Vulnerability Detected: {Id:139999 Name:password variation 1 Message:The pattern in rule: password variation 1 was found in a file Description:The pattern in rule: password variation 1 was found in a file. Examine the file, remove and rotate your secret. Location:/Users/fern/Desktop/secret-list/.git/index Line:3}
...
INFO[0000] The scanner completed successfully
تم إنشاؤه وصيانته بواسطة Fern🌿