1
Sumário Capitulo 1 ................................................................. ..................................................................................................... .............................................................. .......................... 4 1.
Introdução................................... Introdução ...................................................................... ...................................................................... ............................................ ......... 5
2.
Instalação e Configuração de um servidor WEB ...................................................... ...................................................... 5
2.1.
Configurações Básicas do Linux.............................................................. Linux............................................................................. ............... 5
2.2.
Alterando o nome da máquina........................................ máquina........................................................................... ...................................... ... 5
2.3.
Instalação e configuração do MySQL Server................................................ 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........................................................ PHP5................................................................................... ........................... 8
3.
Wacko Picko ................................................................... ...................................................................................................... ............................................ ......... 9
Capitulo 2 ................................................................. ..................................................................................................... ............................................................ ........................ 10 4. 4.1.
Tipos de Ataque ................................................................... ...................................................................................................... ..................................... 11 Fingerprint em Servidores Web........................................................ Web........................................................................... ................... 11
4.1.1. Netcat ................................................................... ...................................................................................................... ................................................ ............. 11 4.1.2. Curl Curl .................................................................. ..................................................................................................... ...................................................... ................... 12 4.1.3. Whatweb .................................................................... ....................................................................................................... .......................................... ....... 12 5.
WebAppScans.................................... WebAppScans....................................................................... ...................................................................... ..................................... 13
5.1.1. NIKTO .................................................................... ....................................................................................................... ................................................ ............. 14 5.1.2. W3AF................................................................................. W3AF.................................................................................................................... ..................................... 14 5.1.3. VEGA ..................................................................... ........................................................................................................ ................................................ ............. 15 5.2.
Online Online Web Scanners........ Scanners.............. ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ........ 15
Capitulo 3 ................................................................. ..................................................................................................... ............................................................ ........................ 16 6.
Instalação Instalação do do Ambiente Ambiente em em Chroot Chroot .......... ............... .......... .......... .......... ........... ............ ............ ........... ........... ............ ............ ........ 17
7.
Suhosin ..................................................................... ........................................................................................................ ................................................ ............. 19
7.1 .
Instalando Instalando o PHP5 PHP5 e Suhosi Suhosin n .......... ............... .......... .......... ........... ............ ............ ............ ........... ........... ............ ............ ............ ........ 20
8.
ModSecurity ModSecurity + Geo IP ..................................................................... .............................................................................................. ......................... 23
9.
Mod Evasive ................................................................... ...................................................................................................... .......................................... ....... 29
10.
Mod QoS..... QoS .......... ........... ............ ............ ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 31
11.
Mod Limitipcon Limitipconn n .......... ............... .......... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 32
12.
OSSEC OSSEC..... .......... .......... ........... ............ ............ ............ ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ........ 33
13.
Mysql........ Mysql............. .......... .......... .......... ........... ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 35
2
Sumário Capitulo 1 ................................................................. ..................................................................................................... .............................................................. .......................... 4 1.
Introdução................................... Introdução ...................................................................... ...................................................................... ............................................ ......... 5
2.
Instalação e Configuração de um servidor WEB ...................................................... ...................................................... 5
2.1.
Configurações Básicas do Linux.............................................................. Linux............................................................................. ............... 5
2.2.
Alterando o nome da máquina........................................ máquina........................................................................... ...................................... ... 5
2.3.
Instalação e configuração do MySQL Server................................................ 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........................................................ PHP5................................................................................... ........................... 8
3.
Wacko Picko ................................................................... ...................................................................................................... ............................................ ......... 9
Capitulo 2 ................................................................. ..................................................................................................... ............................................................ ........................ 10 4. 4.1.
Tipos de Ataque ................................................................... ...................................................................................................... ..................................... 11 Fingerprint em Servidores Web........................................................ Web........................................................................... ................... 11
4.1.1. Netcat ................................................................... ...................................................................................................... ................................................ ............. 11 4.1.2. Curl Curl .................................................................. ..................................................................................................... ...................................................... ................... 12 4.1.3. Whatweb .................................................................... ....................................................................................................... .......................................... ....... 12 5.
WebAppScans.................................... WebAppScans....................................................................... ...................................................................... ..................................... 13
5.1.1. NIKTO .................................................................... ....................................................................................................... ................................................ ............. 14 5.1.2. W3AF................................................................................. W3AF.................................................................................................................... ..................................... 14 5.1.3. VEGA ..................................................................... ........................................................................................................ ................................................ ............. 15 5.2.
Online Online Web Scanners........ Scanners.............. ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ........ 15
Capitulo 3 ................................................................. ..................................................................................................... ............................................................ ........................ 16 6.
Instalação Instalação do do Ambiente Ambiente em em Chroot Chroot .......... ............... .......... .......... .......... ........... ............ ............ ........... ........... ............ ............ ........ 17
7.
Suhosin ..................................................................... ........................................................................................................ ................................................ ............. 19
7.1 .
Instalando Instalando o PHP5 PHP5 e Suhosi Suhosin n .......... ............... .......... .......... ........... ............ ............ ............ ........... ........... ............ ............ ............ ........ 20
8.
ModSecurity ModSecurity + Geo IP ..................................................................... .............................................................................................. ......................... 23
9.
Mod Evasive ................................................................... ...................................................................................................... .......................................... ....... 29
10.
Mod QoS..... QoS .......... ........... ............ ............ ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 31
11.
Mod Limitipcon Limitipconn n .......... ............... .......... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 32
12.
OSSEC OSSEC..... .......... .......... ........... ............ ............ ............ ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ........ 33
13.
Mysql........ Mysql............. .......... .......... .......... ........... ........... ........... ............ ............ ............ ............ ............ ............ ........... ........... ............ ............ ............ ............ ........ 35
2
3
Capitulo 1
Web Security Server
4
1. Introdução Atualmente 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 um servidor 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 Linux Para 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 5
# vi /etc/hosts
127.0.0.1 192.168.x.x
localhost oys-lamp-inseguro.oys.local
oys-lamp-inseguro
Vamos editar o arquivo /etc/hostname, para a máquina ter o nome completo com domínio: # vi /etc/hostname
oys-lamp-inseguro.oys.local
2.3. Instalação e configuração do MySQL Server # 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 6
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 subdiretó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 / Obtendo detalhes sobre o PHP O diretório raiz do apache2 é /var/www. Agora vamos criar um arquivo chamado 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
Agora podemos abri-la em um navegador (http://ip/info.php)
7
2.7. Suporte ao MySQL no PHP5 Para obter suporte ao MySQL no PHP, podemos instalar o pacote
. É 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-imagick
php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-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.
8
3. Wacko Picko Vamos 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. # # # # #
wget https://github.com/adamdoupe/WackoPicko/archive/master.zip unzip –X master.zip cp –R website/ /var/www mysql –u root –p senha < current.sql chmod 777 –R uploads/
9
Capitulo 2
Ataque a Servidores Web
10
4. Tipos de Ataque Os primeiros ataques a servidores web, destinavam-se mais a parte de infra estrutura, com ataques de negação de serviço (DoS), negação de serviços distribuída (DDoS)(flooding), desconfiguração de equipamentos (SNMP, Senhas padrões), Portscans em massa, Ping flood attack (no reply) e com exploits remotos, para manter o acesso a servidores. Com as progressivas correções, atualizações e diversidade de novos servidores web (apache2, nginx, lighttpd), esses ataques cada vez mais vieram diminuindo, dando mais espaços a ataques direcionados a aplicações. Segundo a OWASP (Open Web Application Security Project ) , fica em 1º lugar como maior ataque a aplicações é Injeção de código (SQL, SO, LDAP) e em 3º lugar Cross Site Scripting (XSS). Isso se dá pelo fato de muitos administradores de sistemas, terem a confiança que os vulnerabilidades de infra estrutura sendo sanadas, seu ambiente está seguro. Auditar constantemente suas aplicações Web é uma atividade continua e recorrente, para manter o ambiente seguro sempre. Ao longo desse curso veremos algumas técnicas para amenizar os problemas citados. “Computador seguro, só desligado.”
4.1. Fingerprint em Servidores Web Quando um hacker deseja atacar um servidor web, ele deseja saber quais informações o servidor web têm. Para isso, usa-se a técnica de fingerprint, que mostrará quais são as informações do servidor web e de sistema operacional. Vamos demonstrar essa técnica com algumas ferramentas.
4.1.1. Netcat Netcat é um utilitário de rede que lê e escreve dados através de conexões de rede, utilizando o protocolo TCP/IP. Ele foi projetado para ser uma ferramenta confiável "backend", que pode ser usado diretamente ou facilmente conduzida por outros programas e scripts. Ao mesmo tempo, é um debug de rede rico em recursos e uma ferramenta de exploração, uma vez que pode criar praticamente qualquer tipo de conexão que você precisa e tem várias capacidades interessantes embutidas. Com o netcat, vamos utilizar 11
a seguinte sintaxe para conseguir informações de um servidor web: # nc www.site.com.br 80
HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Wed, 30 Jul 2014 13:08:42 GMT Server: Apache Last-Modified: Fri, 06 Jun 2014 20:36:58 GMT Accept-Ranges: bytes Content-Length: 111 Connection: close Content-Type: text/html
4.1.2. Curl O Curl é uma ferramenta de linha de comando para transferir dados com sintaxe URL. Suporte os protocolos FTP, FTPS, TFTP, HTTP, HTTPS, TELNET, DICT, FILE e LDAP. Além de suportar esses protocolos, consegue também tratar certificados digitais, cookies, proxies e autenticação (incluindo NTLM, Basic, Digest, Negotiate, Kerberos). Vejamos seu funcionamento: # curl –I www.site.com.br
HTTP/1.1 200 OK Date: Wed, 30 Jul 2014 13:12:43 GMT Server: Apache X-Powered-By: PHP/5.3.28 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, precheck=0 Pragma: no-cache Set-Cookie: PHPSESSID=f3c6f3d638ed5eb020bad0702a8aed6f; path=/ Connection: close Content-Type: text/html
4.1.3. Whatweb WhatWeb identifica sites. Seu objetivo é responder à pergunta: "O que é que site?". WhatWeb reconhece tecnologias web, incluindo os sistemas de gerenciamento de conteúdo (CMS), plataformas de blogs, estatísticas/análise pacotes, bibliotecas JavaScript, servidores web e dispositivos embarcados. WhatWeb tem mais de 900 plugins, cada um a reconhecer algo diferente. WhatWeb também identifica números de versão, endereços de e-mail, identificações de contas, módulos de estrutura web, erros de SQL, e muito mais. Para identificar a versão de um servidor web, faremos da seguinte 12
maneira: # whatweb www.site.com.br
http://www.site.com.br/ [200] http://www.site.com.br [200] Apache, Cookies[PHPSESSID], Country[UNITED STATES][US], Google-Analytics[UA-36284550-1], HTML5, HTTPServer[Apache], IP[72.29.74.227], JQuery, Meta-Author[iMoth], PHP[5.3.28], Script[text/javascript], Title[iMoth], X-PoweredBy[PHP/5.3.28] URL : http://www.site.com.br Status : 200
5. WebAppScans A classe de ferramentas conhecida como scanners de vulnerabilidades tem duas partes: um mecanismo de scanning (ou exame) e um banco de dados de vulnerabilidades. O mecanismo realiza a negociação HTTP e fornece um método para analisar informações retornadas pelo servidor de destino a fim de determinar se existe uma vulnerabilidade. O banco de dados contém uma lista de explorações conhecidas, principalmente páginas padrão que devem ser removidas da instalação de um servidor ou páginas vulneráveis em uma aplicação comumente usada. Em alguns casos, o scanner de vulnerabilidade também identifica a suscetibilidade do servidor a estouros de buffer conhecidos entre outros. No mercado atual, existem vários scanner s de vulnerabilidade web, de vários tipos vários preços, e as vezes com os mesmos objetivos.
Em nosso curso vamos abordar sobre 3 excelentes ferramentas livres, que fazem 13
análise de vulnerabilidades web.
,
,e
.
5.1.1. NIKTO Nikto é um software de varredura do servidores web. Ele foi projetado para encontrar vários padrão de arquivos inseguros, configurações e programas em qualquer tipo de servidor web. Uso:
5.1.2. W3AF w3af é um Scanner de vulnerabilidades web. O objetivo do projeto é criar um quadro para ajudar a proteger suas aplicações web, encontrando e explorando todas as vulnerabilidades de aplicativos web. Nossa estrutura é orgulhosamente desenvolvido utilizando Python para ser fácil de usar e estender e licenciado sob GPLv2.0. Uso:
14
5.1.3. VEGA Vega é um scanner de código livre e aberto, é uma plataforma para testar a segurança de aplicações web. Vega pode ajudar a encontrar e validar SQL Injection, Cross-Site Scripting (XSS), inadvertidamente divulgou informações sensíveis, e outras vulnerabilidades. Ele é escrito em Java, baseado em GUI, e roda em Linux, OS X, e Windows.Vega inclui um scanner automatizado para testes rápidos e um proxy para interceptação de tráfego. O scanner Vega encontra XSS (cross-site scripting), injeção de SQL e outras vulnerabilidades. Uso:
5.2. Online Web Scanners Da mesma forma que podemos fazer a Análise de vulnerabilidades a partir de nosso computador, existem empresas que oferecem o mesmo serviço na nuvem (as a service). Existem duas ferramentas excelentes que podemos usar de forma gratuita para alguns scans: https://freescan.qualys.com/freescan-front/ https://www.acunetix.com/free-network-security-scan/ 15
Capitulo 3
Protegendo seu Servidor Web
16
6. Instalação do Ambiente em Chroot Vimos que com a instalação e configuração padrão, nosso servidor é vulnerável à ataques, além de fornecer muitas informações à um possível atacante, facilitando o trabalho dele de comprometimento de nosso servidor. Por conta disso, vamos realizar uma nova instalação do Apache e do PHP para melhorar sua segurança. O Apache e o PHP serão reinstalados dentro de um ambiente seguro chamado chroot, que permite o enjaulamento de aplicações, fazendo com que aquilo que estiver dentro do conteiner não tenha acesso à máquina real. Vamos à instalação e configuração de nosso ambiente seguro com um sistema operacional próprio, separado da máquina real. Para instalar o ambiente chroot no debian, vamos utilizar o debootstrap, ele irá nos auxiliar na criação deste ambiente. # apt-get install debootstrap # mkdir /var/webserversecurity # debootstrap wheezy /var/webserversecurity/
Após executar o comando acima, perceba que o deboostrap irá baixar uma série de pacotes que são necessários para que este ‘mínimo’ ambiente funcione. Agora para que o ambiente chroot funcione, precisamos de ‘compartilhar’ o diretório /proc da máquina real dentro do chroot. # mount --bind /proc/ /var/webserversecurity/proc Vamos acessar o chroot:
# chroot /var/webserversecurity/
Vamos alterar o formatoque o prontoaparece, para diferenciarmos a maquina realdochroot: # vi .bashrc # exit
Vamos entrar novamento no chroot, agora com o prompt alterado: # chroot /var/webserversecurity
Vamos alterar a configuração do mirror do apt para o mirro br, e atualizar os pacotes, caso necessitem: chroot:~# vi /etc/apt/sources.list chroot:~# apt-get update chroot:~# exit 17
Esses passos vão depender do nível de segurança que você quer implementar, são opcionais, porem os seguindo você terá acesso ao ssh da maquina real e acesso ao ssh
do chroot. Para isso, precisamos alterar a porta do ssh, e compartilhar /dev/pts e reiniciar o serviço da máquina real. # vi /etc/ssh/sshd_config # /etc/init.d/ssh restart # mount --bind /dev/pts /var/websecurity/dev/pts
Vamos entrar no chroot e prosseguir com as demais configurações # chroot /var/webserversecurity/
Instalar o openssh-server: chroot:~# apt-get install openssh-server ; instalar o ssh server
Vamos definir uma senha para o root chroot:~# passwd root
Feito isso, vamos fazer com o serviço inicie sozinho quando o servidor der boot. Dentro da
, no arquivo /etc/rc.local adicione a seguinte linha:
/usr/sbin/chroot /var/webserversecurity /etc/init.d/ssh start
Instalar o apache2 no chroot chroot:~# apt-get install apache2
Faça um teste em seu navegador se o serviço foi instalado corretamente: http://ipdasuamaquinavirtual
Agora vamos alterar alguns parâmetros de segurança no apache2 chroot:/# vi /etc/apache2/sites-available/default
ServerAdmin webmaster@localhost DocumentRoot /var/www Options FollowSymLinks AllowOverride None Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all chroot:/# vi /etc/apache2/conf.d/security # # Disable access to the entire file system except for the directories that # are explicitly allowed later. # 18
# This currently breaks the configurations that come with some web application # Debian packages. # # # AllowOverride None # Order Deny,Allow # Deny from all #
# Changing the following options will not really affect the security of the # server, but might make attacks slightly more difficult in some cases. # # ServerTokens # This directive configures what you return as the Server HTTP response # Header. The default is 'Full' which sends information about the OS-Type # and compiled in modules. # Set to one of: Full | OS | Minimal | Minor | Major | Prod # where Full conveys the most information, and Prod the least. # #ServerTokens Minimal #ServerTokens OS #ServerTokens Full
ServerTokens Prod # # # # # # # #
Optionally add a line containing the server version and virtual host name to server-generated pages (internal error documents, FTP directory listings, mod_status and mod_info output etc., but not CGI generated documents or custom error documents). Set to "EMail" to also include a mailto: link to the ServerAdmin. Set to one of: On | Off | EMail
ServerSignature Off chroot:/# /etc/init.d/apache2 restart
Feito isso, vamos fazer com o serviço inicie sozinho quando o servidor der boot. Dentro da
, no arquivo /etc/rc.local adicione a seguinte linha:
/usr/sbin/chroot /var/webserversecurity /etc/init.d/apache2 start
7. Suhosin é um avançado sistema de proteção que foi desenvolvido com o objetivo de proteger servidores e usuários de falhas nas aplicações escritas em PHP e implementar correções à própria base da linguagem. É separado em duas partes independentes que podem ser utilizadas em conjunto ou individualmente, sendo que uma delas é um patch a ser aplicado no core do PHP que implementa proteção contra vulnerabilidades do sistema (Engine Protection) e a outra parte é uma extensão que coloca em funcionamento todas as outras proteções e implementações de segurança.
19
Contra o quê o Suhosin nos protege?
Suhosin é a único proteção estável e real disponível contra remote file include
Protege contra HTTP Response Splitting Vulnerabilities
Protege contra scripts que manipulam o memory_limit
Adiciona proteção contra ataques ao mail()
Filtra caracteres ASCIIZ de inputs de usuários
Ignora variáveis de GET, POST, COOKIE com os seguintes nome: GLOBALS, _COOKIE, _ENV, _FILES, _GET, _POST, _REQUEST, _SERVER, _SESSION, HTTP_COOKIE_VARS, HTTP_ENV_VARS, HTTP_GET_VARS, HTTP_POST_VARS, HTTP_POST_FILES, HTTP_RAW_POST_DATA, HTTP_SERVER_VARS, HTTP_SESSION_VARS Suporta verificação de upload de arquivos através de um script externo
Pagina do projeto: http://www.hardened-php.net/
7.1. Instalando o PHP5 e Suhosin Há duas fomas de realizarmos a instalação do Suhosin:
A mais fácil; A mais difícil.
Vou explicar porque uma é considerada mais fácil que a outra. No método mais difícil, é necessário a instalação do pacth do Suhosin, a recompilação do PHP5 e a instalação de uma extensão específica do Suhosin. Esse é um processo que pode levar mais de 1h, o que pode ser precioso para o profissional que está instalando e configurando seu servidor web. Já pela maneira mais fácil, que é a que adotaremos aqui, podemos utilizar um pacote do PHP5 previamente compilado, com o patch e a extensão já instaladas, que precisa apenas ser configurado, para personalizarmos os controles de segurança do Suhosin. Esse pacote está disponível para Debian/Ubuntu. Primeiramente vamos transferir via winscp para dentro do chroot o pacote 20
chroot:~# dpkg –i php5-suhosin_0.9.34-1~update.1_amd64.deb
Vamos resolver as dependencias de pacotes que ele solicita: chroot:~#/tmp# apt-get -f install
Após finalizar a instalação vamos criar um arquivo chamado info.php dentro de /var/www com o conteudo phpinfo(); ?> e em seguinda vamos abri-lo no navegador. Vamos criar um apontamento para o arquivo do suhosin para sua chamada pelo php5 ser efetiva: chroot:~#/etc/php5/conf.d# ln -s ../mods-available/suhosin.ini
Ativando o suporte ao Mysql pelo php5 chroot:~#/etc/php5# apt-get install php5-mysql
Ativar modificações: chroot:~#/etc/php5# /etc/init.d/apache2 restart Vamos editar o arquivo de configuração do Suhosin e adequar as seguintes opções: chroot:~#/etc/php5# vi /etc/php5/mods-available/suhosin.ini
# Limitar a quantidade de directory transversals (../../../): suhosin.executor.include.max_traversal=4 #Desabilitar o /e no preg_replace, que normalmente é utilizado de forma insegura, já que esse parâmetro permite a execução de funções do PHP: suhosin.executor.disable_emodifier=Off #Proteger formulários de e-mail contra ataque de spammers: suhosin.mail.protect=2 #Configurar limite de memória, pois quando o safe_mode está desabilitado, usuários podem utilizar o ini_set para alterar seu limite de memória: suhosin.memory_limit=256M #Qual ação o Suhosin executará ao filtrar algo (a opção 402 fará com que o código não seja executado e retornse uma resposta HTTP): suhosin.filter.action=402 #Limite máximo de tamanho para variáveis vindas de COOKIE, POST e GET: suhosin.request.max_array_depth=4096 suhosin.request.max_array_index_length=2048 suhosin.request.max_name_length=2048 suhosin.request.max_value_length=650000 suhosin.request.max_vars=4096 suhosin.post.max_array_depth=8048 suhosin.post.max_array_index_length=1024 suhosin.post.max_name_length=2048 suhosin.post.max_totalname_length=8048 suhosin.post.max_vars=4096
21
#Máximo upload de arquivos em um script: suhosin.upload.max_uploads=100 # Cuidado com quais módulos colocar na blacklist #suhosin.executor.eval.blacklist = include, include_once,require, require_once, curl_init, fpassthru, file, base64_encode, base64_decode, mail, exec, system, proc_open, leak, syslog, pfsockopen, shell_exec, ini_restore, symlink, stream_socket_server, proc_nice ,popen, proc_get_status, dl, pcntl_exec, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, socket_accept, socket_bind, socket_connect, socket_create, socket_create_listen, socket_create_pair, link, register_shutdown_function, register_tick_function # Cuidado ao ativar essa função suhosin.executor.disable_eval = off #Armazenar em log todas as ações, além das queries SQL que falharam, com o syslog: suhosin.log.syslog = S_ALL & ~S_SQL #Desabilitar a possibilidade de fazer o upload de binários: suhosin.upload.disallow_binary=Off #Desabilitar a possibilidade realizar o upload de arquivos ELF suhosin.upload.disallow_elf=Off
Para maiores detalhes sobre configurações do suhosin, acesse: http://www.suhosin.org/stories/configuration.html Agora, vamos adequar algumas configurações do php5: chroot:~# vi /etc/php5/apache2filter/php.ini disable_functions = php_uname, getmyuid, getmypid, passthru, leak, listen, diskfreespace, tmpfile, link, ignore_user_abord, shell_exec, dl, set_time_limit, exec, system, highlight_file, source, show_source, fpaththru, virtual, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, phpinfo # Desativar display_errors, para evitar que informações sejam passados para o usuário, caso ocorra algum erro na aplicação display_errors = off #Desativar allow_url_fopen para não permitir a abertura de arquivos através da URL allow_url_fopen = off #Desativar allow_url_include, para evitar ataques como RFI allow_url_include = off #Ativar log_errors, para que todos os erros sejam armazenados em um arquivo de log log_errors = on #Desativar expose_php, para evitar que informações sobre o PHP sejam exibidas para o usuário, a menos que uma url esteja como .php: expose_php = off #Para aumentar ainda mais a segurança, limitando o tempo de execução de cada script, em segundos max_execution_time = 30
22
Segue link de algumas funções para serem pesquisadas: http://php.net/diskfreespace http://php.net/dl http://php.net/exec http://php.net/fpaththru http://php.net/getmypid http://php.net/getmyuid http://php.net/highlight_file http://php.net/ignore_user_abord
Aplicar modificações chroot:~# /etc/init.d/apache2 restart chroot:~# apachectl –M
8. ModSecurity + Geo IP O Mod Security é um Web Application Firewall que atua na camada 7 do modelo OSI e tem por objetivo bloquear diversos tipos de ataques, como o Cross-Site Scripting (XSS), SQL Injection, Command Injection, ASP e PHP Injection, Trojans & Backdoors Detection, dentre outros, que variam de acordo com as regras existentes, ele filtra todas as requisições e respostas entre o servidor Web e o cliente fazendo a checagem das regras que estão em vigor. Atualmente é suportado pelo Apache, IIS7 e Nginx. Vamos começar instalando os pacotes necessários para compilar nosso Mod Security: chroot:~# apt-get install apache2-threaded-dev libxml2-dev
libcurl4-gnutls-
dev liblua5.1-0 liblua5.1-0-dev build-essential
Vá até o diretório /opt e faça o download do modsecurity: chroot:~# cd /opt/ && wget https://www.modsecurity.org/tarball/2.8.0/modsecurity-2.8.0.tar.gz
Agora descompacte o arquivo e acesse o diretório criado: chroot:~# tar -xvzf modsecurity-2.8.0.tar.gz && cd modsecurity-2.8.0
Agora iremos iniciar a compilação com o ./configure fazendo as configurações de path e verificando as dependências: chroot:~# ./configure –with-apxs=/usr/bin/apxs2 –with-pcre=/usr/bin/pcreconfig –with-apr=/usr/bin/apr-config –with-apu=/usr/bin/apu-config –withlibxml=/usr/bin/xml2-config –with-curl=/usr/bin/curl-config
Depois compile e instale o Mod Security: chroot:~# make chroot:~# make install 23
Depois de tudo instalado é hora de copiar a biblioteca do Mod Security para o diretório de módulos do apache: chroot:~# cp /usr/local/modsecurity/lib/mod_security2.so /usr/lib/apache2/modules/
Agora iremos baixar o core rules do Spider Labs. A empresa Spider Labs, mantem um projeto livre chamado core rules, esse projeto contém milhares de regras capazes de mitigar as principais vulnerabilidades e ataques a aplicações web. Vá até o diretório do apache e baixe a última versão do core rules: chroot:~# cd /etc/apache2/ && wget https://codeload.github.com/SpiderLabs/owasp-modsecuritycrs/legacy.tar.gz/master
Descompacte o arquivo: chroot:~# tar -xvzf master
Mude o nome do diretório para ficar mais legível chroot:~# mv SpiderLabs-owasp-modsecurity-crs-ebe8790/ ModSecurity chroot:~# cd ModSecurity/
Agora iremos renomear o arquivo modsecurity_crs_10_setup: chroot:~# mv modsecurity_crs_10_setup.conf.example modsecurity_crs_10_setup.conf
Agora iremos criar um link simbólico para o diretório activated_rules que como o próprio nome já diz é onde contém as regras ativas do nosso Mod Security chroot:~# ln -s /etc/apache2/ModSecurity/modsecurity_crs_10_setup.conf /etc/apache2/ModSecurity/activated_rules/modsecurity_crs_10_setup.conf
Depois iremos copiar o arquivo modsecurity.conf e o unicode.mapping para o diretório do apache e renomear o modsecurity.conf: chroot:~# cp /opt/modsecurity-2.8.0/modsecurity.conf-recommended /etc/apache2/ModSecurity/ chroot:~# cp /opt/modsecurity-2.8.0/unicode.mapping /etc/apache2/ModSecurity chroot:~# mv modsecurity.conf-recommended modsecurity.conf
Modifique o local dos logs do Mod Security, abra o arquivo modsecurity.conf e procure a entrada SecAuditLog e deixe como é mostrado abaixo: chroot:~# vi modsecurity.conf
24
SecAuditLog /var/log/apache2/modsec_audit.log
Depois disso iremos criar os arquivos mod_security2.conf e mod_security2.load para ativar o modulo do Mod Security no Apache: chroot:~# cd ../mods-available/ chroot:~# vi mod_security2.conf
Inclua o seguinte conteúdo no arquivo: SecDataDir /var/cache/modsecurity Include “/etc/apache2/ModSecurity/modsecurity.conf” Include “/etc/apache2/ModSecurity/activated_rules/*.conf” chroot:~# vi mod_security2.load
Adicione as seguintes linhas no arquivo: LoadFile /usr/lib/libxml2.so.2 LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so
Agora iremos criar um link simbólico para a biblioteca do xml2: chroot:~# ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2 /usr/lib/libxml2.so.2
Ative o modulo do Mod Security e o modulo Unique_Id no apache: chroot:~# a2enmod unique_id chroot:~# a2enmod mod_security2
Reinicie o apache: chroot:~# service apache2 restart
Execute o comando abaixo para listar os módulos ativos: chroot:~# apachectl -t -D DUMP_MODULES
Verifique se a saída contém os módulos abaixo: unique_id_module (shared) security2_module (shared)
Pronto agora nosso Mod Security já está funcionando, vamos configurar as regras, entre no diretório base_rules e copie todas as regras para o activated_rules: chroot:~# cd ../ModSecurity/base_rules/ chroot:~# cp * /etc/apache2/ModSecurity/activated_rules/
25
Agora entre no diretório slr_rules e copie todas as regras para o activated_rules: chroot:~# cd ../slr_rules/ chroot:~# cp modsecurity_crs_46_slr_et_wordpress_attacks.conf /etc/apache2/ModSecurity/activated_rules/
Copie também as regras especificas para o WordPress: chroot:~# cp modsecurity_46_slr_et_wordpress.data /etc/apache2/ModSecurity/activated_rules/
Depois entre no diretório optional_rules e copie as seguintes regras para o activated_rules: chroot:~# chroot:~# chroot:~# chroot:~#
cd cp cp cp
../optional_rules/ modsecurity_crs_42_comment_spam.conf ../activated_rules/ modsecurity_42_comment_spam.data ../activated_rules/ modsecurity_crs_16_session_hijacking.conf ../activated_rules/
Entre no diretório experimental_rules e copie as seguintes regras para o activated_rules: chroot:~# chroot:~# chroot:~# chroot:~#
cd cp cp cp
../experimental_rules modsecurity_crs_11_brute_force.conf ../activated_rules/ modsecurity_crs_11_dos_protection.conf ../activated_rules/ modsecurity_crs_11_proxy_abuse.conf ../activated_rules/
Baixe o banco de dados de Geo Ip para a regra de Proxy Abuse poder funcioar: chroot:~# cd .. chroot:~# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz chroot:~# gunzip GeoLiteCity.dat.gz
Agora modifique o local do db no arquivo modsecurity_crs_11_proxy_abuse.conf: chroot:~# vi activated_rules/modsecurity_crs_11_proxy_abuse.conf
Procure a entrada SecGeoLookupDb e deixe assim: SecGeoLookupDb /etc/apache2/ModSecurity/GeoLiteCity.dat
Agora desative a regra que bloqueia o acesso por ip ao nosso site, comente a linha 98 do arquivo modsecurity_crs_21_protocol_anomalies.conf: chroot:~# vi activated_rules/modsecurity_crs_21_protocol_anomalies.conf
Reinicie o Apache chroot:~# service apache2 restart
26
Agora de o comando abaixo para acompanhar os logs gerados pelo Mod Security. Lembre-se que o Mod Security ainda não está bloqueando os ataques, ele está simplesmente gerando alerta. No início é muito importante você não ativar o Mod Security pois você vai receber muitos falsos positivos, o ideal é você analisar os logs e criar as exceções para diminuir o máximo de falsos positivos possíveis. chroot:~# tail -f /var/log/apache2/modsec_audit.log
Depois no seu browser, realize algum ataque, pode ser Sql Injection, XSS ou rodar algum scanner como o w3af, wpScan ou o Nikto, depois veja os alertas sendo gerados no terminal. Para fazer o Mod Security bloquear os ataques você vai abrir o arquivo modsecurity.conf e procurar a entrada SecRuleEngine: chroot:~# vi modsecurity.conf
Deixe a entrada SecRuleEngine assim: #SecRuleEngine DetectionOnly SecRuleEngine On
Reinicie o Apache chroot:~# service apache2 restart
Agora faça um teste, no seu browser, clique em algum post e coloque uma aspa no final, assim: http://seu.servidor/?p=1’
Você deverá receber um forbidden, isso significa que seu Mod Security está bloqueando os ataques. Para ajustar seu Mod Security você vai precisar criar as exceções, para isso você precisar analisar os logs para ver o que aconteceu. Por exemplo, ao entrar no http://seu.servidor/?p=1’, você vai receber um Forbidden, então vá até o log e veja o que aconteceu: chroot:~# vi /var/log/apache2/modsec_audit.log
27
Você vai ver algo parecido com isso: --06af3f02-A-[03/Aug/2014:20:47:38 +0000] U96f6sCoCrQAAAsWFAsAAAAA 192.168.0.104 57357 192.168.0.102 80 --06af3f02-B-GET /?p=1%27 HTTP/1.1 Host: 192.168.0.102 Connection: keep-alive Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 DNT: 1 Accept-Encoding: gzip,deflate,sdch Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4
--06af3f02-F-HTTP/1.1 403 Forbidden Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 179 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: text/html; charset=iso-8859-1
--06af3f02-E- 403 Forbidden Forbidden
You don't have permission to access / on this server.
--06af3f02-H--
Message: Access denied with code 403 (phase 2). Pattern match "(^[\"'`\xc2\xb4\xe2\x80\x99\xe2\x80\x98;]+|[\"'`\xc2\xb4\xe2\x80\x99\xe2\x80\ 28
x98;]+$)" at ARGS:p. [file "/etc/apache2/ModSecurity/activated_rules/modsecurity_crs_41_sql_injection_att acks.conf"] [line "64"] [id "981318"] [rev "2"] [msg "SQL Injection Attack: Common Injection Testing Detected"] [data "Matched Data: ' found within ARGS:p: 1'"] [severity "CRITICAL"] [ver "OWASP_CRS/2.2.9"] [maturity "9"] [accuracy "8"] [tag "OWASP_CRS/WEB_ATTACK/SQL_INJECTION"] [tag "WASCTC/WASC19"] [tag "OWASP_TOP_10/A1"] [tag "OWASP_AppSensor/CIE1"] [tag "PCI/6.5.2"] Action: Intercepted (phase 2) Stopwatch: 1407098858733652 2223 (- - -) Stopwatch2: 1407098858733652 2223; combined=764, p1=251, p2=355, p3=0, p4=0, p5=111, sr=57, sw=47, l=0, gc=0 Response-Body-Transformed: Dechunked Producer: ModSecurity for Apache/2.8.0 (http://www.modsecurity.org/); OWASP_CRS/2.2.9. Server: Apache Engine-Mode: "ENABLED"
--06af3f02-Z--
Provavelmente você irá receber mais alguns alertas, então você deverá fazer o mesmo processo até que acerte as regras do Mod Security para não gerar mais esses falsos positivos, coloque o Mod Security em DetectionOnly e analise os alertas.
9. Mod Evasive O Apache tem algumas ferramentas para auxílio a proteção da sua máquina e uma delas é o mod_evasive, que protegerá pelo menos o DDOS. Mod_evasive é um módulo de segurança do Apache que proporciona bloqueio de acessos em massa ou ataques de força bruta ao site. A intenção dele é bloquear e separar os acessos em massa a área, através de uma interface que guarda os acessos gerando uma blacklist dos acessos impedindo o acesso dos mesmos por um tempo configurável.
Se o IP do cliente existe na lista temporária de IPS. Acessos simultâneos a páginas, configurando o tempo de acesso as páginas o default é de 1 segundo. Número de requisições ao site como um todo.
A ideia é retornar o status code 403 - forbidden para os acessos após terem sido 29
bloqueados. Após 10 segundos, período padrão de bloqueio, o cliente tem acesso proibido ao site. A ativação do recurso é bem fácil. O mod_evasive funciona nas duas versões de Apache: 1.3 e 2.0. Veja abaixo os passos de instalação: chroot:/opt# cd /opt/ chroot:/opt# tar -zxvf mod_evasive_1.10.1.tar.gz chroot:/opt# cd mod_evasive chroot:/opt/mod_evasive# apxs2 -c -i -a mod_evasive20.c
Após instalarmos o mod_evasive sem erros, vamos a sua configuração: chroot:/opt/mod_evasive# vi /etc/apache2/conf.d/evasive DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 600 DOSEmailNotify [email protected] DOSLogDir “/var/log/mod_evasive”
chroot:/opt/mod_evasive# /etc/init.d/apache2 restart chroot:/opt/mod_evasive/apache2# apachectl –M Com a configuração setada, as tentativas de ataque serão bloqueadas por 10 minutos. O tempo de bloqueio pode ser menor ou maior, de acordo com sua necessidade. Vamos à uma breve explicação dos parâmetros configurados acima: • = essa opção é interessante ser deixada em seu valor padrão, pois quanto maior, mais memória do servidor será consumida. Só deve ser aumentada para servidores que possuem um grande número de requisições. • = quantidade máxima de requisições feitas por um mesmo cliente, em uma mesma sessão à uma mesma página antes de ser bloqueado. • = quantidade máxima de requisições feitas por um mesmo cliente, em uma mesma sessão a qualquer objeto do site antes de ser bloqueado. • = valor em segundos do tempo em que uma página fará a contagem da quantidade de requisições. • = valor em segundos do tempo em que o site fará a contagem da quantidade de requisições. • = tempo em segundos que o IP suspeito ficará bloqueado através de regras criadas no firewall. • = e-mail para o qual será enviada uma mensagem todas as vezes que um ataque for detectado. • = diretório onde serão armazenados os logs da aplicação.
30
10.Mod QoS Em redes de computadores, o termo qualidade de s erviço (QoS) descreve a ges tão de recursos e não a qualidade de um serviço. Qualidade de serviço implementa mecanismos de controle para fornecer diferentes prioridades para diferentes usuários, aplicações e conexões. É usado para garantir um determinado nível de desempenho de recursos de dados. O termo qualidade de serviço é muitas vezes usado no campo de protocolos de rede de maior amplitude (por exemplo, ATM) e telefonia (por exemplo, VoIP), mas raramente em conjunto com aplicações web. O mod_qos é um módulo de qualidade de serviço para o servidor web Apache que implementa mecanismos de controle que podem apresentar diferentes níveis de prioridade às diferentes requisições HTTP. Ultimamente, com a popularização do ataque de DDoS com a ferramenta Slowloris, o mod_qos vem se popularizando, pois é uma das poucas ferramentas que pode mitigar esse ataque tão devastador, que as vezes apenas um atacante executando essa ferramenta, pode derrubar um servidor WEB com aplicações críticas. Veja abaixo os passos de instalação: chroot:/opt# cd /opt/ chroot:/opt# tar -zxvf mod_qos-11.4.tar.gz chroot:/opt# cd mod_qos-11.4/apache2 chroot:/opt/mod_qos-11.4/apache2# apxs2 -c -i -a mod_qos.c chroot:/opt/mod_qos-11.4/apache2# /etc/init.d/apache2 restart chroot:/opt/mod_qos-11.4/apache2# apachectl -t -D DUMP_MODULES chroot:/opt/mod_qos-11.4/apache2# vi /etc/apache2/mods-available/qos.load chroot:/opt/mod_qos-11.4/apache2# ls /usr/lib/apache2/modules/mod_qos.so chroot:/opt/mod_qos-11.4/apache2# vi /etc/apache2/mods-available/qos.conf
## Configuração de QoS # manipula conexões de no maximo 100000 IPs diferentes QS_ClientEntries 100000 # permitirá apenas 50 conexões por IP QS_SrvMaxConnPerIP 50 # número máximo de conexões TCP ativas está limitado em 256 MaxClients 256 # desabilita o keep-alive quando 70% das conexões TCP estiverem ocupadas 31
QS_SrvMaxConnClose 180 #
velocidade
mínima
de
requisição/respa (bloqueia
clientes
lentos
que
ocupam servidor, ie., como o slowloris que mantém conexões abertas sem requisitar dad) QS_SrvMinDataRate 150 1200 # e limita requisição de header e body (cuidado, pois isso também limita requisiçõ upload e post) # LimitRequestFields 30 # QS_LimitRequestBody 102400
chroot:/opt/mod_qos-11.4/apache2# a2enmod qos chroot:/opt/mod_qos-11.4/apache2# /etc/init.d/apache2 restart chroot:/opt/mod_qos-11.4/apache2# apachectl -M
Com essa configuração, ficaremos protegidos contra ataques de negação de serviço que baseiam sua ação em sobrecarregar o servidor, ocupando todos os seus slots de conexão e não permitindo conexões válidas de clientes reais à aplicação web. Um exemplo de ferramenta que executa esse tipo de ataque é o Slowloris. A explicação de cada uma das opções de configuração, encontra-se acima.
11.Mod Limitipconn Limitar que usuários abusem da banda de nosso servidor realizando grandes quantidades de downloads é interessante, para evitar indisponibilidade ou gasto desnecessário de banda limitada. Isso atualmente é fácil de fazer no Apache, utilizando o mod_limitipconn, onde podemos, por exemplo, limitar à 20 threads de download simultâneos. Para utilizar esse módulo, precisamos ter o pacote apache2-prefork-dev instalado, mas como já fizemos isso ao instalar o mod_security e os demais módulos anteriormente, não precisamos nos preocupar com isso.
Vamos para a instalação: chroot:/var/log/apache2# cd /opt/ chroot:/opt# tar -xjvf mod_limitipconn-0.24.tar.bz2 chroot:/opt# cd mod_limitipconn-0.24 chroot:/opt/mod_limitipconn-0.24# apxs2 -c -i -a mod_limitipconn.c chroot:/opt/mod_limitipconn-0.24# vi /etc/apache2/mods-available/limitipconn.load 32
ExtendedStatus On LoadModule limitipconn_module /usr/lib/apache2/modules/mod_limitipconn.so
chroot:/opt/mod_limitipconn-0.24# vi /etc/apache2/modsavailable/limitipconn.conf
MaxConnPerIP 10 NoIPLimit image/*
chroot:/opt/mod_limitipconn-0.24# /etc/init.d/apache2 restart chroot:/opt/mod_limitipconn-0.24# apachectl –M
12.OSSEC OSSEC é um sistema de código aberto baseado em Host Intrusion Detection que realiza análise de log, checagem de integridade de arquivos, monitoramento de políticas, detecção de rootkit, alertas em tempo real e resposta ativa. Ele roda na maioria dos sistemas operacionais, incluindo Linux, MacOS, Solaris, HP-UX, AIX e Windows. Ele tem muitas funcionalidades, têm a capacidade de trabalhar localmente, ou em uma rede como cliente e servidor. Uma das grandes vantagens dos OSSEC é trabalhar com activeresponse, ou seja, para determinados tipos de ataques ele pode tomar algumas medidas como bloquear o IP que está atacando por um determinado tempo e mandar um e-mail alertando sobre o ocorrido.
Vamos a instalação: chroot:/opt/mod_limitipconn-0.24# cd /opt chroot:/opt# tar -zxvf ossec-hids-2.8.tar.gz chroot:/opt# cd ossec-hids-2.8 chroot:/opt/ossec-hids-2.8# ./install.sh
** Para instalação em português, escolha [br]. ** ?????????, ??? [cn]. 33
** Fur eine deutsche Installation wohlen Sie [de]. ** G?a e??at?stas? sta ????????, ep????te [el]. ** For installation in English, choose [en]. ** Para instalar en Español , eliga [es]. ** Pour une installation en français, choisissez [fr] ** A Magyar nyelvu telepítéshez válassza [hu]. ** Per l'installazione in Italiano, scegli [it]. ** ?????????????.???????.[jp]. ** Voor installatie in het Nederlands, kies [nl]. ** Aby instalowac w jezyku Polskim, wybierz [pl]. ** ??? ?????????? ?? ????????? ?? ??????? ,??????? [ru]. ** Za instalaciju na srpskom, izaberi [sr]. ** Türkçe kurulum için seçin [tr]. (en/br/cn/de/el/es/fr/hu/it/jp/nl/pl/ru/sr/tr) [en]: br
Em seguida, é só seguir com a instalação, pois é auto intuitiva, bem simples. Vamos agora para a instalação da Interface
chroot:/opt/ossec-hids-2.8# /var/ossec/bin/ossec-control start chroot:/opt/ossec-hids-2.8# cd .. chroot:/opt# tar -zxvf ossec-wui-0.8.tar.gz -C /var/www/ chroot:/opt# cd /var/www/ chroot:/var/www# mv ossec-wui-0.8 ossec chroot:/var/www# cd ossec/ chroot:/var/www/ossec# ./setup.sh
Setting up ossec ui...
Username: admin New password: Re-type new password: Adding password for user admin Enter your web server user name (e.g. apache, www, nobody, www-data, ...) www-data Enter your OSSEC install directory path (e.g. /var/ossec)
You must restart your web server after this setup is done.
Setup completed successfuly.
chroot:/var/www# usermod -a -G ossec www-data chroot:/var/www# /etc/init.d/apache2 restart 34