Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
gokart — أداة تحليل ثابت لتأمين كود Go | Kitploit
أدوات/GitHubGitHub/praetorian-inc/gokart
تحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةتحليل الكودDevSecOpsكشف الأسرارسوء التكوينArchived
GitHubpraetorian-inc/gokart

gokart

أداة تحليل ثابت لتأمين كود Go

عرض المستودع
2.2k1068منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

GoKart - تحليل أمان ثابت للغة Go

CI Release

GoKart هي أداة تحليل ثابتة للغة Go تكتشف الثغرات الأمنية باستخدام شكل SSA (التعيين الثابت الفردي) لشفرة مصدر Go. وهي قادرة على تتبع مصدر المتغيرات ووسائط الدوال لتحديد ما إذا كانت مصادر الإدخال آمنة، مما يقلل من عدد النتائج الإيجابية الكاذبة مقارنة بأدوات فحص أمان Go الأخرى. على سبيل المثال، قد يتم الإبلاغ عن استعلام SQL الذي يتم ربطه بمتغير تقليدياً على أنه حقن SQL؛ ومع ذلك، يمكن لـGoKart معرفة ما إذا كان المتغير في الواقع ثابتاً أو مكافئاً لثابت، وفي هذه الحالة لا توجد ثغرة أمنية.

يساعد GoKart أيضاً في تشغيل Chariot، منصة Praetorian الأمنية التي تساعدك في العثور على الثغرات الأمنية في شفرتك المصدرية وبيئات السحابة وإدارتها وإصلاحها. يجعل Chariot من السهل تشغيل عمليات فحص GoKart تلقائية ومستمرة على شفرتك المصدرية. إذا كنت ترغب في تجربة GoKart، يمكنك إعداد حساب Chariot مجاني في دقائق عن طريق النقر هنا.

لماذا بنينا GoKart

التحليل الثابت هو تقنية قوية لاكتشاف الثغرات الأمنية في الشفرة المصدرية. ومع ذلك، عانت هذه الطريقة من الضوضاء - أي أن العديد من أدوات التحليل الثابت تجد عدداً لا بأس به من "الثغرات" التي ليست حقيقية في الواقع. أدى هذا إلى احتكاك بين المطورين حيث يتعب المستخدمون من الأدوات التي "تصيح بالذئب" مرة تلو الأخرى.

كان الدافع وراء GoKart هو معالجة هذا الأمر: هل يمكننا إنشاء ماسح ضوئي بمعدلات نتائج إيجابية كاذبة أقل بكثير من الأدوات الحالية؟ بناءً على تجاربنا الإجابة هي نعم. من خلال الاستفادة من تتبع المصدر إلى المصب وSSA، فإن GoKart قادر على تتبع تلوث المتغيرات بين تعيينات المتغيرات، مما يحسن بشكل كبير من دقة النتائج. تركيزنا ينصب على سهولة الاستخدام: عملياً، هذا يعني أننا قمنا بتحسين طرقنا لتقليل الإنذارات الكاذبة.

لمزيد من المعلومات، يرجى قراءة مقالنا على المدونة.

التثبيت

يمكنك تثبيت GoKart محلياً باستخدام أي من الخيارات المدرجة أدناه.

التثبيت باستخدام go install

root@kitploit:~
$ go install github.com/praetorian-inc/gokart@latest

تثبيت ملف ثنائي من الإصدارات

  1. قم بتنزيل الملف الثنائي الخاص بنظام التشغيل الخاص بك من صفحة الإصدارات.

  2. (اختياري) قم بتنزيل ملف checksums.txt للتحقق من سلامة الأرشيف

root@kitploit:~
# التحقق من المجموع الاختباري للأرشيف الذي تم تنزيله
$ shasum -a 256 gokart_${VERSION}_${ARCH}.tar.gz
b05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22  gokart_${VERSION}_${ARCH}.tar.gz

$ cat gokart_${VERSION}_${ARCH}_checksums.txt | grep gokart_${VERSION}_${ARCH}.tar.gz
b05c4d7895be260aa16336f29249c50b84897dab90e1221c9e96af9233751f22  gokart_${VERSION}_${ARCH}.tar.gz
  1. قم باستخراج الأرشيف الذي تم تنزيله
root@kitploit:~
$ tar -xvf gokart_${VERSION}_${ARCH}.tar.gz
  1. انقل الملف الثنائي gokart إلى مسارك:
root@kitploit:~
$ mv ./gokart /usr/local/bin/

الاستنساخ والبناء بنفسك

root@kitploit:~
# استنساخ مستودع GoKart
$ git clone https://github.com/praetorian-inc/gokart.git

# انتقل إلى دليل المستودع وقم بالبناء
$ cd gokart
$ go build

# انقل الملف الثنائي gokart إلى مسارك
$ mv ./gokart /usr/local/bin

دعم Docker

قم ببناء صورة Docker

root@kitploit:~
docker build -t gokart .

تشغيل الحاوية مع فحص محلي (يجب تركيب دليل الفحص المحلي على صورة الحاوية)

root@kitploit:~
docker run -v /path/to/scan-dir:/scan-dir gokart scan /scan-dir

تشغيل الحاوية مع فحص عن بُعد (عند تحديد مفتاح خاص للمصادقة، يجب أيضًا تركيبه على الحاوية)

root@kitploit:~
docker run gokart scan -r https://github.com/praetorian-inc/gokart

# تحديد مفتاح خاص لمصادقة ssh للمستودعات الخاصة
docker run -v /path/to/key-dir/:/key-dir gokart scan -r [email protected]:praetorian-inc/gokart.git -k /key-dir/ssh_key

الاستخدام

تشغيل GoKart على وحدة Go في الدليل الحالي

root@kitploit:~
# التشغيل دون تحديد دليل يجعله يستخدم '.' بشكل افتراضي
gokart scan <flags>

فحص وحدة Go في دليل مختلف

root@kitploit:~
gokart scan <directory> <flags> 

الحصول على المساعدة

root@kitploit:~
gokart help

البدء - فحص تطبيق مثال

يمكنك اتباع الخطوات أدناه لتشغيل GoKart على Go Test Bench، وهو تطبيق Go ضعيف عن قصد من فريق Contrast Security.

root@kitploit:~
# استنساخ التطبيق الضعيف المثال
git clone https://github.com/Contrast-Security-OSS/go-test-bench.git
gokart scan go-test-bench/

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

لاختبار بعض ميزات GoKart الإضافية، يمكنك الفحص باستخدام أعلام سطر الأوامر المقترحة أدناه.

root@kitploit:~
# استخدام علم verbose لإظهار التتبع الكامل لهذه الثغرات الأمنية
gokart scan go-test-bench/ -v

# استخدام علم globalsTainted لتجاهل المصادر النظيفة في القائمة البيضاء
# قد يزيد من النتائج الإيجابية الكاذبة
gokart scan go-test-bench/ -v -g

# استخدام علم debug لعرض معلومات التحليل الداخلية
# المفيدة للتطوير وتصحيح الأخطاء
gokart scan go-test-bench/ -d

# إخراج النتائج بتنسيق sarif
gokart scan go-test-bench/ -s

# إخراج النتائج إلى ملف
gokart scan go-test-bench/ -o gokart-go-test-bench.txt

# إخراج نتائج scarif إلى ملف
gokart scan go-test-bench/ -o gokart-go-test-bench.txt -s

# فحص مستودع عام عن بُعد
# سيتم استنساخ المستودع محلياً وفحصه وحذفه بعد ذلك
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -v

# تحديد الفرع البعيد لفحصه
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -b actions_fix

# فحص مستودع خاص عن بُعد عبر ssh
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git 

# فحص مستودع خاص عن بُعد وتحديد مفتاح لمصادقة ssh اختيارياً
gokart scan -r [email protected]:Contrast-Security-OSS/go-test-bench.git -k /home/gokart/.ssh/github_rsa_key

# استخدام أعلام الفحص عن بُعد والإخراج معاً لمراجعات أمنية سلسة
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -v 

# استخدام أعلام الفحص عن بُعد والإخراج وsarif للتكامل السلس مع CI/CD
gokart scan -r https://github.com/ShiftLeftSecurity/shiftleft-go-demo -o gokart-shiftleft-go-demo.txt -s

لاختبار قابلية توسيع GoKart، يمكنك تعديل ملف التكوين الذي يستخدمه GoKart لإدخال مصب ضعيف جديد في التحليل. يوجد محلل اختبار مصب (Test Sink) معرف في ملف التكوين الافتراضي المضمن في util/analyzers.yml. قم بتعديل util/analyzers.yml لإزالة التعليقات على محلل Test Sink ثم قم بتوجيه GoKart لاستخدام ملف التكوين المعدل باستخدام العلم -i.

root@kitploit:~
# الفحص باستخدام ملف analyzers.yml المعدل وإخراج التتبع الكامل
gokart scan go-test-bench/ -v -i <path-to-gokart>/util/analyzers.yml

يجب أن يحتوي الإخراج الآن على ثغرات أمنية إضافية، بما في ذلك ثغرات جديدة "Test Sink reachable by user input".

تشغيل اختبارات GoKart

يمكنك تشغيل الاختبارات المضمنة باستخدام الأمر التالي، مع التشغيل من الدليل الجذر لـGoKart.

root@kitploit:~
go test -v ./...
تنزيل الأداة