Mostrando postagens com marcador Linux. Mostrar todas as postagens

17 janeiro 2011 ~ 1 Comentário

Curso Fortalecimento (Hardening) de Servidores Unix/Linux




Últimas 2 vagas disponíveis para o curso Fortalecimento (Hardening) de Servidores Unix/Linux

Acontecerá durante os dias 5, 12 e 19 de fevereiro de 2011(sábado) na cidade do Rio de Janeiro o curso presencial Fortalecimento (Hardening) de Servidores Unix/Linux.

Durante o curso de Fortalecimento (Hardening) de Servidores Unix/Linux da Academia Clavis Segurança da Informação, o aluno aprenderá na prática como minimizar ou eliminar os principais problemas de segurança que afetam servidores *NIX em geral, além de conhecer detalhes de configuração que o ajudarão a tornar mais seguras algumas
das principais aplicações de Internet, tais como: Apache, PHP, MySQL e BIND; tudo com impacto mínimo ao usuário. Serão apresentadas diversas técnicas para registrar (logging) de forma segura os principais eventos de segurança dos sistemas e aplicações, além de sistemas de detecção de intrusão, firewall, listas de controle de acesso e criptografia forte.

O curso conta com investimento de 4 x R$375,00, sendo que ex-alunos tem um desconto adicional de 10%. Para se inscrever basta acessar a página de inscrição ou entrar em contato através dos telefones (21)2561-0867 ou +55 (21) 2210-6061. Mais informações também podem ser vistas em http://www.clavis.com.br/curso/hardening_linux/
--

25 dezembro 2010 ~ 1 Comentário

Tornando-se um “Artista de Segurança Linux”

Autor: Jon “Maddog” Hall
Publicado na Linux.com em 08/04/2010


“Quando o custo para obtenção da informação excede o valor obtido pela sua posse, a solução é eficaz.” - Guia Prático do Red Hat Linux por Mark G. Sobell, Terceira Edition (Prentice Hall), página 989.

Depois de quarenta anos no ramo de computação, a ideia que tem sido difundida por profissionais de segurança é de que não existe tal coisa de um sistema de computador seguro, mas apenas níveis de insegurança. Portanto o custo de manter a informação e o sistema de segurança tem de ser equilibrado com o custo de perder a informação ou sistema, ou danificá-lo. Infelizmente, a velocidade e disponibilidade da Internet combinada com o baixo custo de computadores e serviços de rede muito potentes, proporcionaram um custo de “invasão” cada vez mais baixo e um custo de “segurança” cada vez mais alto.

A coisa mais importante para um sistema seguro é ter uma boa política de segurança. Sem isso, você está perdido e vagueia de forma ineficaz. Portanto, você tem que fazer uma reflexão a respeito de quem será capaz de fazer o que, se essas limitações são obrigatórias e sem restrições, ou como vai implementar e aplicar essas políticas. Um bom exemplo de como não ter uma boa política é a empresa que força todos os seus funcionários a terem senhas longas e complicadas, que mudam uma vez por semana, mas tolera estas pessoas escrevendo suas senhas em etiquetas adesivas e coladas em seus monitores LCD, “porque estas pessoas podem não se lembrar das senhas”.

A próxima coisa mais importante é um bom conjunto de ferramentas de segurança e pessoas treinadas para implantá-las e acompanhar os resultados gerados.

Muitos sistemas desktops se escondem atrás de um “firewall” em ambientes corporativos ou mesmo domésticos. O firewall é um sistema especializado em aceitar dados da Internet e encaminhar estes dados para os desktops ou servidores. A esperança é que o firewall isole as pessoas más das pessoas atrás do firewall e, portanto, os sistemas podem ser mais “relaxados” em sua segurança.

Infelizmente nos dias atuais de computação móvel, laptops podem se mover de dentro do perímetro protegido pelo firewall para o desprotegido “ambiente selvagem” da Starbucks, por exemplo, onde as pessoas bebendo café e “surfando na net” têm os seus notebooks infectados com vírus e cavalos de tróia e que trazem de volta estes notebooks ao escritório. Atualmente, os ataques as vezes vêm de dentro da organização (em que o firewall não dá nenhuma proteção) e não do exterior. Outros sistemas não podem se esconder trás de firewalls e são chamados de sistemas “Bastião”. Eles são os sistemas que executam o seu servidor Web, Correio Eletrônico (E-Mail) e outro serviços. Estes são os sistemas que têm de ser “absolutamente (tanto quanto possível) protegidos”.

Finalmente, o acompanhamento constante das listas de segurança, sites e rápida aplicação de patches é fundamental para a segurança de um sistema. Ter o código fonte do seu sistema disponível significa que você não tem que esperar para que seu fornecedor disponibilize a correção compilada e testada. Você pode tomar a decisão de aplicar a correção, dependendo da criticidade do ataque.

Dadas as filosofias e as questões acima, eu acredito que o Software Livre e de Código Aberto é a melhor base para permitir que seus sistemas inseguros alcancem a segurança, e este blog trata disso.

Este blog não é uma explicação detalhada de segurança de rede, nem sobre como bloquear SPAM, nem em ser um guia de receitas de curso de segurança do sistema. A segurança é uma forma de arte, bem como uma ciência, e este blog não pode fazer de você um Michelangelo em 3000 palavras. Se eu puder mostrar aqui que o seu sistema está atualmente no nível “pintura a dedo” e que, com o Software Livre você pode fazer uma “aquarela”, “pinturas a óleo” e não só isto, então eu acho que fiz um bom trabalho. Algum dia seu trabalho pode estar em um "Museu da Arte de Segurança".

História e Arquitetura do Unix:

Em 1969, Ken Thompson e Dennis Ritchie começaram a desenvolver o sistema operacional Unix, “apenas por diversão”. Querendo ou não, o Unix foi concebido para ser um sistema compartilhado, em primeiro lugar, e tornou-se rapidamente um sistema que permitia o compartilhamento por várias pessoas, com vários processos para cada pessoa. Isto imediatamente definiu um design mais robusto e seguro do que um sistema de usuário único, já que o conceito de estabilidade e de segurança teve que ser construído dentro do próprio sistema. Concedido, nos primeiros anos da Bell Laboratories, não se teve muita atenção para a senha ou a segurança em nível pessoal, mas ao longo dos anos as coisas como: tempo de vida da senha, fortificação da senha e senhas “escondidas” foram colocadas no sistema para melhorar a segurança.


Unix foi criticado por seu modelo inicial de “superusuário” versus “todo mundo” na execução de programas (especialmente programas administrativos) e no agrupamento das propriedades do “dono”, “grupo” e “outros” (ou seja, todos os outros do mundo) com as capacidades de “leitura”, “escrita” e/ou “execução” no arquivo. Enquanto isso era relativamente simples, mas também uma estrutura de permissão elegante, funcionou bem durante alguns anos, com o tempo as “Access Control Lists” ou “ACLs” foram habilitadas, permitindo às pessoas criarem classes de privilégios de execução e acesso a arquivos e diretórios em um nível mais refinado.

Quando o Unix deixou a Bell Labs e entrou para o meio acadêmico, nas universidades, ele passou pela clássica “prova de fogo”, com os estudantes tentando invadir o sistema e os desenvolvedores tentando mantê-los fora. O Unix se tornou o sistema operacional para o estudo sério de ciência da computação e, portanto, (em muitos casos) para estudos sérios de segurança do computador.

Arquitetura do Linux:

Como eu mencionei antes, a arquitetura do Linux segue de perto a arquitetura dos sistemas Unix. Um kernel monolítico relativamente pequeno com bibliotecas e utilitários que acrescentam funcionalidade a ele. Isso por si só agrega valor a segurança, pois permite que o usuário final desligue uma série de serviços (tanto de máquina quanto de rede) que não precisa, que funcionando no sistema cria mais possibilidades de ataque. Por exemplo, a grande maioria dos sistemas desktops atuam como cliente para os serviços, não como um servidor. A desativação destes serviços significa que outras pessoas através da rede não podem se conectar a eles. Nos primórdios do Linux diversas distribuições eram disponibilizadas com os serviços ativados no momento da instalação. Esta foi uma impressão errada de que ter os serviços funcionando seria mais fácil administrar, mas os especialistas em seguranças rapidamente apontaram que ter os serviços em execução no momento da instalação (antes da aplicação dos patches necessários), também deixaria os sistemas, mesmo que por pouco tempo, abertos a ataque. Agora a maioria, senão todas, as distribuições deixam estes serviços desligados e você é instruído a habilitá-los na hora certa, espero que somente depois de ter aplicado os patches necessários.

