Como implantar segurança nas empresas
É comum que pequenas empresas ou startups comecem sem ninguém para cuidar da segurança do(s) sistema(s) que ela desenvolveu, mas ao longo do tempo o negócio cresce e a segurança da informação se torna cada vez mais importante.
Infelizmente a maioria só se preocupa com isso após já ter sofrido um ataque e entendido na prática que não ter segurança é mais caro do que ter. Se você está interessado em ler esse artigo tem boas chances desse ser o seu caso (mas espero que não seja).
Seja qual for seu motivo, se você precisa implantar segurança da informação na sua empresa desde o zero e não faz a menor ideia de como começar, não se preocupe, este artigo é para você.
Abaixo vou listar algumas dicas de como começar a ter segurança na sua empresa, que não precisam necessariamente serem seguidas nessa ordem.
Comece pelo elo mais fraco
Geralmente quando as pessoas pensam em cibercriminosos elas pensam em ataques muito complexos e bem elaborados. Embora esses ataques realmente aconteçam, boa parte dos ataques dos cibercriminosos costumam ser feitos de formas mais simples como um email de uma fonte desconhecida com um documento anexado.
Não é atoa que "ransomware" virou um ataque da moda nos últimos anos, pois é um jeito tecnicamente fácil de extorquir dinheiro de uma empresa.
Imagine que a segurança da sua empresa é como uma corrente usada para trancar um "portão" imaginário. O nível de resistência da corrente é definida pelo nível de resistência do seu elo mais fraco, pois se qualquer elo da corrente romper o portão estará aberto.
O elo mais fraco da segurança sempre são as pessoas. Por isso é importante fazer um trabalho de conscientização de segurança com todo mundo que trabalha na empresa, pois se um dos seus funcionários cair em um ataque de engenharia social a corrente se quebra. A conscientização de segurança consiste basicamente em educar as pessoas para evitar que elas cometam erros que colocam sua própria segurança em risco na internet. Essa educação é muito importante e diminui bastante as chances de algum funcionário sofrer algum tipo de ataque.
Além disso também é importante garantir que cada funcionário só tenha acesso suficiente para fazer seu trabalho, e nada além disso. Que é o least privilege principle, o princípio de dar o menor nível de privilégio possível para quem precisa ter acesso a algum sistema.
Também é importante seguir uma política de zero trust (confiança zero) com seus funcionários, que é o princípio de não confiar acessos por padrão e monitorar os acessos. Isolando sistemas e negando acessos de forma que o funcionário tenha que pedir autorização (ou passar por algum processo de autenticação) para acessar cada sistema/dado.
É importante ter toda essa cautela por três motivos:
- Segurança interna. Seu próprio funcionário pode tentar atacar sua empresa por vários motivos. Como vingança, tentar roubar os clientes da sua empresa, tentar roubar dinheiro da sua empresa etc.
- Mesmo que seu funcionário seja uma pessoa honesta e confiável não significa que você deva confiar nela. Pois por mais honesta que uma pessoa possa ser, essa pessoa ainda pode ser enganada por terceiros ou ter a segurança de seus dispositivos comprometida (ex.: notebook e/ou smartphone com um malware). Na verdade pessoas honestas tendem a ser mais facilmente enganadas. Então a ideia é não confiar em ninguém, nem mesmo em pessoas que merecem essa confiança.
- Caso um invasor consiga acesso interno, ele terá maior dificuldade para fazer alguma coisa uma vez que esteja dentro.
Seguindo o princípio de zero trust você tem rastreabilidade e controle de quando e quem acessou o sistema X ou o dado Y. Isso te permite negar acesso para quem não precisa/deveria ter e também permite saber exatamente quem teve acesso ao o que.
Caso alguém que tenha permissão para acessar tal dado/sistema e use esse acesso de forma indevida, você terá logs para saber quem foi e poderá incriminá-lo por isso. O medo disso acontecer já é suficiente para desencorajar um funcionário mal intencionado de tentar fazer alguma coisa.
Por outro lado quando é possível acessar sistemas e/ou dados sensíveis sem qualquer tipo de controle e log, a pessoa pode fazer o que quiser sem se preocupar em descobrirem que foi ela pois poderia ter sido qualquer um. Por isso é muito importante criar logs (que não possam ser excluídos por quem acessa o sistema) de todos os acessos à sistemas, dados, alterações de dados etc.
Pense que é como a ideia de instalar câmeras de segurança: isso não impede de roubarem sua empresa mas permite identificar quem roubou. E isso, por si só, já intimida que façam alguma coisa.
Eduque os desenvolvedores (SSDLC)
Além de se preocupar com o lado humano, também é importante se preocupar com o lado técnico. Pois cibercriminosos que tem aptidão técnica alta são minoria mas ainda existem, e se o seu negócio for chamativo o suficiente eles vão começar a ter seus sistemas como alvo.
O primeiro passo para melhorar a qualidade técnica da segurança dos seus sistemas é educando os seus desenvolvedores para aprenderem sobre desenvolvimento seguro. Afinal de contas as falhas de segurança presentes no seu sistema são, em boa parte, causadas pelos próprios desenvolvedores.
Por isso é necessário treinar os desenvolvedores para aprenderem como desenvolver sistemas com segurança. O inclui também revisar código, implementar testes automatizados (sim, isso é importante para a segurança também) e ter uma boa noção de falhas de segurança comuns (consulte a OWASP top ten e outros projetos da OWASP).
Além disso também se deve adaptar o SDLC (Software Development Lifecycle) para incluir segurança em todas as etapas do desenvolvimento, o que é chamado de Secure SDLC (SSDLC).
Desde a definição dos requerimentos até o deployment para produção, todas as etapas do SDLC tem que ser envolvida com algumas etapas de segurança. Você pode consultar modelos como o NIST SSDF ou Microsoft Security Development Lifecycle (Microsoft SDL) como referências.
Application Security (AppSec) e DevSecOps
Embora educar os desenvolvedores faça muita diferença para evitar falhas de segurança mais básicas e óbvias, não é o suficiente para evitar problemas de segurança mais sérios que podem ser desde vulnerabilidades tecnicamente complexas até falhas de design (porque nem toda vulnerabilidade está no código).
Para isso é importante montar uma equipe de AppSec ou contratar os serviços de uma empresa especializada. A equipe de AppSec basicamente será responsável por orientar e auxiliar a equipe de desenvolvimento a fazerem um trabalho com mais segurança. A equipe de AppSec atua em todas as etapas do SDLC: desde a definição de requerimentos, planejamento, desenvolvimento, testes etc. a equipe ajuda a passar por todo o SDLC com segurança em mente.
Já DevSecOps é basicamente adicionar segurança ao processo de DevOps da empresa. Para isso é importante também ter um time que entenda de segurança em nuvem (cloud security) e infraestrutura. Pois falhas de segurança também podem ocorrer no processo de deploy de uma aplicação, na configuração e manutenção do servidor, banco de dados, firewalls, redes etc.
Penetration test (Pentest)
Certo, você tem profissionais cuidando da segurança da tua infraestrutura e do teu código... Mas será que estão fazendo isso direito? Será que é efetivo para um ataque real? Se um criminoso decidir atacar sua empresa, será o suficiente para barrar? Como ter uma visão realista do que criminosos poderiam conseguir fazer ao atacar os ativos da empresa?
Para responder essas perguntas e outras existem os pentesters, que são profissionais que trabalham simulando ataques reais de um criminoso à empresa. Eles efetuam uma série de testes de segurança chamados de testes de intrusão (penetration test em Inglês) cujo o objetivo é ter uma visão realista do impacto que um atacante poderia causar.
Por exemplo: digamos que você tenha uma aplicação WEB e queira avaliar o nível de segurança dela. Você poderia contratar um serviço de pentest focado nesta aplicação para ter uma visão realista da segurança dela.
Após a conclusão do pentest, o profissional lhe entregará um relatório indicando todas as vulnerabilidades e problemas de segurança encontrados na aplicação e/ou no(s) servidor(es) dela. Com essas informações do relatório você teria as informações necessárias para corrigir os problemas de segurança identificados durante o pentest.
Security Operations Center (SOC)
Ok, agora você tem uma boa base de segurança no desenvolvimento e na infraestrutura mas... Meu sistema está sendo atacado agora? O que fazer enquanto estiver sofrendo um ataque? Como saber se alguém tem acesso aos meus servidores neste exato momento?
Bastante dor de cabeça pensar nisto tudo, mas você não precisa fazer isso pois esta é a função do Security Operations Center. Que é um time de segurança focado em prevenir, identificar e responder à incidentes de segurança. Eles são responsáveis por monitorar os ativos da empresa (como servidores, aplicações, redes etc.) para identificar possíveis ataques que possam estar acontecendo em tempo real, além de identificar possíveis problemas de segurança nos ativos, malwares que possam estar instalados em servidores/máquinas etc.
E não só isso como também atuam na prevenção, identificando proativamente possíveis problemas de segurança e os corrigindo. Também podem atuar na resposta a incidentes, que é a atividade praticada após um incidente de segurança acontecer afim de avaliar os danos causados pelo ataque e auxiliar na recuperação dos ativos afetados.
Resposta a incidentes muitas vezes é feito por um time à parte ao SOC, como um time terceirizado ou mantido pela própria empresa. Mas ter um time só para resposta a incidentes, embora seja o ideal, é caro e inviável para uma empresa que tenha baixo orçamento. Portanto a opção mais barata é manter essa responsabilidade para o time de SOC mesmo.
Ou seja: o SOC atua antes, durante e depois de um incidente de segurança. Seja para preveni-lo, para barrá-lo antes que seja bem-sucedido ou para se recuperar do incidente.
Por isso é importante para uma empresa montar um time de SOC ou então contratar um time terceirizado. Detalhe que não precisa montar um SOC enorme e bem estruturado logo de cara, um SOC pode iniciar aos poucos e ir crescendo devagar.
Conclusão
Tenha em mente que muitas atividades de segurança foram deixadas de fora deste artigo de propósito, pois a ideia é dar a fundamentação para empresas que têm zero ou pouca maturidade de segurança. Com essa base dá para ter um norte de por onde começar, e depois disso os próprios profissionais de segurança que você contratar podem auxiliar no resto.
Revisores
- iPower (@iPowerPower)
- Leandro Fróes (@leandrofr0es)