Skip to main content

Ganhar habilidades de engenheiro de segurança de aplicativos

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Explicar o impacto da segurança de aplicativos nos negócios.
  • Listar as principais habilidades necessárias para se tornar um profissional de segurança de aplicativos.
  • Descrever cenários comuns de segurança de aplicativos.

O impacto da segurança de aplicativos nos negócios

A segurança de aplicativos fora dos padrões corretos pode ter enormes consequências negativas em uma organização. Os invasores cibernéticos atacam muitas organizações todos os dias, na esperança de enriquecer-se extraindo dinheiro, bem como informações corporativas e de propriedade intelectual. Os invasores usam os dados extraídos para fazer compras não autorizadas e roubar as identidades dos consumidores. 

Se você acompanha as notícias, sabe que os invasores comprometeram aplicativos para acessar dados armazenados nos sistemas de computadores de varejistas, empresas de proteção ao crédito, companhias aéreas, empresas de entretenimento, agências governamentais, escolas e muitas outras organizações. Em um dos casos, uma rede de hotéis foi invadida por alguém de um país estrangeiro. Em outro caso, um ataque de injeção SQL, que veremos mais tarde, instalou spyware nos computadores de uma empresa que expôs informações de cartões de crédito de clientes. Em várias situações, os invasores roubaram dados de cartões de crédito aproveitando-se de sistemas fracos de criptografia de dados. No total, esses ataques expuseram as informações pessoais de centenas de milhões de clientes.

Essas violações de segurança resultaram em impactos econômicos diretos de fraude e roubo, mas uma falha de segurança também pode gerar impactos econômicos indiretos, como a perda de reputação. Isso pode trazer outras consequências financeiras ao negócio devido à perda de clientes, à redução da confiança dos acionistas e aos danos à imagem da marca. As violações de segurança também podem ter ramificações legais e regulamentares que resultam em multas e sanções. 

Os engenheiros de segurança de aplicativos têm um papel fundamental a desempenhar para garantir que os dados dos clientes serão adequadamente protegidos por aplicativos de negócios. Como o papel de um engenheiro de segurança de aplicativos é tão importante, eles precisam dominar várias habilidades. Vamos aprofundar isso um pouco mais para ver quais habilidades um engenheiro de segurança de aplicativos precisa ter.

Habilidades de engenheiro de segurança de aplicativos

Imagine que você vai voar para uma ilha distante para umas férias tropicais. Antes de embarcar no avião, você precisa passar por vários postos de segurança do aeroporto. O pessoal da segurança verifica sua identidade e seu cartão de embarque, você passa por um detector de metais, sua bagagem passa pelo raio-X, você passa por cães de segurança do aeroporto e seguranças monitoram telas de TV procurando atividades incomuns. Essas são as camadas de segurança no aeroporto para garantir que você desfrutará de uma viagem segura até seu destino. Da mesma forma que o pessoal de segurança de um aeroporto, um engenheiro de segurança de aplicativos precisa estar ciente dos pontos de entrada de invasores e fornecer as salvaguardas necessárias contra vulnerabilidades em cada fase do desenvolvimento e da implantação do aplicativo.

Pessoal de segurança do aeroporto verificando passageiros e bagagem

Relatórios de associações de segurança (ISC)² e da Information Systems Security Association International (ISSA) discutem a escassez de habilidades de segurança cibernética que vem se agravando há vários anos. Um aumento dos incidentes de segurança levou as organizações a relatar uma necessidade aguda de profissionais de segurança de aplicativos para proteger aplicativos e dados. À luz disso, e do fato de que os engenheiros de segurança de aplicativos exigem mais treinamento, é frequente um engenheiro de segurança de aplicativos ganhar mais dinheiro do que desenvolvedores de aplicativos.

