Dev para DevSec- O Guia Tático de Cinco Pontos para desenvolvedores seguros
Waterfall, Agile, DevOps … parece que a cada poucos anos, um novo metodologia nasce para a criação de software ideal dentro de uma organização. Embora todos esses processos tenham seus pontos fortes e fracos, o simplificar (e, er, burocracia anteriormente ausente) que eles trazem pode parecer um obstáculo para o objetivo principal do desenvolvedor: RECURSOS DE CONSTRUÇÃO DE KICK-ASS.
Muitas luas atrás, quando o mundo se movia em um ritmo aparentemente mais lento, as organizações encarregariam seus desenvolvedores de criar novos aplicativos sem entrada de equipes de segurança ou operações. Eles eram livres para escrever seu código, colocando seu selo digital no mundo com um foco de laser em funcionalidade, inovação e lançamento de novos recursos. Depois de concluído, eles normalmente o entregariam a uma equipe de operações para instalar em seu ambiente de produção da empresa. A segurança foi uma reflexão tardia na maior parte do o tempo, se for considerado diretamente. O software parecia ótimo, funcionava bem, e o trabalho do desenvolvedor foi feito. Até que um dia não era, e segurança a depuração começou a interromper a codificação de fluxo livre em um ambiente de negócios, com risco crescente para a empresa e os usuários finais.
Uma nova era de dores de cabeça de segurança (e nenhuma propriedade particular)
Quando falhas de segurança e vulnerabilidades do programa foram descobertos, o que às vezes só acontecia depois que um usuário explorou um aplicativo, o equipe de operações puxaria o aplicativo e o enviaria de volta para os desenvolvedores para corrigir. Nesse estágio, os desenvolvedores já estavam trabalhando em novos projetos, efetivamente tendo que pausar esses esforços para para consertar velhos problemas. Eles fizeram o seu melhor, mas indo recursos de segurança para as costas e sapatos em um aplicativo que uma equipe de desenvolvimento concluiu um ano atrás dificilmente é eficiente. E às vezes consertando um problema criaria muitos outros, garantindo todo o ciclo frustrante continuaria.
Isso parece familiar?
Isso atrapalhou o desenvolvimento de novos aplicativos vinte anos atrás, e essa dor continua hoje. As organizações ainda estão expostas a um risco inaceitável pela implantação potencialmente insegura código, e os desenvolvedores permanecem paralisados com a responsabilidade de continuar criando recursos para um prazo, enquanto depura projetos antigos quando obrigatório. Planos de mitigação tiveram que ser implementados com pressa, e atualizado frequentemente para lidar com um demanda cada vez maior por software. Entra, DevOps.
DevOps: uma metodologia com mais espaço shift left
O movimento DevOps aborda isso ataque violento de construção de código e entrega de recursos, nomeadamente, garantindo que a equipa de desenvolvimento está envolvido com as principais equipes de operações do começo. Considerado como um todo, DevOps pode ser um metodologia de sucesso. Certamente agiliza o processo de desenvolvimento, uma necessidade nos dias de hoje, quando organizações às vezes estão criando centenas ou milhares de novos aplicativos todos os anos. No entanto, este pivô rápido para acompanhar a demanda não é a solução para um problema de segurança crescente; DevOps não é perfeito.
Ter desenvolvedores e equipes de operações trabalham juntas ajuda a fazer implantação de aplicativos mais eficiente, mas não bloquear totalmente todos os problemas de segurança, para quando eles surgir, ainda coloca muita pressão sobre os desenvolvedores que já tem muitos pratos para girar. dedicada profissionais de segurança são necessários, que são treinados em como identificar e interromper as vulnerabilidades mais recentes, problemas de segurança e exploits (e eles geralmente têm uma pilha de tecnologia para apoiar seus esforços). Por isso muitas organizações adicionaram grupos de segurança de aplicação, ou AppSec, para seu processo de desenvolvimento.
Com a pressão de segurança desviada para um especialista equipe, está tudo consertado, certo? Mais de duas décadas de depuração ineficiente e disruptiva para os desenvolvedores pode finalmente chega ao fim, e eles podem voltar para sua principal prioridade: construir recursos incríveis. Bzzt, errado. Mas há esperança.
DevSecOps: segurança como um compartilhamento de responsabilidade desde o início
No momento, temos algumas organizações que estão trabalhando em um ambiente DevOps, mas com uma equipe AppSec separada. E alguns grupos ainda não mergulhou no DevOps. Talvez eles ainda estejam codificando usando algo como Ágil, que é eficiente, mas não exige segurança em consideração como um foco principal
O principal descuido em muitos desses abordagens é a falta de equipes de segurança envolvimento desde o início. Com dia zero exploits que chegariam a um por dia por 2021 , há uma necessidade urgente de casar com segurança melhor prática com a enorme quantidade de código sendo produzidos, e fazê-lo o mais cedo possível. Mais código significa mais vulnerabilidades e, portanto, um metodologia atualizada nasceu: DevSecOps.
Em todos os casos, o objetivo final deve estar evoluindo para um completo Programa DevSecOps.
Em todos os casos, o objetivo final deve estar evoluindo para um completo Programa DevSecOps.
Hoje em dia, a implantação de um aplicativo seguro é tão importante para a maioria das organizações como qualquer função principal do aplicativo será conduzindo. Codificando um aplicativo que funciona bem, mas que expõe uma empresa a um potencial exploit, é um fracasso tanto quanto fazer um aplicativo que não funciona corretamente.
No entanto, jogos de apontar o dedo e culpar são uma perda de tempo. A segurança é de todos responsabilidade, e cada departamento precisa os recursos para se apropriar. O que mais, a equipe de desenvolvimento pode desempenhar um papel crítico na redução dos vetores de ataque em software desde o início, eliminando ulnerabilidades e economizando muita segurança depuração mais tarde.
Pense sobre os processos que você trabalha atualmente com a criação de software; quão bem seria o seu equipe lidar com essa abordagem? Quão cientes estão de como você, o desenvolvedor, se encaixaria em um Cenário DevSecOps?
Se DevSecOps é tão bom, por que nem todo mundo está fazendo isso?
Movendo uma organização para um DevSecOps eficiente o programa nem sempre é fácil; são partes iguais e mudança operacional e cultural para a maioria das empresas, mas o resultado final vale a pena. No cyber de hoje ambiente, os hackers estão continuamente verificando para código vulnerável. Aplicativos inseguros podem ser atacados dentro de momentos de sua implantação, destruindo um trabalho árduo da equipe em um instante (para não mencionar o reputação da empresa).
Com a demanda insaciável da humanidade por experiências digitais incríveis - ao som de aproximadamente 111 bilhões de linhas de código sendo escrito a cada ano - um método sustentável de gerenciamento de projetos é necessário para manter todos, especialmente desenvolvedores, sãos e produtivo. Simplificando, qualquer coisa menos do que um operação DevSecOps formidável neste ponto com o tempo é um risco para o negócio.
Fazendo o movimento de Dev para DevSec
Se você é um desenvolvedor me perguntando onde você pode caber dentro do Processo DevSecOps, você veio para o lugar certo
É verdade que os desenvolvedores, em geral, são pessoas extremamente inteligentes, muitos dos quais têm um amor por resolver problemas e aprender com a experiência prática4. Também é verdade que muitos os desenvolvedores não tiveram a experiência mais positiva quando se trata de segurança dentro de sua vida profissional. Ouvir a equipe do AppSec raramente é uma experiência edificante; eles tendem a bater apenas na porta quando o código é quebrado em um nível de segurança, efetivamente dizendo os gênios do desenvolvimento criativo por trás do software dizem que seu bebê é feio.
O treinamento e a conscientização de segurança são imprevisíveis, se for implementado. Se você é um desenvolvedor que se sente deixado para trás e um pouco mudado no departamento de aprimoramento de segurança, você não é sozinho. De acordo com DevSecOps da Veracode Pesquisa Global de Habilidades 5, apenas 24% dos entrevistados foram obrigados a participar de treinamento de segurança como parte de sua educação, e assombrosos 86% dos entrevistados sentiram que suas organizações não eram investir o suficiente em treinamento de segurança de aplicativos. O simples fato é que, sem desenvolvedores seguros, todo o processo DevSecOps desmorona. Especialistas em AppSec estão em menor número por engenheiros de software e a quantidade de código sendo produzido e desenvolvedores que estão cientes da segurança são cruciais para fazer a ponte lacuna de conhecimento de segurança.
Desenvolvedores seguros são valiosos e procurados e se destacar entre os menos treinados pares. Embora o objetivo final de construir recursos incríveis permanecerão, com segurança à primeira vista, esses recursos podem ser seguros por padrão (e leva a menos interrupções descendo a trilha; afinal, quem quer corrigir algo que foi esquecido por meses atrás?). Para software e inovação digital para ser realmente grande, deve ser seguro.
Que sucesso as equipes DevSecOps compartilham
Definindo uma única estratégia para criar uma equipe DevSecOps que trabalhe em cada organização e cada situação são virtualmente impossíveis. É um pouco como examinar uma equipe esportiva profissional vencedora e, em seguida, tentar espelhe seu sucesso construindo um segundo que seja exatamente o mesmo. Existem muitas variáveis para que uma cópia exata funcione sempre.
DevSecOps é tanto uma cultura quanto é um programa, portanto, nem todo projeto funcionará perfeitamente dentro cada empresa (isso deve servir como um lembrete oportuno para verificar o pulso de sua cultura geral de segurança por sinais de vida e oportunidade para melhorá-lo). Mas a maioria de grupos DevSecOps de sucesso, como equipes esportivas vencedoras, compartilharão muitos dos mesmos elementos.
Fomentando esses elementos-chave - modificado conforme apropriado para o seu papel como desenvolvedor dentro do organização - irá ajudá-lo a forjar o seu caminho em uma equipe DevSecOps vencedora que pode melhorar a aplicação eficiência de desenvolvimento e segurança.
Estes são alguns dos elementos mais importantes que altamente equipes DevSecOps bem-sucedidas compartilham:
- Equipes DevSecOps bem-sucedidas reconhecem que a segurança é uma responsabilidade compartilhada.
- equipes de DevSecOps se desenvolvem melhor em um ambiente altamente favorável ambiente, onde todos - da equipe individual membros para os supervisores e gestão - abraçar a cultura e apoiar os esforços de colaboração.
- As principais equipes DevSecOps treinam de forma consistente e melhorar suas habilidades enquanto trabalham.
- Equipes DevSecOps de sucesso empregam um conjunto de ferramentas que são adaptados especificamente para o trabalho em questão, pode ser entendido e usado por desenvolvedores, operações equipes e pessoal de segurança igualmente.
- As equipes DevSecOps de maior sucesso são transparentes uns com os outros. Eles entendem o núcleo de cada equipe funções, pontos fortes e limitações, e eles jogam para esses pontos fortes. O esforço é feito para garantir que cada peça do quebra-cabeça DevSecOps tem espaço para respirar para fazer o seu melhor trabalho.
Eles não representam uma lista completa de tudo que o DevSecOps bem-sucedido as equipes compartilham, mas são alguns dos elementos mais importantes. Se sua empresa toma medidas significativas para ajudá-lo a prosperar, isso ajudará muito a garantir que seu O programa DevSecOps começa forte e mantém uma codificação e uma codificação segura e eficiente desenvolvimento de aplicações nos próximos anos.
Implementação de elementos DevSecOps bem-sucedida para desenvolvedores
Embora a criação de uma operação e cultura DevSecOps dentro de sua organização seja a objetivo (e não aquele que deve ser suportado por uma equipe ou um indivíduo sozinho), o processo pelo qual você, como desenvolvedor, e uma contraparte na equipe AppSec chegará lá, não haverá idêntico. Os desenvolvedores inicialmente terão uma perspectiva e um conjunto de habilidades completamente diferentes, com prioridades principalmente em desacordo com a equipe de segurança. Uma vez alinhado e com as ferramentas para ter sucesso, no entanto, seus objetivos finais com a implementação de DevSecOps serão semelhantes.
A seguir estão alguns conselhos práticos que você pode seguir para se tornar parte integrante de o programa DevSecOps em sua organização. Ao estudar elementos testados e comprovados de engenheiros que efetivamente operaram em um Ambiente DevSecOps no passado, você pode faça a transição para um membro da equipe com base em DevSec de valor inestimável.
Guia tático de cinco pontos
- A mentalidade DevSec reconhece que a segurança é uma responsabilidade compartilhada.
- Procure fazer parte de um grupo altamente solidário ambiente.
- As melhores equipes DevSecOps treinam constantemente e melhorar suas habilidades enquanto trabalham.
- equipes DevSecOps de sucesso empregam um pacote de ferramentas que são personalizadas especificamente para o trabalho em mãos.
- As equipes DevSecOps mais bem-sucedidas são transparentes entre si.
1 - A mentalidade DevSec reconhece que a segurança é um responsabilidade compartilhada
Embora paradoxal, esta etapa é a mais fácil e obstáculo mais difícil para os desenvolvedores superar. É fácil em que a declaração faz todo o sentido - é um enorme trabalho, e realmente “exige uma aldeia”. Mas também é difícil aceitar porque os desenvolvedores têm sido tradicionalmente classificados mais na velocidade de sua codificação, em oposição a as qualidades seguras desse código. Se um aplicativo funcionou, parecia bom e foi entregue em tempo hábil, então isso foi considerado uma vitória. Se o aplicativo fosse mais tarde retrucado a eles por causa de problemas de segurança no ambiente operacional, não foi culpa deles. Isto era apenas aquele pessoal chato do AppSec dando-lhes mais trabalho e diminuindo seus esforços com qualquer novo aplicativos eles já estavam no meio da codificação.
Pense se isso ressoa: o medo compartilhado por a maioria dos desenvolvedores é que a implementação de DevSecOps irá adicionar mais uma camada de responsabilidade para seus já prato cheio. Como eles serão capazes de manter seu alto volume de produção e registro de codificação rápido, se eles agora deve desenvolver a segurança e “incorporá-la” a cada aplicativo Eles criam? É, compreensivelmente, um fator de estresse.
A mudança que você exigirá para abrir sua mente para o nova realidade de que a segurança é pelo menos tão importante quanto um aplicativo funcionando corretamente, não será durante a noite e vai causar um pouco de estresse. Se o software funcionar bem, mas expõe uma empresa a invasores por meio de um sistema de segurança vulnerabilidade, então implantar esse programa é muito pior do que perder algum prazo arbitrário.
Nesse ambiente, os melhores codificadores sempre serão aqueles que estão cientes da segurança e podem criar boas e seguras código. Na verdade, a demanda por 6 talentosos DevSecOps engenheiros está disparando sem fim à vista. Isto é benéfico para você abraçar DevSecOps como uma forma para proteger uma organização e um caminho para melhorar suas habilidades.
Tornar-se um engenheiro DevSecOps o levará longe mais valioso do que um codificador médio. Você absolutamente se tornará um funcionário muito procurado em um campo cada vez mais vital, e você será capaz de negociar um melhor como salário resultado.
2 - Procure fazer parte de um ambiente altamente favorável
Devido ao fato de que as equipes de desenvolvimento são os mágicos criando novos aplicativos, enquanto o operações e equipes de segurança estão apoiando aqueles esforços, muito do sucesso de um programa DevSecOps vai se resumir à atitude dos desenvolvedores.
Em um ambiente DevSecOps em funcionamento, os desenvolvedores são classificados por seus supervisores de equipe mais em seus capacidade de criar software seguro em oposição ao seu capacidade de simplesmente codificar rapidamente. Eles também permitem tempo para toda a equipe de desenvolvimento usar o ferramentas de segurança disponíveis para eles, incluindo rajadas de treinamento como parte do trabalho.
Se você e a equipe adotarem a nova segurança treinar e melhorar seu trabalho, deve haver reconhecimento, recompensa e reconhecimento público de sua compromisso com um padrão de código mais elevado.
Além disso, os desenvolvedores seniores em equipes que constantemente mostram uma aptidão para a criação código seguro deve ser encorajado a se tornar campeões de segurança. Esses campeões deveriam então ter autonomia para trabalhar com equipes de AppSec fazendo decisões de segurança sobre os aplicativos que estão sendo criados. Eles também devem se tornar mentores e treinadores para outros desenvolvedores e receba recompensas e elogios por assumindo com sucesso suas novas funções.
Você, como um desenvolvedor autônomo, não pode promover uma ambiente de apoio em toda a empresa, mas a realidade é que a equipe de desenvolvimento é a primeira e sem dúvida o grupo mais importante quando se trata de criando software seguro. O que você pode fazer é comprometer a si mesmo com padrões de segurança mais elevados, apoiando os outros e trabalhar positivamente com seus novos parceiros iguais das equipes de operações e segurança.
Se sua organização implementou um DevSecOps programa, e eles não estão ajudando você a trabalhar para a parte “DevSec” do processo, vale a pena sinalizar com gerentes seniores. O sucesso depende do suporte e tendo tempo suficiente para operar de forma eficiente neste processo relativamente novo.
3 - As melhores equipes DevSecOps treinam constantemente e melhoram suas habilidades enquanto trabalham
A menos que os desenvolvedores individuais estejam altamente focados em cibersegurança como um interesse pessoal, a maioria dos programadores terá muito que aprender ao se tornar parte de um Programa DevSecOps. A chave para esse sucesso será estar empregando um programa de treinamento com experiência comprovada histórico de promoção de habilidades de codificação mais seguras.
O treinamento deve ensiná-lo a olhar para o software que você está projetando através dos olhos de alguém que está tentando explorá-lo
Um bom programa de treinamento deve reforçar o conceito de pensar como um hacker. Deve ensiná-lo a olhar para o software que você está projetando através dos olhos de alguém que está tentando explorá-lo. Deve capacitá-lo com as habilidades para antecipar o que um hacker deseja fazer e quais métodos ele usará para atingir seus objetivos insidiosos. Ele deve, então, fornecer a você o conhecimento para escrever um código seguro que frustre esses esforços e elimine quaisquer vulnerabilidades.
Idealmente, o treinamento de código seguro deve ser contínuo, não um exercício de conformidade “um e feito” que data rapidamente e não é contextualmente útil. Alguns dos melhores programas de treinamento de desenvolvedor usam código do mundo real, o tipo com o qual você trabalharia no dia a dia, na linguagem e estrutura que você realmente usa.
4 - Equipes de DevSecOps bem-sucedidas empregam um conjunto de ferramentas que são adaptadas especificamente para o trabalho em questão
Deixar de se preocupar muito com a segurança e integrá-la a cada parte do software pode ser uma grande transição. Ter um bom treinamento ajudará muito a educá-lo sobre vulnerabilidades comuns e ensiná-lo a pensar como um invasor. No entanto, para efetivamente colocar esse conhecimento em prática, são necessárias boas ferramentas. As melhores equipes DevSecOps têm acesso a um conjunto deles, porque nenhuma ferramenta única é perfeita em todas as situações, com a capacidade de verificar e eliminar todos os bugs de segurança possíveis em todos os ambientes imagináveis.
Por exemplo, as ferramentas de teste de segurança de aplicativo estático (SAST) e seu primo próximo, as ferramentas de teste de segurança de aplicativo dinâmico (DAST), são projetadas para ajudar a encontrar falhas de segurança escondidas dentro do código, muitas vezes antes que ele possa chegar a um ambiente de produção. Mas eles abordam os testes de segurança de maneiras diferentes e em diferentes estágios de desenvolvimento de código, portanto, ter ambos disponíveis seria benéfico para desenvolvedores em equipes DevSecOps.
Você também deve procurar estar ciente da política de segurança e das regras de práticas recomendadas que são específicas para sua empresa, como quais bibliotecas de código seguro podem ser usadas ao projetar qualquer novo software (dentro do OWASP Top 10, usando componentes com vulnerabilidades conhecidas ainda está em número nine7).
A chave é ter o conhecimento e o conjunto de ferramentas certo em toda a equipe, usando o que for mais apropriado para a tarefa em questão.
5 - As equipes DevSecOps mais bem-sucedidas são transparentes umas com as outras
Transparência é o segmento que reúne os outros elementos-chave de um programa DevSecOps bem-sucedido. Isso significa que cada grupo deve compreender sua nova função, seus pontos fortes e limitações e, de preferência, trabalhar com o mesmo conjunto de ferramentas e programas de treinamento que outras equipes em um ambiente colaborativo. Estruturalmente, você deve ter autonomia para falar com as equipes de operações e AppSec como iguais e de uma forma que promova a compreensão universal. Em um jogo de culpas, ninguém ganha, e isso também significa que outras pessoas no ambiente DevSecOps também devem buscar entender seus desafios.
Uma área específica de preocupação em relação à transparência para desenvolvedores que ingressam em um programa DevSecOps é a necessidade de garantir que suas novas funções como profissionais de segurança não diminuam sua responsabilidade primária de criar aplicativos.
A transparência é importante, mas você precisa ter cuidado para que esse novo enfoque na segurança não sobrecarregue sua função como codificador. As ferramentas colocadas em uso não devem apenas ser transparentes, com operações e equipes de AppSec trabalhando a partir do mesmo manual, mas também projetadas para oferecer suporte em vez de impedir seus esforços de codificação.
Com as ferramentas certas, treinamento e transparência, os desenvolvedores serão livres para aplicar suas melhores práticas de desenvolvimento de segurança a todas as aplicações que eles criam.
Você está pronto para começar com DevSecOps?
Esperamos que este white paper tenha dado muito a você considerar como parte de sua função em um programa DevSecOps eficiente, que oferece suporte à criação de aplicativos seguros. Muitas organizações mudaram para DevSecOps, mas a jornada para chegar lá nem sempre é fácil.
Levará tempo para treinar, levará uma mudança de mentalidade e um esforço total para construir uma cultura de segurança positiva … mas você pode fazer isso e colher os benefícios pessoais e práticos
Autor: SECURE CODE WARRIOR