
Dawn هو ماسح أمني للتحليل الثابت لتطبيقات الويب المكتوبة بلغة Ruby. يدعم أطر العمل Sinatra وPadrino وRuby on Rails.
dawn هو ماسح كود مصدري مصمم لمراجعة تطبيقات الويب الخاصة بك عن مشكلات أمنية.
الأداة قادرة على فحص تطبيقات الويب المكتوبة بلغة Ruby وتدعم جميع أطر MVC (Model View Controller) الرئيسية، خارج الصندوق:
إصدار dawn 2.0 يحتوي على أكثر من 680 فحصًا أمنيًا محملة في قاعدة معرفته والتي يتم تحديثها أسبوعيًا من National Vulnerability Database بواسطة NIST.
عند تشغيل dawn على الكود الخاص بك، فإنه يحلل ملف Gemfile.lock الخاص بمشروعك بحثًا عن الجِمس المستخدمة ويحاول اكتشاف إصدار مترجم روبي الذي تستخدمه أو الذي أعلنته في أداة إدارة إصدار روبي التي تفضلها (RVM, rbenv, ...).
ثم تحاول الأداة اكتشاف إطار MVC الذي يستخدمه تطبيق الويب الخاص بك وتطبق الفحص الأمني وفقًا لذلك. هناك فحوصات مصممة لمطابقة تطبيقات Rails أو فحوصات قابلة للتطبيق على أي كود روبي.
يمكن لـ dawn أيضًا فهم الكود في قوالب العرض (views) وتتبع مسارات البيانات (sinks) لاكتشاف ثغرات cross site scripting و sql injections التي تم إدخالها بواسطة الكود الذي كتبته فعليًا (في خريطة طريق المشروع، هذا هو الكود الذي سيكون محور معظم جهود التطوير المستقبلية).
نتيجة فحص dawn الأمني هي قائمة من الثغرات مع بعض الإجراءات التخفيفية التي يمكنك اتباعها لبناء تطبيق ويب أكثر قوة.
يمكنك تثبيت أحدث إصدار من dawn، عن طريق جلبه من Rubygems عن طريق كتابة:
$ gem install dawnscanner
بعد ذلك، تحتاج إلى تنزيل قاعدة المعرفة من GitHub وفك ضغط الأرشيف إلى الدليل $HOME/dawnscanner/kb.
تخطيط دليل kb النموذجي مشابه لهذا:
$ ll ~/dawnscanner/kb
total 56K
drwxr-xr-x 2 thesp0nge users 28K 29 mar 18.27 bulletin
drwxr-xr-x 2 thesp0nge users 72 7 lug 2021 generic_check
-rw-r--r-- 1 thesp0nge users 65 29 mar 17.06 kb.yaml
-rw-r--r-- 1 thesp0nge users 74 29 mar 17.06 kb.yaml.sig
drwxr-xr-x 2 thesp0nge users 4,0K 7 lug 2021 owasp_ror_cheatsheet
قاعدة المعرفة منظمة بهذه الطريقة:
بدءًا من الإصدار 2.0، تستخدم الأداة أوامر فرعية لبدء مهام محددة، كل منها يحتوي على رسائل مساعدة محددة.
الأمر الفرعي scan يطلب من dawn فحص الهدف المحدد بحثًا عن مشكلات أمنية.
$ dawn scan target
في الوقت الحالي، النتائج متاحة بتنسيق نصي فقط ويتم تخزينها في دليل يُسمى باستخدام الطابع الزمني للمسح، تحت $HOME/dawnscanner/results/target، حيث target هو اسم التطبيق الذي يتم تحليله.
من الممكن، باستخدام الأمر الفرعي kb، الاستعلام عن قاعدة المعرفة.
dawn kb find # يبحث في قاعدة المعرفة عن ثغرة معينة
dawn kb help [COMMAND] # يصف الأوامر الفرعية أو أمرًا فرعيًا محددًا
dawn kb lint # يتحقق من محتوى قاعدة المعرفة من الصحة
dawn kb list gem_name[gem_version] # يسرد جميع المشكلات الأمنية التي تؤثر على gem تم تمريره كوسيطة (سلسلة الإصدار اختيارية).
dawn kb status # يتحقق من حالة قاعدة المعرفة
dawn kb unpack # يفك ضغط الفحوصات الأمنية في مسار مكتبة KB
ملف تويتر: @dawnscanner مستودع GitHub: https://github.com/thesp0nge/dawnscanner
التعليقات رائعة ونحن نحب حقًا سماع صوتك.
إذا كنت مستخدمًا فخورًا لـ dawn، إذا وجدته مفيدًا، إذا قمت بدمجه في عملية الإصدار الخاصة بك وإذا كنت ترغب في دعم المشروع بشكل علني، يمكنك وضع مرجعك هنا. فقط افتح issue مع بيان يوضح شعورك تجاه الأداة وشعار شركتك إن وجد.
شكرًا لك.
saten: أول issue تم نشرها عن خطأ مطبعي في README
presidentbeef: لعمله المتميز الذي ألهمني لإنشاء dawn وللتأكد من مصفوفة المقارنة. Issue #2 لك :)
marinerJB: لتقارير الأخطاء المتنوعة والأفكار الإضافية
Matteo: لأفكار حول API واستخدامها مع هوكات github.com
Copyright (c) 2013-2023 Paolo Perego [email protected]
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.