
OWASP ASST (Automated Software Security Toolkit) | أداة فحص أمان ويب مفتوحة المصدر مبتكرة.
OWASP ASST (أداة أمان البرمجيات الآلية) | ماسح أمان ويب مفتوح المصدر جديد.
ملاحظة: AWSS هو الاسم الأقدم لـ ASST

أصبحت تطبيقات الويب جزءًا لا يتجزأ من الحياة اليومية، ولكن يتم نشر العديد من هذه التطبيقات بثغرات أمنية حرجة يمكن استغلالها بشكل مميت. مع تطور التقنيات المستخدمة في تطوير هذه التطبيقات، تطورت أيضًا تقنيات المهاجمين. لم يعد المهاجمون بحاجة إلى وصول مادي إلى الضحايا، يمكنهم مهاجمة أكثر من شخص في نفس الوقت واحتمالية القبض عليهم وتقديمهم للعدالة ضئيلة. تم استخدام أدوات فحص الثغرات الآلية للويب بشكل كبير لتقييم أمان تطبيقات الويب. يمكنها تحسين كفاءة فحص الثغرات مقارنة بالكشف اليدوي التقليدي الذي يستغرق وقتًا طويلاً ويحتاج إلى جهد كبير وغير فعال. هناك العديد من أدوات فحص ثغرات الويب على الإنترنت، لكنها لا تشرح الهجوم المحتمل وكيفية اتخاذ إجراءات مضادة ضده. قمنا بتصميم وتنفيذ أداة فحص ثغرات ويب آلية جديدة تسمى Automated Software Security Toolkit (ASST)، والتي تفحص الكود المصدري لمشروع ويب وتُنشئ تقريرًا بالنتائج مع شرح مفصل لكل ثغرة محتملة وكيفية تأمين النظام ضدها. اختبرنا أداء ASST، وقارنا نتائجها مع أدوات فحص الثغرات مفتوحة المصدر الرئيسية الأخرى. تظهر نتائجنا أن ASST يمكنها تحديد ثغرات أمان برمجيات الويب بشكل أكثر شمولاً ودقة.
ملاحظة: لا يزال قيد التطوير، يرجى الإبلاغ عن أي خطأ تواجهه.
ASST هي أداة مفتوحة المصدر لفحص الكود المصدري، وهي تطبيق واجهة سطر أوامر (CLI)، تم تطويره باستخدام JavaScript (إطار عمل Node.js). تركز حاليًا على لغتي البرمجة PHP و MySQL، ولكن نظرًا لأن وظائفها الأساسية جاهزة ومتاحة للجميع، يمكن للمبرمجين المساهمة وإضافة إضافات أو ملحقات لها، لإضافة ميزات وجعلها تفحص لغات برمجة أخرى مثل Java و C# و Python وما إلى ذلك، وإطارات عملها. لذا تم تصميم بنيتها التحتية لتكون قابلة للمساهمة من قبل مبرمجين آخرين لجعلها أفضل وأكثر ابتكارًا. على حد علمنا، ASST هي الأداة الوحيدة التي تفحص لغة PHP وفقًا لأهم 10 مخاطر أمان لتطبيقات الويب من OWASP.
عندما تفحص ASST مشروعًا، فإنها تتحقق من كل ملف سطرًا بسطر بحثًا عن ثغرات أمنية. إذا تم اكتشاف ثغرة، فستنبه في التقرير في أي سطر وفي أي ملف تم اكتشاف الثغرة مع رابط "Click Here" لشرح الهجوم وكيفية التأمين ضده. يتم عرض نتائج ASST كتقرير HTML مرتبط بملفات PDF لشرح كل هجوم وآلية الحماية منه.
لكي يعمل ASST بنسبة 100%، ستحتاج إلى تثبيت:
فيديو كامل لكيفية تشغيل ASST على ويندوز: https://youtu.be/FKxDa3zYz1E
يمكنك تنزيل XAMPP لويندوز من هنا: https://www.apachefriends.org/download.html اختر إصدار PHP الذي يناسب مشروعك، إذا كنت لا تعرف أي إصدار تختار، فاختر الأول لويندوز.
بعد تنزيل وتثبيت XAMPP (Next, Next, Next, Finish)، قم بتشغيل XAMPP Control Panel، يمكنك كتابة XAMPP في حقل بحث قائمة ابدأ وستجده، قم بتشغيله، بجانب ملصقي Apache و MySQL اضغط على start (زرين).
تأكد من عدم وجود برنامج Virtual Machine مثبتًا على جهاز الكمبيوتر الخاص بك لأن XAMPP و Virtual Machine يتعارضان على المنافذ، ستحتاج إلى إغلاق خدمات الخلفية لـ VM بالقوة باستخدام Task Manager (ابحث في Google، إذا كنت لا تعرف ما الذي أتحدث عنه).
تأكد من إغلاق برنامج Skype (حتى من شريط المهام)، لأنهم أيضًا يتعارضون على المنافذ، يمكنك تشغيل skype بعد بدء تشغيل XAMPP.
ضع مجلد مشروعك في htdocs: الافتراضي: "C:\xampp\htdocs\YourProjectFolderName"
افتح المتصفح، اكتب: localhost/phpmyadmin، أنشئ قاعدة بيانات فارغة، استورد ملف project_database.sql الخاص بك إليها، افتح مجلد مشروعك وقم بتغيير ملف الإعدادات الخاص بمشروعك للاتصال بـ MySQL المحلي: الإعدادات الافتراضية هي: host: "localhost" أو "127.0.0.1"، username: "root"، password: "" (سلسلة فارغة)، database name: "dbname_you_chose_in_phpmyadmin"
يجب عليك تنزيل إصدار معين من Node.js لويندوز من هنا: https://nodejs.org/en/blog/release/v12.13.0/ اختر (Windows 64-bit Installer)، ثم قم بالتنزيل، Next, Next, Next و Finish.
نحن لا نواكب ترقيات nodejs كل شهر، لذا إذا كنت ترغب في اختبارها بنفسك، يمكنك تنزيل أحدث إصدار من node.js من هنا: https://nodejs.org/en/download/ اختر (Windows Installer (.msi))، قم بالتنزيل وتشغيله، Next, Next, Next و Finish.
قم بتنزيل واستخراج مشروع ASST من صفحة github هذه، أعد تسمية المجلد إلى "ASST" فقط، وليس "ASST-main"، انقل مجلد ASST بجوار مشروع الويب الخاص بك لفحصه، الافتراضي: "C:\xampp\htdocs\ASST"
افتح config.js داخل مجلد ASST واضبط اسم مجلد مشروع الويب الخاص بك ليتم فحصه في متغير DEFAULT_PROJECT_PATH_TO_SCAN.
افتح config_php_lang.js داخل مجلد ASST: إذا كنت تستخدم MySQL، فيجب عليك تعيين المتغيرات كما هو موضح في الملف، إذا كنت لا تستخدم MySQL، فقط اضبط متغير IS_DBMS_USED على false، وتجاهل الباقي، لاحظ أن PHP_EXE_BIN_PATH مضبوط على الموقع الافتراضي لـ XAMPP، لذا قم بتغييره إذا كنت تستخدم ثنائي PHP مختلفًا أو موقع XAMPP مختلفًا.
انقر نقرًا مزدوجًا على ASST.bat لتشغيله. إذا تم حظره بواسطة Windows Defender Smart Screen، اسمح له بالنقر فوق More Info ثم Run أو Run Anyway، أو يمكنك تشغيله باستخدام أمر CMD.
قم بتشغيل هذا الأمر مرة واحدة لتثبيت node_modules لهذا المشروع:
$ cd C:\xampp\htdocs\ASST && npm install
الأمر الافتراضي لـ CMD لتشغيل ASST:
$ node C:\xampp\htdocs\ASST\main.js
فيديو كامل لكيفية تشغيل ASST على أوبونتو: https://youtu.be/XrAB8_BHxfo
باستخدام متصفح ويب، افتح هذا الرابط: https://www.apachefriends.org/download.html وابحث عن قسم "XAMPP for Linux"، اختر إصدار PHP الذي يناسب مشروعك وقم بتنزيله، إذا كنت لا تعرف أي إصدار تختار، فاختر الأول. أو يمكنك تنزيل XAMPP عبر الطرفية باستخدام أمر "wget"، ولكن ستحتاج إلى معرفة رابط الإصدار الصحيح للتنزيل.
الآن العمل في الطرفية:
$ cd Downloads
$ ls
يجب أن ترى ملف إعداد XAMPP الذي قمت بتنزيله.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
انتظر لحظة حتى يعمل الإعداد، ثم اتبع التعليمات. بعد تنزيل وتثبيت XAMPP، قم بتشغيله.
$ sudo /opt/lampp/lampp start
ضع مجلد مشروعك في htdocs: الافتراضي: "/opt/lampp/htdocs/YourProjectFolderName"
افتح المتصفح، اكتب: localhost/phpmyadmin، أنشئ قاعدة بيانات فارغة، استورد ملف project_database.sql الخاص بك إليها، افتح مجلد مشروعك وقم بتغيير ملف الإعدادات الخاص بمشروعك للاتصال بـ MySQL المحلي: الإعدادات الافتراضية هي: host: "localhost" أو "127.0.0.1"، username: "root"، password: "" (سلسلة فارغة)، database name: "dbname_you_chose_in_phpmyadmin"
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
يجب عليك تعيين إصدار معين من Node.js لجعل ASST يعمل بدون أي مشكلة.
$ sudo npm install n -g
$ sudo n 12.13.0
نحن لا نواكب ترقيات nodejs كل شهر، لذا إذا كنت ترغب في اختبارها بنفسك، يمكنك تجاهل آخر أمرين لتثبيت "n" باستخدام npm
قم بتنزيل واستخراج مشروع ASST من صفحة github هذه، باستخدام متصفح أو wget أو git، أعد تسمية المجلد إلى "ASST" فقط، وليس "ASST-main"، انقل مجلد ASST بجوار مشروع الويب الخاص بك لفحصه، الافتراضي: "/opt/lampp/htdocs/ASST"
افتح config.js داخل مجلد ASST باستخدام nano أو vim أو محرر نصوص واضبط اسم مجلد مشروع الويب الخاص بك ليتم فحصه في متغير DEFAULT_PROJECT_PATH_TO_SCAN.
افتح config_php_lang.js داخل مجلد ASST: إذا كنت تستخدم MySQL، فيجب عليك تعيين المتغيرات كما هو موضح في الملف، إذا كنت لا تستخدم MySQL، فقط اضبط متغير IS_DBMS_USED على false، وتجاهل الباقي، لاحظ أن PHP_EXE_BIN_PATH مضبوط على الموقع الافتراضي لـ XAMPP، لذا قم بتغييره إذا كنت تستخدم ثنائي PHP مختلفًا أو موقع XAMPP مختلفًا.
قم بتشغيل هذا الأمر مرة واحدة لتثبيت node_modules لهذا المشروع:
$ cd /opt/lampp/htdocs/ASST && sudo npm install
لتشغيل ASST، الأمر الافتراضي:
$ sudo node /opt/lampp/htdocs/ASST/main.js
فيديو كامل لكيفية تشغيل ASST على ماك: https://youtu.be/IThRZEQVa7M
باستخدام متصفح ويب، افتح هذا الرابط: https://www.apachefriends.org/download.html وابحث عن قسم "XAMPP for OSX"، اختر إصدار PHP الذي يناسب مشروعك وقم بتنزيله، إذا كنت لا تعرف أي إصدار تختار، فاختر الأول.
افتح مجلد Downloads وانقر نقرًا مزدوجًا على ملف xampp-osx-.dmg الذي قمت بتنزيله. ثم قم بالتثبيت: Next, Next, Next, Finish.
بعد التثبيت، افتح مجلد Applications باستخدام Finder وافتح مجلد XAMPP، انقر على manager-osx.app لفتح XAMPP Control Panel، انقر على علامة التبويب Manage Servers ثم انقر على Start All.
ضع مجلد مشروعك في htdocs:
افتح المتصفح، اكتب: localhost/phpmyadmin، أنشئ قاعدة بيانات فارغة، استورد ملف project_database.sql الخاص بك إليها، افتح مجلد مشروعك وقم بتغيير ملف الإعدادات الخاص بمشروعك للاتصال بـ MySQL المحلي: الإعدادات الافتراضية هي: host: "localhost" أو "127.0.0.1"، username: "root"، password: ""، (سلسلة فارغة)، database name: "dbname_you_chose_in_phpmyadmin"
هناك عدة طرق لتنزيل وتثبيت Node.js على ماك محددة هنا: https://nodejs.org/en/download/package-manager/#macos
استخدمنا: brew (نظام حزم)، افتح الطرفية:
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
يجب عليك تعيين إصدار معين من Node.js لجعل ASST يعمل بدون أي مشكلة.
$ sudo npm install n -g
$ sudo n 12.13.0
نحن لا نواكب ترقيات nodejs كل شهر، لذا إذا كنت ترغب في اختبارها بنفسك، يمكنك تجاهل آخر أمرين لتثبيت "n" باستخدام npm
قم بتنزيل واستخراج مشروع ASST من صفحة github هذه، باستخدام متصفح أو git، أعد تسمية المجلد إلى "ASST" فقط، وليس "ASST-main"، انقل مجلد ASST بجوار مشروع الويب الخاص بك لفحصه، الافتراضي: "/Applications/XAMPP/htdocs/ASST"
افتح config.js داخل مجلد ASST باستخدام محرر نصوص، ضع اسم مجلد مشروع الويب الخاص بك ليتم فحصه في متغير DEFAULT_PROJECT_PATH_TO_SCAN.
افتح config_php_lang.js داخل مجلد ASST: إذا كنت تستخدم MySQL، فيجب عليك تعيين المتغيرات كما هو موضح في الملف، إذا كنت لا تستخدم MySQL، فقط اضبط متغير IS_DBMS_USED على false، وتجاهل الباقي، لاحظ أن PHP_EXE_BIN_PATH مضبوط على الموقع الافتراضي لـ XAMPP، لذا قم بتغييره إذا كنت تستخدم ثنائي PHP مختلفًا أو موقع XAMPP مختلفًا.
قم بتشغيل هذا الأمر مرة واحدة لتثبيت node_modules لهذا المشروع:
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
لتشغيل ASST، الأمر الافتراضي:
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
شكر خاص لكل من:
لجعل هذه الأداة ممكنة من خلال تقديم توجيههم ومساعدتهم.