Suas aplicações são seguras?

Conheça a Conviso!

Veja como escrever código seguro para aplicativos

Sua equipe está desenvolvendo códigos seguros para aplicativos e sistemas web? Seu app oferece a segurança necessária para os dados da sua empresa e de seus clientes? De acordo com um relatório global publicado pela Kroll, consultoria de gestão de risco, 40% das empresas sofrem com a violação e perda de dados importantes dos clientes.

Como saber se sua empresa está segura?

A segurança digital é uma área da tecnologia da informação em constante atualização. A cada dia novas vulnerabilidades são descobertas em códigos que antes pareciam intransponíveis e novas ameaças de segurança surgem. Em meio a esse cenário, como garantir que uma empresa desenvolveu um código seguro para suas aplicações?

O ideal é sempre contar com uma empresa especialista em segurança de aplicações para estar ao seu lado como fornecedora ou consultora. É um investimento que pode trazer muitos benefícios no futuro, tanto em recursos financeiros quanto em dores de cabeça causadas por problemas na segurança.

Para além disso, os projetos mais sérios usam diretrizes de codificação. Essas diretrizes indicam quais são as regras básicas para o software ser escrito de forma segura. Contudo, exitem várias fontes de boas práticas para desenvolvimento de código seguro. Muitas entidades desenvolveram suas próprias diretrizes, dentre elas a NASA.

Como escrever códigos seguros segundo a NASA?

Devido a falta de padronização do que seria escrever códigos seguros, no início da década Gerard J. Holzmann publicou um artigo com as 10 recomendações de desenvolvimento de código seguro utilizadas por ele nos softwares do Laboratório de Propulsão a Jato da NASA. O artigo logo se tornou popular entre programadores do mundo inteiro.

Confira as dicas de um dos cientistas-chefe da maior agência espacial do mundo sobre como escrever código seguro:

  • Restrinja toda a construção de seu código a um fluxo de controle muito simples. Quando falamos de segurança, menos é mais.
  • Todos os loops devem ter um limite superior fixo. Isso deve ser trivial para uma ferramenta de checagem. Caso o limite do loop não possa ser comprovado de forma estatística, a regra passa a ser considerada violada. Se os limites forem violados, o método deverá disparar um assert a ser verificado.
  • Não use alocação dinâmica de memória após a inicialização.
  • Nenhuma função deve ser tão extensa que não possa ser impressa em uma única folha de papel. Ou seja, não mais do que 60 linhas de código por função.
  • No mínimo duas asserts por função. Dados devem ser declarados no menor nível de escopo possível
  • Cada função chamadora deve checar o retorno de funções não void (que retornam valores) e a validade dos parâmetros devem ser checadas dentro de cada função.
  • Uso de pré-processador deve ser limitado a inclusão de arquivos header e simples definições de macros. Devemos evitar macros complexas como as recursivas e com listas de argumentos variáveis.
  • O uso de ponteiros deve ser restrito. Especificamente, não mais do que um nível de diferenciação é permitido. Operações de diferenciação de ponteiro não podem estar escondidas em macros ou dentro de declarações typedef. Ponteiros de função não são permitidos.
  • Todo código deve ser compilável desde o primeiro dia de desenvolvimento, com todos warnings do compilador ativados. Todo código deve ser revisado diariamente com pelo menos um — de preferência mais do que um — excelente analisador de código estático (o que ele cita como analisador estado-da-arte), e a análise deve passar sem warning algum.

Esperamos que essas dicas ajudem você e sua empresa a desenvolverem códigos seguros para seus sistemas de informação. A segurança deve ser a principal preocupação de gestores responsáveis.

Interessado também em desenvolvimento mobile? Saiba mais sobre como proteger seu app e usuários. Conheça o nosso Guia para Testes de Segurança em Aplicativos Mobile!

Deixe um comentário

topo
%d blogueiros gostam disto: