IA2C: Ferramenta Inteligente para Detecção e Remediação Assistida de Violações de Código em Pipelines DevSecOps
Vídeo demonstrativo: https://youtu.be/y79r4gc8u58
Repositório oficial: https://github.com/latarc/ia2c
A execução do IA2C requer privilégios administrativos durante o processo de instalação, uma vez que são realizadas alterações no ambiente operacional, incluindo a instalação de serviços do sistema, Docker Engine e Jenkins.
Recomenda-se utilizar um ambiente de testes ou desenvolvimento antes da execução em ambientes de produção.
Também é responsabilidade do usuário garantir a confidencialidade dos repositórios analisados e das credenciais configuradas durante a integração entre Jenkins, GitHub e SonarQube.
Ubuntu 24.04 LTS (nativo, WSL2 ou Máquina Virtual). 6GiB RAM e 50GiB de armazenamento são os requisitos mínimos para execução.
OBS: Utilize um usuário com permissões root para executar a instalação completa do sistema.
git clone https://github.com/latarc/ia2c.git
cd ia2cConceda permissão de execução ao script:
chmod +x ./install/linux/install.shExecute o instalador:
source ./install/linux/install.shDurante a instalação serão executadas automaticamente as seguintes etapas:
- instalação do Python e suas dependências;
- instalação do Docker Engine;
- instalação do Docker Compose;
- instalação do Jenkins;
- inicialização do serviço Jenkins;
- criação da instância do SonarQube utilizando Docker Compose;
- preparação do ambiente para execução da pipeline.
O instalador adiciona o usuário atual ao grupo docker, podendo ser necessário realizar logout/login (ou reiniciar a sessão) para utilizar o Docker sem privilégios administrativos.
Importante: É extremamente recomendado a execução da instalação por meio de um usuário com permissões de root.
O Jenkins é instalado diretamente no sistema operacional hospedeiro e é responsável pela execução da pipeline.
Após a instalação, acesse:
http://localhost:8080
Realize a configuração inicial do Jenkins seguindo a documentação oficial:
Ao final da configuração, certifique-se de que:
- o plugin Pipeline está instalado (incluído nos plugins sugeridos);
- o plugin SonarQube Scanner está instalado;
- as credenciais de acesso ao Git e ao SonarQube foram cadastradas.
Antes da primeira execução da Pipeline, atualize o arquivo Jenkinsfile com as informações do seu ambiente.
É necessário alterar:
- usuário ou organização do GitHub;
- URL do repositório;
- Local de análise (Atualmente diretório "scripts")
- branch utilizada (quando diferente da padrão);
- identificadores das credenciais cadastradas no Jenkins.
Importante: Deve ser criada uma credencial responsável pelo Pull no GitHub e outra variável no usuário Jenkins (SSH) responsável pelo commit ao fim da pipeline. Além disso, é necessário adicionar o endereço do GitHub ao arquivo known_hosts do usuário Jenkins.
Após concluir a instalação e a configuração inicial do Jenkins:
- Crie um novo projeto do tipo Pipeline;
- Configure o Pipeline para utilizar o
Jenkinsfilepresente no repositório Git; - Execute Build Now;
- Acesse o SonarQube em:
http://localhost:9000
No SonarQube defina o projeto como "IA2C - Main" e configure a instalação do plugin no Jenkins apontando para o mesmo local de instalação do SonarQube.
Ao final do processo o pipeline deve analisar seus arquivos presentes no diretório indicado e apresentar problemas encontrados na interface web. Além disso, deve ser possível corrigir os mesmos com a seleção da opção "corrigir".
Licença MIT
Copyright (c) 2026 LaTARC Research Lab
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeito às seguintes condições:
O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO INFRAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, DELITO OU OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
