# VPC: Grupos de segurança pública

> Esta regra identifica Security Groups que possuem regras de entrada (`Ingress`) permitindo acesso público irrestrito através do CIDR:
>
> ```
> 0.0.0.0/0
> ```
>
> O objetivo é detectar configurações que expõem recursos internos à internet pública, aumentando significativamente o risco de segurança.

***

Segue a documentação estruturada rigorosamente no padrão definido.

***

**Contexto da regra e impacto no negócio**

Security Groups funcionam como firewall virtual para recursos dentro da VPC.

Quando uma regra permite:

```
0.0.0.0/0
```

Significa que qualquer IP da internet pode tentar acessar o recurso associado.

Riscos associados:

* Exposição indevida de servidores internos.
* Aumento da superfície de ataque.
* Risco de exploração de vulnerabilidades.
* Possibilidade de brute force e scanning automatizado.
* Incidentes de segurança e vazamento de dados.

Impactos no negócio:

* Comprometimento de dados sensíveis.
* Multas regulatórias.
* Interrupção de serviços.
* Danos reputacionais.
* Custos elevados com resposta a incidentes.

Mesmo que a regra esteja associada a portas específicas, o acesso irrestrito deve ser controlado e justificado.

***

**Detalhamento técnico da regra**

A regra executa análise regional de todos os Security Groups.

***

**Como a regra é executada**

1. Autentica na conta AWS por região.
2. Lista todos os Security Groups via `describe_security_groups`.
3. Aplica filtros de tag (inclusão/exclusão).
4. Para cada Security Group:
   * Analisa as permissões de entrada (`IpPermissions`).
   * Verifica se algum `IpRanges` contém:

     ```
     CidrIp = 0.0.0.0/0
     ```
5. Caso exista ao menos uma regra com esse CIDR, o Security Group é sinalizado.

***

**Lógica aplicada**

Um Security Group será considerado em não conformidade quando:

* Possuir qualquer regra de entrada.
* E dentro dessa regra existir:

  ```
  CidrIp = 0.0.0.0/0
  ```

A regra não avalia:

* Porta específica.
* Protocolo.
* Justificativa do acesso.
* Regras IPv6 (`::/0`) nesta implementação.

***

**Campos analisados**

Security Group:

* `GroupId`
* `GroupName`
* `Description`
* `VpcId`
* `SecurityGroupArn`
* `Tags`

Permissões:

* `IpPermissions`
* `IpRanges`
* `CidrIp`

***

**Parâmetros considerados na busca**

APIs utilizadas:

* `ec2:DescribeSecurityGroups`

Condições técnicas:

* Existência de `IpPermissions`
* Presença de `CidrIp = 0.0.0.0/0`

***

**Período Avaliado (Filtro Temporal)**

Período Avaliado (Filtro Temporal): Padrão 15 dias.

Padrão é configurado para 15 dias de avaliação do grupos de segurança com acesso público permitido.

> Esse parâmetro de avaliação pode ser ajustado nas configurações das regras.

***

**Intervalo de Análise**

Execução padrão: a cada 8 horas.

***

**Aderência às melhores práticas**

Não possui cálculo de savings direto.

Está alinhada com:

* AWS Security Best Practices
* AWS Well-Architected Framework – Pilar de Segurança
* CIS AWS Foundations Benchmark
* Princípio de menor privilégio (Least Privilege)

***

**Riscos associados**

* Exposição pública indevida.
* Superfície ampliada para ataques automatizados.
* Possível acesso não autorizado.
* Movimentação lateral dentro da VPC.

***

**Exemplo prático**

Security Group com regra:

```
Porta: 22 (SSH)
Protocolo: TCP
Origem: 0.0.0.0/0
```

Resultado:

* Qualquer IP público pode tentar acessar via SSH.
* Alto risco de brute force.

***

**Dicas de uso e boas práticas para o usuário**

* Substituir `0.0.0.0/0` por CIDRs específicos.
* Utilizar bastion host com IP restrito.
* Implementar VPN ou AWS Client VPN.
* Usar AWS Systems Manager Session Manager.
* Revisar periodicamente regras antigas.
* Avaliar também regras IPv6 (`::/0`).

Possíveis exceções legítimas:

* Load Balancers públicos.
* APIs públicas controladas.
* Aplicações intencionalmente expostas à internet.

Recomenda-se validar a necessidade de exposição antes de qualquer alteração.