Os engenheiros de segurança de aplicativos empregam várias técnicas em diferentes fases do ciclo de vida de desenvolvimento de software de um aplicativo (SDLC, Software development lifecycle) para descobrir vulnerabilidades de segurança. Para isso, um engenheiro de segurança de aplicativos precisa ter uma boa compreensão de muitas habilidades técnicas, que incluem:

  • Modelagem de ameaças: pensar em como os invasores podem comprometer um sistema e quais proteções são necessárias contra eles
  • Ciclo de vida de desenvolvimento de software seguro (SSDLC, Secure Software Development Lifecycle): ajudar os desenvolvedores a programar códigos seguros que minimizem vulnerabilidades com a implementação de padrões de codificação seguros, técnicas e práticas recomendadas
  • Revisões de código de segurança: identificar vulnerabilidades de segurança no código-fonte antes que um aplicativo vá para a fase de produção
  • Testes e análises de vulnerabilidade: descobrir fraquezas quando um aplicativo é implantado e aconselhar equipes de desenvolvimento sobre correção

Como os engenheiros de segurança de aplicativos trabalham com várias pessoas (desenvolvedores de aplicativos, testadores, designers e outros), eles precisam ser bons colaboradores e comunicadores. Eles também precisam ser bons escritores, pois geram documentos que explicam suas descobertas técnicas. Em alguns casos, eles precisam usar seus poderes persuasivos para convencer o departamento de gerenciamento sobre a necessidade de se instalar determinado recurso de segurança antes que um aplicativo seja implantado. Muitas vezes, eles precisam usar suas habilidades de pensamento crítico para determinar as várias maneiras de um invasor tentar atacar um aplicativo. Em seguida, eles precisam encontrar soluções criativas para impedir possíveis ataques. Se ocorrer uma invasão, eles investigam o incidente para ajudar a identificar a fonte do comprometimento e fortalecer o aplicativo contra ataques futuros.

Além das habilidades listadas acima, as seguintes certificações podem reforçar o conhecimento de um engenheiro de segurança de aplicativos.

Se você está considerando uma carreira como profissional de segurança de aplicativos, obter um diploma universitário em ciência da computação é uma boa maneira de começar nesse caminho. Geralmente, os engenheiros de segurança de aplicativos começarão como desenvolvedores de aplicativos e, em seguida, passarão para o campo de segurança cibernética. Além disso, várias faculdades oferecem diplomas em segurança cibernética. É definitivamente um campo emocionante com muitas oportunidades.

Agora que você conhece as habilidades de que precisa para ser um(a) engenheiro(a) de segurança de aplicativos, vamos olhar para os cenários de segurança comuns que um engenheiro de segurança de aplicativos encontra e como proteger os aplicativos nessas situações.

Cenários comuns de segurança de aplicativos

Os cibercriminosos procuram o acesso mais fácil para roubar, modificar ou destruir dados que envolva o menor esforço e forneça o maior retorno. Quanto mais complexo for um aplicativo, maior a probabilidade de conter vulnerabilidades de segurança. Os aplicativos, especialmente os aplicativos web, são alvos de cibercriminosos porque apresentam uma superfície de ataque grande e com relativa facilidade de explorar (a interface do usuário), o que pode permitir que um invasor acesse informações confidenciais armazenadas em um computador. Além disso, os invasores não precisam de ferramentas especiais para atacar um aplicativo web. Tudo o que eles precisam é de um computador e uma conexão com Internet.

Enquanto os invasores estão tentando descobrir como se infiltrar em um aplicativo, os engenheiros de segurança de aplicativos estão focados em minimizar vulnerabilidades nos códigos dos aplicativos e garantir que os componentes do aplicativo são configurados com segurança, a fim de impedir o acesso não autorizado às contas e aos dados dos clientes. Um recurso valioso para consultar ao revisar os riscos de segurança dos aplicativos é a organização Open Web Application Security Project (OWASP). A OWASP é uma organização internacional que fornece informações disponíveis gratuitamente com foco em melhorar a segurança do software.

Então, quais são alguns riscos comuns que um engenheiro de segurança de aplicativos pode encontrar? Um ataque de injeção é um bom exemplo e ocorre quando há uma higienização inadequada das entradas do aplicativo. Em um ataque de injeção, um invasor insere um código, em vez dos dados de entrada esperados, na lógica de manuseio de entrada de aplicativos (o código que gerencia a comunicação entre uma interface de usuário final e um banco de dados). 

