
Piattaforma open-source per la sicurezza delle API, progettata per il rilevamento continuo delle API, i test delle vulnerabilità e il rilevamento delle minacce in fase di esecuzione. Si integra con le pipeline CI/CD e copre la OWASP Top 10 con oltre 1000 test integrati.
<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 Sicurezza API
## Contributori
<a href="https://github.com/akto-api-security/akto/graphs/contributors">
<img src="https://contrib.rocks/image?repo=akto-api-security/akto" />
</a>
# Cos'è Akto?
[Come funziona](https://docs.akto.io/#how-it-works) • [Per iniziare](https://docs.akto.io/#how-to-get-started) • [Inventario API](https://docs.akto.io/api-inventory/api-collections) • [Test delle API](https://docs.akto.io/testing/run-test) • [Aggiungi test](https://docs.akto.io/testing/test-library) • [Unisciti alla community Discord](https://discord.com/invite/Wpc6xVME4s) •
Akto è una piattaforma open source e immediata per la sicurezza delle API che richiede solo 60 secondi per essere avviata. Akto è utilizzato dai team di sicurezza per mantenere un inventario continuo delle API, testare le API per individuare vulnerabilità e trovare problemi in fase di runtime. Akto offre copertura per tutte le categorie OWASP Top 10 e HackerOne Top 10, tra cui BOLA, autenticazione, SSRF, XSS, configurazioni di sicurezza, ecc. Il potente motore di test di Akto esegue una varietà di test di logica di business leggendo i dati del traffico per comprendere i pattern del traffico API, riducendo i falsi positivi. Akto può integrarsi con molteplici fonti di traffico: burpsuite, AWS, postman, GCP, gateway, ecc. Ecco la nostra [roadmap pubblica](https://github.com/orgs/akto-api-security/projects/8) per questo trimestre.
Akto consente ai team di sicurezza e ingegneria di proteggere le loro API facendo tre cose:
1. [Inventario API](https://docs.akto.io/api-inventory/api-collections)
2. [Esegui test di logica di business in CI/CD](https://docs.akto.io/testing/run-test)
3. [Trova vulnerabilità in run-time](https://docs.akto.io/api-inventory/sensitive-data)
https://user-images.githubusercontent.com/91306853/216407351-d18c396b-5cd0-4cbc-a350-10a76b1d67b3.mp4
## Come funziona?
Passo 1: Crea inventario
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
Passo 2: Esegui i test
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
## Come iniziare?
### Usando docker-compose (funziona su qualsiasi macchina con Docker installato)
Esegui i seguenti comandi per installare Akto. Avrai bisogno di avere curl e Docker installati per eseguire il container..
1. Clona il repository Akto usando questo comando `git clone https://github.com/akto-api-security/akto.git`
2. Vai nella directory clonata `cd akto`
3. Esegui `docker-compose up -d`
<details>
<summary><h4>Se lo stai configurando nel tuo Cloud (AWS/GCP/Heroku), leggi questa sezione</h4></summary>
Assicurati di seguire le seguenti buone pratiche di sicurezza
1. Apri la regola di sicurezza in ingresso solo per la porta 9090. E limita il CIDR di origine al CIDR della VPC o al tuo IP.
2. Usa un'EC2 da una subnet privata -
a. In questo modo, nessuno potrà effettuare una richiesta in ingresso verso la tua macchina.
b. Assicurati che questa subnet privata abbia accesso a Internet così che le chiamate in uscita possano riuscire!
c. Potresti dover configurare un tunnel per accedere all'istanza tramite VPN usando `ssh -i pemfile ec2-user@vpn-public-instance -L 9090:private-instance:9090`
d. Nel tuo browser, visita `http://private-instance:9090`
3. Usa un'EC2 da una subnet pubblica - per favore non farlo! Se vuoi comunque farlo, puoi saltare 2.b e 2.c. Accedi semplicemente alla tua istanza tramite `http://ip:9090`
Akto è davvero potente nel deployment su Cloud se puoi fornire il traffico mirrorato della tua applicazione (0 impatto sulle prestazioni). Potrai anche pianificare test in CI/CD e invitare più membri del team nella dashboard. Per questo, dovresti installare la versione Akto Enterprise disponibile [qui](https://stairway.akto.io). Leggi di più [qui](https://www.akto.io/pricing)
</details>
## Tutorial sui test di sicurezza API
| Titolo | Link |
| ------------- | ------------- |
| Introduzione | https://www.youtube.com/watch?v=oFt4OVmfE2s |
| **Tutorial 1:** SSRF Port Scanning (OWASP API7:2023) | https://www.youtube.com/watch?v=WjNNh6asAD0 |
## Sviluppa e contribuisci
<details>
<summary><h3>Configurazione rapida con VSCode Devcontainers</h3></summary>
### Prerequisiti:
1. [Installa VSCode](https://code.visualstudio.com/)
2. [Installa l'estensione Dev Containers di VSCode](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
3. **Windows:** [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+ su Windows 10 Pro/Enterprise. Windows 10 Home (2004+) richiede Docker Desktop 2.3+ e il [backend WSL 2](https://aka.ms/vscode-remote/containers/docker-wsl2).
4. **macOS**: [Docker Desktop](https://www.docker.com/products/docker-desktop) 2.0+.
5. **Linux**: [Docker CE/EE](https://docs.docker.com/install/#supported-platforms) 18.06+ e [Docker Compose](https://docs.docker.com/compose/install) 1.21+.
**Nota**: Se usi Docker Desktop, considera di cambiare l'allocazione di memoria a 8 GB per prestazioni migliori
### Passaggi:
#### Clona il repository e aprilo in VSCode
1. Apri il terminale
2. `mkdir ~/akto_code`
3. `cd ~/akto_code`
4. `git clone https://github.com/akto-api-security/akto`
5. Aprilo in VSCode: `code akto`
#### Avvia il Dev Container
1. Vai su Visualizza > Riquadro comandi e digita: Dev Containers: Riapri nel Container
<img src="https://assets.kitploit.com/production/public/readmes/6063/55316a486d156017f3282896483e4ec8fa41a3f3a65bb3f8987ca169e55451ac.png"></img>
2. Attendi che il Dev Container venga configurato.
3. Apri **localhost:9090** nel tuo browser web per vedere la dashboard di Akto
</details>
<details>
<summary><h3> Istruzioni di Configurazione Manuale</h3> </summary>
### Prerequisiti
OpenJDK 8, node(v18.7.0+ [link](https://nodejs.org/download/release/v18.7.0/)), npm(v8.15.0+), maven (v3.6.3 [link](https://dlcdn.apache.org/maven/maven-3/3.6.3/binaries/)), MongoDB (v5.0.3+ [link](https://www.mongodb.com/docs/manual/administration/install-community/))
#### Clona il repository
1. `mkdir ~/akto_code`
2. `cd akto_code`
3. `git clone https://github.com/akto-api-security/akto`
#### Configura il database
1. `Apri una nuova scheda del terminale`
2. `cd ~`
3. `mkdir ~/akto_mongo_data`
4. `<path_to_mongo_folder>/bin/mongod --dbpath ~/akto_mongo_data`
#### Configura il frontend
1. `Apri una nuova scheda del terminale`
2. `cd ~/akto_code/akto`
3. `cd apps/dashboard/web/polaris_web`
4. `npm install`
5. `npm run hot`
#### Configura la dashboard
1. `Apri una nuova scheda del terminale`
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`
#### Configura i test
1. `Apri una nuova scheda del terminale`
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>
#### Uso del tool CLI di Testing
Esegui il seguente comando per eseguire il tool CLI di testing
```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
```
### Sperimenta
1. Apri `localhost:9090` nel tuo browser preferito
2. Dovrai registrarti al primo accesso, dalle volte successive in poi potrai accedere
<details>
<summary><h3>Debug</h3></summary>
1. Per eseguire il debug del frontend, installa l'estensione Vue.js per Chrome da [qui](https://devtools.vuejs.org/guide/installation.html).
2. Per eseguire il debug del backend, esegui quanto segue prima di avviare il web server -
a. Imposta la variabile MAVEN_OPTS per abilitare il debug sul processo Java
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"
b. In Visual Studio Code, fai clic su qualsiasi numero di riga per impostare un punto di interruzione.
c. Collega il debugger Java dalla modalità Run and Debug. Se è la prima volta, fai clic su “Create launch.json file” e poi su “Add configuration”. Scegli “Java: Attach process by ID” e salva il file. <br/>
<img width="426" alt="img1" src="https://assets.kitploit.com/production/public/readmes/6063/8066e85fcd60acda23d905ff2a64969cb39d640cff06738418d0f4d4d864b990.png"><br/>
d. Apparirà un elenco dei processi Java in esecuzione. Seleziona il processo del web server per collegare il debugger
</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>
## Come contribuire
Accogliamo con piacere i contributi a questo progetto. Leggi il nostro [CONTRIBUTING.md](https://github.com/akto-api-security/akto/blob/master/CONTRIBUTING.md) per maggiori informazioni su come partecipare.
## Licenza
Questo progetto è concesso in licenza sotto la [Licenza MIT](https://github.com/akto-api-security/akto/blob/master/LICENSE.md).