Outro exemplo é o conceito de remover os compiladores e outras ferramentas de desenvolvimento de software do sistema, uma vez que estas ferramentas dão aos crackers maiores possibilidades para explorar o sistema. Remover estas ferramentas significa que o cracker terá que utilizar outros métodos para “quebrar” a segurança. Vários pacotes FOSS (Free and Open Source Software) foram adicionado a esta funcionalidade básica ao longo dos anos, dando ao Linux uma segurança ainda maior.

O primeiro é “PAM” ou “Pluggable Authentication Modules”. Em qualquer sistema, “autenticação” significa que você se identificou de tal forma que o sistema lhe dará acesso aos serviços. Assim que você entra com seu nome de usuário e sua senha, você está sendo “autenticado” tipicamente pelo nome de usuário e senha no arquivo /etc/passwd e pelo programa login. Da mesma forma o ftpd, e outros programas de “serviço”, irá autenticá-lo da mesma maneira. Se você estiver em uma rede, no entanto, poderá ser autenticado por inúmeros métodos, que podem ser LDAP, DCE, Kerberos ou mesmo os métodos mais recentes, e inúmeros programas podem ter que ser alterados para refletir o novo método de autenticação. O PAM foi fornecido para permitir que novos métodos de autenticação possam ser aplicados a todos os programas do sistema que precisa de autenticação sem ter que mudar e integrar cada novo método de autenticação.

Outro método de autenticação mencionado anteriormente foi “Access Control List”, ou “ACL”. Uma ACL concede “acesso” para um arquivo ou diretório com base em uma extensão das permissões tradicionais do Unix “dono/grupo/outros” e “rwx” mencionada acima. Desde que as ACLs estejam implementadas como parte da estrutura do sistema de arquivos, você tem que ter certeza que seu kernel tenha sido construído para suportá-las, que o sistema de arquivos que você está usando oferece suporte a elas, e que o sistema de arquivos foi montado com as ACLs ligadas.

Entretanto, uma vez realizado tudo isto, você pode atribuir permissões a vários usuários em uma base de usuários individuais, vários grupos em uma base de grupo-por-grupo, e assim por diante.Isso permitirá você facilmente criar um grupo de operadores que podem iniciar ou parar um banco de dados ou fazer backups, mas não conseguir desligar todo o sistema, por exemplo. Finalmente, você tem que estar ciente de que nem todos os utilitários do Linux suportam ACLs. Se você está copiando arquivos de um diretório para outro com o comando cp você deve usar as opções “-p” (preserve) ou “-a” (archive) no comando. Alguns dos comandos robusto do Unix como, cpio, tar e outros, não suportam a cópia das ACLs, e portanto as ACLs seriam perdida.

Sistemas de Arquivos Criptografados:

Criptografar seus dados deve ser parte de sua política de segurança em um mundo de dispositivos USB, unidades portáteis e laptops roubados, e o Linux permite que você criptografe arquivos individuais, sistemas de arquivos, partições swap e mesmo sistemas de arquivos dentro de arquivos individuais. Alguns desses métodos de criptografia também trabalham com sistemas de arquivos em nível de usuário, o que significa que você pode configurá-los enquanto o sistema está funcionando.

Loop-AES usa uma técnica de loop-back para permitir que o dispositivo de bloco faça a criptografia sem ter que mudar nada no kernel. Técnicas de loop-back também são úteis para sistemas de arquivos mantidos em um único arquivo, assim este método pode ser usado para criar um sistema de arquivos criptografado que está contido em um único arquivo em sua máquina.

DM-Crypt usa a funcionalidade de mapeamento de dispositivos (também útil para o RAID via software, snapshotting e outros recursos) do kernel para criptografar arquivos.

Cryptofs é um sistema de arquivos em espaço do usuário (FUSE) que permite montar um sistema de arquivos em um diretório, e em seguida todos os arquivos armazenados nesse diretório são criptografados, incluindo o nome do arquivo.

Quando você desmontar o sistema de arquivos, os arquivos são criptografados e não serão de-criptografados até o sistema de arquivos ser montado novamente usando a mesma chave.

Existem outros métodos para criptografar arquivos e sistemas de arquivos, tais como EncFS e TrueCrypt. Além disso, recentemente, um administrador de sistema Microsoft Windows inicializou um Live CD Linux em uma de suas máquinas e ficou surpreso ao verificar que o Linux pode ler e escrever no sistema de arquivos do Microsoft Windows, apesar de ter definido os diretórios como privado sob o sistema operacional da Microsoft. Expliquei-lhe que era um sistema operacional diferente e a menos que ele criptografasse todos os dados em seu disco, ele devia esperar que alguém usando um sistema operacional diferente em sua máquina fosse capaz de ver, alterar e excluir dados no seu sistema de arquivos do Microsoft Windows.

SELinux:

A maioria dos métodos de autenticação de controle de acesso são arbitrários. O dono do objeto (seja um programa ou dado) pode alterar as permissões para outras pessoas e grupos. Anos atrás, a Agência de Segurança Nacional (NSA) criou um projeto para aplicar “Mandatory Access Control” (MAC) dentro do kernel Linux. Este projeto ficou conhecido como “Security Enhanced Linux” ou “SELinux”. O MAC reforça as políticas de segurança que limitam o que um usuário ou programa pode fazer, e quais arquivos, portas, aparelhos e diretórios um programa ou usuário pode acessar.

SELinux tem três modos: “Desabilitado”, “Permissivo” e “Execução”.

No modo “Desabilitado” nada é feito. Neste modo você tem as políticas configuradas e prontas, mas não ativas. O modo “Permissivo” registra as violações da política em arquivos de log para que você possa verificar ou monitorar. No modo “Execução” qualquer violação da política de segurança será contida. SELinux utiliza cerca de 5 a 10% do desempenho do sistema quando no modo de Execução ou Permissivo.

Da mesma forma, o SELinux pode ser executado em uma política de “Orientada” ou “Estrita”. A política “Orientada” significa que os controles MAC apenas se aplicam a determinados processos. A “Estrita” significa que os controles MAC se aplicam a todos os processos. As pessoas devem ser advertidas de que o uso indiscriminado da política “Estrita” do SELinux pode tornar o sistema praticamente inutilizável para alguns usuários. Tem que haver um compromisso de manter o sistema seguro, mas permitindo que os usuários façam o seu trabalho. Argumenta-se que o SELinux é um “exagero” em um sistema de um único usuário, mas com modernos exploits e o poder do “sistemas de um único usuário”, podemos encontrar mais e mais aplicações do SELinux em um desktop de um único usuário.

AppArmor:

AppArmor é um outro sistema para “Mandatory Access Control”, mas que se baseia mais em uma base de programa-por-programa do que o SELinux e permite que você misture e aplique políticas do tipo “Execução” e “Permissivo” no sistema ao mesmo tempo. Através do “perfil” de cada programa, o AppArmor pode limitar o que um programa pode fazer e quais arquivos ele pode acessar, gravar ou executar. Algumas pessoas acham que o AppArmor é mais fácil de configurar e controlar do que o SELinux.

Tornando Arquivos "Imutáveis":

Se alguém invade seu sistema, ele pode alterar vários arquivos de controle, como o arquivo passwd. Você pode impedir isto tornando o arquivo “imutável”. Quando um arquivo é “imutável” ele não pode ser alterado, seja por escrita, exclusão, renomeado ou hard links, até mesmo pelo superusuário.

Primeiro o arquivo tem que voltar a ter permissões “normais”, e então ele pode ser alterado. O comando usado para fazer um arquivo tanto imutável quanto voltá-lo ao normal é chattr, e tem a sintaxe desta forma: chattr +i .

Usando o comando chattr com o parâmetro “a” em vez do “i” faz com que o arquivo só possa ter informações adicionadas. Isso é útil para arquivos de log, onde você deseja que o sistema adicione novas informações, não apagando as informações antigas. Depois que o comando chattr for executado em um arquivo, mesmo o usuário root não pode alterar ou apagar o arquivo até que o arquivo seja alterado com as permissões anteriores, com “-i” ou “-a”.

Novamente, você tem que verificar se o sistema de arquivos que você está usando suporta esta funcionalidade. Os sistemas de arquivos Ext2 e Ext3 suportam.

Logs:

Sistemas Unix e Linux têm arquivos de log. Esses arquivos registram diferentes tipos de eventos, desde inicialização e finalização de um processo até mensagens explícitas sobre o seu servidor de email ou sua base de dados. A maioria dos sistemas Unix e Linux tem a possibilidade de encaminhar os vários níveis de informações desde “bom saber” para “crítica” para um repositório central. Os administradores de sistemas podem criar filtros e scripts para ajudá-los a monitorar esses arquivos de log, identificando atividades que indiquem pessoas acessando o sistema. Estes arquivos, claro, devem ser protegidos utilizando o comando chattr, mencionado acima, com
a opção “+a”.

Sistemas de Detecção de Intrusão

Existem vários Sistemas de Detecção de Intrusão (IDS) disponíveis para Linux. SNORT (http://www.snort.org/) é um deles. O SNORT utiliza um conjunto de regras para determinar as intrusões.

Backups:

Apesar de todo seu trabalho, tempo, suor e lágrimas, eventualmente, seu sistema será
comprometido. Agora você tem que descobrir quando ele foi comprometido, como foi
comprometido e estar pronto para recuperar o que foi danificado sem permitir que outros possíveis vírus e trojans permaneçam no seu sistema.

Com muito trabalho, você pode ser capaz de usar ferramentas para varrer seu sistema à procura desses vírus e trojans. Ou você pode re-instalar a partir de um CD-ROM original, ou imagem ISO em boas condições, e mais todos os patches associados. A forma final é ter um bom nível de backup de todo o sistema de produção que você tem e atualizar periodicamente o backup para ter certeza de ter todos os patches de segurança que ocorreram desde a última atualização. Se você puder determinar com precisão quando seu sistema estava comprometido, você poderá restaurar o sistema a partir de um desses backups. Caso contrário, você terá que instalar a partir do código-fonte.

Resumo:

Estou certo de que muitos dos profissionais de segurança vão olhar para este texto e dizer: “Realmente fundamental”. Outras pessoas podem olhar para algumas destas características e dizer: “Como posso manter-me atualizado de todas essas políticas e comandos em um sistema tão complexo como o Unix ou Linux?”. A resposta é que provavelmente você não conseguirá se manter atualizado de todas estas considerações sobre o sistema e é aí que as políticas de segurança entram em jogo. Faça com que cada sistema fique tão seguro quanto os serviços e informações armazenadas nele, permitindo que você ainda realize seu trabalho.

Além de estudar os recursos listados acima, você também deve olhar o site da sua distribuição específica. Porque há muitas maneiras de fazer a criptografia de arquivos, compilar um kernel, e garantir a segurança de um sistema, e sua distribuição pode ter desenvolvido uma arquitetura de segurança geral que complementa suas políticas e fazem a segurança do sistema de uma maneira muito mais fácil.

Comentário deste Blog( The HackerBuster)

Ótimo artigo escrito pelo nosso querido John. Artigo recente que fala sobre muitos procedimentos e ferramentas para implementação de Hardening Linux ( Principalmente em servidores). Entretanto ele mesmo deixa uma pergunta no ar “Como posso manter-me atualizado de todas essas políticas e comandos em um sistema tão complexo como o Unix ou Linux?”.

Todas as recomendações e ferramentas citadas por ele em seu artigo, podem ser estudadas e analisadas no curso de "Fortalecimento (Hardening) de Servidores Linux".

Não é Marketing ou Merchandising sobre o artigo do conceituado John Maddog e sim uma oportunidade para todos os analistas de segurança e administradores de rede, estarem preparados para o Mercado de Trabalho, que hoje está pedindo urgência por profissionais de segurança e sistemas Unix/Linux.

O Curso "Fortalecimento (Hardening) de Servidores Linux" da Clavis Segurança da Informação já é referência em qualidade no Rio de Janeiro e no Brasil. Em sua 7ª edição o curso agrega muito bem a parte teórica com a parte Hand's-On. Muito bem avaliado por seus alunos, o curso apresenta processos de mapeamento das ameaças, mitigação dos riscos e execução das atividades corretivas, com o objetivo de preparar a infra-estrutura para enfrentar quaisquer tentativas de ataque.

A Próxima turma de "Fortalecimento (Hardening) de Servidores Linux" será realizada no Rio de Janeiro nos dias 5, 12 e 19 de fevereiro de 2011(sábado).

Aproveitem a oportunidade e comecem o ano de 2011 preparados para o Mercado de Trabalho. Quem sabe você não poderá ser o próximo "Artista de Segurança Linux". :) !!!

16 junho 2010 ~ 1 Comentário

eBox - Linux Small Business Server


Estava precisando de uma plataforma para gerenciar Servidor de Domínio/Impressão/Arquivos e tomei conhecimento do eBox Linux Small Business Server.

Comecei a testar esta solução e me encantei por ele, que não só gerencia o trabalho de escritório, como também pode ser uma solução completa para gerenciamento de serviços linux.

O eBox é um servidor de rede unificado que oferece gerenciamento de redes de computador de forma fácil e eficiente para pequenas e médias empresas. Todos os serviços de rede são baseados na mesma tecnologia e totalmente integrado, gratuito para download o eBox pode atuar como:

. Um gateway de rede, tornando a sua rede mais confiável, otimizando sua banda e ajudando a controla a entrada e saída da sua rede. (Firewall, Proxy, Traffic shaping, Radius,etc...)

. Um de UTM (Unified Threat Manager), protegendo a sua rede de computadores contra vários ataques externos, tentativas de intrusão e falhas de segurança. (VPN, AntiVirus, IDS, etc...)

. Um servidor de escritório, disponibilizando recursos de escritório que passam a ser gerenciados e compartilhados, incluindo perfis de usuários, grupos, arquivos, impressoras, calendários, contatos, tarefas e backup de dados..

. Um gestor de infra-estrutura, gerenciando e otimizando o tráfego interno da sua rede, incluindo a configuração de um servidor de domínio e o gerenciamento de máquinas e certificados digitais.

. Um servidor de comunicações unificados, gerenciando todas as suas comunicações, incluindo email, mensagens instantâneas e VoIP.

Ou simplesmente combinando eles, já que todos eles vem na mesmo isso e modularização se dá na hora da instalação. Você pode escolher um dos módulos acima, ou 2 ou todos eles.

Baseando no ubuntu, e atualizado já com a versão 10.4, o eBox tem atendido bem as minhas necessidades (caso ainda lembrem é fazer um PDC).

No PDC, habilitei "roaming profile" e em todas as máquinas que meus usuários logam mantém o mesmo profile, de forma rápida e sem problemas.

Também habilitei a função "lixeira", isto é, qualquer arquivo que for apagado no compartilhamento do samba não é deletado direto, vai para esta "lixeira" e pode ser recuperado posteriormente pelo administrador. Além disso o PDC também vem integrado o samba-vscan que faz varredura de vírus nas pastas do compartilhamento em tempo real.

Este espaço é pouco para falar sobre todas as funcionalidades do eBox Platform, portanto abaixo segue o link para o site oficial:

http://www.ebox-technologies.com/products/ebox-platform/

Além disso, ele tem uma documentação fantástica para administradores de rede. Super completa com boa explicação, how-to, exemplos de configuração e screeshot. Segue o link: http://doc.ebox-platform.com/en/index.html

Muito bom.

Abs[]

Victor Santos

18 maio 2010 ~ 4 Comentários

O Endian Firewall


Após diversos testes de usabilidade, confiabilidade e stress (tanto do servidor quanto da minha pessoa) e algumas modificações na estrutura e no código (com a ajuda de um amigo)estou postando sobre o Endian Firewall. Obviamente que o incomodo de configurar manualmente servidores linux (sejam eles Debian, SLES, RedHat) para clientes com iptables, dhcp, dns, squid, openvpn, ntp, entre outros recursos também contribuiu bastante :P !!!

O Endian Firewall Community é uma distribuição linux, baseada na distribuição Red Hat e no antigo IPCOP, que tem como objetivo ser um dispositivo de proteção de perímetro e controle de borta. O software tem como características a usabilidade, fácil instalação, poder de gerenciamento e flexibilidade. O componentes incluem firewall de inspeção de pacotes, proxy no nível do aplicativo para vários
protocolos (HTTP, FTP, POP3, SMTP) com suporte a antivírus, verificação devírus e
spam para o tráfego de e-mail (POP e SMTP), controle de conteúdo da Web e solução de VPN (baseado no OpenVPN).

Optamos pelo Endian por ser o mais estável, ter facilidade de atualização, pelas features implementadas na última versão (com suporte a faillover), por ser baseado em GNU/Linux e ser bem completo, não havendo a necessidade de implementação de patch's e módulos auxiliares.

Fazendo um comparativo com outros temos:

pfSense: Fork do m0n0wall, baseado no FreeBSD o pfSense é um dos mais conhecidos e provavelmente mais rico, em recursos, entre os sistemas para appliance pré-configurado, amigável, intuitivo oferece inúmeros recursos, focado para ambiente de roteamento e firewall, bem como segurança de rede, com excelente solução para VPN, entre outros diversos recursos. Pesou ser baseado em FreeBSD, ter poucos pacotes auxiliares e nenhum recurso de atualização automática.
IPCop: É o "novo fusca", possui ótimos recursos, de onde se baseou o Endian Firewall , mas pecou pelo fato de ser muito “modular”, vem o básico e para recursos adicionais é preciso instalar outros módulos, tornando a instalação um pouco mais demorada e pouco complexa, fica meio gambiarrado. ¬¬ !!!
m0n0wall: Não testei por ter o pfSense que é baseado nele e é bem mais utilizado e difundido.
SmoothWall e ZeroShell: Não testado por terem releases bem antigos.


Sobre o Endian Firewall, segue abaixo mais algumas características:

Instalação e Interface:

  • Instalação simples, suporte a Raid, particionamento automático, interface web limpa, rápida, intuitiva e customizável

  • A página principal foi substituída por um dashboard com estatísticas sobre o sistema e serviços, também foram adicionados gráficos de tráfego em tempo real, uptime e status de serviços.

  • Ambiente web todo em português.

Controle de Tráfego (Firewall):

  • Até 4 redes diferentes, separadas pelo sistema de cores Green (rede local), Red (WAN), Orange (DMZ), Blue (Wireless)

  • Firewall baseado em iptables, gerenciamento simples e eficiente, tanto para saída, como entrada e entre redes diferentes, garantindo um plus na segurança.

  • NAT, SNAT, DNAT, “port forward”, de forma intuitiva e simples.

  • Suporte a VLAN

  • Failover com substituição automática do link principal e alerta em tempo real sobre o downtime do link principal.

  • O módulo de Traffic Shapping foi substituído por um módulo completo de QoS.

Controle de conteúdo web (Proxy):

  • Proxy transparente ou por autenticação (local, ldap, radius, Active Directory).

  • Antivirus para sites e arquivos baixados.

  • Bloqueios e filtros de arquivos.

  • Blacklists prontas para diversas categorias.

  • Dansguardian para controle de conteúdo mais eficiente, fazendo bloqueio dinamicamente: A graça é ao acessar uma página, o dansguardian lê todo o conteúdo buscando por palavras-chave, cada palavra encontrada, recebe um score, no final ele soma o score da página e se esta ultrapassar o limite, o site passa a ser bloqueado.
    Ocorreram alguns “falso-positivos”, mas nada que seja superado.

  • Controle de acesso por horário (bloqueia sites “não profissionais” durante o horário de trabalho e libera a noite).

  • Controle de acesso por grupos

Segurança de Correio Eletrônico:

  • Anti-Spam com Bayes e registros SPF.

  • Proxy transparente para pop3, imap e smtp.

  • Black/White Lists.

  • Mail forward transparente (bcc). Exemplo, todos os emails enviados de ou para support@empresa.com.br, encaminha uma cópia automaticamente para gerencia@empresa.com.br. ou todo o tráfego de emails da empresa, pode ser copiado de forma oculta para uma conta específica de backup ou auditoria.

VPN (virtual private network):

  • OpenVPN e IPSec.

  • Autenticação por usuário/senha e/ou por chaves.

  • Configuração simples, precisando apenas de 3 ou 4 cliques.

  • VPN entre duas redes remotas, interligando escritórios, ou entre um cliente (roadwarrior) e o servidor.

  • “Push” de rotas e requests de dns.

Logs, estatísticas, IDS e relatórios

  • IDS (Snort) integrado, com funcionalidade também de IPS - trabalhando com assinaturas da Emerging Threats e com as assinaturas "default" do snort. As regras do snort agora podem ser configuradas, também é possível bloquear pacotes e logar tentativas de invasão. (Pode se configurar a atualização da assinaturas utomaticamente).

  • Ntop para estatísticas detalhadas de tráfego.

  • Estatísticas e gráficos de tráfego de cada interface (rede), sistema (cpu, memoria, disco, load, etc), envio e recebimento de emails (notificando alertas, utiliza o monit para isso), pageviews e estatísticas obtidas do squid.

  • logs via web do squid, dansguardian, firewall, postfix, clamAV, snort, etc..

  • Syslog local e remoto

Backup e gerenciamento

  • Backup e restauração via web, possibilitando “clonar” rapidamente o servidor, util para redundância e recuperação rápida do sistema.

  • Gerenciamento via SSH, Console e Web usando SSL.




O projeto baseado no Endian já está em produção, implementado em máquina real e sob o vmware ESXi 4. Os resultados foram positivos e o retorno satisfatório. A apresentação das funcionalidade, junto com a interface de gerenciamento customizada e a demonstração dele em ambiente de produção real combinado a relação vantajosa do custo x benefício tem agradado. Soma-se a isso ainda o conhecimento dos analistas adquiridos em laboratório e a experiência em gnu/linux e das aplicações utilizadas em background pelo endian.

Quem está procurando por "appliance" open source rico em funcionalidades, de rápida implementação e que seja ao mesmo tempo confiável e seguro, aconselho testarem o Endian Firewall. Existem também outras alternativas além das mencionadas, basta escolher a que melhor atenda as suas necessidade.

Existe a comunidade brasileira de endian firewall, para que quiser tirar dúvidas e ou entender melhor sobre o projeto: http://endian.eth0.com.br/

Entretanto a documentação dele é muito bem detalhada, com screenshots de configuração e tudo o que for necessário para implementação em vários níveis.

Bom pessoal, é isso.
Meus 2 centavos de contribuição.

Próximo projeto que está sendo desenvolvido é sob o OSSIM, já comentado aqui no blog. A rede é de médio porte e o objetivo é utilizar todos os recursos para oferecer a equipe de TI do cliente uma central de segurança para análise e auditoria dos ativos, correlação de eventos e inventário de rede.

Att.

Victor Santos

15 maio 2010 ~ 5 Comentários

Sobre o GTS 15

Caros amigos, depois de assistir muitos reuniões do GTS on-line, este ano submeti uma proposta de trabalho e tive a felicidade de ser convidado a participar desta 15º encontro.

O GTS 15 aconteceu ontem (14/05/2010) no hotel blue three towers em são paulo e teve a participação de centenas de profissionais e entusiastas da área. Muito bem organizado, em hotel super luxuoso e com excelentes serviços de recepção e coffebreak, o evento não deixa a desejar em nada.

Lá,tive a oportunidade de reencontrar velhos colegas de profissão( Ricardo Kleber, Ivo peixinho, Alex, etc..) e de conhecer tantos outros novos, que até então só conhecia por nome em listas de discussão e blogs.

Todas as palestras foram muito bem elaboradas. A minha palestra foi sobre "Gerenciamento de segurança da informação com software livre", mas bem que poderia se chamar "técnicas e ferramentas para implementação de controles de segurança".

* Vocês pode conferir todas as apresentações neste link:
ftp://ftp.registro.br/pub/gts/gts15/

A palestra foi muito bem elogiada e após ministrá-la me abriu muitas portas, como convites para outros eventos e a oportunidade de conhecer e ouvir considerações de grandes nomes da área.

No ínicio me senti um pouco nervoso, auditório lotado, 2 noites sem durmir e por ser minha "estréia" em um evento tão conceituado e respeitado como o GTS. Depois de 5 minutos consegui controlar o ritmo da apresentação, desacelerando o slides e apresentando mais detalhes sobre cada aplicação. Me animou e me deu um novo gás vê muitas pessoas interessadas e focadas no que eu estava falando. Nos últimos 5 minutos tive que novamente acelerar a conclusão do trabalho devido ao estouro de tempo.

* cometi um erro grotesco de português "descobridos" não, por Deus... (o que eu estava pensando?)
descobertos pessoal, descobertos.... :P !!!

As perguntas feitas pelo público (tanto local, quanto da internet) foram muito bem elaboradas. Depois da minha apresentação ainda conversei com muitas pessoas sobre características de ferramentas, alternativas, topologias, implementação, testes....

Foi muito legal e uma baita experiência para mim, ouvir conselhos e orientações de profissionais já consagrados na área me faz crer que estou no caminho certo e que ainda tenho muito o que percorrer.

Então para mim e para vocês, deixo uma frase que escutei ontem:

"Agora o céu não é o limite, mas sim o caminho"

Att.

Victor

07 maio 2010 ~ 4 Comentários

Executando comandos via SSH no Linux pelo Putty no Windows

Durante esta semana me deparei com a seguinte situação ao visitar um cliente.
A aplicação web dele implementada em um servidor linux, exige que de tempos em tempos: Tenha o seu cache zerado, a manipulação de dados no Banco seja modificada, as pastas temporárias sejam deletadas, os dados de registro sejam copiados, e um email com o que foi feito seja enviado.

Seguindo as orientações dele, criei um shell script e coloquei no crontab para ser executado durante a madrugada. Pronto trabalho encerrado. \0> !!!

Entretanto o direto responsável por analisar os relatórios da aplicação não quer que ele seja executado periodicamente e sim quando ele pré-determinar.
Beleza? Seria muito tranquilo se ele soubesse alguma coisa de linux, mas ele não entende nada já que a aplicação foi desenvolvida por outra empresa e ele só gerencia.

Então pensei o seguinte: Vou ensinar ele a usar o putty, criar um usuário com privilégios restritos para executar o script e criar um passo-a-passo de como ele tem que fazer dentro do linux.
Só que pensei mais um pouco e chegue a seguinte conclusão: isso não vai dar certo, é muita coisa para um cara que não entende nada e que não quer ter trabalho. Ele quer só um botão para clicar e executar o script.

Daí pensei, será que o putty faz isso.
E faz.(com um pouco de jeitinho como veremos a seguir)

Então segue ai o que eu fiz no notebook do cliente para ele executar o backup. (Este exemplo tem caracter ilustrativo)

FASE 1 (PUTTY)

1º - Fiz o download do Putty em http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

2º - Para que ele possa executar o script de qualquer lugar que ele estiver, no servidor linux dele instalei o "ddclient" e associei a um dns dinâmico no dyndns.org. Exemplo: hbuster.homelinux.org.

OBS: Criar conta no dyndns é de graça e você pode associar até 5 dns diferentes.

3º - Abri o Putty e configurei uma sessão para acesso remoto da seguinte forma: "client@hbuster.homelinuxorg porta 6666" e Salvei esta sessão com o nome "hbuster".




4º - Pegue o executável do Putty e salvei no diretório C:\Windows\System32


FASE 2 (Criar script no Windows)

1º - Abri o notepad e adicionei a seguinte linha:

start putty -m C:\Windows\System32\Script_Server.txt -load "hbuster" -pw senha

Explicando:

start: chama o programa que será executado;
putty: programa que será executado;
-m: informa qual o caminho do arquivo que contem o comando linux;
-load: informa qual a sessão que será usada para conexão;
-pw: indica que será informada a senha;
senha: senha do usuário que está acessando o sistema.


2º - Salvei o arquivo com o nome "Script.bat" em C:\Windows\System32

3º - Dentro do arquivo C:\Windows\System32\Script_Server.txt está o seguinte comando:

/home/hbuster/public_html/script.sh


4º - Criei um atalho de C:\Windows\System32\Script.bat na área de trabalho do cliente com o nome "Flux Control Server" e alterei o icone para um icone mais amigável.

Sendo assim, todas as vezes que o cliente deseja executar o scipt no servidor, basta ele dar um duplo clik no atalho. :) !!!

Victor Santos

07 março 2010 ~ 2 Comentários

Sistemas de Monitoramento de T.I.


A Tecnologia da informação é hoje uma parte integrante das operações de pequenas e médias empresas. Como ocorre nas grandes corporações, a TI é “missão crítica” e é preciso enfrentar a dura tarefa de manter seus sistemas de TI eficaz com recursos completamente limitados, sem poder contar com implementações sofisticadas de gestão de sistemas, ou grandes equipes especializadas em administração.

Empresas como estas podem se beneficiar imensamente de uma moderna solução de monitoramento OpenSource, que representa uma alternativa fácil, de nível corporativo e baixo custo.

Um sistema de monitoramento audita constantemente vários ativos de TI (servidores, serviços de rede, aplicações, dispositivos, sites da Web, etc.) verificando se estão lentos ou falhando, e notifica o administrador de sistemas, por e-mail, pager ou outros alarmes, sobre o status do ativo.

No próximo dia 13/03 será realizado o curso "Proteção de Perímetro: Sistemas de Monitoramento" pela Clavis Segurança da Informação. Um curso de 2 sábados, focado em monitoramento de redes, sistemas e serviços, totalmente mão na massa e com um ambiente descontraído e informal.

Vou aproveitar este post para falar sobre as ferramentas que serão apresentadas durante o curso, praticamente tudo o que um analista de TI precisa para controlar e gerenciar a sua infraetrutura. Utilizando as melhores ferramentas open-source para monitoramento, que podem ser encontradas facilmente para qualquer distribuição linux.


  • Sistema de Controle de Conteúdo Web (Squid): Reduz o consumo excessivo de banda e aumenta a produtividade e os resultados da empresa. Permite que você evite que outros usuários de computador acessem material impróprio ou indevido na Internet. Isso é obtido por meio da aplicação de filtros, onde você controla que sites os usuários podem acessar na internet e ainda gera relatórios sobre os sites navegados

  • Gerenciamento de eventos centralizado (Rsyslog): Aumenta o poder de gerenciamento do analista, centralizando todas as informações de logs e registros em um único servidor.

  • Monitoramento de Redes, serviços e sistemas (Monit e Nagios): Te mantém um passo a frente de seus colaboradores, clientes, parceiros e fornecedores. Pois você terá toda as informações sobre o comportamento e desempenho de sua infraestrutura. Os pontos mais críticos, os recursos que precisam ser melhorados, direcionamento de investimentos, etc...

O curso é adequado as normas nacionais e internacionais e oferece ao aluno não só a oportunidade de não apenas conhecer detalhes técnicos das soluções de ponta em Sistemas de Monitoramento, como também oferece a possibilidade do aluno de retornar à organização com experiência o suficiente para começar a aplicar tudo que foi aprendido imediatamente.

Com um sistema de monitoramento eficaz você desfrutará de uma série de benefícios, como:

  • Evitar ações do tipo “apagar incêndios” com o monitoramento pró-ativo: Sem a ajuda de uma solução de monitoração, os problemas, mesmo em ambientes
    moderadamente complexos, podem causar baixo desempenho dos sistemas de TI, efeitos em cascata, e interrupções. Uma solução de monitoramento detecta
    estes problemas em sua fase inicial, antes que possam se multiplicar.

  • Melhorar a experiência do cliente: Interrupções causam complicações e descontentamento para o cliente e normalmente resultam em perda de confiança. Uma solução de monitoramento detecta problemas, identificando sua causa e permitindo aos administradores de sistema tomar medidas corretivas para restaurar a funcionalidade máxima, o que melhora a experiência do cliente e a produtividade do funcionário.

  • Reduzir custos e maximizar a utilização de recursos: Use as equipes especializadas para tarefas produtivas. Os sistemas de monitoramento deixam
    os administradores especializados livres para se dedicarem a soluções de TI voltadas a problemas de negócio reais, em vez de ocupá-los para gerenciar
    infra-estruturas de monitoramento complexas em busca de problemas.

  • Ganhar flexibilidade e gerenciar as complexidades: Os ambientes de TI atuais empregam uma variedade das melhores soluções multiplataforma da categoria. A utilização de diversas soluções de nicho ou scripts complexos para monitorar estes ambientes resulta em rigidez causada por fatores secundários. As soluções de monitoramento modernas oferecem suporte out-of-the-box para diversas plataformas, e proporcionam flexibilidade - quesito indispensável para os negócios.

  • Controlar o desempenho da TI e planejar sua capacidade: Hoje em dia, as decisões mundiais sobre os negócios estão fatalmente vinculadas às de TI. As melhores soluções de monitoramento oferecem painéis de visualização que demonstram o desempenho da TI em tempo real. Elas também fornecem dados necessários para acompanhar o histórico dos sistemas e serviços de TI, para justificar custos e para planejar proativamente os investimentos.

Não fique para trás e evite dores de cabeça, implemente logo um sistema de monitoramento em sua rede e assuma o gerenciamento de sua infraestrutura.

Para quem quiser mas informações sobre o curso citado, acesse:
http://www.clavis.com.br/curso/sistemas_monitoramento/index.php

OBS: Hoje cheguei aos 60 posts no blog e aos 60 inscritos no RSS. \0/ !!!!!
Obrigado a todos os caros e raros leitores e leitoras e que me acompanham nesta empreitada de difundir e vaporizar a importância e os conceitos de segurança da informação na Internet.

25 fevereiro 2010 ~ 1 Comentário

MacGyVIM

Tags: , ,


O “Vim” é um editor de texto extremamente configurável, criado para permitir a edição de forma eficiente, tornando-a produtiva e confortável. Também é uma melhoria do editor “Vi”, um tradicional programa dos sistemas Unix. Possui uma série de mudanças em relação a este último. O próprio slogan do Vim é Vi IMproved, ou seja, Vi Melhorado. O Vim é tão conhecido e respeitado entre programadores, e tão útil para programação, que muitos o consideram uma verdadeira “IDE (Integrated Development Environment, em português, Ambiente Integrado de Desenvolvimento)”.

Ele é capaz de reconhecer mais de 500 sintaxes de linguagens de programação e marcação, possui mapeamento para teclas, macros, abreviações, busca por Expressões Regulares2 , possui sistema de autocorreção, auto-identação, seleção visual, macros, seleção vertical de texto, sintaxe colorida e muito mais. Ele não é exclusivo do Unix, ou seja, pode ser executado em outras plataformas, como MacOS, Sun, Windows entre outras.

Se quiserem aprender mais sobre o VIM façam download do vimbook, um livo sobre o vim em português:
http://code.google.com/p/vimbook/downloads/list

Entretanto hoje estou aqui para falar sobre o arquivo vimrc, arquivo este que carrega as opções personalizadas do vim na hora da execução do mesmo. Durante uma das minhas aulas, um aluno me apresentou este arquivo personalizado e ao testar fiquei maravilhado. Dentre suas inúmeras características, eu destaco:


  • Faz busca incremental.

  • Habilita o uso do mouse (todos os modos) em terminais.

  • Habilita a numeração das linhas.

  • Utilizando a tecla F2 ele 'oculta' e F3 ele volta os comentários do arquivo atual.

  • Utilizando a tecla F4 ele alterna entre janelas sem sair do modo inserção (depois do :split).

  • Utilizando a tecla F5 ele embaralha as letras na tela e apertando F5 novamente ele volta ao normal.

  • Utilizando a tecla F6 ele procura a primeira linha vazia para começar a edição.

  • Utilizando a tecla F7 ele remove espaços redundantes no fim das linhas.

  • Utilizando a tecla F8 ele retira os ^M que ficam no final de arquivos salvos pelo windows.

  • Utilizando a tecla F9 ele cria o cabeçalho padrão para shell script.

  • Fecha automaticamente { ( [.

  • Salva os arquivos .sh com permissao de escrita.

  • Entre diversos outros.

Um verdadeira canivete para os administradores e programadores, que utilizam o VIM para editar os arquivos.

Para baixar este arquivo vimrc, bastar acessar o link abaixo.
https://docs.google.com/uc?id=0BzC6yI60arroZWE4MGZlMjctMDY5Ny00Y2Q4LThiOWMtNjc5NmNlNDJlM2Ey&export=download&hl=en_US

A partir disso, siga os seguintes passos:

1º - Baixe o arquivo "vimrc" no diretório "/etc/vim/"
2º - Renomeie o arquivo "vimrc" para "vimrc.original" (se der algum problema, você tem um backup)
3º - Abra e leia o arquivo "vimrc" e leia todas as funcionalidades, entre F2, F3, F4, F5, etc....
4º - Edite qualquer arquivo do sistema com o editor vim e se divirta. :) !!!

OBS: Este arquivo vimrc foi configurado para ser utilizado em sistemas baseados no Debian, entretanto muitas de suas opções funcionam em outras distribuição.

20 fevereiro 2010 ~ 4 Comentários

Fortalecimento de Servidores Linux

Um dos principais desafios ao instalar um servidor Linux é permitir que este permaneça seguro pelo maior tempo possível. Para tanto, é necessário conduzir a instalação de forma que se consiga reduzir ao máximo riscos em torno do servidor, sendo fundamental efetuar um planejamento de instalação diante das políticas de segurança e do gerenciamento de risco da organização.

Muitos administradores, sem experiência em segurança preparam seus servidores com uma instalação básica, importando-se apenas em colocar as aplicações funcionando. O sistema Linux quando não é devidamente configurado, torna-se tão vulnerável quanto qualquer outro sistema e é por isso que devemos ajustar as suas configurações para garantir a confidencialidade, integridade e disponibilidade de suas informações.

O Fortalecimento (Hardening) de Servidores é processo de mapeamento das ameaças, mitigação dos riscos e execução das atividades corretivas, objetivando tornar a infra-estrutura preparada para enfrentar tentativas de ataque.

Entretanto antes de pensarmos em técnicas e ferramentas para fortalecer o nosso sistema Linux é importante levar em consideração 3 fatores: segurança, risco e custo/impacto. Não é possível ter um sistema 100% seguro. Quanto mais segurança tivermos, menor será nosso risco. Em contrapartida, maior será o custo. É importante saber trabalhar com estes 3 fatores, pois não existe uma regra específica, depende de cada situação. Por isso, é extremamente importante analisar a funcionalidade de seu servidor e utilizar os procedimentos que atendam as suas necessidades. Tendo definido isso, vamos em frente.

As boa práticas de segurança em sistemas Linux começam na sua instalação (não irei me aprofundar neste assunto). É extremamente aconselhável particionar o disco e alocar os principais diretórios em partições separadas. Cada partição tem sua tabela de arquivos separada e no caso de haver problemas em alguma das partições, outras não serão afetadas.
Ainda durante a instalação, tente instalar o menor número de pacotes possível. Instale somente o sistema básico e vá alimentando-o com novos pacotes conforme a sua necessidade. Com isso você evitará a instalação de pacotes e serviços desnecessários e que podem tornar seu sistema mais vulnerável.

Após o sistema instalado, vamos realizar o seu fortalecimento, deixando-o o mais seguro possível. Abaixo irei listar 10 passos básicos que devem ser seguidos :

1º Removendo programas desnecessários

Vamos começar removendo todos os programas desnecessários, caso não tenham realizado uma instalação opt-in.

Em um sistema debian digite o comando:

$ dpkg -l | awk '{print $2, $3}' > programas_instalados.txt

Em um sistema Redhat-like, digite o comando:

$ rpm -qa > programas_instalados.txt

O dpkg é um gerenciador de pacotes para o Debian. Utilizando ele com o parâmentro -l (--list) ele irá listar todos os pacotes instalados no sistema e irá salvar o seu resultado no arquivo programas_instalados.txt. Analise o arquivo minunciosamente e remova todos os pacotes que não forem necessários para o seu trabalho, como bluetooth e impressora por exemplo.

Para remover os pacotes digite:

$ dpkg -r

Para remover os pacotes de um Redhat-like digite:

$ rpm -e

2º – Segurança em Sistemas de Arquivos

Além do particionamento do disco, o comando “mount” possui opções bem interessantes para elevar a segurança das tabelas de partições, tais como:

nosuid - Faz com que binários com permissão “suid bit” não possam utilizar esta propriedade na partição em que está definido.

noexec - Impossibilita a execução de binários ou arquivos executáveis dentro da partição na qual essa opção está ativada.

noatime - Diz para não atualizar o tempo de acesso dos inodes (melhorando a performance em partições onde há MUITO acesso a disco).

Estas opções devem ser utilizadas no arquivo “/etc/fstab”, exemplo:
/dev/hda4 /home ext3 defaults,nosuid noexec 1 2
/dev/hda5 /var/log ext3 defaults,nosuid,nodev,noexec 1 2

Vale salientar que existem outras opções do comando “mount”, consulte o “man” do comando para ver todas as opções possíveis.

3º Limitando recursos de redes do Kernel

Adicione as linhas abaixo no final do arquivo “/etc/sysctl.conf” :

# Ativa proteção contra ataques de IP Spoofing
net.ipv4.conf.all.rp_filter=1
# Desabilita pacotes roteados “na fonte”
net.ipv4.conf.all.accept_source_route=0
# Ignora mensagens ICMP de broadcast
net.ipv4.icmp_echo_ignore_broadcasts=1
# Registra todos os pacotes de origem suspeita (como pacotes forjados)
net.ipv4.conf.all.log_martians = 1

4º Gerenciando os serviços ativos do sistema

Muitos administradores, iniciantes ou até mesmo experientes, deixam de utilizar as vantagens de ferramentas clássicas do sistema para checar se o serviço está funcionando corretamente, se está sendo executado na porta certa, se está recebendo requisições inválidas ou até mesmo verificar se um invasor deixou um “backdoor” no sistema. Lembre-se que todas essas ferramentas estão ali para facilitar sua vida. Aproveite-as! Como exemplo, façamos uma varredura nos serviços em execução do sistema. No arquivo /etc/services encontra-se uma lista de portas padrão dos serviços mais conhecidos (alguns nem tanto :).

O comando “netstat” nos mostra informações sobre os serviços de redes no nosso sistema, exemplo:

$ netstat -tupan

O comando “fuser”, que faz parte do pacote psmisc, verifica cada processo(serviço) que está rodando em cada porta. Exemplo:

$ fuser -v 22/tcp
USER PID ACCESS COMMAND
22/tcp: root 5479 F.... sshd

Já o comando “lsof” nos mostra diversas informações do sistema, como usuários, arquivos, processos e conexões. Exemplo :

$ lsof


5º Desativando contas desnecessárias

Após a instalação do sistema e em atividades periódicas é interessante analisarmos todos os usuários do sistema. Alguns utilitários que instalamos adicionam usuários “padrão” no sistema, como ftp, mysql, nobody. Certifique-se de que estes usuários possuam no parâmetro “shell” caminhos para arquivos inexistentes. Na maior parte das vezes estes serviços não precisam de um interpretador shell válido, mas por serem contas válidas no sistema, podem ser utilizadas em determinados casos.

O comando “passwd -l” trava a conta de um usuário. Exemplo:

$ passwd -l # (Trava a conta do usuário)
$ passwd -u # (Destrava a conta do usuário)

6º Gerenciamento e Política de Senhas

O login.defs é um arquivo de configuração lido pelos programas login, não é parte da configuração do PAM. Porém pode auxiliar no gerenciamento do usuários e na definição de uma política de senha.

Você também pode implementar o controle de senhas pelo PAM (Módulo de autenticação plugável) com a biblioteca pam-cracklib.

Outro módulo do PAM bastante interessante é o pam-dotfile, que permite que você defina senhas diferentes, para um mesmo usuário, no serviços específicos como IMAP, SSH, FTP, entre outros.

7º Gerenciamento de Privilégios

A configuração abaixo trata a autenticação do usuário com o módulo pam_wheel.so, utilizando o grupo administradores. Com ele somente os usuários do grupo administradores poderão utilizar o comando /bin/su.

Edite o arquivo “/etc/pam.d/su e adicione a linha:
auth required pam_whell.so group=administradores

Os módulos “pam_limits.so” e “pam_time.so” também são muito úteis para gerenciar os recursos de uso e o controle de acesso ao servidor.

Obs: Tome muito cuidado ao editar esse arquivo. Erros podem impedi-lo de efetuar login no sistema! Mantenha sempre um terminal autenticado pronto para desfazer quaisquer modificações.

8º Fortalecimento do OpenSSH

O OpenSSH é uma suíte de ferramentas que provê criptografia em sessões de comunicações em uma rede de computadores usando o protocolo SSH. Ele é muito visado em ataques de “BruteForce”, portanto alguns ajustes são necessários. O SSHTest é um utilitário criado pela empresa Clavis Segurança da Informação em parceria com o GRIS (Grupo de Resposta a Incidentes de Segurança) do Departamento de Ciência da Computação da UFRJ para analisar arquivos de configuração do daemon OpenSSH, presente na maioria dos sistemas *NIX (incluindo Linux e *BSD), em busca não apenas de buracos na segurança de seu servidor como também por maneiras de melhorar a segurança do mesmo, pró-ativamente. Basta descompatar e executá-lo, e uma série de perguntas interativas serão feitas enquanto ele modifica o arquivo de configuração do servidor OpenSSH.

9º Instalação e Utilização de um IDS

É uma boa prática implantar softwares de verificação de integridade e detecção de intrusão no sistema antes do ambiente entrar em produção online.
Um sistema de detecção de intrusão baseado em redes (NIDS) é um sistema de detecção de intrusão que tenta detectar atividades maliciosas como ataques de negação de serviço e port scans monitorando o tráfego de rede. Um execelente NIDS é o Snort, uma das 5 melhores ferramentas de segurança Open-Source.
Já o sistema de detecção de intrusão baseado em Hosts (HIDS) faz analise de logs, checagem de integridade de arquivos e detecção de rootkits. Um excelente HIDS é o OSSEC, com muitas características interessantes e fácil de usar.

10º Implementação do Firewall

O Netfilter/Iptables é um excelente firewall nativo das distribuições Linux. Ele um firewall “statefull” que trabalha em nível de pacotes e realiza o controle de acesso através de regras de filtragem por, origem/destino, portas, protocolos, palavras chaves, etc. O Iptables ainda tem a vantagem de trabalhar com módulos, possibilitando a adição de mais funções a ele, ampliando ainda mais o seu poder.



Estes passos são apenas o ínicio do processo para melhorar a segurança de seu servidor. Segurança não é só a implementação, é preciso testar e avaliar se as suas configurações estão de fato protegendo o sistema. Além disso, é preciso promover a conscientização dos usuários, disseminando o que chamamos de “cultura de segurança”. Tudo isso sustentado por uma política de segurança clara e concisa, responsável pelo estabelecimento do ambiente propício à manutenção dos três pilares da S.I.: Integridade, Disponibilidade e Confidencialidade. Pois quando tratamos de segurança da informação, tecnologia não é uma panacéia.

Nos próximos artigos irei falar de outras técnicas de fortalecimento e proteção de perímetro.

Para quem deseja conhecer e se deliciar com todas as técnicas e ferramentas de proteção a servidores linux, aconselho a realizar o curso "Fortalecimento de Servidores Unix/Linux" da Clavis Segurança da Informação (vou cobrar a propaganda). Um curso bem completo, com metodologia própria e muito hand's-on, vale a pena conferir não só este como todos os outros cursos que são de altíssima qualidade.

Próximo artigo: Sistemas de Monitoramento.
Não percam. :) !!!!

Victor Santos

23 julho 2009 ~ 0 Comentários

OSSEC HIDS

Hoje vou apresentar uma ferramenta para vocês bastante util para o dia-a-dia de um analista de segurança, o OSSEC. O OSSEC hids é um Host-Based Intrusion Detection System opensource que possui como desenvolvedor principal, o brasileiro Daniel Cid. Ele realiza operações de Analise de Logs, Integridade de Sistemas, Detecção de rootkits, alertas e resposta ativa (regras no firewall ou TCP Wrappers).

Em 2007 foi eleita, pela Linuxworld, a melhor ferramenta de segurança Open Source.

Fácil  de instalar(totalmente intuitivo) e configurar (arquivo em formato xml), multiplataforma e sob a licensa GPLv3,  o OSSEC suporta uma vasta gam de logs, tais como:

Unix pam, sshd (OpenSSH) , Unix telnetd, Samba, Su, Sudo, Proftpd, Pure-ftpd, vsftpd, Solaris ftpd, Imapd and pop3d, Horde imp, Named (bind), Postfix, Sendmail, Iptables firewall, Solais ipfilter firewall, AIX , ipsec/firewall, Netscreen firewall, Snort IDS, Apache web server (access log and error log), IIS web server, Squid proxy, Windows event logs, Generic unix authentiction (adduser, logins, etc).

Ele possui os seguintes modos de atuação:

  • Local – como o nome diz somente na maquina localmente.

  • Agente – funciona como cliente e envia todas as informações para o servidor processar e analisar

  • Servidor – analisa e une os logs e informes de vários agentes.

Atualmente o OSSEC está na versão 2.1 e pode ser encontrado no seguinte endereço:

http://www.ossec.net/main/downloads/

Utilizamos esta ferramenta  no último curso de hardening e todos os alunos gostaram muito.

Excelente ferramenta para que deseja manter o controle sobre o sistema, realizando um monitoramento ostensivo e eficáz, pois o OSSEC monitora o sistema em tempo real, avisando o administrador sobre possíveis ataques, mudança ou alguma ameaça no sistema, sem
a necessidade de análise total dos logs.

OBS: Amanhã 08:00 no segundo dia de Proteção de Perímetro I, que está sendo muito legal. :) !!!

Abs.[ ]

13 julho 2009 ~ 0 Comentários

Gerenciando logs com o RSyslog

Neste final de semana me deparei com uma bela surpresa, no Debian 5 o pacote RSyslog passou a ser o deamon predefinido para gerenciamento de logs do sistema, substituindo Syslogd e Klogd.

Rsyslog é um Syslogd com foco na segurança e confiabilidade. Entre outros, ele oferece suporte para "bufferização" sob-demanda, syslog confiável para TCP, SSL, TLS e RELP, grava em bancos de dados (MySQL, PostgreSQL, Oracle, e muitos mais), e-mail de alerta, formatos de saída totalmente configuráveis (incluindo timestamps de alta precisão), é possível filtrar qualquer parte da mensagem, compressão de mensagem, converção de arquivos texto para o syslog.

Suas funções avançadas o tornam adequado para ambientes corporativos, proteção por criptografia e configuração simples para usuários novatos. Interface web opcional - phpLogCon - pode ser usada para visualizar todas as informações on-line.

O arquivo de configuração do rsyslogd é "/etc/rsyslog.conf". O rsyslogd suporta o formato de configuração do syslog, entretanto para utilizar as configurações específicas do rsyslog, é necessário incluir configurações estendidas (que começam com o carácter $).

Segue um exemplo de configuração:


