Application Security Manager. Desenvolvedor ou segurança?

Os ataques mais bem-sucedidos de uma organização são implementados por meio de vulnerabilidades e indicadores em software. Felizmente, um scanner de vulnerabilidade de software ainda não é considerado pelas empresas como algo exótico, mas como um elemento necessário da infraestrutura de proteção. Se, com pequenos volumes de desenvolvimento, você puder usar o scanner como está, então, quando os volumes forem grandes, será necessário automatizar o processo. Mas quem deveria administrar isso? Decida com que frequência verificar lançamentos? Verificação de vulnerabilidade? Decida se veta a versão e envia o código para corrigir as vulnerabilidades? E responda a muitas outras perguntas. É aqui que o Application Security Manager, gerente de desenvolvimento seguro de software, vem à tona.

imagem

Mas onde encontrar um pássaro tão raro ou como cultivá-lo você mesmo? Artem Bychkov, gerente de segurança de aplicativos do Raiffeisenbank JSC, e Daniil Chernov, chefe da Rostelecom Solar, Solar appScreener, descrevem os requisitos para o gerente de segurança de aplicativos ditados pelas práticas de desenvolvimento em empresas russas.

Quem é o Application Security Manager


As organizações, mais cedo ou mais tarde, percebem a necessidade de contratar essa pessoa na equipe. Em particular, porque nenhum dos especialistas disponíveis na empresa é diretamente adequado para essa função. Desenvolvedores? Sua experiência de trabalho está conectada especificamente ao desenvolvimento de software - é muito difícil para eles traduzir as vulnerabilidades encontradas em riscos de SI, e mais ainda nos riscos para os negócios. Os seguranças? A imersão nos meandros do desenvolvimento é problemática para eles: para verificar vulnerabilidades, é preciso entender os códigos de software em diferentes idiomas, o que exige uma experiência séria de desenvolvimento.

Vamos examinar as tarefas que surgem durante a implementação do processo de desenvolvimento seguro, que devem ser tratadas pelo Application Security Manager (AFM).

O leitor pode ter a opinião de que o trabalho do AFM está exclusivamente relacionado à verificação do desenvolvimento de software quanto à conformidade com os requisitos de segurança. Porém, problemas de segurança surgem em vários estágios do ciclo de vida do sistema, do design à implantação e produção. Existem vários modelos para a construção de um ciclo de desenvolvimento seguro (Software Security Touchpoints, SDLC e outros) e vários métodos para incorporar essas práticas no processo (dependendo da abordagem usada - cascata, ágil). Mas todos eles concordam com os principais pontos: você precisa pensar em segurança em todas as etapas do ciclo de vida do sistema.

Obviamente, no âmbito de um projeto mais ou menos grande, é improvável que uma pessoa seja capaz de executar o trabalho em todas as etapas. É raro que alguém sozinho possa desenvolver requisitos de segurança de aplicativos, executar uma revisão de sua arquitetura e verificar o resultado do trabalho dos analistas, realizar uma auditoria de segurança de código, garantir que os testes de segurança de aplicativos necessários foram realizados durante o teste e que o sistema foi implantado e configurado com segurança. Além disso, muitas vezes essas atividades são realizadas por representantes de diferentes equipes e unidades. Para que todo o mecanismo funcione como deveria, a força motriz do processo deve ser o AFM. A tarefa do AFM é garantir a implementação de práticas de desenvolvimento seguras, por conta própria ou delegando determinadas tarefas a especialistas especializados. No entanto, com base em nossa prática, não é possível que o AFM simplesmente entregue tarefas aos responsáveis ​​e descanse em seus louros.

Quais são os requisitos para o AFM


Em primeiro lugar, ele é obrigado a entender o projeto que acompanha. Isso é especialmente importante no desenvolvimento ágil, quando, diferentemente do modelo em cascata, você não tem 2 meses para realizar uma revisão antes do lançamento. Depende do AFM, por exemplo, como os requisitos formados no estágio de design serão interpretados pela equipe, como eles cairão na arquitetura, se são geralmente realizáveis ​​e se criarão sérios problemas técnicos no futuro. Na maioria das vezes, o AFM é o principal consumidor, intérprete e avaliador de relatórios de instrumentos automatizados e auditorias realizadas por terceiros. É o AFM que filtra resultados irrelevantes e errôneos, avalia riscos e participa dos processos de gerenciamento de exceções e desenvolvimento de medidas compensatórias.

imagem

Aqui está um exemplo de vida: uma auditoria ou um scanner de código-fonte revelou o uso de uma função hash insegura (MD5) em um projeto. A política da empresa insiste formalmente em que não pode ser usada e o fornecedor concorda em substituir a função por uma mais segura em 3 meses e uma grande quantidade. A nuance foi que, nesse caso, a instabilidade da função hash contra colisões não afetou a segurança do sistema, pois a função não foi usada para proteger a integridade. A abordagem formal nesse caso e a substituição de uma função por outra levaram a um tempo excessivamente atrasado para que a saída do projeto apresentasse custos produtivos e significativos, proporcionando um ganho zero em segurança.