Se o aplicativo foi programado incorretamente, ele executará o código que o invasor injetou. Por exemplo, “structured query language”, conhecida comumente como SQL, pode ser inserida em um campo de endereço de email em uma página da web. SQL é uma linguagem usada em programação e foi projetada para gerenciar dados. Se não houver verificação no campo de entrada, um invasor poderá extrair informações (como registros de saúde) do banco de dados do aplicativo usando código SQL. 

Para higienizar a entrada de um usuário, um aplicativo deve garantir que manuseará a entrada do usuário como dados em vez de comandos e incluirá apenas caracteres listados para permissão (uma lista de permissão é uma lista de caracteres que têm acesso a um sistema). Quando uma lista de permissão é usada, todas as outras entidades têm acesso negado, exceto aquelas incluídas na lista de permissão e aquelas que não excedem os tamanhos máximos do campo de dados.

Outras responsabilidades dos engenheiros de segurança de aplicativos são revisar, testar e verificar códigos durante o processo de desenvolvimento para garantir que as entradas de usuário serão adequadamente higienizadas, a fim de ajudar a prevenir o ataque de injeção descrito acima. Isso é especialmente essencial no contexto de desenvolvimento ágil de software, que busca fornecer funcionalidade a aplicativos mais rapidamente do que por outros métodos de desenvolvimento. Mas o método ágil adiciona complexidade porque requer atualização contínua dos aplicativos para acompanhar as expectativas do usuário final. Espera-se que os desenvolvedores ajam rapidamente fornecendo novos recursos e corrigindo bugs descobertos. Os aplicativos precisam ser fortalecidos para evitar explorações, e o engenheiro de segurança de aplicativos deve aconselhar a equipe de desenvolvimento sobre a maneira mais eficiente de fazê-lo.

A criptografia fraca ou inexistente é outra deficiência de segurança de aplicativos predominante que pode permitir que os invasores exponham dados confidenciais. Os aplicativos são vulneráveis quando usam protocolos como HTTP, que transmitem dados como texto não criptografado. Os aplicativos devem usar protocolos seguros, como HTTPS, que criptografam transmissões de dados, para que os dados não possam ser lidos sem a chave de descriptografia adequada. Algoritmos de criptografia antigos e fracos e funções de criptografia desenvolvidas internamente devem ser evitados. Em vez disso, os engenheiros de segurança de aplicativos devem confiar em algoritmos de criptografia seguros e baseados em padrões.

Os engenheiros de segurança de aplicativos ajudam os desenvolvedores a seguir um processo de SDLC seguro. Eles adotam técnicas seguras de design e arquitetura de aplicativos baseadas em práticas de segurança bem conhecidas, que incluem fornecer autenticação e autorização fortes e empregar gerenciamento de sessão segura para evitar acesso não autorizado. 

Os engenheiros de segurança de aplicativos implantam aplicativos que impedem que os usuários façam login com credenciais padrão, já que este é um vetor de ataque comum. Eles higienizam a entrada do usuário para dificultar ataques de injeção. Algumas violações de dados tiveram êxito devido à criptografia fraca e, por isso, os engenheiros de segurança de aplicativos usam algoritmos fortes com gerenciamento adequado de chaves de criptografia para criptografar transmissões de dados e dados armazenados (dados inativos). Então, se os invasores se infiltrarem no sistema, eles não podem extrair nenhuma informação útil, pois não saberão como descriptografar os dados. 

Os engenheiros de segurança de aplicativos garantem que os erros são tratados corretamente para que nenhuma informação confidencial seja liberada ao usuário. Eles também realizam testes estáticos e dinâmicos de segurança do aplicativo durante e após o seu desenvolvimento e monitoram atividades incomuns no aplicativo após a implantação.

Resumo

Nesta unidade, vimos como uma falha na segurança de aplicativos pode afetar um negócio, vimos de quais habilidades os engenheiros de segurança de aplicativos precisam e exploramos cenários comuns de segurança de aplicativos. Em seguida, vamos discutir o primeiro passo que todo bom engenheiro de segurança de aplicativos dá: identificar os aplicativos em seu ambiente e seus riscos associados.

Recursos

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira