Capitulo 1 (5)
-
Upload
ronaldoejessica-costa -
Category
Documents
-
view
9 -
download
1
description
Transcript of Capitulo 1 (5)
1
WebServerSecurity
2
SumárioCapitulo 1 ............................................................................................................................... 4
1. Introdução .................................................................................................................. 5
2. Instalação e Configuração de um servidor WEB ...................................................... 5
2.1. Configurações Básicas do Linux............................................................................. 5
2.2. Alterando o nome da máquina.............................................................................. 5
2.3. Instalação e configuração do MySQL Server......................................................... 6
2.4. Instalação e configuração do Apache ................................................................... 6
2.5. Instalando o PHP5 .................................................................................................. 7
2.6. Testando o PHP5 / Obtendo detalhes sobre o PHP ............................................. 7
2.7. Suporte ao MySQL no PHP5................................................................................... 8
3. Wacko Picko ............................................................................................................... 9
Capitulo 2 ............................................................................................................................. 10
4. Tipos de Ataque ....................................................................................................... 11
4.1. Fingerprint em Servidores Web........................................................................... 11
4.1.1. Netcat ................................................................................................................... 11
4.1.2. Curl ........................................................................................................................ 12
4.1.3. Whatweb .............................................................................................................. 12
5. WebAppScans........................................................................................................... 13
5.1.1. NIKTO .................................................................................................................... 14
5.1.2. W3AF..................................................................................................................... 14
5.1.3. VEGA ..................................................................................................................... 15
5.2. Online Web Scanners ........................................................................................... 15
Capitulo 3 ............................................................................................................................. 16
6. Instalação do Ambiente em Chroot ........................................................................ 17
7. Suhosin ..................................................................................................................... 19
7.1. Instalando o PHP5 e Suhosin ............................................................................... 20
8. ModSecurity + Geo IP .............................................................................................. 23
9. Mod Evasive ............................................................................................................. 29
10. Mod QoS ............................................................................................................... 31
11. Mod Limitipconn .................................................................................................. 32
12. OSSEC.................................................................................................................... 33
13. Mysql..................................................................................................................... 35
3
4
Capitulo 1
Web Security Server
5
1. IntroduçãoAtualmente a maioria das aplicações estão migrando para o ambiente WEB. E
com o crescimento dessas aplicações on-line, a demanda por segurança também
aumenta, pois antes as bases de dados ficavam restritas ao acesso vindo de
dentro da empresa, entretanto agora, com as aplicações WEB, as bases de
dados, bem como servidores públicos que possuem acesso à rede interna, estão
expostos ao acesso externo, muitas vezes sem controle de quem acessa. Por
conta desse cenário, precisamos saber como se comporta um servidor WEB configurado
de maneira padrão, bem como os riscos que corremos, e como é possível aumentar sua
segurança, dificultando as explorações e comprometimentos. Sabemos que no caso de
uma aplicação PHP, muito do que consideramos como segurança, está vinculado
às boas práticas de programação. Entretanto, não podemos deixar de lado a
importância que há na configuração correta, levando em conta a segurança, de
um servidor Apache e do próprio PHP, com as devidas alterações no php.ini e
aplicação de patchs de segurança.
2. Instalação e Configuração de umservidor WEB
Para iniciarmos nossa prática, precisamos instalar e configurar um servidor WEB que é
considerado o padrão LAMP (Linux + Apache + MySQL + PHP). Utilizaremos um Debian
Linux, na versão 7, codinome Wheezy, como base e instalaremos os pacotes
existentes em seu repositório padrão, posto que é assim que muitos servidores
são instalados e configurados
2.1. Configurações Básicas do LinuxPara o correto funcionamento do apache2, precisamos realizar algumas
configurações para que o nome do computador seja resolvível para si mesmo.
2.2. Alterando o nome da máquina
6
# vi /etc/hosts
127.0.0.1 localhost192.168.x.x oys-lamp-inseguro.oys.local oys-lamp-inseguro
Vamos editar o arquivo /etc/hostname, para a máquina ter o nome completo comdomínio:
# vi /etc/hostname
oys-lamp-inseguro.oys.local
2.3. Instalação e configuração do MySQLServer
# apt-get install mysql-server mysql-client
Após a instalação dos pacotes, vamos setar uma senha para o root do MySQL:
2.4. Instalação e configuração do Apache
7
A seguir, vamos instalar o servidor Web Apache 2
# apt-get install apache2
No debian, o diretório raiz padrão do Apache2 é /var/www, o arquivo de configuração é
/etc/apache2/apache2.conf. As configurações adicionais são armazenadas em sub-
diretórios de /etc/apache2 como /etc/apache2/mods-available (para os módulos do
apache2) e /etc/apache2/sites-enable (para virtual hosts habilitados) e
/etc/apache2/conf.d para demais configurações.
2.5. Instalando o PHP5
Podemos instalar o PHP5 e o módulo Apache PHP5 da seguinte forma:
# apt-get install php5 libapache2-mod-php5
Devemos reiniciar o apache após a instalação:
# /etc/init.d/apache2 restart
2.6. Testando o PHP5 / Obtendodetalhes sobre o PHP
O diretório raiz do apache2 é /var/www. Agora vamos criar um arquivo chamado info.php
nesse diretório e chamá-lo em um navegador. O arquivo exibirá vários detalhes da versão
do PHP instalado.
# vi /var/www/info.php
<?php
phpinfo();
?>
Agora podemos abri-la em um navegador (http://ip/info.php)
8
2.7. Suporte ao MySQL no PHP5
Para obter suporte ao MySQL no PHP, podemos instalar o pacote php5-mysql. É uma boa
ideia instalar alguns outros módulos, você pode precisar deles para suas aplicações.
Segue alguns módulos que vamos instalar:
# apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagickphp5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recodephp5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Após o termino da instalação vamos reiniciar o apache2:
# /etc/init.d/apache2 restart
Mais uma vez, podemos checar em http://ip/info.php os módulos php recém instalados.
Após ter executado os passos acima, o nosso LAMP server, com suas configurações
padrão e sem proteção estará funcional.
9
3. Wacko PickoVamos utilizar a aplicação Web WackoPicko. WackoPicko é uma aplicação em PHP escrita
por Adam Doupé. Ela contém as mais conhecidas e comuns vulnerabilidades (XSS, SQL
Injection, command-line injection, SessionID, File Inclusion, parameters Manipulation,
etc). WackoPicko foi desenvolvido com as básicas funções de uma aplicação comum,
como um blog de imagens. Ela possui as seguintes funções:
Autenticação
Upload de Imagens
Comentários nas Imagens
Compra de Imagens
Busca
Livro de Visitas
Área de Administração
Com essa aplicação, vamos conseguir visualizar um cenário real, com um servidor
inseguro, e um seguro, quais as diferenças que a proposta do curso lhe proporciona para
segurança. Para instalar o WackoPicko vamos precisar de uma database no banco MySQL,
porem a aplicação já possui um script que faz a criação e importação dos dados para o
MySQL.
# cd /tmp# wget https://github.com/adamdoupe/WackoPicko/archive/master.zip# apt-get install unzip# unzip –X master.zip# cd WackoPicko-master# mysql –u root –p senha < current.sql# cd website# cp –Rf . /var/www# cd /var/www# chmod 777 –R uploads/