Executando verificação de segurança...
16

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:

  1. 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.
  2. 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.
  3. 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.

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

Referências

  1. OWASP Projects
  2. NIST SSDF
  3. Microsoft SDL
  4. O que é um Security Operations Center (SOC) | IBM
Carregando publicação patrocinada...
2

Muito legal esse artigo sobre segurança nas empresas! É incrível como muitas vezes só percebemos a importância disso depois de passar por algum problema, né? Gostei da dica de começar a pensar na segurança desde o início, principalmente conscientizando os funcionários. Parece meio básico, mas é verdade, o pessoal é sempre o elo mais fraco.

Essa parada de "confiança zero" faz sentido, embora seja dificil não se entrosar e ter um certo laço com o time. É bom não confiar cegamente em ninguém, mesmo que seja alguém da equipe. E os exemplos práticos, como câmeras de segurança, ajudam a entender melhor a ideia.

Sobre o SOC, achei bem bacana a ideia de ter uma equipe focada em prevenir, detectar e responder a incidentes. Afinal, não basta só se prevenir, tem que estar sempre de olho no que tá acontecendo, mas em que ponto os custos dessa equipe valem à pena? Praticamente nunca vi uma equipe focada nisso em empresas de pequeno porte.

Enfim, achei o texto super útil, principalmente pra quem tá começando a pensar em segurança e não sabe por onde começar. Valeu pela dica!

2

Agradeço o comentário.

Sobre o SOC, achei bem bacana a ideia de ter uma equipe focada em prevenir, detectar e responder a incidentes. Afinal, não basta só se prevenir, tem que estar sempre de olho no que tá acontecendo, mas em que ponto os custos dessa equipe valem à pena? Praticamente nunca vi uma equipe focada nisso em empresas de pequeno porte.

Se a empresa não tem porte para montar um SOC bem estruturado ela pode começar aos poucos e ir evoluindo ao longo dos anos. Além da opção de contratar um SOC terceirizado, que é mais barato do que montar o próprio time.

Mas por entender que o custo para isso é alto (mesmo terceirizado) que eu coloquei o SOC por último. Pois em uma empresa pequena:

  • AppSec pode ser feito por uma pessoa.
  • DevSecOps também pode ser feito por uma pessoa.
  • Pentest você pode fazer só 1 vez por ano.
  • O SSDLC pode ser feito pela pessoa de AppSec, não precisando pagar mais para isso.
  • A conscientização de segurança também é esporádica, não precisa de um profissional fixo.

Ou seja, o mais caro eu deixei por último. Pense que não precisa fazer tudo de uma vez, vai por partes até chegar no SOC.

E conforme a empresa for crescendo ela vai melhorando a maturidade de segurança dela, contratando mais gente e estruturando melhor o time. E quando ela chegar na adolescência já vai ter pessoal de segurança suficiente para saberem como se guiar daí em diante, prontos para entrarem na fase adulta. 😃

2

Ótimo post, meu jovem, obrigado por compartilhar. Li atentamente e acho que é um artigo excelente, com uma boa combinação de conhecimento e acessibilidade, afinal, é um equilíbrio difícil de alcançar, certo?

Gostaria apenas de complementar em dois pontos que o artigo não mencionou, sem tirar nenhum mérito dele e sem criar uma discussão interminável. O primeiro é sobre o preço da segurança contra o preço do que você está protegendo. Todo sistema é quebrável, é apenas uma questão de quanto custa para fazê-lo. Esse custo deve ser mais alto do que o valor o que você está protegendo. Mas para aumentar o custo da quebra, você aumenta o seus custos-fixos e se você não tem nada para proteger em primeiro lugar, não faz sentido gastar dinheiro com isso. É por isso que startups e pequenas empresas muitas vezes não investem muito em segurança, e isso está ok, está certissimo até eu diria. Desde que façam o básico, bem feito!

O princípio da confiança zero é excelente, mas deveria começar ainda mais básico, antes disso tem uma firewall na borda externa da rede, bloqueando e registrando tudo.

Por fim, sobre o OWASP Top 10, realmente é um recurso fantástico, e como você disse sobre educar os desenvolvedores, TODO PROFISSIONAL WEB DEVE conhecer esses pontos e as técnicas para mitigar cada um deles. Parabéns por destacar isso.

