Ferramentas de análise estática do código fonte
Deteção de vulnerabilidades e de erros em tempo de execução
CodeSonar
O CodeSonar permite verificar a aderência do código-fonte às normas de codificação de software de"Segurança" e"Proteção", tal como exigido pelas principais normas de Segurança Funcional.
Linguagens de programação
Normas de segurança
C 2012
C++ 2008
C++ 14, 2018
Normas de segurança
C 2016
C++ 2016
O CodeSonar inclui diferentes programas que detectam potenciais erros em tempo de execução.
O CodeSonar permite-lhe verificar se o código fonte desenvolvido está em conformidade com as normas de segurança seleccionadas. Para cada norma, pode selecionar as regras que pretende verificar.
O resultado final garante uma utilização segura da linguagem de programação e a portabilidade da aplicação.
Deteção de erros em tempo de execução
- Utilização de ponteiros nulos
- Estouro da memória intermédia
- Memória dinâmica não libertada
- Problemas de conversão de tipos
- Erros de inicialização de variáveis
- Utilização incorrecta de funções de biblioteca
- Deteção de loops e ciclos inválidos
- Deteção de código morto
- Erros de simultaneidade
- e muitos outros ...
Características diferenciais do CodeSonar
Profundidade de análise
Um dos factores diferenciadores do CodeSonar é a capacidade de realizar uma análise profunda do código, incluindo a análise do fluxo de controlo e do fluxo de dados, permitindo obter erros que afectam diferentes funções em diferentes ficheiros.
O CodeSonar distingue entre erros e avisos de diferente gravidade. Quando um erro é identificado, é apresentada a sequência de chamadas de funções que o causam e a instrução e condição em que o erro ocorre. Isto é marcado como uma sequência de eventos.
CodeSonar encontra erros que outras ferramentas de análise de código estático não conseguem localizar.
Os caminhos e a árvore de chamadas que conduzem ao erro também podem ser apresentados.
No exemplo apresentado de um erro de inicialização de uma variável local numa função, o CodeSonar detecta que o erro ocorre em quatro caminhos de execução dos seis possíveis.
Escalabilidade: análise distribuída
O CodeSonar permite a análise de repositórios de código-fonte muito grandes a um nível muito elevado de profundidade de análise através da capacidade de distribuir a análise por vários processos executados em diferentes servidores.
CodeSonar gere um processo Hub primário para análise e visualização da Web e, opcionalmente, vários processos Hub satélite. Os processos primário e secundário partilham a mesma base de dados.
Integração DevSecOpcs
CodeSonar integra-se com vários ambientes de integração contínua: Jenkings, GitLab, GitHub, etc.
O programador pode visualizar e corrigir problemas de segurança no ambiente CI/CD e aceder a informações mais detalhadas no Hub com um simples clique do rato. Em caso de deteção de erros, os defeitos podem ser abertos em ferramentas especializadas, como o Jira. O gestor de projeto ou os gestores de qualidade podem verificar o estado da segurança utilizando os relatórios incluídos no ambiente CI/CD. A carga de análise pode ser distribuída entre vários processos executados em diferentes servidores.
O CodeSonar gere um processo Hub primário para análise e visualização da Web e, opcionalmente, vários processos Hub satélite. Os processos primário e secundário partilham a mesma base de dados.
Integração com outras ferramentas
O CodeSonar permite a utilização de diferentes compiladores cruzados para as arquitecturas PowerPC e ARM. Também fornece um assistente gráfico para definir os diferentes parâmetros de análise e capturar todas as informações necessárias para construir o executável utilizando o método de construção de cada fornecedor.
Uma vez capturadas as informações do compilador e do ligador, as opções de compilação, os directórios de inclusão e as macros do pré-processador, o CodeSonar pode analisar o código-fonte utilizando todas estas informações.
Compiladores suportados pelo CodeSonar
ARM Real View e Clang
Borland
Clang
CodeVision
Cósmico
Guerreiro do código
Green Hills C/C++
GNU C/C++
Keil
Alta tecnologia
IAR
Intel
Microsoft
MPLAB
QNX
Renesas
SHARC, Blackfin
Atribuição de tarefas
Texas Instruments
Rio Wind
CodeSonar para Java e C#
Deteção de erros de segurança
Injecções
Biscoitos
Palavras-passe
LDAP
Erros criptográficos
Referência a entidades externas
e muitos mais
Plataformas C# suportadas
MVC
Unidade
Formulários Web
Formulários Windows
Plataformas Java suportadas
Apache-CXF
AspectJ
EJB
JAX-RS
JAX-WS
APP
JSF
Jersey
RESTeasy
RESTlet
Servlet
primavera
Android