Em 2017 ocorreram diversas ações de grupos de hackers que impactaram o cenário das grandes empresas diretamente. O melhor exemplo disso foi o famoso Ransomware Wannacry, que atingiu mais de 230.000 sistemas corporativos deixando o negócio dessas empresas totalmente paralisados.
Os dados são um dos ativos mais valiosos que uma empresa tem a sua disposição, abrangendo desde transações financeiras até detalhes importantes de clientes e clientes em potencial.
Com a LGDP – Lei de Proteção de Dados Pessoais – prestes a entrar em vigor no Brasil, é vital para as empresas começarem a reavaliar seus sistemas “pra ontem”. As empresas precisam planejar como minimizar os riscos, manter os dados seguros e implementar os processos de Desenvolvimento Seguro de Software caso precisem lidar com qualquer uma das ameaças à segurança de dados.
Observando esse cenário, as empresas estão cada vez mais contratando profissionais que tenham conhecimento em segurança da informação. Esse perfil não é exatamente a de um profissional de segurança da informação efetivo, mas sim a de um profissional de TI especialista em segurança da informação dentro da sua área.
Dentre as diversas áreas da tecnologia da informação, a área que está com a maior lacuna é a de profissionais de desenvolvimento com especialidade em desenvolvimento seguro de software. Essa lacuna, está fazendo com que esta temática eleve seu grau de importância cada vez mais e, até o final de 2019, será o profissional mais requisitado do mercado.
Agora que você entendeu que esse é um tópico de fundamental importância com muitos aspectos a serem considerados, inicialmente pode ser confuso saber por onde começar, então, aqui vão 4 dicas vitais para você que deseja ser um profissional qualificado na área de desenvolvimento seguro de software.
1. Analise o código-fonte linha a linha – Testes Unitários
A próxima metodologia de que falaremos é o teste unitário. Dependendo da sua experiência, você pode ou não ter ouvido algo sobre testes de unidade, desenvolvimento orientado a testes ou algum outro tipo de metodologia de teste. Normalmente, essas metodologias são aplicadas no contexto de grandes sistemas de software e, às vezes, no contexto de sites simples.
Na programação de computadores, o teste de unidade é um processo de desenvolvimento de software no qual a menor parte testável de um código-fonte, denominada unidade, é testada individualmente e de forma independente para examinar se estão funcionando conforme o esperado. Isso ajuda você a identificar falhas nos algoritmos e / ou lógica antes que o código seja liberado.
Um dos benefícios que você adquire ao criar testes de unidade é que sua equipe estará motivada a escrever código testável. Como o teste de unidade requer a estrutura apropriada do seu código, isso significa que o código deve ser dividido em funções menores e mais focadas. Cada um dos quais é responsável por uma única operação em um conjunto de dados, em vez de em grandes funções que executam várias operações diferentes.
2. Integração contínua
A Integração Contínua (CI) é uma prática de desenvolvimento que exige que os desenvolvedores integrem o código em um repositório compartilhado várias vezes ao dia (SVN, Subversion ou Git). Cada check-in é verificado pelos testes automatizados. Embora os testes automatizados não sejam estritamente parte do IC, eles geralmente são previstos. Essa abordagem permite que os desenvolvedores detectem problemas mais cedo e, como resultado, os resolvam mais rapidamente.
Esta é uma prática valiosa por si só. Você deve se concentrar em configurar um processo simples de Integração Contínua o mais cedo possível. Existem muitas ferramentas que podem ajudá-lo a configurar esse processo e as mais conhecidas são Jenkins , Bamboo e Teamcity . Eles permitem que você automatize sua implantação de software e permita que você se concentre na criação de seu produto.
3. Sessão de demonstração
A reunião de revisão de demonstração geralmente ocorre perto do final do Sprint. O objetivo desta reunião é mostrar os outros membros da equipe, clientes e partes interessadas que os resultados da equipe de trabalho realizaram durante a Sprint.
Pode não ser imediatamente visível por que isso leva a um código melhor, mas o fará. Ao mostrar regularmente o código-fonte, os desenvolvedores precisam mantê-lo próximo ao estado de lançamento. Com reuniões de demonstração regularmente, você terá um processo bem organizado de receber feedbacks. E isso lhe dará uma melhor compreensão do que foi feito corretamente e indicará quando algo foi na direção errada.
Agora, vamos seguir em frente e verificar quais são algumas ferramentas de qualidade de código recomendadas para aperfeiçoar o processo. Você deve realizar avaliações de risco regulares para identificar quaisquer perigos potenciais para os dados da sua organização. Isso deve analisar todas as ameaças que você pode identificar, desde uma violação de dados on-line até ameaças mais físicas, como cortes de energia. Isso permitirá identificar quaisquer pontos fracos no sistema de segurança de dados atual da organização e, a partir daqui você pode formular um plano de como remediar isso e priorizar ações para reduzir o risco de uma violação de dados cara.
4. Revisão de código
A próxima melhor coisa para emparelhar a programação é a revisão de código. Se você não praticar a programação em pares, recomenda-se considerar pelo menos a revisão de código. É um processo leve que deve ser aplicado o mais rápido possível depois que o código é escrito.
Ao longo dos anos trabalhando em diferentes projetos de desenvolvimento de software, acumulamos nossa própria experiência de tornar o bom código melhor. E aqui estão as coisas que recomendamos fazer durante todo o processo para melhorar a qualidade do código:
- Siga o guia de estilo da linguagem de programação;
- Aderir aos princípios do STRIDE no seu design;
- Dê nomes descritivos para métodos e variáveis;
- Use padrões de design;
- Não reinvente a roda ou utilize estruturas de terceiros;
- Use estruturas de dados e algoritmos eficientes;
- Crie testes unitários;
- Documente todos os aspectos do seu projeto;
- Mantenha todos os elementos do seu projeto sob o sistema de controle de versão.
Em conjunto com a metodologia de desenvolvimento seguro e suas práticas de programação diárias, você acabará desenvolvendo de forma mais legível, mais segura e tornando a revisão do código mais simples. Você também vai poupar seu trabalho, sua equipe e seus clientes de muitas dores de cabeça, tempo e, portanto, dinheiro.
Seguindo todas essas dicas você estará mitigando os riscos mais comuns. Caso queira se aprofundar no tema, você pode fazer o curso Gratuito “Desenvolvimento Seguro de Software” CLICANDO AQUI. Com esse curso gratuito você estará totalmente preparado para esse novo nicho de mercado de trabalho.