Visão geral
DevSecOps significa desenvolvimento, segurança e operações. É uma abordagem à cultura, automação e design da plataforma que integra segurança como uma responsabilidade compartilhada em todo o ciclo de vida da TI.
DevSecOps em comparação ao DevOps
A metodologia DevOps não envolve apenas as equipes de desenvolvimento e de operações. Se você quiser aproveitar ao máximo a agilidade e a capacidade de resposta de uma abordagem DevOps, a equipe de segurança da TI também precisará participar integradamente de todo o ciclo de vida das suas aplicações.
Por quê? Antigamente, a segurança era delegada a uma equipe específica que atuava isoladamente no estágio final do desenvolvimento. Isso não era tão problemático quando os ciclos de desenvolvimento duravam meses ou até anos, mas já não é mais assim. Uma implementação eficaz de DevOps consegue ciclos de desenvolvimento rápidos e frequentes, muitas vezes com duração de semanas ou dias. No entanto, práticas antigas de segurança podem arruinar até as iniciativas de DevOps mais eficientes.
Agora, no framework colaborativo do DevOps, a segurança é uma responsabilidade compartilhada e integrada do início ao fim. É uma mentalidade tão importante que resultou na criação do termo "DevSecOps" para enfatizar a necessidade de criar uma base de segurança para sustentar as iniciativas de DevOps.
DevSecOps significa pensar na segurança da aplicação e da infraestrutura desde o início. Também significa automatizar algumas barreiras de segurança para impedir a desaceleração do fluxo de trabalho de DevOps. Selecionar as ferramentas corretas para integrar a segurança continuamente, como concordar em implementar um ambiente de desenvolvimento integrado (IDE) com funcionalidades de segurança, é um meio de atingir essas metas. No entanto, uma segurança de DevOps eficaz requer mais do que novas ferramentas: ela se baseia nas mudanças culturais do DevOps para integrar o trabalho das equipes de segurança o quanto antes.
A segurança em DevOps é integrada
Independentemente de receber o nome de "DevOps" ou "DevSecOps", o ideal sempre foi incluir a segurança como parte integral de todo o ciclo de vida da aplicação. O DevSecOps trata de segurança integrada, e não de segurança que funciona como um perímetro em torno de aplicações e dados. Se a segurança permanecer no final do pipeline de dados de desenvolvimento, as organizações que adotam o DevOps podem acabar voltando para os longos ciclos de desenvolvimento que estavam tentando evitar.
Em parte, o DevSecOps destaca a necessidade de convidar as equipes e parceiros de segurança a participarem das iniciativas de DevOps desde o início, a fim de integrar a segurança da informação e estabelecer um plano de automação de segurança. Essa metodologia salienta que é preciso ajudar os desenvolvedores a criar os códigos levando a segurança em consideração, um processo que exige que as equipes de segurança compartilhem insights, feedbacks e visibilidade sobre as ameaças conhecidas, como internas ou malware em potencial. O DevSecOps também se concentra em identificar riscos à cadeia de suprimentos de software, reforçando a segurança dos componentes e dependências do software open source no início do ciclo de vida de desenvolvimento do software. Para ter sucesso, uma abordagem DevSecOps eficaz também pode incluir novos treinamentos de segurança para desenvolvedores, já que esse nem sempre foi o foco no desenvolvimento de aplicações mais tradicionais.
Como realmente é a segurança integrada? Para começar, uma boa estratégia de DevSecOps é determinar a tolerância a riscos e realizar uma análise de risco/benefício. Quantos controles de segurança são necessários em uma determinada aplicação? Qual é a importância da velocidade da disponibilização para diferentes aplicações? Automatizar tarefas repetitivas é fundamental para o DevSecOps, já que fazer verificações manuais de segurança no pipeline de dados pode consumir muito tempo.
A segurança em DevOps é automatizada
O que é preciso fazer: manter os ciclos de desenvolvimento curtos e frequentes, integrar as medidas de segurança com mínima interrupção das operações, acompanhar o ritmo das tecnologias inovadoras (como containers e microsserviços) e, acima de tudo, estimular a colaboração entre equipes que normalmente trabalham isoladas, uma tarefa complicada em qualquer organização. Todas essas iniciativas começam pelas pessoas, com a colaboração de todos na empresa. No entanto, o elemento facilitador dessas mudanças no aspecto humano do framework de DevSecOps é a automação.
Mas o que e como automatizar? Existem orientações escritas para ajudar a responder a essa pergunta. As organizações precisam recuar e considerar todo o ambiente de desenvolvimento e operações. Isso inclui repositórios de controle de fontes, registros de containers, pipeline de integração e implantação contínuas (CI/CD), automação de orquestração e lançamento, gerenciamento de interfaces de programação de aplicações (APIs) e gerenciamento/monitoramento operacional.
As novas tecnologias de automação ajudam as organizações a adotar práticas de desenvolvimento mais ágeis. Elas também têm desempenhado um papel fundamental ao promover avanços nas novas medidas de segurança. No entanto, a automação não é a única parte do panorama de TI que mudou nos últimos anos. As tecnologias nativas em nuvem, como containers e microsserviços, agora são essenciais na maioria das iniciativas de DevOps, e é necessário adaptar a segurança de DevOps para que seja compatível com elas.
A segurança de DevOps foi criada para containers e microsserviços
A escala maior e a infraestrutura mais dinâmica possibilitada pelos containers mudaram a maneira como muitas organizações fazem negócios. Por isso, as práticas de segurança de DevOps devem se adaptar ao novo cenário e se alinhar às diretrizes de segurança específicas para containers.
Tecnologias nativas em nuvem não cedem a checklists e políticas de segurança estáticas. Em vez disso, a segurança precisa ser contínua e integrada em todas as fases do ciclo de vida da aplicação e da infraestrutura.
DevSecOps significa incorporar segurança em todo o desenvolvimento de aplicações. Além de novas ferramentas, essa integração no pipeline de dados exige uma nova mentalidade organizacional. Com isso em mente, as equipes de DevOps devem automatizar a segurança para proteger o ambiente e os dados em geral, assim como o processo de entrega e integração contínuas. Essa é uma meta que provavelmente incluirá a segurança de microsserviços em containers.
O Red Hat® Advanced Cluster Security usa artefatos e princípios nativos em nuvem de arquitetura de microsserviços, programação declarativa e infraestrutura imutável para automatizar as práticas recomendadas de DevSecOps. A plataforma funciona com qualquer ambiente Kubernetes e se integra com DevOps e ferramentas de segurança, ajudando as equipes a operacionalizar e proteger melhor suas cadeias de suprimentos, infraestruturas e cargas de trabalho.
Segurança de ambientes e dados
- Padronize e automatize o ambiente: cada serviço deve ter o mínimo possível de privilégios para reduzir as conexões e os acessos não autorizados.
- Centralize os recursos de controle de acesso e identidade de usuários: ter um controle rígido do acesso e usar mecanismos de autenticação centralizados são fatores essenciais para a segurança dos microsserviços, já que a autenticação é iniciada em vários pontos.
- Isole os containers que executam microsserviços um dos outros e da rede: isso inclui dados em trânsito e em repouso, já que ambos os tipos podem ser alvos de ataques.
- Criptografe os dados trocados entre aplicações e serviços: uma plataforma de orquestração de containers com funcionalidades de segurança integradas ajuda a minimizar a chance de ocorrerem acessos não autorizados.
- Introduza gateways de API seguros: APIs seguras aumentam a visibilidade de autorização e roteamento. Ao diminuir a quantidade de APIs expostas, as organizações podem reduzir as superfícies de ataque.
Segurança do processo de CI/CD
- Integre verificadores de segurança para containers: isso deve fazer parte do processo de inclusão de containers no registro.
- Automatize os testes de segurança no processo de integração contínua: isso inclui executar ferramentas de análise estática de segurança como parte das compilações, bem como verificar quaisquer imagens de container criadas anteriormente para encontrar vulnerabilidades de segurança conhecidas conforme elas são inseridas no pipeline de criação.
- Adicione testes automatizados para os recursos de segurança no processo de teste de aceitação: automatize os testes de validação de entradas e os funcionalidades de autorização e autenticação da verificação.
- Automatize as atualizações de segurança, como patches, para identificar vulnerabilidades conhecidas: faça isso por meio de um pipeline DevOps. Ele deve eliminar a necessidade de os administradores entrarem nos sistemas de produção, ao mesmo tempo que cria um log de alterações documentado e rastreável.
- Automatize os recursos de gerenciamento das configurações de serviços e sistemas: com isso, é possível manter a conformidade com as políticas de segurança e eliminar os erros manuais. As tarefas de auditoria e correção também devem ser automatizadas.