
منصة أمن واجهات برمجة التطبيقات (API) مفتوحة المصدر للاكتشاف المستمر لواجهات برمجة التطبيقات، واختبار الثغرات الأمنية، وكشف التهديدات في زمن التشغيل. تتكامل مع خطوط CI/CD وتغطي OWASP Top 10 مع أكثر من 1000 اختبار مدمج.
<a href="https://artifacthub.io/packages/search?repo=akto" _target="blank">
<img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/akto"/>
</a>
<a href="https://www.akto.io/blog/akto-takes-center-stage-at-black-hat-2023-in-las-vegas" _target="blank">
<img src="https://img.shields.io/badge/Black_Hat_Arsenal-USA_2023-blue?style=square"/>
</a>
<a href="https://www.akto.io/blog/akto-presentation-at-defcon-2023-in-las-vegas" _target="blank">
<img src="https://img.shields.io/badge/Defcon-USA_2023-blue?style=square"/>
</a>
<br/>
<a href="https://github.com/akto-api-security/akto/commits/master" _target="blank">
<img src="https://img.shields.io/github/commit-activity/m/akto-api-security/akto?label=commits&logo=github"/>
</a>
<a href="https://github.com/akto-api-security/akto/releases" _target="blank">
<img src="https://img.shields.io/github/release-date/akto-api-security/akto?label=latest%20release&logo=docker"/>
</a>
<a href="https://discord.gg/Wpc6xVME4s" _target="blank">
<img src="https://img.shields.io/discord/1070706429402562733?logo=Discord"/>
</a>
<a href="https://hub.docker.com/r/aktosecurity/akto-api-security-dashboard/tags?page=1&name=local" _target="blank">
<img src="https://img.shields.io/docker/image-size/aktosecurity/akto-api-security-dashboard?logo=docker"/>
</a>
<a href="https://github.com/akto-api-security/akto/issues?q=label%3Ahackfest" _target="blank">
<img src="https://img.shields.io/github/issues/akto-api-security/akto/hackfest?logo=github"/>
</a>
<!--a href="https://hub.docker.com/r/aktosecurity/akto-api-security-dashboard" _target="blank">
<img src="https://img.shields.io/docker/pulls/aktosecurity/akto-api-security-dashboard?logo=docker"/>
</a-->
<a href="https://hub.docker.com/r/aktosecurity/akto-api-security-dashboard" _target="blank">
<img src="https://img.shields.io/badge/Docker_pulls-10K+-blue?logo=docker"/>
</a>
# Akto.io أمن واجهات برمجة التطبيقات
## المساهمون
<a href="https://github.com/akto-api-security/akto/graphs/contributors">
<img src="https://contrib.rocks/image?repo=akto-api-security/akto" />
</a>
# ما هو Akto؟
[كيف يعمل](https://docs.akto.io/#how-it-works) • [البدء](https://docs.akto.io/#how-to-get-started) • [مخزون واجهات برمجة التطبيقات](https://docs.akto.io/api-inventory/api-collections) • [اختبار واجهات برمجة التطبيقات](https://docs.akto.io/testing/run-test) • [إضافة اختبار](https://docs.akto.io/testing/test-library) • [انضم إلى مجتمع Discord](https://discord.com/invite/Wpc6xVME4s) •
Akto هي منصة أمنية مفتوحة المصدر وفورية لواجهات برمجة التطبيقات، لا يستغرق البدء بها سوى 60 ثانية. تستخدم فرق الأمان Akto للحفاظ على مخزون مستمر من واجهات برمجة التطبيقات، واختبارها بحثاً عن الثغرات الأمنية، واكتشاف مشكلات وقت التشغيل. تغطي Akto جميع فئات OWASP Top 10 وHackerOne Top 10 بما في ذلك BOLA والمصادقة وSSRF وXSS والإعدادات الأمنية وغيرها. يشغّل محرك الاختبار القوي في Akto مجموعة متنوعة من اختبارات منطق الأعمال من خلال قراءة بيانات الحركة المرورية لفهم نمط حركة واجهات برمجة التطبيقات، مما يؤدي إلى تقليل النتائج الإيجابية الخاطئة. يمكن لـ Akto التكامل مع مصادر متعددة للحركة المرورية - burpsuite وAWS وpostman وGCP والبوابات وغيرها. إليكم [خارطة الطريق العامة](https://github.com/orgs/akto-api-security/projects/8) الخاصة بنا لهذا الربع.
تمكّن Akto فرق الأمان والهندسة من تأمين واجهات برمجة التطبيقات الخاصة بهم من خلال ثلاثة أمور:
1. [مخزون واجهات برمجة التطبيقات](https://docs.akto.io/api-inventory/api-collections)
2. [تشغيل اختبارات منطق الأعمال في CI/CD](https://docs.akto.io/testing/run-test)
3. [اكتشاف الثغرات الأمنية في وقت التشغيل](https://docs.akto.io/api-inventory/sensitive-data)
https://user-images.githubusercontent.com/91306853/216407351-d18c396b-5cd0-4cbc-a350-10a76b1d67b3.mp4
## كيف يعمل؟
الخطوة 1: إنشاء المخزون
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
الخطوة 2: تشغيل الاختبارات
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
## كيف تبدأ؟
### استخدام docker-compose (يعمل على أي جهاز مثبت عليه Docker)
شغّل الأوامر التالية لتثبيت Akto. ستحتاج إلى تثبيت curl وDocker لتشغيل الحاوية..
1. استنسخ مستودع Akto باستخدام هذا الأمر `git clone https://github.com/akto-api-security/akto.git`
2. انتقل إلى المجلد المستنسخ `cd akto`
3. شغّل `docker-compose up -d`
<details>
<summary><h4>إذا كنت تقوم بإعداد هذا في السحابة الخاصة بك (AWS/GCP/Heroku)، فاقرأ هذا القسم</h4></summary>
يرجى التأكد مما يلي لاتباع ممارسات أمنية جيدة
1. افتح قاعدة الأمان للاتصالات الواردة للمنفذ 9090 فقط. واقتصر CIDR المصدر على CIDR الخاص بـ VPC أو عنوان IP الخاص بك فقط.
2. استخدم EC2 من شبكة فرعية خاصة -
أ. بهذه الطريقة، لن يتمكن أي شخص من إرسال طلب وارد إلى جهازك.
ب. تأكد من أن هذه الشبكة الفرعية الخاصة لديها إمكانية الوصول إلى الإنترنت حتى تنجح الاتصالات الصادرة!
ج. قد تحتاج إلى إعداد نفق للوصول إلى المثيل عبر VPN باستخدام `ssh -i pemfile ec2-user@vpn-public-instance -L 9090:private-instance:9090`
د. في متصفحك، قم بزيارة `http://private-instance:9090`
3. استخدم EC2 من شبكة فرعية عامة - من فضلك لا تفعل! إذا كنت لا تزال ترغب في القيام بذلك، يمكنك تخطي 2.ب و2.ج. ببساطة قم بالوصول إلى مثيلك عبر `http://ip:9090`
تكون Akto قوية حقاً في النشر السحابي إذا كان بإمكانك توفير حركة المرور المعكوسة لتطبيقك (بدون أي تأثير على الأداء). ستتمكن أيضاً من جدولة الاختبارات في CI/CD ودعوة المزيد من أعضاء الفريق إلى لوحة التحكم. للقيام بذلك، يجب تثبيت إصدار Akto للمؤسسات المتاح [هنا](https://stairway.akto.io). اقرأ المزيد عنه [هنا](https://www.akto.io/pricing)
</details>
## دروس اختبار أمن واجهات برمجة التطبيقات
| العنوان | الرابط |
| ------------- | ------------- |
| مقدمة | https://www.youtube.com/watch?v=oFt4OVmfE2s |
| **الدرس 1:** فحص المنافذ عبر SSRF (OWASP API7:2023) | https://www.youtube.com/watch?v=WjNNh6asAD0 |
## التطوير والمساهمة
<details>
<summary><h3>إعداد سريع باستخدام حاويات التطوير في VSCode</h3></summary>
### المتطلبات الأساسية:
1. [تثبيت VSCode](https://code.visualstudio.com/)
2. [تثبيت إضافة Dev Containers الخاصة بـ VSCode](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
3. **ويندوز:** [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+ على ويندوز 10 برو/إنتربرايز. يتطلب ويندوز 10 هوم (2004+) إصدار Docker Desktop 2.3+ والواجهة الخلفية [WSL 2](https://aka.ms/vscode-remote/containers/docker-wsl2).
4. **macOS**: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+.
5. **لينكس**: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ و[Docker Compose](https://docs.docker.com/compose/install) 1.21+.
**ملاحظة**: إذا كنت تستخدم Docker Desktop، ففكر في تغيير تخصيص الذاكرة إلى 8 جيجابايت للحصول على أداء أفضل
### الخطوات:
#### استنساخ المستودع وفتحه في VSCode
1. افتح الطرفية
2. `mkdir ~/akto_code`
3. `cd ~/akto_code`
4. `git clone https://github.com/akto-api-security/akto`
5. افتح في VSCode: `code akto`
#### تشغيل حاوية التطوير
1. انتقل إلى View > Command Palette واكتب: Dev Containers: Reopen in Container
<img src="https://assets.kitploit.com/production/public/readmes/6063/55316a486d156017f3282896483e4ec8fa41a3f3a65bb3f8987ca169e55451ac.png"></img>
2. انتظر حتى يتم إعداد حاوية التطوير.
3. افتح **localhost:9090** في متصفح الويب الخاص بك لرؤية لوحة تحكم Akto
</details>
<details>
<summary><h3> تعليمات الإعداد اليدوي</h3> </summary>
### المتطلبات الأساسية
OpenJDK 8، node(v18.7.0+ [الرابط](https://nodejs.org/download/release/v18.7.0/))، npm(v8.15.0+)، maven (v3.6.3 [الرابط](https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/))، MongoDB (v5.0.3+ [الرابط](https://www.mongodb.com/docs/manual/administration/install-community/))
#### استنساخ المستودع
1. `mkdir ~/akto_code`
2. `cd akto_code`
3. `git clone https://github.com/akto-api-security/akto`
#### إعداد قاعدة البيانات
1. `افتح علامة تبويب طرفية جديدة`
2. `cd ~`
3. `mkdir ~/akto_mongo_data`
4. `<path_to_mongo_folder>/bin/mongod --dbpath ~/akto_mongo_data`
#### إعداد الواجهة الأمامية
1. `افتح علامة تبويب طرفية جديدة`
2. `cd ~/akto_code/akto`
3. `cd apps/dashboard/web/polaris_web`
4. `npm install`
5. `npm run hot`
#### إعداد لوحة التحكم
1. `افتح علامة تبويب طرفية جديدة`
2. `cd ~/akto_code/akto`
3. `export AKTO_MONGO_CONN="mongodb://localhost:27017"`
4. `export DASHBOARD_MODE="local_deploy"`
5. `mvn clean install`
6. `mvn --projects :dashboard --also-make jetty:run -Djetty.port=9090`
#### إعداد الاختبار
1. `افتح علامة تبويب طرفية جديدة`
2. `cd ~/akto_code/akto`
3. `cd apps/testing`
4. `export AKTO_MONGO_CONN="mongodb://localhost:27017"`
5. `mvn compile; mvn exec:java -Dexec.mainClass="com.akto.testing.Main"`
</details>
#### استخدام أداة CLI للاختبار
شغّل الأمر التالي لتشغيل أداة CLI للاختبار
```bash
docker run -v ./:/out \ # needed to generate test report on host machine
-e TEST_IDS='JWT_NONE_ALGO REMOVE_TOKENS' \ # space separated test ids
-e AKTO_DASHBOARD_URL='<AKTO_DASHBOARD_URL>' \
-e AKTO_API_KEY='<AKTO_API_KEY>' \
-e API_COLLECTION_ID='123' \ # api collection id on which you want to run tests
-e TEST_APIS='https://demo.com/api/books https://demo.com/api/cars' \ # space separated apis from the api collection on which you want to run tests. If not present, all apis in the collection will be tested. [optional]
-e OVERRIDE_APP_URL='https://dummy.com' \ # If you want to test on a separate host. [optional]
aktosecurity/akto-api-testing-cli
```
### جرّب بنفسك
1. افتح `localhost:9090` في متصفحك المفضل
2. ستحتاج إلى إنشاء حساب عند تسجيل الدخول لأول مرة، ومن المرة التالية فصاعداً يمكنك تسجيل الدخول
<details>
<summary><h3>تصحيح الأخطاء</h3></summary>
1. لتصحيح أخطاء الواجهة الأمامية، ثبّت إضافة Vue.js لمتصفح Chrome من [هنا](https://devtools.vuejs.org/guide/installation.html).
2. لتصحيح أخطاء الواجهة الخلفية، شغّل ما يلي قبل تشغيل خادم الويب -
أ. عيّن متغير MAVEN_OPTS لتمكين تصحيح الأخطاء في عملية جافا الخاصة بك
export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081, -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.rmi.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
ب. في Visual Studio Code، انقر على أي رقم سطر لتعيين نقطة توقف.
ج. اربط مصحح أخطاء جافا من وضع Run and Debug. إذا كنت تفعل هذا لأول مرة، انقر على "Create launch.json file" ثم "Add configuration". اختر "Java: Attach process by ID" واحفظ الملف. <br/>
<img width="426" alt="img1" src="https://assets.kitploit.com/production/public/readmes/6063/8066e85fcd60acda23d905ff2a64969cb39d640cff06738418d0f4d4d864b990.png"><br/>
د. ستظهر قائمة بعمليات جافا الجارية. حدد عملية خادم الويب لربط مصحح الأخطاء
</details>
<a href="https://hits.sh/github.com/akto-api-security/hits.svg?label=Hits%20since%2020%2F5&color=FFFFFF&labelColor=FFFFFF"><img alt="Hits" src="https://hits.sh/github.com/akto-api-security/hits.svg?label=Hits%20since%2020/5&color=FFFFFF&labelColor=FFFFFF"/></a>
## المساهمة
نرحب بالمساهمات في هذا المشروع. يرجى قراءة [CONTRIBUTING.md](https://github.com/akto-api-security/akto/blob/master/CONTRIBUTING.md) لمزيد من المعلومات حول كيفية المشاركة.
## الترخيص
هذا المشروع مرخص بموجب [رخصة MIT](https://github.com/akto-api-security/akto/blob/master/LICENSE.md).