
Plataforma open-source de segurança de API para descoberta contínua de APIs, testes de vulnerabilidade e detecção de ameaças em tempo de execução. Integra-se a pipelines de CI/CD e cobre o OWASP Top 10 com mais de 1000 testes integrados.
<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 API Security
## Contribuidores
<a href="https://github.com/akto-api-security/akto/graphs/contributors">
<img src="https://contrib.rocks/image?repo=akto-api-security/akto" />
</a>
# O que é a Akto?
[Como funciona](https://docs.akto.io/#how-it-works) • [Primeiros passos](https://docs.akto.io/#how-to-get-started) • [Inventário de APIs](https://docs.akto.io/api-inventory/api-collections) • [Testes de API](https://docs.akto.io/testing/run-test) • [Adicionar teste](https://docs.akto.io/testing/test-library) • [Junte-se à comunidade no Discord](https://discord.com/invite/Wpc6xVME4s) •
A Akto é uma plataforma instantânea e open source de segurança de APIs que leva apenas 60 segundos para começar a ser usada. A Akto é usada por equipes de segurança para manter um inventário contínuo de APIs, testar APIs em busca de vulnerabilidades e encontrar problemas em tempo de execução. A Akto oferece cobertura para todas as categorias do OWASP Top 10 e do HackerOne Top 10, incluindo BOLA, autenticação, SSRF, XSS, configurações de segurança, etc. O poderoso motor de testes da Akto executa uma variedade de testes de lógica de negócio lendo dados de tráfego para entender o padrão de tráfego das APIs, resultando em menos falsos positivos. A Akto pode se integrar a várias fontes de tráfego - burpsuite, AWS, postman, GCP, gateways, etc. Aqui está o nosso [roadmap público](https://github.com/orgs/akto-api-security/projects/8) para este trimestre.
A Akto permite que equipes de segurança e engenharia protejam suas APIs ao fazer três coisas:
1. [Inventário de APIs](https://docs.akto.io/api-inventory/api-collections)
2. [Executar testes de lógica de negócio em CI/CD](https://docs.akto.io/testing/run-test)
3. [Encontrar vulnerabilidades em tempo de execução](https://docs.akto.io/api-inventory/sensitive-data)
https://user-images.githubusercontent.com/91306853/216407351-d18c396b-5cd0-4cbc-a350-10a76b1d67b3.mp4
## Como funciona?
Passo 1: Criar inventário
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
Passo 2: Executar testes
<figure><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" alt=""><figcaption></figcaption></figure>
## Como começar?
### Usando docker-compose (funciona em qualquer máquina com Docker instalado)
Execute os seguintes comandos para instalar a Akto. Você precisará ter curl e Docker instalados para executar o contêiner..
1. Clone o repositório da Akto usando este comando `git clone https://github.com/akto-api-security/akto.git`
2. Vá para o diretório clonado `cd akto`
3. Execute `docker-compose up -d`
<details>
<summary><h4>Se você estiver configurando isto na sua própria nuvem (AWS/GCP/Heroku), leia esta seção</h4></summary>
Certifique-se do seguinte para boas práticas de segurança
1. Abra a regra de segurança de entrada apenas para a porta 9090. E restrinja o CIDR de origem apenas ao CIDR da VPC ou ao seu IP.
2. Use uma EC2 de uma sub-rede privada -
a. Dessa forma, ninguém conseguirá fazer uma solicitação de entrada para a sua máquina.
b. Garanta que essa sub-rede privada tenha acesso à Internet para que as chamadas de saída sejam bem-sucedidas!
c. Talvez seja necessário configurar um túnel para acessar a instância via VPN usando `ssh -i pemfile ec2-user@vpn-public-instance -L 9090:private-instance:9090`
d. No seu navegador, visite `http://private-instance:9090`
3. Use uma EC2 de uma sub-rede pública - por favor, não faça isso! Se você ainda quiser fazer isso, pode pular 2.b e 2.c. Simplesmente acesse a sua instância via `http://ip:9090`
A Akto é realmente poderosa na implantação em nuvem se você puder fornecer o tráfego espelhado da sua aplicação (0 impacto no desempenho). Você também poderá agendar testes em CI/CD e convidar mais membros da equipe para o painel. Para isso, você deve instalar a edição Enterprise da Akto disponível [aqui](https://stairway.akto.io). Leia mais sobre isso [aqui](https://www.akto.io/pricing)
</details>
## Tutoriais de testes de segurança de API
| Título | Link |
| ------------- | ------------- |
| Introdução | https://www.youtube.com/watch?v=oFt4OVmfE2s |
| **Tutorial 1:** Varredura de portas via SSRF (OWASP API7:2023) | https://www.youtube.com/watch?v=WjNNh6asAD0 |
## Desenvolva e contribua
<details>
<summary><h3>Configuração rápida usando Devcontainers do VSCode</h3></summary>
### Pré-requisitos:
1. [Instale o VSCode](https://code.visualstudio.com/)
2. [Instale a extensão Dev Containers do 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+ no Windows 10 Pro/Enterprise. O Windows 10 Home (2004+) requer Docker Desktop 2.3+ e o [back-end 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 estiver usando o Docker Desktop, considere alterar a alocação de memória para 8 GB para obter melhor desempenho
### Passos:
#### Clone o repositório e abra no vscode
1. Abra o terminal
2. `mkdir ~/akto_code`
3. `cd ~/akto_code`
4. `git clone https://github.com/akto-api-security/akto`
5. Abra no VScode: `code akto`
#### Inicie o Dev Container
1. Vá para Exibir > Paleta de Comandos e digite: Dev Containers: Reopen in Container
<img src="https://assets.kitploit.com/production/public/readmes/6063/55316a486d156017f3282896483e4ec8fa41a3f3a65bb3f8987ca169e55451ac.png"></img>
2. Aguarde o Dev Container ser configurado.
3. Abra **localhost:9090** no seu navegador para ver o painel da Akto
</details>
<details>
<summary><h3> Instruções de Configuração Manual</h3> </summary>
### Pré-requisitos
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/))
#### Clone o repositório
1. `mkdir ~/akto_code`
2. `cd akto_code`
3. `git clone https://github.com/akto-api-security/akto`
#### Configure o banco de dados
1. `Abra uma nova aba do terminal`
2. `cd ~`
3. `mkdir ~/akto_mongo_data`
4. `<path_to_mongo_folder>/bin/mongod --dbpath ~/akto_mongo_data`
#### Configure o Frontend
1. `Abra uma nova aba do terminal`
2. `cd ~/akto_code/akto`
3. `cd apps/dashboard/web/polaris_web`
4. `npm install`
5. `npm run hot`
#### Configure o Dashboard
1. `Abra uma nova aba do terminal`
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`
#### Configure os Testes
1. `Abra uma nova aba do terminal`
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>
#### Usando a ferramenta CLI de Testes
Execute o seguinte comando para executar a ferramenta CLI de testes
```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
```
### Explore
1. Abra `localhost:9090` no seu navegador favorito
2. Você precisará se cadastrar ao fazer login pela primeira vez; a partir da próxima vez, você poderá entrar
<details>
<summary><h3>Depuração</h3></summary>
1. Para depurar o frontend, instale a extensão Vue.js do Chrome a partir de [aqui](https://devtools.vuejs.org/guide/installation.html).
2. Para depurar o backend, execute o seguinte antes de executar o servidor web -
a. Defina a variável MAVEN_OPTS para habilitar a depuração no seu 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. No Visual Studio Code, clique em qualquer número de linha para definir um ponto de interrupção.
c. Anexe o depurador Java no modo Run and Debug. Se estiver fazendo isso pela primeira vez, clique em “Criar arquivo launch.json” e depois em “Adicionar configuração”. Escolha “Java: Anexar processo por ID” e salve o arquivo. <br/>
<img width="426" alt="img1" src="https://assets.kitploit.com/production/public/readmes/6063/8066e85fcd60acda23d905ff2a64969cb39d640cff06738418d0f4d4d864b990.png"><br/>
d. Uma lista de processos Java em execução aparecerá. Selecione o processo do servidor web para anexar o depurador
</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>
## Contribuindo
Aceitamos contribuições para este projeto. Por favor, leia nosso [CONTRIBUTING.md](https://github.com/akto-api-security/akto/blob/master/CONTRIBUTING.md) para mais informações sobre como participar.
## Licença
Este projeto está licenciado sob a [Licença MIT](https://github.com/akto-api-security/akto/blob/master/LICENSE.md).