Um abraço e bons estudos!

1

Valeu!

Mas para aumentar o custo da quebra, você aumenta o seus custos-fixos e se você não tem nada para proteger em primeiro lugar, não faz sentido gastar dinheiro com isso.

Empresários já pensam por natureza que segurança é um gasto desnecessário. Logo não teria porque eu dizer "você não precisa investir nisso se...", não é necessário, eles já pensam assim. O artigo é para quem já tomou a decisão de implantar segurança na empresa dele. Não é no teor "preciso de mais segurança na minha empresa?" mas sim no teor: "Eu preciso de mais segurança, como fazer isso?"

O princípio da confiança zero é excelente, mas deveria começar ainda mais básico, antes disso tem uma firewall na borda externa da rede, bloqueando e registrando tudo.

Eu jamais diria para um empresário configurar um firewall, não me parece muito prudente não. Entenda que esse artigo foi escrito para quem vai contratar e não para quem vai ser contratado. Logo não faz sentido falar de detalhes do que deve ser feito mas sim dar uma visão abrangente de times e atividades profissionais.

Veja que esse tipo de coisa está coberta no conteúdo do artigo uma vez que foi falado sobre cloud security e DevSecOps nele.

Além disso se a empresa tem servidores então ela já tem alguém de infra. E se tem alguém de infra, as chances dessa pessoa não saber o que é um firewall e como configurar são nulas em 2023. Talvez fizesse sentido falar disso nos anos 2000 porque, realmente, os profissionais não estavam nem engatinhando na segurança. Ou talvez faça sentido se for um tutorial introdutório de infra, mas esse não é o objetivo do artigo.

Já vi muita empresa com um nível de segurança bem risível e todas elas tinham firewall configurado. Mesmo empresas pequenas.

2

Um excelente artigo que valeu muita a pena ler até o final, como iniciante da área de desenvolvimento, sou levemente inclinado para a área de Segurança da Informação, de fato é preciso estudar com muito carinho sobre a nossa segurança e também a segurança nas empresas.

Até porque a gente só para pra dar atenção depois que um ataque é efetivado, e posts assim sempre devem nos deixar cada dia mais em alerta, pois é uma quantidade muito alta de informações rodam o nosso dia a dia.

1

Valeu! É isso aí, acho muito importante pessoal de desenvolvimento dar mais atenção à estudar segurança. As empresas estão entendendo cada vez mais a importância do tópico, não existe mais aquela falsa noção de que só empresa grande precisa se preocupar com segurança.

Então é uma ótima ideia tu estudar infosec, se tu tiver realmente uma boa noção de segurança se destaca fácil na área. Sugiro estudar sobre Application Security e desenvolvimento seguro.

1

Esse vídeo reflete bem na prática como armazenar senha de forma segura, no caso em questão é linguagem de Script Autohotkey v2 mas não importa, os passos são semelhantes.
https://www.youtube.com/watch?v=VQiNxHjxqik

Anônimato
Ele usa um e-mail temporário para se cadastrar no site, com isso se protege de spam e possíveis scam, quando passar a confiar no site então sim, fará uma conta com seu e-mail "oficial".

Gerenciador de senha
Ele não armazena senhas em um arquivo texto puro (plain text) ele usa um software chamado 'Password Safe' onde as senhas vão para um arquivo criptografado.
Tudo é armazenado nele: chave de 128 bits, senha do site e a senha que criptografa a senha.
Também ensina a usar o software para gerar a chave de 128 bits usando política de senhas, assim ele consiguiu gerar uma combinação bem complexa de caracteres e no futuro se precisar gerar mais chaves vai ficar bem fácil, pois a política de senha está pronta.

Backup
Ele faz um backup em caso de perda de dados.

Criptografia do projeto
Depois do software pronto ele não deixa o código-fonte dando bobeira, vai criptografa com senha usando 7-zip e exclui de forma permanente (SHIFT+DELETE) os arquivos, sem deixar na lixeira do Windows.

Limpeza do disco
Ele não fez a limpeza do disco mas sugeriu que o correto seria fazer.
Para quem não entendeu, é tipo usar ferramentas como o Eraser, pois quando você apaga um arquivo é possível recuperá-lo pois ele só é marcado como apagado e não apagado realmente.