
أداة لإدارة الأصول والثغرات المؤسسية، مع تكامل مع Jira، مصممة لإنشاء تقارير أمن التطبيقات.
أداة إدارة الأصول والثغرات المؤسسية، مع تكامل Jira، مصممة لإنشاء تقارير أمن التطبيقات.
يرجى ملاحظة أن هذا المشروع لا يزال في مرحلة التطوير المبكر.


.env وقدم الخصائص التالية:MYSQL_DATABASE="bulwark"
MYSQL_PASSWORD="bulwark"
MYSQL_ROOT_PASSWORD="bulwark"
MYSQL_USER="root"
MYSQL_DB_CHECK="mysql"
DB_PASSWORD="bulwark"
DB_URL="172.16.16.3"
DB_ROOT="root"
DB_USERNAME="bulwark"
DB_PORT=3306
DB_NAME="bulwark"
DB_TYPE="mysql"
NODE_ENV="production"
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY="changeme"
JWT_REFRESH_KEY="changeme"
CRYPTO_SECRET="changeme"
CRYPTO_SALT="changeme"
بناء وبدء حاويات Bulwark:
docker-compose up
بدء/إيقاف حاويات Bulwark:
docker-compose start
docker-compose stop
إزالة حاويات Bulwark:
docker-compose down
سيكون Bulwark متاحًا على localhost:4500
$ git clone (url)
$ cd bulwark
$ npm install
سيؤدي تشغيل npm install إلى تثبيت وحدات الخادم والعميل. علاوة على ذلك، سيقوم بتشغيل البرنامج النصي npm run config الذي سيضبط متغيرات البيئة ديناميكيًا بالإضافة إلى تحديث بيئة Angular.
اضبط NODE_ENV="development"
$ npm run config
$ npm run start:dev
اضبط NODE_ENV="production"
يرجى ملاحظة: npm install سيقوم تلقائيًا بالبناء في وضع الإنتاج
$ npm run config
$ npm run build:prod
$ npm start
قم بإنشاء ملف .env في الدليل الجذر. سيتم تحليله باستخدام dotenv بواسطة التطبيق.
DB_PASSWORDDB_PASSWORD="somePassword"
اضبط هذا المتغير على كلمة مرور قاعدة البيانات
DB_USERNAMEDB_USERNAME="foobar"
اضبط هذا المتغير على اسم مستخدم قاعدة البيانات
DB_URLDB_URL=something-foo-bar.dbnet
اضبط هذا المتغير على عنوان URL لقاعدة البيانات
DB_PORTDB_PORT=3306
اضبط هذا المتغير على منفذ قاعدة البيانات
DB_NAMEDB_NAME="foobar"
اضبط هذا المتغير على اسم اتصال قاعدة البيانات
DB_TYPEDB_TYPE="mysql"
تم تطوير التطبيق باستخدام قاعدة بيانات MySQL. راجع وثائق typeorm لمزيد من خيارات قواعد البيانات.
NODE_ENVNODE_ENV=production
اضبط هذا المتغير لتحديد بيئة العقدة
DEV_URL="http://localhost:4200"يستخدمه Angular لبناء التطبيق وتقديمه
SERVER_ADDRESS="http://localhost"قم بالتحديث إذا كان عنوان خادم مختلف مطلوبًا
PORT=4500قم بالتحديث إذا كان منفذ خادم مختلف مطلوبًا
JWT_KEYJWT_KEY="changeMe"
اضبط هذا المتغير على سر JWT
JWT_REFRESH_KEYJWT_REFRESH_KEY="changeMe"
اضبط هذا المتغير على سر تجديد JWT
CRYPTO_SECRETCRYPTO_SECRET="randomValue"
اضبط هذا المتغير على كلمة مرور Scrypt.
CRYPTO_SALTCRYPTO_SECRET="randomValue"
اضبط هذا المتغير على ملح Scrypt.
.env فارغDB_PASSWORD=""
DB_URL=""
DB_USERNAME=""
DB_PORT=3306
DB_NAME=""
DB_TYPE=""
NODE_ENV=""
DEV_URL="http://localhost:4200"
SERVER_ADDRESS="http://localhost"
PORT=4500
JWT_KEY=""
JWT_REFRESH_KEY=""
CRYPTO_SECRET=""
CRYPTO_SALT=""
تثبيت sqlite3:
brew install sqlite3
تصدير متغيرات البيئة المتعلقة بالمترجم:
export LDFLAGS="-L/opt/homebrew/opt/sqlite/lib"
export CPPFLAGS="-I/opt/homebrew/opt/sqlite/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/sqlite/lib/pkgconfig"
export NODE_OPTIONS=--openssl-legacy-provider
التحضير لتثبيت جديد:
rm -rf node_modules
npm cache verify
npm i --force
$ npm run migration:init
$ npm run migration:run
يتم إنشاء حساب مستخدم عند بدء التشغيل الأولي بالبيانات التالية:
[email protected]changeMeعند تسجيل الدخول الأول، قم بتحديث كلمة مرور المستخدم الافتراضية ضمن قسم الملف الشخصي.
يستخدم التطبيق مبدأ الوصول بأقل صلاحية مع الترخيص القائم على الفريق. يتم تعيين دور للفرق يحدد الميزات المتاحة لذلك الفريق. سيرث المستخدم الأدوار من عضوية الفريق. يتمتع المسؤولون بإمكانية الوصول لإدارة الفريق ويجب عليهم تعيين المستخدمين للفرق. في البداية، يتم إنشاء المستخدمين بدون ارتباط بأي فريق ولن يكون لديهم إمكانية الوصول إلى أي ميزات في التطبيق.
تتضمن الأدوار الثلاثة:
يمكن ربط الفريق بمؤسسة واحدة فقط. ومع ذلك، يمكن ربط الفريق بعدة أصول ضمن نفس المؤسسة. يمكن للمستخدم أن يكون عضوًا في عدة فرق. إذا تم تعيين المستخدم لعدة فرق من نفس المؤسسة، فسيختار النظام الفريق الأعلى ترخيصًا.
يرجى ملاحظة: يتم تعيين المستخدم الافتراضي تلقائيًا إلى فريق Administrators عند بدء التشغيل الأولي
يمكن للمستخدم إنشاء مفتاح API واحد يمكن استخدامه بدلاً من رمز التفويض الخاص به. يسمح مفتاح API هذا بجميع الإجراءات ضد التطبيق التي يفوض المستخدم بها.
الملف الشخصي للمستخدمإنشاء مفتاح APIسينتج هذا الإجراء زوجًا من المفاتيح:
Bulwark-Api-Key
Bulwark-Secret-Key
اكتب المفاتيح التي تم إنشاؤها في مكان آمن. لن تتمكن من استرداد المفاتيح في وقت لاحق.
يجب مطابقة قيم زوج مفتاح API وإلحاقها برؤوس طلب HTTP التالية:
Bulwark-Api-KeyBulwark-Secret-Keyمثال:
GET /api/assessment/1 HTTP/1.1
Host: localhost:4500
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Bulwark-Api-Key: {{changeMe}}
Bulwark-Secret-Key: {{changeMe}}
Origin: http://localhost:4200
Connection: close
Referer: http://localhost:4200/
Pragma: no-cache
Cache-Control: no-cache
مساهمات السحب مرحب بها. للتغييرات الكبيرة، يرجى فتح قضية أولاً لمناقشة ما ترغب في تغييره. اقرأ إرشادات المساهمة لمزيد من المعلومات.
| مسؤول | مختبر | للقراءة فقط | |
|---|---|---|---|
| إدارة الملف الشخصي للمستخدم | x | x | x |
| إدارة الفريق | x | ||
| إدارة المستخدمين | x | ||
| دعوة مستخدم | x | ||
| إنشاء مستخدم | x | ||
| إدارة إعدادات البريد الإلكتروني | x | ||
| التكامل مع Jira | x | ||
| المؤسسة: قراءة | x | x | x |
| المؤسسة: كتابة كاملة | x | ||
| الأصل: قراءة | x | x | x |
| الأصل: كتابة كاملة | x | ||
| التقييم: قراءة | x | x | x |
| التقييم: كتابة كاملة | x | x | |
| الثغرة: قراءة | x | x | x |
| الثغرة: كتابة كاملة | x | x | |
| تصدير الثغرة إلى Jira | x | x | |
| إنشاء التقارير | x | x | x |