Em segundo lugar, além do primeiro, o AFM deve ter conhecimento de vários campos: você precisa entender os processos de desenvolvimento e os princípios de segurança da informação. As "habilidades difíceis" também são importantes, porque é muito difícil avaliar criticamente os resultados do trabalho de especialistas especializados e ferramentas automatizadas. Se você não consegue ler o código, não entende as maneiras possíveis de explorar vulnerabilidades. Certamente, muitos foram confrontados com uma situação em que uma vulnerabilidade crítica aparece na análise de código ou no relatório de teste, mas os desenvolvedores não concordam com isso (e, como regra, eles também desejam criar um sistema seguro) e indicam que os auditores não conseguiram operar isso. vulnerabilidades. Como avaliar quem está certo em uma situação semelhante? Sem habilidades técnicas, resolver objetivamente uma disputa será difícil. Se o processo de desenvolvimento de software seguro é construído pelas mãos de uma organização externa e / ou de acordo com o modelo de serviço, quem e como avaliará o desempenho das práticas "técnicas"?

Outro exemplo de vida: uma nova ferramenta de desenvolvimento está sendo introduzida, seu desempenho é verificado em um projeto de referência, após o qual é transferido para operação comercial. Os projetos são gradualmente conectados a ele, um belo painel verde é desenhado ... e aqui ocorre um incidente de segurança da informação. Como se vê, o “buraco” usado deveria ter sido detectado no estágio da análise dinâmica. Mas isso não aconteceu, porque ... ninguém olhou, mas como esse scanner de vulnerabilidades de ponta, que geralmente produz excelentes resultados, trabalha com aplicativos SPA usando a nova estrutura JavaScript. Aconteceu que ele não podia "ver" o formulário de autenticação gerado dinamicamente e fazer as verificações necessárias. E ninguém prestou atenção, porque tudo funcionou. Os desenvolvedores não precisaram se aprofundar nas especificidades do funcionamento dos scanners para chamar a atenção para isso, e as equipes de segurança não viram as diferenças críticas entre as diferentes abordagens do desenvolvimento da Web.

Onde conseguir um especialista


imagem

Quem estudou o mercado deve ter enfrentado uma escassez aguda de especialistas em segurança de aplicativos. Normalmente, o cenário é o seguinte: os clientes internos elaboram requisitos para o candidato e os transferem para a equipe. Se os requisitos forem rigorosos, de acordo com os resultados de uma pesquisa gratuita, a empresa receberá zero candidatos, uma vez que especialistas prontos raramente publicam currículos em domínio público. Se eles mudam de emprego, isso geralmente acontece com facilidade e naturalidade através dos contatos existentes. Como ser

Você pode tentar atrair um profissional de outras empresas, mas esse caminho nem sempre é aceitável por vários motivos. Mais e mais vezes, aparecem no mercado competições de terceirização de AFM, o que permite com êxito que você encerre o problema alugando especialistas de um provedor de serviços.

Mas há outra opção. Você pode tentar aumentar seu profissional. Representantes de duas áreas podem ser candidatos adequados para essa função:

  1. pessoas do desenvolvimento que gostam ou desejam se desenvolver no campo da segurança;
  2. guardas técnicos que estão familiarizados com o desenvolvimento e a segurança de software e desejam aprofundar-se neste tópico.

Esses e outros candidatos precisarão dominar o pacote de conhecimento ausente. Ao mesmo tempo, as pessoas do desenvolvimento que desejam "reformar" terão uma melhor compreensão da cultura e dos processos existentes nas equipes que conhecem. Pode levar algum tempo para dominar as áreas de conhecimento relacionadas à segurança da informação. No entanto, a experiência mostra que, entre desenvolvedores, testadores, analistas e arquitetos, é possível encontrar pessoas interessadas em segurança que já possuem um certo conjunto de conhecimentos no campo da segurança de aplicativos. Eles podem ser candidatos ideais para um trabalho AFM.

Os guardas de segurança profissionais terão que se acostumar, mudando as abordagens familiares existentes para organizar o trabalho e adotar a cultura nas equipes de desenvolvimento. No entanto, se um especialista em segurança escrever código e estiver familiarizado com os processos de desenvolvimento, ele se juntará à equipe de maneira rápida e simples.

Total


O controle de segurança do desenvolvimento é principalmente um processo de negócios, para o funcionamento bem-sucedido do qual é necessária uma interação coordenada de todos os membros da equipe. O "coração" desse processo é um AFM qualificado - ele é o inspirador e o mecanismo direcional, e o executor de muitas tarefas, o gerente de controle e muitos outros. Em geral, o leitor, o ceifador e o cara estão no cano. Encontrar ou criar um especialista assim não é fácil, mas se você conseguir, todos ficarão felizes.

Source: https://habr.com/ru/post/pt458338/


All Articles