arquivo

Arquivo da tag: security

Parte I: Avaliação de Riscos

Olá, este post faz parte de uma sequência de artigos sobre segurança da informação, resolvi fazê-los tanto para ajudar os interessados no tema como para fixar alguns pontos na minha cabeça, além é claro, de poder deixar como consulta em algum lugar no blog. Antes de mais nada, eu não sou o dono da verdade, então muita coisa escrita aqui pode ser feita de formas diferentes para se atingir objetivos diferentes, aqui eu mostro coisas que eu aplico no meu dia ou que já apliquei em empresas anteriores;

Conheces teu inimigo e conhece-te a ti mesmo; se tiveres cem combates a travar, cem vezes serás vitorioso. Se ignoras teu inimigo e conheces a ti mesmo, tuas chances de perder e de ganhar serão idênticas. Se ignoras ao mesmo tempo teu inimigo e a ti mesmo, só contarás teus combates por tuas derrotas. – Sun Tzu.

O nosso primeiro tema será avaliação e gerenciamento de riscos, um tema base para a disciplina de segurança da informação; Você pode estar lendo sobre isso pela primeira vez mas saiba que as grandes empresas do Brasil e do mundo utilizam esta prática já há bastante tempo; com base nesse contexto veremos como classificar o risco, para isso a primeira coisa que devemos definir é o significado do risco.

Um dos padrões e documentos mais referenciados e utilizados em segurança da informação e principalmente nesta disciplina de avaliação de riscos é o NIST 800-30 [1] que é considerado um MUST READ.

Então, o que é risco?

Risco, em segurança da informação, se trata de toda a ameaça em que uma organização esteja ou possa estar envolvida, todo o evento que se concretizado cause problemas ao negócio, imagem ou funcionamento da empresa; Como analista de segurança da informação um dos principais trabalhos que você tem que desenvolver é identificar que ameaças podem atingir uma organização e quais medidas você deve tomar em caso de acontecimento de um evento.

O risco pode ser divido entre muitas formas:

  • Físicos: Servidores expostos fisicamente para funcionários,
  • Lógicos: Uma porta aberta em um servidor, uma rede mal segmentada,
  • Naturais: Enchente, furacão, raios,
  • Imprevisíveis: No-break quebrado, queda de energia municipal;

Enfim, quase qualquer coisa que afete o funcionamento do seu negócio; acho que este é o ponto principal, para que sua empresa dê lucro ou desempenhe sua atividade de forma eficiente ela deve se livrar dos riscos.


Implementação

Segundo Vaughan [2], os passos que devem ser seguidos para que possa existir um bom plano para avaliação e gerenciamento de riscos são:

  1. Determinar quais os principais objetivos a se atingir;
  2. Identificar os riscos aos quais a organização está exposta;
  3. Avaliar estes riscos de forma criteriosa;
  4. Considerar as alternativas e selecionar dispositivos para o tratamento dos riscos;
  5. Implementar as decisões tomadas;
  6. Avaliar e revisar o processo continuamente;

Identificar quais os riscos que a sua organização está exposta não é uma tarefa fácil, exige disciplina e discernimento mas também muitas horas de conversas com os principais envolvidos no funcionamento da empresa, isso quase sempre (note o quase) é feito conversando com os gerentes das áreas da empresa;

Dica do Mulato #01
- Marque reuniões com todos os gerentes da empresa;
- Peça para que na opinião deles informem o que deve ser protegido;
- Aceite informações de outras áreas mas peça que se concentrem nas suas;

E principalmente, você deve estar atento aos riscos que envolvem o modelo de negócio da empresa e os riscos envolvidos com sua infra-estrutura de negócio.

Dica do Mulato #02
- Estude o segmento da empresa;
- Conheça seus concorrentes e procure entender os riscos do negócio;
- Procure conhecer o máximo possível a infra estrutura da empresa;

Classificação do Risco

Uma das formas mais eficientes e recomendadas para se avaliar os riscos depois de listá-los é fornecer os pesos corretos para cada risco em forma de severidade (impacto que o evento causará na empresa caso aconteça) e a probabilidade de o evento  acontecer, neste caso faremos isso desta forma:

Severidade (para o negócio) Chance/Probabilidade de acontecer
  • 1-2: Pouquíssima severidade;
  • 3-4: Impacto baixo para empresa;
  • 5-6: Impacto moderado;
  • 7-8: Sérios problemas caso ocorra;
  • 9-10: Desastroso para empresa;
  • 2: Risco baixo;
  • 5: Risco médio;
  • 10: Risco alto;

Para calcular o risco geral simplesmente multiplicamos os dois valores:

  -> Risco Geral = Severidade X Probabilidade/Chance

E é gerado um valor quantitativo até 100 informando o risco geral do evento. Esta é a tabela que utilizo mas você pode modificar para qualquer outro tipo de qualificação: quantitativa ou qualitativa, desde que no final os riscos sejam expostos e as decisões possam ser tomadas de forma mais eficiente e com foco na sua importância e ocorrência;


A partir deste momento já é possível preparar a nossa primeira tabela de apoio a decisões! Para servir de exemplo, suponha que a empresa que estamos analisando é uma startup de desenvolvimento web com escritório físico onde trabalham 5 funcionários e existem 2 servidores DELL onde um é ativo e o outro fica de contingência com poucos serviços, a empresa fica localizada dentro de uma casa em um bairro bem seguro mas onde já houve antes registros de enchentes em sua área, e toda sua infra-estrutura esta localizada fisicamente na casa, no entanto eles possuem uma cópia de backups diários e assets importantes da empresa em um servidor dedicado na internet;

Digamos que após conversar com o dono da empresa e o responsável técnico da equipe de funcionários eles levantaram pra gente que os principais riscos que eles consideram são:

  • “Não temos muita orientação em segurança no processo de desenvolvimento”,
  • “As vezes recebemos clientes que acessam a rede privada da empresa”,
  • “Não temos uma política muito bem definida de backup, fazemos scripts manuais”,
  • “As vezes temos queda de energia municipal e duramos pouco tempo sem energia”,
  • “Não temos fornecedores de confiança, não temos segurança física”

Após uma análise inicial decidimos identificar os 10 principais riscos:

Risco / Descrição Chance Impacto Risco Geral
Enchente que pode danificar equipamentos Baixa 7 14
Invasão ao local físico, furto Baixa 8 16
Ausência de Suporte/Fornecedor de Equipamentos de Hardware (Servidor, Máquinas, Equip. de Rede) * Média 5 25
Acesso indevido a rede privada empresa * Média 6 30
Invasão Local (Física) ao Servidor da Empresa (Cliente / Funcionário mal intencionado / Estranho) * Média 7 35
Problemas/Perda de Backups da Empresa Média 8 40
Queda de energia municipal/ausência de no-break Média 8 40
Ausência de treinamento e medidas de segurança voltadas ao desenvolvimento WEB Média 9 45
Ataques a páginas hospedadas no servidor (CSRF, SQL/Param Injection, Session Hijacking, etc) Alta 7 70
Invasão ao servidor principal com acesso administrativo Alta 9 90

Veremos que essa tabela irá crescer no próximo artigo quando falarmos em como gerenciar estes riscos e como aplicar os controles adequados, ira notar-se também que alguns itens irão receber resposta imediata afim de reduzir a sua chance ou o seu impacto (*);


Cálculo do Risco

Um dos conceitos mais importantes que um analista de segurança da informação deve compreender e difundir entre os principais interessados é o cálculo do risco, para isso foram definidos três variáveis que te ajudam a chegar ao custo do risco para uma empresa, são elas:

  • ARO (Annualized Rate of Ocurrence/Possibilidade de Ocorrência no Ano), percentagem da possibilidade ocorrência do evento em um ano;
  • ALE (Annual Loss Expectancy/Expectativa de Perda Anual), expectativa de perda anual em valores monetários de um evento/risco específico;
  • SLE (Single Loss Expectancy/Expecativa de Perda Única), valores em moeda que representam o custo total caso um evento aconteça; Este valor pode ser subdivido entre dois itens:
    • AV (Asset Value/Valor do Ativo)
    • EF (Exposure Factor/Fator de Exposição)

O que nos leva as seguintes fórmulas:

  ->  AV x EF  = SLE
  -> SLE x ARO = ALE

Exemplo #01:

 

Suponha que a página que mais dá dinheiro a essa empresa rende foi avaliada em R$ 26.000,00 e após a reunião em conjunto com os envolvidos foi descoberto que o site já passou por um processo de auditoria de segurança e que está bem padronizado há alguns anos, então foi definido um fato de exposição (EF) de 25%, então nosso SLE aqui é R$ 26.000,00 x 0.25 = R$ 6.500,00

Exemplo #02:

Digamos que o servidor físico que hospeda as páginas web rende por hora R$ 200,00 em horários de pico a empresa, a probabilidade de acontecer  uma falha no hardware neste ano é de 20% ou 1 em 5, caso ocorra a falha será necessário a compra de mais um equipamento de contingência no valor de R$ 6.000, mais o tempo de manutenção necessário para voltar ao ar sem problemas, que da ultima vez foi estimado em 4 horas;

Neste exemplo o ARO é 0.20 e o SLE é R$ 6.800,00 (R$ 200 x 4 horas + R$6.000 servidor), então usando a fórmula acima qual é o ALE (Expectativa de Perda Anual)?  O ALE é R$ 1.360,00.


Então, é isso! Nós vimos aqui a primeira parte do post Avaliação e Gerenciamento de Riscos, com o conhecimento daqui: classificação e cálculo do risco, conseguiremos a informação necessária para gerenciar os riscos afim de mitigá-los ou extinguí-los quando possível, de forma organizada e orientada a um processo;

Referências

[1] NIST 800-30 – Risk Management Guide for Information Technology Systems
[2] Fundamentals of Risk and Insurance, Vaughan and Vaughan

O intuito deste post não é mostrar os melhores documentos nesta disciplina mas sim algumas referências úteis para compreender mais a fundo este tema e quem sabe até para ajudar na publicação de futuros artigos. Durante minhas pesquisas em segurança da informação, voltadas principalmente para Linux mas com base em outros sistemas também, tive certa dificuldade em achar materiais de qualidade e tive de fazer uma pesquisa extensa, aqui neste post recomendo alguns dos livros e artigos que li e achei bem legais nesta disciplina, além de ler estes documentos você pode utilizá-los em seus artigos relacionados a segurança sem medo. São eles:

  • Communication Theory of Secrecy Systems, 1949. Escrito por Claude Shannon este material é um dos mais importantes documentos escritos e é a base da teoria da criptografia e sobre sistemas secretos.
  • The codebreakers : the story of secret writing, 1967. David Kahn produziu um livro espetacular sobre a história da criptografia, contém histórias fantásticas sobre eventos de criptografia durante a história.
  • The Protection of Information in Computer Systems, 1975. Contém um dos primeiros materiais escritos sobre a proteção das informações em computadores. Escrito por SALTZER, Jerome H. e SCHROEDER, Michael D.
  • New directions in cryptography, 1976. Escrito pelos famosos criptográfos Diffie Whitfield e Martin Hellman, fornece a base da criptografia moderna, introduz conceitos de chaves públicas e novas idéias que foram utilizadas nos anos seguintes.
  • Trusted computer system evaluation criteria, 1985. É um documento do departamento de defesa americano mostrando a base de um sistema de avaliação de segurança em computadores.
  • Applied Cryptography: Protocols, Algorithms, and Source Code in C, 1995. Excelente material descrevendo algoritmos de forma teórica e técnica para os amantes da criptografia. Escrito pelo renomado autor Bruce Schneier.
  • Handbook of applied cryptography, 1996. É um livro grátis disponível na internet que descreve a criptografia e alguns de seus algoritmos. MENEZES, Alfred e OORSCHOT, Paul C. van e VANSTONE, Scott A.
  • Role-Based Access Control Model, 1996. Neste artigo Ravi Sandhu et all. descreve os principais conceitos de um sistema de controle de acesso baseado em RBAC.
  • A Common Language for Computer Security Incidents, 1998. John Howard e Thomas Longstaff – Material que contém uma das bases para tratamento e reports de incidentes relacionados a segurança da informação.
  • Computer Security: Will We Ever Learn? 2000. Bruce Schneier explica neste artigo porque a segurança é um processo e não um produto.
  • Linux Security Modules: General Security Hooks for Linux, 2001. SMALLEY, Stephen e FRASER, Timothy e VANCE, Chris explicam os conceitos básicos da implementação de funções genéricas comuns aos módulos de segurança do kernel do linux.
  • The design of Rijndael: AES — the Advanced Encryption Standard, 2002. Descreve o funcionamento do padrão AES utilizado em larga escala nos negócios. DAEMEN, Joan e RIJMEN, Vincent.
  • Linux security module framework, 2002. Excelente documento descrevendo o framework de segurança do Linux. WRIGHT, Chris e COWAN, Crispin e MORRIS, James e SMALLEY, Stephen e KROAH-HARTMAN, Greg
  • Computer Security: Art and Science, 2003. Matt Bishop descreve toda a base de segurança da informação, um dos livros mais comprados no Amazon sobre o tema.
  • A arte de enganar, 2003. Kevin Mitnick um dos hackers mais procurados pelo FBI em sua época explica os conceitos da engenharia social e como eles podem ser danosos quando aplicados as organizações.
  • NBR 17799: Tecnologia da Informaçãoo – Técnicas de Segurança – Código de Prática para controles de segurança da informação. A norma brasileira que discute as melhores práticas para aplicação de uma política de segurança da informação eficiente.
  • Criptografia em Software e Hardware, 2005. MORENO, Edward David e PEREIRA, Fábio Dacêncio and CHIARAMONTE, Rodolfo Barros dão uma aula sobre os aspectos da criptografia moderna, excelente livro em português.
  • Data Communications and Networking, 2007. FOROUZAN, B.A. e FEGAN, S.C. abordam praticamente tudo o que é possível ser dito sobre comunicação de redes físicas e lógicas.
  • Fundamentals of Risk and Insurance, 2008. Uma visão interessante dos especialistas VAUGHAN, Emmett J. e VAUGHAN, Therese M. sobre o gerenciamento de riscos em organizações.
  • Computer security, 2008. STALLINGS, William e BROWN, Lawrie – Excelente livro que aborda os tópicos e conceitos básicos sobre segurança da informação.
  • Hacking Exposed Linux, 2008. Peter Herzog e uma equipe de profissionais de segurança abordam as vulnerabilidades ao qual o Linux está exposto.
  • Computer and Information Security Handbook, 2009. VACCA, John R. – Se eu tivesse de escolher um único livro sobre segurança da informação na minha biblioteca seria este sem dúvidas. COMPLETO. Um MUST HAVE pra especialistas em segurança.
  • Linux Kernel Vulnerabilities: State-of-the-art Defenses and Open Problems, 2011. Um artigo interessante sobre vulnerabilidades no Kernel do Linux. CHEN, Haogang e MAO, Yandong e WANG, Xi e ZHOU, Dong e ZELDOVICH, Nickolai e KAASHOEK, M. Frans
  • What does SELinux do to contain the the bash exploit?, 2014. Dan Walsh um dos arquitetos e criadores do SELinux mostra o que este módulo de segurança pode fazer para mitigar os riscos do ShellShock
  • Red Hat Enterprise Linux 7: A Guide to Securing Red Hat Enterprise Linux 7, 2015. Neste guia a Red Hat mostra algumas técnicas de hardening no Linux. PRPIĈ, Martin and CAPEK, Tomáŝ and WADELEY, Stephen and RUSEVA, Yoana and SVOBODA, Miroslav and Krátký, Robert

Também tive a oportunidade de gerar um BiBTeX com todos estes documentos para ser adicionado na bibliografia de um documento LaTeX, se alguém estiver interessado em uma cópia é só me mandar um e-mail 🙂 É isso, espero que curtam a leitura!

Nowadays is really important for some people hide and/or protect some personal data of other people, I’ve already explained how to encrypt a LVM volume in other articles and in my first video using xvidcap

Links:
How to encrypt disk using cryptsetup
Criptografando seu disco no Linux

But sometimes is really pain using all of these commands to open and close my sensible data, so I made a shell script called ‘mltcrypt’ years ago to solve this:

#!/bin/bash
disk=/xdir/cryptdisk-50G.bin
rdir=/demo/.yeah
losetup="sudo /sbin/losetup"
cryptsetup="sudo /sbin/cryptsetup"

if [ "$1" = "init" ]
then
    if ! mount | egrep "$rdir"; 
    then
        from="dsk$$"
        if ! $losetup -a | egrep ${disk} 2&>1 >/dev/null
        then $losetup /dev/loop0 ${disk}; fi

        $cryptsetup luksOpen /dev/loop0 ${from}
        if [ $? -ne 0 ] ; then exit; fi
        sudo mount /dev/mapper/${from} $rdir
    fi
    cd $rdir
elif [ "$1" = "end" ]
then
    if ! $losetup -a | egrep ${disk} 2&>1 >/dev/null; then exit 1; fi
    dsk=`mount | grep "$rdir" | cut -d ' ' -f1 | awk -F '/' '{print $NF}'`
    sudo umount -l $rdir

    $cryptsetup luksClose ${dsk}
    $losetup -d /dev/loop0
else
    echo lol
    exit 0
fi

So when I need to open my things I just type two commands
$ mltcrypt init
Will open all my data in /demo/.yeah

And to close this I just type
$ mltcrypt end

To use that you just need to change the variable values: disk and rdir.

Hope it help someone! 🙂

(texto antigo, 2009 por ae)

Decidi mexer um pouco nos códigos antigos e meu escaneador de portas (código fonte aqui) foi o escolhido, tinha subido ele pro repositório bem sujo e resolvi atualizá-lo, agora o portscan por IP consegue fazer milhares de requisições em paralelo em apenas poucos segundos e te fornece todas as portas abertas. Quem quiser dar uma olhada melhor basta baixar o fonte e compilar conforme o final do post. Veja alguns exemplos do ‘hardscan’ em uso:

$ ./hardscan 
uso: ./hardscan IP [1-65535]
Onde, IP é o endereço do protocolo de internet e o segundo argumento um range de portas.

$ ./hardscan 77.75.12.178 1-555
scanning ports on host '77.75.12.178'..
   22, esta aberta mestre! :]
   80, esta aberta mestre! :]
  554, esta aberta mestre! :]

$ ./hardscan 200.200.45.98 20-22
scanning ports on host '200.200.45.98'..
   21, esta aberta mestre! :]
   22, esta aberta mestre! :]

Baixe o fonte e compile usando o ‘gcc’:
$ gcc -O2 -lpthread -o hardscan hardscan.c
$ ./hardscan IP portaIncio-portaFim

Olá,

Recentemente senti necessidade de me proteger mais, o mundo anda violento, não só fisicamente como digitalmente e você pode têr suas informações roubadas a qualquer momento, seja deixando uma brecha no seu computador remotamente ou simplesmente esquecendo seu notebook na sala e alguém acessando-o atrás de informações.

Pesquisando um pouco eu descobri o cryptsetup, é um software para encriptar partições lógicas, ele funciona muito bem e só deixa um usuário acessar sua partição mediante a uma passphrase, logo se o usuário não souber essa passphrase, todos os dados que ele conseguir obtêr da partição será criptado e ele não conseguirá extrair informações úteis.

Requesitos necessários:
1. Partição do tipo Linux Logical Volume Management (0x8e).
2. Formatar particão como luksFormat e setar uma passphrase.
3. Escolher um sistema de arquivos.
Formatando partição encriptada e dando ênfase a entropia
root@infinitus:~# dd if=/dev/urandom of=/dev/sda5
root@infinitus:~# cryptsetup luksFormat /dev/sda5
WARNING!
========
This will overwrite data on /dev/sda5 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.

Abrindo e montando partição criptada
root@infinitus:~# cryptsetup luksOpen /dev/sda5 cryptfs

Formatando partição com sistema de arquivos e montando-a
root@infinitus:~# mkfs.ext3 /dev/mapper/cryptfs
root@infinitus:~# mount /dev/mapper/cryptfs /mnt

Desmontando partição encriptada
root@infinitus:~# umount /mnt

Fechando o kcryptd
root@infinitus:~# cryptsetup luksClose cryptfs

Bom, é isso! Um abraço!

%d blogueiros gostam disto: