Skip to content

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IA2C: Ferramenta Inteligente para Detecção e Remediação Assistida de Violações de Código em Pipelines DevSecOps

Arquitetura IA2C

O IA2C integra modelos de linguagem ao processo de análise estática (SAST), fornecendo explicações e sugestões de correção para violações identificadas pelo SonarQube durante a execução da pipeline. Além disso, automatiza a configuração do ambiente por meio de scripts que instalam e configuram todas as dependências necessárias para sua utilização, adicionalmente, fornece a interface interativa para correção assistida.

Vídeo demonstrativo: YouTube

Fluxo de execução

image

Nota de segurança

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.

Pré-requisitos

  • Ubuntu 20.04 LTS (nativo, WSL2 ou Máquina Virtual);
  • Git instalado;
  • conexão com a Internet.

O Jenkins é instalado diretamente no sistema operacional hospedeiro e é responsável pela execução da pipeline.

O SonarQube é disponibilizado através de um container Docker criado automaticamente durante o processo de instalação.

Instalação

git clone https://github.com/latarc/ia2c.git

cd ia2c

Executando o instalador

Conceda permissão de execução ao script:

chmod +x install.sh

Execute o instalador:

./install.sh

Durante 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.

Configuração Inicial do Jenkins

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.

Configuração do Jenkinsfile

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: As variáveis referentes ao repositório Git devem ser atualizadas para o usuário responsável pelo repositório. Caso contrário, o Jenkins não conseguirá autenticar e realizar o checkout do código.

Teste Mínimo

Após concluir a instalação e a configuração inicial do Jenkins:

  1. Crie um novo projeto do tipo Pipeline;
  2. Configure o Pipeline para utilizar o Jenkinsfile presente no repositório Git;
  3. Execute Build Now;
  4. 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

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.

pl status open_source

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages