BlogBlogs.Com.Br

Infraestrutura para Aplicações Web Seguras parte 1 – Sistema ( Updated )

February 25, 2010 by alexos · Leave a Comment 

Neste artigo abordarei como montar/manter um servidor seguro. Uso o Debian GNU/Linux como sistema base mas todas as ferramentas e procedimentos listados servem para qualquer Unix-like.

Um dos grandes inimigos na implementação de qualquer solução é o tempo. Tudo tem que ser feito no menor tempo possível, com o menor gasto possível e com 0% de falha. Para respeitamos todas essas premissas as orientações apresentadas serão de rápida implementação e fácil manutenção.

Hardening

Trocando em miúdos o hardening é o fortalecimento de um sistema, serviço ou aplicação com o objetivo de minimizar ou dificultar a ação de hackers e crackers.

Iniciamos o hardening antes da instalação do sistema. Neste momento planejamos:

1 – Daemons/serviços que serão disponibilizados;
2 – Particionamento;

1 – Como o foco do nosso artigo são aplicações Web já sabemos que vamos trabalhar com o Quarteto Fantástico – Linux, Apache, PHP e MySQL ou Postgresql. De antemão já temos definidos os serviços que serão disponibilizados.

2 – Com isso definido recomendo que o diretório /var permaneca numa partição separada, lá ficarão os arquivos do site no /var/www e os arquivos do banco em /var/lib/mysql.
Dependendo da aplicação é possivel que o BD cresca rapidamente então recomendo separar a maior parte do disco para está partição e também recomendo a utilzação do sistema de arquivos XFS.

Quer saber porque recomendo o uso deste sistema de arquivos? CLIQUE AQUI

Feito todo o planejamento e com o S.O. instalado iniciaremos os procedimentos de pós-instalação:

1 – Atualizar todo o sistema. No caso do Debian recomendo antes de tudo ajustar o arquivo sources.list removendo todo o conteúdo e adicionado os seguintes repositórios:

deb http://ftp.us.debian.org/debian stable main contrib
deb http://security.debian.org/ stable/updates main contrib

Feito isso use o velho e bom aptitude update && aptitude safe-upgrade

2 – Remova todos os serviços desnecessários:

Recomendo a instalação do Nmap, assim de forma fácil e rápida descobriremos as portas abertas e os serviços em execução.

Exemplo:

nmap localhost

Starting Nmap 5.21 ( http://nmap.org ) at 2010-02-25 00:53 BRT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000021s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 996 closed ports
PORT STATE SERVICE
xx/tcp open xxx
xxx/tcp open xxxx
xxx/tcp open xxx
xxx/tcp open xxxxx

Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds

Você poderá remover a aplicação indesejada usando o comando aptitude remove [aplicação] ou apenas impedir que ela seja executada durante o boot, como por exemplo o MTA exim usando o comando update-rc.d -f exim remove. Dessa forma o exim permanecerá instalado, por ser dependência para outras aplicações, mas não será executado durante o boot.

3 – Use o sudo

Evite logar no sistema usando o usuário root e não deixe que membros da equipe façam o mesmo, assim é possivel fortalecer a auditoria de autenticação, instalação e remoção de pacotes e ações que podem danificar o sistema.

4 – Bloqueie o usuário root

Use o comando usermod -L root para bloquear o login usando o usuário root.

5 – Mude a porta padrão do ssh e bloqueie o login do usuário root

Segurança por obscuridade é uma das técnicas utilizadas para dificultar o footprinting, e o port scanning do seu sistema.
Para fazer estas modificações acesse o arquivo /etc/ssh/sshd_config e altere as seguintes linhas:

Port 22

para por exemplo

Port 3000

PermitRootLogin yes

para

PermitRootLogin no

Refinando o processo de Hardening

Algumas ferramentas podem ser utilizadas para ajudar no processo de hardening do sistema. Recomendo fortemente o uso das seguintes ferramentas:

Hntool

Este é um novo projeto do meu amigo sergipano Hugo Doria que vem crescendo bem rápido e vem contando com novas contribuições diariamente.
O objetivo desta ferramenta é facilitar a vida do Sysadmin informando as melhorias necessárias para fortalecer os serviços e o próprio sistema.
Como ele é totalmente modular fica muito fácil contribuir. Se você quer aprender a programar em Python essa é hora.
Contribua com o desenvolvimento do Hntool. A comunidade de brasileira de segurança da informação agradece.

Bastille

O Bastille protege o sistema operacional, configurando o sistema de maneira pro-ativa para aumentar sua segurança e reduzir as chances de comprometimento. Ele também pode ser usado para assessorar no processo de Hardening do sistema, reportando e detalhando cada configuração de segurança usada pelo programa.

Ele auxilia o usuário/administrador do sistema a escolher exatamente como fortalece-lo. No modo de operação/hardening padrão, ele interage com o usuário fazendo perguntas , explicando cada tópico para, então, criar uma política baseada nas respostas do usuário. Logo em seguida, aplica-se as políticas no sistema. No modo de auditoria, ele cria um relatório para ensinar o usuário sobre as configurações de segurança disponíveis, além de informar quais configurações foram definidas/ajustadas.

Para ajudar na instalação e configuração disponibilizo o capitulo referente ao Bastille que criei para minha aula na Pós em Segurança da Informação da Unijorge.

Monitoramento Seguro

Após todos os ajustes necessários é hora de monitorar e manter o ambiente sempre disponível e seguro. Para isso recomendo a instalação das seguintes ferramentas:

Ossec HIDS

O OSSEC é um escalável, multi-plataforma, e open source HIDS. Ele integra análise de log, checagem de integridade de arquivos, politica centralizada, detecção de rootkit, alerta em tempo real e resposta automática.

Para facilitar a implentação postei 03 artigos com a instalação do Ossec Server, o Agente e a Interface Web.

Lenbrando que existe a opção da instalação local ( standalone ) permitindo que você seja alertado através do email.

Munin

O Munin é uma ferramenta de gerência de desempenho muito simples de instalar e configurar. Ela permite que você obtenha informações em tempo real de como anda o seu sistema.

Veja o post que disponibilizei sobre está excelente ferramenta.

Apticron

O Apticron é um script que alerta via email diariamente sobre novas atualizações no seu servidor, no alerta você encontra a lista de pacotes que precisam ser atualizados e todo o changelog.

Acesse os links 1 ou 2 para obter informações de como instalar e configurar está ferramenta bastante útil.

Conclusão

Finalizo aqui a 1a. parte da nossa saga. Peço desculpas aos leitores que querem mais informações técnicas sobre os assuntos abordados, só que o objetivo destes artigos é trazer recomendações e referências rápidas. Prometo trazer informações mais técnicas sobre os assuntos abordados em breve.

Post to Twitter Tweet This Post

Infraestrutura para Aplicações Web Seguras – Motivação

February 25, 2010 by alexos · Leave a Comment 

A Web é a porta de entrada de todas as empresas. Quando você deseja obter informações sobre uma cooporação ou um produto, intuitivamente você acessa o Google e busca o site da empresa/produto desejado.

Quem não disponibiliza informações sobre seus produtos/serviços na Internet está fadado ao fracasso, isso significa que a cada dia mais e mais administradores estão montando suas infra-estruturas com o único objetivo.

DISPONIBILIZAR INFORMAÇÕES NA INTERNET.

Para confirmar a observação acima leia a entrevista feita pela Information Week com o CIO da Casas Bahia Frederico Wanderley.

O grande questão é E A SEGURANÇA? Será que ao pensar em disponibilizar suas informações na internet estas cooporações se preocupam se elas estão disponíveis, integras e confidenciais?

Será que o administrador da rede está preocupado em fortalecer o sistema operacional e os serviços? Será que o desenvolvedor do site está preocupado que sua aplicação seja escrita obdecendo criterios básicos de segurança?

Vocês poderiam me responder antes de clicar nos links abaixo. Qual a relação existente entre Google, Microsoft, HSBC e Sony?

Google

Microsoft

HSBC

Sony

Resposta: Todas elas sofreram defacement. Todas elas tiveram suas portas de entrada invadidas e usavam Linux.

Antes que venham uma avalache de trolls, isso não significa que o Linux é inseguro pois todas as aplicações foram atacadas através SQL Injection .

Nesta série de 3 artigos quero ajudar meus irmãos SysAdmins passando uma série de referências de como manter uma infraestrutura para aplicações Web segura. Só que o SysAdmin não é nenhum mestre dos magos pois se o sistema estiver todo reforçado e a aplicação for desenvolvida “nas coxas” seu trabalho foi jogado no lixo.

Na 1a parte abordaremos como preparar o sistema básico ( S.O. ) seguindo boas práticas simples e efetivas. Na 2a. parte abordaremos como montar e manter um SGBD de forma segura e para finalizar abordaremos como desenvolver e testar aplicações web com foco em segurança.

OBS: O objetivo dessa série de artigos não é virar um tratado de segurança de aplicações web. A intenção é compartilhar minha experiência e aprender com a experiência dos leitores. Como não sou DBA, nem desenvolvedor posso me enganar em alguns destes assuntos e peço a toda a comunidade que contribua tornando estes artigos os mais completos possíveis.

Post to Twitter Tweet This Post

Videos da Conferência Internacional de Segurança de Aplicações (AppSec Brasil 2009)

November 9, 2009 by alexos · Leave a Comment 

Para quem não pode estar presente neste grande evento que foi a AppSec Brasil 2009 ( Conferência Internacional de Segurança de Aplicações ) segue o link para todos os videos das apresentações realizadas no evento.

Os video são:

- Gary McGraw, O Modelo de Maturidade Building Security In

- Dinis Cruz, Apresentação do Projeto OWASP

- Brian Contos, O Uso de WAFs e DAMs Para Melhorar a Seguranca

- Dinis Cruz, Apanhado dos Projetos do OWASP

- Dinis Cruz, O Projeto O2

- Gary McGraw, Exploiting Online Games

- SQL Injection: Amplificação de Data Leakage

- Abordagem Preventiva para Teste de Segurança em Aplicações Web

- Práticas e ferramentas fundamentais para o desenvolvimento de software seguro

- Ágil e Seguro – É possível fazer os dois?

- O Modelo de Maturidade “Software Assurance Maturity Model (SAMM)

- ROI: Otimize os Gastos com Segurança

- Programação Segura utilizando Análise Estática

- ModSecurity: Firewall OpenSource para Aplicações Web

- Técnicas Automáticas para SQL Ownage

Videos em http://vimeo.com/album/142645/

Owasp

Post to Twitter Tweet This Post