# /etc/rsyslog.conf
#Configuration file for rsyslog v3.

#### Módulos ####

$ModLoad imuxsock # fornece suporte para o log local do sistema
$ModLoad imklog # fornece suporte para o log do kernel
#$ModLoad immark # fornece suporte para marcar as mensagens

# Fornece suporte de recepção do syslog UDP
#$ModLoad imudp
#$UDPServerRun 514

# Fornce suporte de recepção do syslog TCP
#$ModLoad imtcp
#$InputTCPServerRun 514

#### Diretivas Globais ####

# utiliza o formato padrão de timestamp
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Define as permissões dos arquivos de log
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755

# Regras (Mesmo formato explicado para o syslog)
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log


O rsyslog também trabalha muito bem com infraestrutura de logs centralizado, implementando criptografia no tráfego, verificação na perda de dados e gerenciamento em banco de dados.

Para configurar um cliente de logs utilizando o rsyslog, adicione no final do arquivo de configuração as seguintes linhas:

*.* @IP_do_Servidor
$ModLoad omrelp
*.* :omrelp:IP_do_Servidor:4567;


obs: No exemplo acima, realizei uma configuração de infraestrutura cliente/servidor simples. As mensagens são enviadas para o servidor na porta 4567. Devido à natureza do protocolo UDP, de não ser orientado a conexão, poderiamos perder alguns logs enviados ao servidor. Para evitar esta perda de mensagens eu utilizo o módulo omrelp, que é um módulo de output confiável que evita a perda de dados.

Por fim reinicie o rsyslog.

No servidor, adicione as seguintes linhas no arquivo de configuração:

$ModLoad imudp
$UDPServerRun 514

$ModLoad imrelp
$InputRELPServerRun 4567 # colocaando a porta para 4567

$template DynKern, "/var/log/%HOSTNAME%/kernel"
$template DynMsg, "/var/log/%HOSTNAME%/messages"
$template DynAuth, "/var/log/%HOSTNAME%/secure"
$template DynMail, "/var/log/%HOSTNAME%/mail"

kern.* ?DynKern
*.info;mail.none;news.none;authpriv.none ?DynMsg
authpriv.* ?DynAuth
mail.* ?DynMail


Com isso você estará aceitando conexões UDP com verificação de perda de pacote na porta 4567. Além disso, estará criando um template para separar os logs locais dos logs de clientes, facilitando assim o processo de auditoria.

Antes de reiniciar o syslog, edite o arquivo de incialização do mesmo em "/etc/init.d/rsyslog" e altera as opções de inicialização para:

RSYSLOGD_OPTIONS="-r -c2"



Pronto, agora o seu rsyslog estará pronto para receber os logs de seus clientes.

Durante esta semana irei testar o armazenamento de arquivos de log no banco de dados e criar um tunel criptografado para envios de log com TLS/SSL.

Writing syslog messages to MySQL:
http://www.rsyslog.com/doc-rsyslog_mysql.html

Encrypting Syslog Traffic with TLS (SSL):
http://www.rsyslog.com/doc-rsyslog_secure_tls.html

O site oficcial do rsyslog é o : http://www.rsyslog.com/

09 julho 2009 ~ 4 Comentários

Novo OSSIM 2.1 released


Foi disponibilizada nesta quinta-feira (09/07) uma nova versão do OSSIM (Open Source Security Information Management). Segue link para download.

Para quem não conhece, o OSSIM é um Framework/Dashboard que agrega as principais ferramentas de segurança e monitoramento de rede em uma única estrutura ( Arpwatch, P0f, Pads, OpenVAS, Snort, Spade, Tcptrack, NTOP, Nagios, Osiris, OCS-NG, Ossec, entre outros) permitindo a correlação entre as funcionalidades de cada uma, trazendo muitas possibilidades aos administradores de rede.

Muitas características foram melhoradas nesta versão (Otimização de código, acessórios para captura, integração e configuração mais simples e uma interface totalmente reconstruída) com o objetivo de aumentar o nível do OSSIM junto aos melhores Gerenciadores de Segurança da Informação disponíveis no mercado, sejam eles proprietários ou Open Source.

Seguem abaixo algumas modificações da nova versão:


  • Política de Gestão completamente Reescrita

  • Adicionado Módulos de Conformidade

  • Nova interface, com maior usabilidade

  • Adicionado relatórios personalizado

  • Múltiplos perfis podem ser configurados para sistemas distribuídos: sensores, servidor de dados, etc ..

  • Pacotes do sistema totalmente integrados, proporcionando maior usabilidade e correções de segurança.

  • Migração do Nessus para o OpenVAS

  • Utilização da nova versão do OSSEC 2.x


Como parte desse grande processo de atualização o OSSIM mudou a sua licença de BSD para GPLv2. Esta mudança foi necessária tanto para os utilizadores e contribuintes, como para a equipe de desenvolvimento e a empresa por trás do projeto.

Não posso deixar de dar os créditos neste post ao Vinicius Miasato, que tem tido muito trabalho realizando testes de homologação e integração desta incrível ferramenta.

~ 0 Comentários

OpenSSH Exploit: Mito ou Verdade ?

O serviço SSH (Secure Shell) vem se tornando cada dia mais popular, por conta da sua facilidade de uso, clientes disponíveis para qualquer sistema operacional moderno e, principalmente, pela segurança na autenticação e proteção (criptografia) do tráfego.

Nos últimos dias surgiram rumores de um exploit "Zero Day" que explora uma vulnerabilidade no Servidor OpenSSH. As poucas informações divulgadas sugerem que o exploit afeta apenas versões antigas do Servidor.

Parece que toda a história começou depois de um post para a lista da Full-Disclosure em 4 de julho http://seclists.org/fulldisclosure/2009/Jul/0028.html). A postagem supostamente mostra um grupo hacker usando um "Zero Day" para explorar um servidor SSH.

Após realizar alguns testes a SANS chegou a conclusão de que foi apenas uma brincadeira. Tudo aponta para ataques de "BruteForce", que são comuns em servidores OpenSSH. Veja mais aqui

Independente do "Zero Day" existir ou não, é recomendado que se faça o fortalecimento (Hardening) do Servidor OpenSSH. Para isso existem algumas técnicas, tais como:


      
  • Redução no número de equipamentos com serviço aberto para Internet

  •   
  • Filtragem de origem: Utilizando recursos como tcpwrappers.

  •   
  • Limitação de recursos

  •   
  • Alterar a porta padrão do Serviço (Principal medida para evitar ataques "BruteForce" com ferramentas automáticas)

  •   
  • Acesso somente via chaves públicas

  •   
  • Limitar início de conexão SYN: Utilizando recurso de firewall

  •   
  • Detecção de Assinaturas com um NIDS

  •   
  • Utilizar técnicas de Port Knocking: Utilizando ferramentas como fwknop(Single Packet Authorization) ou knockd



No site do CERT.BR encontra-se um documento publicado por Nelson Murilo que
descreve algumas sugestões para defesa contra ataques de força bruta para SSH.

Uma ferramenta muito interessante também é o SSHTest, que analisa o arquivo de configuração do daemon de ssh (tipicamente /etc/ssh/sshd_config) em busca de problemas potenciais nas configurações. Desenvolvida em perl, ela faz uma séria de perguntas de forma interativa, para bloquear acesso de login do usuário root, limitar acesso para determinados usuários, restringir uso da versão do protocolo, etc... Após isso ele gera um arquivo de configuração pronto para ser usado.


Em suma, uma falha de segurança pode comprometer todo o seu sistema e causar grandes prejuízos ao seu projeto. Então mapeie as ameaças, mitigue os riscos e implemente mecanismos de segurança, objetivando tornar a sua infra-estrutura preparada para enfrentar quaisquer tentativas de ataque.

Conclusão sobre o OpenSSH Exploit: Mito !!!