+ All Categories
Home > Documents > 10 Steps to Harden Windows Server 2008

10 Steps to Harden Windows Server 2008

Date post: 03-Feb-2016
Category:
Upload: glauber-lopes-khan
View: 3 times
Download: 0 times
Share this document with a friend
Description:
passo a passo
Popular Tags:
42
10 steps to harden Windows Server 2008 Ever since it’s debut, Microsoft Windows 2008 Server has awed security and systems administrators with its complex and innovative features. With threats becoming each day more immanent and efficient, security system administrators face the tedious task of protecting Microsoft’s new giant. In this article we compiled some of the industries best practices such as NIST to show you some of the features and ways to reduce your windows 2008 servers’ exposure. 1.Configure a security policy The first step in securing the 2008 server is to configure a security policy. In order to configure a security policy, you will need to use the SCW (Security Configuration Wizard), which can be installed through “add and remove windows components”. The SCW detects ports and services, and configures registry and audit settings according to the servers “role” or installed applications. The SCW uses a set of XML templates which can easily be deployed and managed. The version of SCW in Windows Server2008 includes over 200server role configurations and security settings than the version of SCW in Windows Server2003. Also, by using the version of SCW in Windows Server2008, you can: * Disable unneeded services based on the server role. * Remove unused firewall rules and constrain existing firewall rules. * Define restricted audit policies.
Transcript
Page 1: 10 Steps to Harden Windows Server 2008

10 steps to harden Windows Server 2008

Ever since it’s debut, Microsoft Windows 2008 Server has awed security and systems administrators with its complex and innovative features.With threats becoming each day more immanent and efficient, security system administrators face the tedious task of protecting Microsoft’s new giant. In this article we compiled some of the industries best practices such as NIST to show you some of the features and ways to reduce your windows 2008 servers’ exposure.

1.Configure a security policy

The first step in securing the 2008 server is to configure a security policy. In orderto configure a security policy, you will need to use the SCW (Security Configuration Wizard), which can be installed through “add and remove windows components”. The SCW detects ports and services, and configures registry and audit settings according to the servers “role” or installed applications. The SCW uses a set of XML templates which can easily be deployed and managed. The version of SCW in Windows Server2008 includes over 200server role configurations and security settings than the version of SCW in Windows Server2003. Also, by using the version of SCW in Windows Server2008, you can:

* Disable unneeded services based on the server role. * Remove unused firewall rules and constrain existing firewall rules. * Define restricted audit policies.

The server’s operating system will be changed according to the profile or

template selected.Administrators can create custom profiles and deploy them

using a set o XML files.

2.Disable or delete unnecessary accounts, ports and services

Page 2: 10 Steps to Harden Windows Server 2008

Attackers often gain access to servers through unused or not configured ports and

services. To limit entry points, server hardening includes blocking unused ports and

protocols as well as disabling services that are not required. Although this can be done

as seen above using the SCW, the server administrator would need to double check to

see if all the services are configured properly and that only the necessary ports are

open.During the installation of the 2008 server, by default, three local user accounts are

automatically created: the Administrator, Guest and Help Assistant. The Administrator

account bears high privileges, and requires special diligence. As a security best practice

the administrator account should be disabled or renamed to make it more difficult for an

attacker to gain access. Both Guest and Help Assistant accounts provide an easy target

for attackers which exploited this vulnerability before on the earlier Windows Server

2003. These accounts should be disabled at all times.

3. Uninstall Unnecessary Applications

Remember, your server is a vital part of your network and services that you provide. The number of applications installed on these servers should be role related and set to a minimum. It is a good idea to test these applications out in a separate environment before deploying them on the production network. Some applications make use of service backdoors, which can sometimes compromise the overall security of the server. After installing each application, make sure that you double check to see if the application created any firewall exception or created a service user account.

* BelarcAdvisor :The Belarc Advisor “builds a detailed profile of your installed software and hardware, missing Microsoft hot fixes, anti-virus status, and displays the results in your Web browser.” This tool is free for personal use. Commercial, government, and non-profitorganizations should look at their other products which include many more features for managing security on multiple computers.

* Microsoft SysInternal Tools :

Microsoft provides a set of tools which can be used to monitor

the server’s activity. These tools include: REGMON,

FILEMON, Process Explorer, Root Kit Revealer. These tools are

great for understanding what a certain application or software

does “under the sheets”.

4. Configure the windows 2008 Firewall

Page 3: 10 Steps to Harden Windows Server 2008

Windows 2008 server comes with a phenomenal built in firewall called the Windows Firewall with Advanced Security. As a security best practice, all servers should have its own host based firewall. This firewall needs to be double checked to see if there areno unnecessary rules or exceptions. I have outlined some of the new features thatthe Windows Server 2008 provides.

* GUI interface:

a MMC snap-in available for the Advanced Firewall configuration.

* Bi-directional filtering:

the firewall now filters outbound traffic as well as inbound traffic.

* IPSEC operability:

now the firewall rules and IPSEC encryption configurations are integrated

into one interface.

* Advanced Rules configuration:you can create firewall rules using Windows Active Directory objects, source amp; destination IP addresses and protocols.

Page 4: 10 Steps to Harden Windows Server 2008

5. Configure AuditingOne of the most significant changes on Windows Server 2008 auditing is that now you can not only audit who and what attribute was changed but also what the new and old value was. This is significant because you can now tell why it was changed and if something doesn’t look right you’re able to easily find what it should be restored to.

Another significant change is that in the past Server versions you were only able to turnauditing policy on or off for the entire Active Directory structure. In Windows Server2008 the auditing policy is more granular. As a security best practice, the following events should be logged and audited on theWindows Server 2008.

*Audit account logon events

*Audit account management

*Audit directory service access

*Audit logon events

*Audit object access

*Audit policy change

*Audit privilege use

*Audit process tracking

*Audit system events

Page 5: 10 Steps to Harden Windows Server 2008

Most log events on the event viewer have registered incident ID numbers; these numbers can be used to troubleshoot the server. http://www.eventid.net/ isa good site which aids security and system administrators in finding out what actuallyhappened with their servers. A best practice would also be to forward these auditlogs to a centralized server as required by PCI DSS 10.5.3 and other industry standards. Windows Server 2008 offers a native log subscription feature which forwards all system and security audit logs to a centralized server.

6. Disable unnecessary shares

Unnecessary shares pose a great threat to vital servers. After a server or

application deployment, system and security administrators should check to see if the

server has any unnecessary shares. This can be done using the following

command: · NetShare

This will display a list of all shares on the server. If there is a need to use a share,system and security administrators should configure the share as a hidden share andharden all NTFS and Share permissions.

C:\Documents

and Settingsgt;net share

Share

name Resource Remark

——————————————————————————-

ADMIN$ C:\WINDOWS Remote

Admin

C$ C:\ Default

share

IPC$ Remote

IPC

In order to create a hidden share, put a $ signafter the share name. The share will still be accessible; however it will not be easilylisted through the network. Example: · Accounting$

7. Configure Encryption on 2008 server

Page 6: 10 Steps to Harden Windows Server 2008

According to industry best practices, such as HIPAA and GLBA require

that certain servers which host sensitive information should make use of encryption.

Windows Server 2008 provides a built in whole disk encryption feature called

BitLocker Drive Encryption (BitLocker). BitLocker protects the operating system and

data stored on the disk. In Windows Server 2008, BitLocker is an optional component

that must be installed before it can be used. To install BitLocker, select it in Server

Manager or type the following at a command prompt:

· ServerManagerCmd

-install BitLocker –restart

8. Updates amp; Hot fixes

Updates and hot fixes are key elements when hardening a server. System and

security administrators should be constantly updating and patching their servers against

zero day vulnerabilities.

These patches are not limited to the operating system, but also any application which

is hosted on them. Administrators should periodically check the vendor’s websites

Page 7: 10 Steps to Harden Windows Server 2008

for updates. Windows Server 2008 offers a set of tools which helps administrator update

and patch their servers.

·

* WSUS: Windows Server Update Services (WSUS) provides a software

update service for Microsoft Windows operating systems and other

Microsoft software. By using Windows Server Update Services,

administrators can manage the distribution of Microsoft hot fixes and

updates released through Automatic Updates to computers in a corporate

environment. WSUS helps administrators track the “update health” of

each individual server.

·

* MBSA: Microsoft Baseline Security Analyzer (MBSA) is an easy-to-

use tool designed for the IT professional that helps small- and medium-

sized businesses determine their security state in accordance with

Microsoft security recommendations and offers specific remediation

guidance. Improve your security management process by using MBSA to

detect common security misconfigurations and missing security updates

on your computer systems.

Page 8: 10 Steps to Harden Windows Server 2008

9. Anti Virus amp; NAP

Anti Virus software is also a crucial step for hardening a server. Windows

Server 2008 offers a set of tools which can help combat unauthorized network access

and malicious code execution.

Windows

Server 2008 offers a Network Access Protection (NAP), which helps administrators to

isolate viruses from spreading out into the network. Windows server 2008 NAP uses

a set of policies which cleans the affected machines and when they are healthy, permits

them access to parts of your production network.

NAP

consists of client server technology which scans and identifies machines that don’t

have the latest virus signatures, service packs or security patches.Some of

the key functions of a Windows Server 2008 NAP server includes:

* Validating Machines :

The mission of NAP is to preserve the integrity of the network by allowing

only healthy machines to have IP addresses.

* Restricting Network Access :

Computers or servers which don’t meet the established policy standards

can be restricted to a “quarantine” subnet where they would later be

remediate the security issues.

* Fixing Unhealthy Machines :

Windows Server 2008 NAP has the ability to direct hosts to a remediation

server, where the latest antivirus signatures and patches are deployed

through SMS packages.

Page 9: 10 Steps to Harden Windows Server 2008

10. Least Privilege

The concept of least privilege has been adopted by many of today’s industry

standards. A hardened server needs to have all its access reduced to a bare operational

minimum. Most of the known security breaches are often caused by elevated privileges

bared by accounts. Server services should not be configured using enterprise wide

administrator accounts. Windows Server 2008 has a couple of tools which can aid

administrator to grant or revoke access to specific sections of the server.

* Script Logic’s Cloak : Script Logic Cloak is a product which enhances the

Windows NT File System (NTFS) by providing increased security,

more accurate audits and a vastly streamlined experience for users of the

network.

* PolicyMaker Application Security: PolicyMaker is an add-on

for the Group Policy Management Console (GPMC). This tool allows

administrators to adjust application privilege levels to the lowest possible point

in order to limit damages stemming from network attacks or user error. The

ability to control security at such a granular level also helps organizations

comply with regulatory mandates such as the Sarbanes-Oxley, HIPAA and

Gramm-Leach-Bliley acts.

On the next Post I will go over each feature here described, creating a setp by stepguideline on how to configure and install the following features:

*SCW

Page 10: 10 Steps to Harden Windows Server 2008

*Bitlocker

*NAP

*Windows Firewall with Advanced Security

Introdução

Atualmente, todas as empresas dependem da tecnologia da informação para a maioria de suas operações.

A presença de tecnologia da informação demanda a necessidade de investimento em segurança da

informação. A maioria das empresas de pequeno e médio portes e às vezes grandes empresas não têm

consciência da questão da segurança da informação e frequentemente a ignoram.

O investimento em segurança é alto e intimidador para a diretoria, mas o impacto de não investir pode

atingir os ativos da empresa e gerar um ônus ainda maior. A segurança da informação deve ser encarada

como uma opção estratégica.

É difícil encontrar empresas que tenham a cultura da segurança. Onde falta a cultura é normal que os

administradores da rede sejam reativos quando um ataque ocorre, mas quando se fala em gerenciar algo é

esperado que se adote uma postura pró-ativa.

À partir da postura pró-ativa nasce uma visão gerencial que acarreta a criação de processos para antecipar

e mitigar as muitas vulnerabilidades às quais os sistemas em geral – e servidores Windows em particular

– estão sujeitos.

Esse artigo é o resultado do levantamento de informações presentes em vários sites especializados, blogs

e whitepapers disponíveis online. O objetivo principal é fazer com que o leitor entenda o que é uma

vulnerabilidade e saiba da importância de se fazer sua gestão. O grande benefício do que será exposto é a

listagem de algumas das melhores práticas para se blindar um servidor Windows e como fazer isso de

forma automatizada.

Embora a pesquisa seja focada no Windows 2008, a maioria das recomendações aqui presentes também

se aplica ao Windows 2003.

Gestão de Vulnerabilidade

Todos os envolvidos na gestão de vulnerabilidades devem estar familiarizados com o significado do

termo vulnerabilidade para entenderem o que é necessário para lidar com ela. De acordo com Technet

(2014c), “uma vulnerabilidade de segurança é um ponto fraco em um produto que pode permitir a um

Page 11: 10 Steps to Harden Windows Server 2008

atacante comprometer a integridade, a disponibilidade ou a confidencialidade de um produto”. Outras

definições importantes relacionadas à segurança são (INFOSEC, 2014):

Risco: Probabilidade de ocorrência de um incidente motivada pela exploração de vulnerabilidades.

Ameaça: Um evento ou ação que poderia prejudicar a segurança. Ataque: Qualquer ação que tenta violar a segurança de um sistema. Exploração: Uma sequência de comandos cujo objetivo é explorar uma falha ou

vulnerabilidade em um sistema. Integridade: Confiabilidade de um recurso. Um atacante pode explorar um

ponto fraco em um produto para modificá-lo sem autorização. Disponibilidade: Possibilidade de acesso a um produto. Um atacante pode

explorar um ponto fraco em um produto impedindo usuários de acessá-lo. Confiabilidade: Limitação de acesso à informação em um recurso para pessoas

não autorizadas. Um atacante pode explorar um ponto fraco em um produto para acessar informações privadas.

Às vezes, scanning ou varredura de vulnerabilidade é confundido com gerenciamento de

vulnerabilidades, porém, o scanning é apenas um sub processo que consiste em utilizar ferramentas para

procurar configurações inseguras e portas de comunicação abertas, por exemplo. Gerenciar

vulnerabilidades abrange o scanning em um processo contínuo de identificação, classificação, contenção

e mitigação das vulnerabilidades.

De acordo com SEARCHSECURITY.IN (2014), o gerenciamento de vulnerabilidades possui processos

para:

Checagem de vulnerabilidades: Varredura da rede, log de firewall, teste de penetração ou um scanning de vulnerabilidade.

Identificação de vulnerabilidades: Analisar varreduras de rede e resultados de teste de penetração, logs de firewall ou resultados de scanning de vulnerabilidades para encontrar anomalias que sugiram um ataque de malware ou outro evento malicioso que explora ou pode explorar vulnerabilidade.

Verificação de vulnerabilidades: Averiguar se as vulnerabilidades encontradas poderiam realmente ser exploradas em servidores, aplicações, redes ou outros sistemas. Também inclui classificar a severidade de uma vulnerabilidade e o nível de risco que ela representa para a organização.

Mitigação de vulnerabilidades: Descoberta de como prevenir que vulnerabilidades sejam exploradas antes que uma correção esteja disponível ou em caso de não ter uma correção. Isso pode ser feito desligando a parte do sistema afetada (desde que não seja crítica) ou criar algum contorno.

Correção de vulnerabilidades: Obter correções – normalmente de fornecedores do software afetado – e aplicá-las. Isto é feito às vezes em um processo automatizado por ferramentas de gerenciamento de atualizações.

Muitas empresas acham que o fato de se ter uma pessoa, uma equipe ou mesmo um departamento

responsável pela infraestrutura em geral e pela manutenção de servidores em particular é o suficiente.

Esses profissionais, em seus cotidianos, lidam com incidentes, mas não os antecipam. Reatividade a uma

situação não é gerenciamento. Gerenciar uma vulnerabilidade necessariamente é um processo pró-ativo;

um processo de antecipação e acompanhamento. É necessário agir para mapear ameaças e se antecipar

Page 12: 10 Steps to Harden Windows Server 2008

aos problemas e ter um processo para acompanhá-las. É recomendável atenção aos boletins de segurança

mensais disponibilizados pela Microsoft (SEGURANÇA, 2014b) para planejar as ações.

Sem um processo de gerenciamento de vulnerabilidades, a organização não percebe os riscos

relacionados à segurança (PALMERS, 2014). Com um processo bem definido, uma organização pode ter

a visão contínua do risco associado com a presença de vulnerabilidades em seus sistemas. Isso permite

mais informação para a tomada de decisões com relação a ações de remediação.

Além da possibilidade da identificação e da remediação, a grande contribuição do gerenciamento de

vulnerabilidade é o mapeamento antecipado das ameaças existentes e das configurações que as

potencializam. Dessa formar, um administrador tem mais subsídios para priorizar e começar o processo

de mitigação de vulnerabilidades.

Para convencer a diretoria da organização da importância do gerenciamento de vulnerabilidades, basta

apresentar os ganhos financeiros. Um processo de gerenciamento de vulnerabilidades bem organizado

pode reduzir o tempo de parada nos ativos da organização. Sendo assim, mais recursos estarão

disponíveis para outras atividades. A mitigação de vulnerabilidades acarreta maior proteção às

informações confidencias da organização, de seus clientes e de seus parceiros.

Hardening Para Mitigação de Vulnerabilidades

Hardening (blindagem, em português) é a redução da área de ataque por meio da inativação de

funcionalidades que não são requeridas, mas mantendo ativas o mínimo de funcionalidades que são

requeridas. Em outras palavras, é o processo de configurar um sistema para eliminar tantas

vulnerabilidades quanto possível. Esse processo deve ser conduzido em cada servidor considerando que

as características dos servidores mudam dramaticamente dependendo das suas aplicações (impressão,

domain controller, etc) e localização na rede (interna, acessível pela Internet, etc) (INFOSEC, 2014).

O princípio por trás da blindagem é assumir que vulnerabilidades desconhecidas existem e bloquear os

pontos potenciais de entrada. Essa ação não elimina a necessidade de mitigar vulnerabilidades; sua meta é

reduzir as ameaças potenciais e contê-las o máximo possível (GUIA, 2014).

Deve-se encontrar o equilíbrio correto entre a blindagem do sistema contra potenciais ameaças e a

manutenção da usabilidade. Para minimizar os riscos inerentes às ameaças, deve-se remover todos os

softwares desnecessários, contas de usuário não utilizadas e desabilitar serviços desnecessários. Uma

aplicação desnecessária pode conter uma vulnerabilidade que pode ser encontrada pela pessoa errada.

É importante entender que mesmo que um servidor não armazene dados importantes, ainda assim é

essencial que ele seja seguro. Se, por exemplo, um servidor aparentemente sem importância não tem

políticas de segurança sólidas configuradas, ele pode ser utilizado como o pivô de um ataque que tenha o

objetivo de fazer o reconhecimento e a coleta de informações para orquestrar ataques mais eficazes para

procurar e roubar dados confidenciais da organização.

Não há uma solução geral de blindagem que se adapte a todas as necessidades

(SEARCHWINDOWSSERVER, 2014b). Deve-se determinar onde os riscos estão e utilizar os recursos

disponíveis para criar a solução que melhor se adapte à necessidade da organização. Por exemplo, log de

auditoria pode ser importantíssimo para uma empresa, mas apenas desejável para outra.

Page 13: 10 Steps to Harden Windows Server 2008

Embora o conceito de blindagem não seja exclusivo de sistemas Windows, historicamente ele é o mais

vulnerável de todos, pois é o que acumula mais funções, o que acarreta mais trabalho para o

administrador. Para cada família de sistemas operacionais há uma boa prática recomendada para

blindagem contra ataques (GUIA, 2014).

De acordo com Tevora (2014), algumas das melhores práticas para diminuir a exposição de servidores

Windows 2008 são.

Configurar a política de segurança: Para configurar a política de segurança, é necessário utilizar o SCW (Security Configuration Wizard). Ele permite desabilitar serviços baseado nas regras do servidor, remover regras de firewall não utilizadas, restringir regras de firewall existentes e definir políticas de auditoria restritas.

Desabilitar ou deletar contas desnecessárias, portas e serviços: Para limitar os pontos de entrada e inibir ataques, devem-se bloquear portas e protocolos não utilizados e desabilitar serviços não necessários. As contas de administrador, guest e assistente de ajuda devem estar sempre desabilitadas.

Desinstalar aplicações não necessárias: Como o servidor é uma parte vital da rede e serviços fornecidos, as aplicações presentes no servidores devem se restringir ao mínimo necessário. Caso uma aplicação não seja necessária, ela deve ser desinstalada, pois mais softwares representam mais trabalho para o administrador no esforço de blindagem.

Configurar o firewall do Windows: Uma boa prática de segurança é que todos os servidores devem ter seu próprio firewall.

Configurar auditoria: Além de auditar quem fez a alteração e que atributo foi alterado, é possível comparar o valor anterior e o valor alterado. Essa comparação não era possível no Windows 2003, pois ele armazenava apenas o estado final do atributo.

Desabilitar compartilhamentos desnecessários: Os administradores devem configurar todos os compartilhamentos como hidden e fazer a blindagem de todas as permissões NTFS.

Configurar a encriptação: Os administradores podem utilizar o BitLocker, que é um encriptador de dados armazenados em disco.

Atualizações e hot fixes: Administradores devem estar constantemente atualizando e aplicando patches de segurança em seus servidores para evitar vulnerabilidades de zero-day. O WSUS (Windows Server Update Services) gerencia as atualizações automáticas. O MBSA (Microsoft Baseline Security Analyzer) auxilia na determinação do estado de segurança de acordo com as recomendações da Microsoft. Ele ajuda a detectar configurações incorretas e atualizações de segurança que estejam faltando.

Antivírus e NAP: Os antivírus são essenciais para combater a execução de código malicioso. O NAP (Network Access Protection) ajuda os administradores a impedir a propagação de vírus na rede.

Minimizar privilégios: Um servidor deve ter acesso reduzido ao mínimo de operações necessárias. A maioria das brechas de segurança são frequentemente causadas por privilégios elevados dados às contas. Serviços de servidor não devem ser configurados utilizando contas de administrador.

Blindar um computador envolve vários passos para formar camadas de proteção criando uma defesa em

profundidade (SCARFONE, 2014). As organizações precisam entender que um simples mecanismo de

Page 14: 10 Steps to Harden Windows Server 2008

segurança em geral não é insuficiente. São necessárias camadas de mecanismos (defesas) para tornar a

segurança mais eficaz.

HardeningBlindando um Sistema GNU/Linux

De que se trata o artigo  Este artigo tem como objetivo demonstrar de forma prática algumas técnicas de blindagem de sistema também conhecidas como Hardening. Esta técnica consiste na implementação de diretivas de segurança que devem ser seguidas antes, durante e após a instalação e configuração de servidores GNU/Linux. 

Para que serve  A técnica de Hardening pode ser utilizada em qualquer sistema operacional. Com o grande aumento no número de ameaças existentes na Internet é fundamental que o sistema de um servidor esteja preparado para superar todas as tentativas de invasão. Esta técnica não deve ser implementada somente em servidores que ficam conectados diretamente a Internet, muitas vezes fornecendo serviços como, por exemplo servidores web, mas também em máquinas que provêm serviços internos de rede como servidores de arquivos e de impressão. Com a blindagem de sistemas é possível aumentar o desempenho do hardware, liberando recursos que estão sendo utilizados por aplicativos desnecessários, implementando configurações específicas em alguns serviços, além de gerar um ambiente mais seguro. 

Em que situação o tema é útil  Hardening pode ser utilizado para evitar que usuários mal intencionados aproveitem da ausência do administrador e implantem scripts maliciosos em servidores infectando toda a rede, bloquear que o usuário administrador faça login diretamente no terminal, efetuar logout por tempo de inatividade, remover pacotes que não são utilizados, remover permissões especiais de binários executáveis, dentre outras técnicas que serão apresentadas posteriormente. redes, e consultor atuando principalmente nas áreas de redes de computadores e segurança, com enfoque em Linux.

  Devido ao crescente número de ameaças existentes na Internet e dentro dos ambientes corporativos, se faz necessária a utilização de técnicas capazes de proporcionar maior segurança, estabilidade e tranquilidade para os administradores de redes. Pensando nisso, este artigo tem como objetivo apresentar o conceito e técnicas disponíveis para a implementação de hardening em servidores GNU/Linux.  Hardening, ou blindagem de sistemas, consiste na utilização de técnicas para prover mais segurança a servidores que disponibilizam serviços externos, como servidores Web, ou até mesmo serviços internos, como servidores de banco de dados, de arquivos,

Page 15: 10 Steps to Harden Windows Server 2008

entre outros.  Neste artigo são analisadas e discutidas técnicas para a aplicação de hardening desde a instalação do sistema operacional, o processo de particionamento de discos, análise de serviços desnecessários e inseguros, localização de senhas fracas, verificação de usuários inválidos, desconexão de usuários não autorizados, implementação de políticas de utilização de serviços de rede, gerenciamento de privilégios e aplicação de segurança no terminal.  Para a realização da parte prática do artigo, foram utilizados três computadores com as seguintes configurações: Cliente 1: Ubuntu 9.10; Cliente 2: Ubuntu 9.10; Servidor : Debian Lenny.  Para o servidor, o sistema operacional escolhido foi o GNU/Debian Lenny, por ser um Linux reconhecidamente pela comunidade como estável e robusto, voltado para servidores. As técnicas aqui demonstradas foram implementadas no servidor e as máquinas clientes foram utilizadas apenas para a realização de acessos e monitoramento, conforme a Figura 1. NotaO administrador deverá ter atenção ao implementar as técnicas. Caso não tenha experiência nos exemplos aqui demonstrados, faça os testes em máquinas virtuais a fim de entender e evitar possíveis falhas na implementação.

Hardening  O hardening consiste na realização de alguns ajustes finos para o fortalecimento da segurança de um sistema. Muitos administradores sem experiência em segurança preparam seus servidores com uma instalação básica e depois que suas aplicações estão disponíveis nenhum procedimento é feito para manter a integridade do sistema.  Em um sistema GNU/Linux é possível atingir um alto nível de segurança implementando configurações que permitam o aperfeiçoamento da segurança aplicada ao sistema. Quando se deseja aplicar a técnica de hardening há três grandezas que devem ser consideradas: segurança, risco e flexibilidade.  O administrador de redes deve analisar muito bem essas grandezas e encontrar um estado de harmonia entre elas, levando o sistema a uma alta produtividade e segurança, pois quanto maior a segurança menor o risco e também a flexibilidade.É importante ressaltar que as técnicas aqui apresentadas podem não ser adequadas para todas as situações.   Por isso, antes de implantar efetivamente as técnicas de hardening, é fundamental que haja um estudo completo do cenário e serviços em questão. Inicialmente recomenda-se sempre instalar versões atuais dos sistemas operacionais, que contenham correções e patches de segurança, pois pode ser problemático utilizar uma versão antiga sem atualizações, deixando o sistema temporariamente vulnerável no caso da existência de pacotes com falhas. 

   [abrir imagem em janela]

Page 16: 10 Steps to Harden Windows Server 2008

Figura 1. Estrutura utilizada para o artigo.

Serviços críticos como web, email e DNS devem estar sempre nas versões mais atuais. Softwares desnecessários devem ser desinstalados e pacotes inseguros devem ser substituídos por alternativas mais confiáveis.  A seguir são apresentadas algumas utilizações de hardening muito úteis na configuração de sistemas operacionais. Particionamento de discos  O particionamento de discos é um ponto importante quando se pensa em segurança. Ao particionar o disco, é inserida no sistema uma maior segurança, pois cada partição tem sua tabela de alocação de arquivos separada. Um exemplo de como pode ser configurada a tabela de partições é apresentado na Tabela 1.

Nota Devman 1: nosuid é o parâmetro usado para inibir a execução de binários com permissão de suid bit; noexec é o parâmetro usado para inibir a execução de um binário na partição; e noatime é o parâmetro responsável por eliminar a necessidade de escrita no disco para arquivos que precisam ser somente lidos.

O comando mount (comando UNIX usado para montar partições) permite utilizar algumas opções para aumentar a segurança nas partições. Crackers podem aproveitar do diretório /tmp, onde por padrão, qualquer usuário pode gravar dados no sistema, para introduzir um backdoor ou qualquer outro programa malicioso para ter um acesso completo ao sistema.

Page 17: 10 Steps to Harden Windows Server 2008

Nota Devman 2: Backdoor: são programas que instalam um ambiente de serviço em um computador, tornando-o acessível à distância, permitindo o controle remoto da máquina sem que o usuário saiba, como uma porta dos fundos não autorizada.

Serviços desnecessários e insegurosDepois do sistema instalado, deve ser realizada uma verificação minuciosa de todos os programas instalados e se são realmente necessários, mesmo sendo uma instalação básica.  Um servidor nunca deve conter programas “clientes”. Serviços como telnet, rshd, rlogind, rwhod, ftpd, sendmail, identd, wget, dentre outros, deverão ser removidos. Estes serviços podem ser desinstalados usando o gerenciador de pacotes do sistema operacional, ou desativando-os em todos os níveis de inicialização.  Além disso, podem-se remover entradas específicas dos programas no boot do sistema operacional.  Neste exemplo são apresentados os passos necessários para a remoção de pacotes que não são utilizados no sistema. A remoção de pacotes obsoletos deverá ser executada, evitando assim que vulnerabilidades sejam exploradas. Para seguir o exemplo, crie um diretório em /root chamado auditoria, onde será gerado um arquivo com todos os pacotes que estão instalados, podendo assim analisar quais serão removidos.   O comando dpkg -l, utilizado em distribuições GNU/Linux Debian e derivados, faz uma pesquisa no sistema e lista todos os pacotes instalados. Um filtro com o comando awk é utilizado para formatar a saída do comando, mostrando assim somente a segunda e terceira colunas, e o comando sed, nesse exemplo, retira as cinco primeiras linhas. Esse resultado é gravado em um arquivo texto chamado pacotes.txt, como pode ser visto na Listagem 1.

   [abrir imagem em janela]

Tabela 1. Opções da tabela de partições.

 Em distribuições Red Hat e derivados utiliza-se o comando rpm -qa, fazendo assim uma pesquisa em todos os pacotes instalados, como pode ser visto na Listagem 2.

Page 18: 10 Steps to Harden Windows Server 2008

  A análise desse arquivo pode ser um pouco demorada, ainda mais se o administrador estiver analisando a saída gerada por um servidor Red Hat, uma vez que essa distribuição traz um número maior de pacotes instalados que um GNU/LINUX Debian. Um pacote interessante para remover é o wget. Com esse comando, um cracker pode fazer com que o servidor alvo execute downloads de arquivos, através de um servidor Web forjado, por exemplo. Assim, o cracker pode jogar qualquer script que possa danificar o sistema ou até mesmo abrir uma porta para novas invasões.   O comando aptitude remove o aplicativo wget, e a opção purge faz com que os arquivos de configuração do aplicativo sejam removidos, caso existam, não deixando vestígios de sua instalação, como pode ser visto na Listagem 3.Listagem 1. Listando pacotes instalados no Debian.

# dpkg -l | awk '{print $2,$3}' | sed '1,5d' >/root/auditoria/pacotes.txt

Listagem 2. Listando pacotes instalados no Red Hat.

#rpm -qa > /root/auditoria/pacotes.txt

Listagem 3. Removendo aplicativos.

# aptitude purge wget

 Outro exemplo é o pacote wireless-tools. Caso o servidor em questão não tenha nenhuma placa de rede sem fio, não há necessidade de tal aplicativo.Procura de senhas fracas  A senha deve ser única, intransferível e de propriedade de um único usuário. O administrador não deve saber essas senhas. Um procedimento muito comum para isso consiste na alteração da senha no momento do primeiro login do usuário. Dessa forma o administrador não terá acesso à senha escolhida pelo usuário. Mas, na maioria das vezes, as senhas escolhidas são fáceis de serem descobertas, pois são usadas sequências simples, como 123456, ou informações pessoais como datas de aniversário, nome próprio, entre outras.   Nestes casos, é possível utilizar ferramentas capazes de avaliar se a senha do usuário é fraca ou não. O utilitário John the Ripper pode ser utilizado com a finalidade de encontrar senhas fracas escolhidas por usuários de um sistema.   Encontrando senhas fracas, o administrador poderá solicitar que o usuário efetue a substituição da senha por outra que atenda a política de segurança, tornando assim o sistema mais robusto e tolerante à exploração de vulnerabilidades.  Se uma auditoria está sendo executada em um servidor GNU/Linux de uma empresa, será necessário descobrir se os usuários estão usando senhas fracas. No que diz respeito às senhas, a norma ISO 27002 diz nos itens 11.2.3 e 11.3.1 que devem ser controladas por meio de um processo de gerenciamento formal e que os usuários sejam solicitados a seguir boas práticas de segurança da informação na seleção e uso de senhas.  No exemplo, o aplicativo John the Ripper é utilizado para teste de senhas fracas. Ele é uma ferramenta de Brute Force (força bruta, que testa combinações de senha para encontrar a resposta), que pode ajudar a descobrir senhas fracas de usuários, checando diretamente o arquivo /etc/shadow dos servidores. O aplicativo pode ser instalado com o aptitude, como pode ser visto na Listagem 4.Listagem 4. Instalando o John the Ripper.

#aptitude install john

   [abrir imagem em janela]

Page 19: 10 Steps to Harden Windows Server 2008

Figura 2. Execução do John the Ripper procurando por senhas fracas.

O John the Ripper é executado passando como parâmetro o arquivo /etc/shadow. O comando time foi acrescentado para que possa contar o tempo que o aplicativo levou para descobrir a senha dos usuários e também do root, conforme mostra a Figura 2.  Regras para definir senhas fortes devem ser levadas em consideração como, por exemplo, estipular um número mínimo de caracteres (por exemplo, 10 caracteres), utilizar letras minúsculas, maiúsculas, números e caracteres especiais. Faça com que as senhas sejam alteradas em intervalos de tempo curtos, que podem ser definidos pelo administrador. Um valor que pode ser adotado é a cada 20 dias, por exemplo. Defina a quantidade de senhas já utilizadas que não poderão ser reaproveitadas. Deve-se também educar os usuários para que não divulguem suas senhas para terceiros.

   [abrir imagem em janela]

Figura 3. Alterando as senha dos usuários.

 Tomando essas providências simples, pode-se impedir que algum atacante consiga quebrar a senha utilizando força bruta. Mesmo que a senha seja quebrada em algum momento, com a troca de senhas periódica, esta poderá já não ser mais válida.  O PAM (Pluggable Authentication Module) é um conjunto de bibliotecas compartilhadas que permitem ao administrador do sistema local definir como determinadas aplicações autenticam os usuários, sem a necessidade de modificar e recompilar programas. O PAM é um recurso que auxilia muito quando se pensa em segurança. Existem vários módulos que podem ser implementados, aumentando assim o controle de criação e troca de senhas. A Figura 3 mostra que o usuário não conseguiu mudar a senha na primeira tentativa, recebendo a mensagem “Escolha uma senha mais longa”. Isso ocorre devido a uma alteração no módulo do PAM. A opção min=10 foi adicionada, limitando assim um tamanho mínimo para a senha escolhida, como pode ser visto na Listagem 5.Listagem 5. Limitando o tamanho mínimo de uma senha.

Page 20: 10 Steps to Harden Windows Server 2008

password required pam_unix.so 

nullok obscure min=10 md5

Usuários Inválidos  Nos Sistemas GNU/Linux há três tipos de usuários, usuário root, que é o administrador do sistema, usuários comuns, os quais possuem uma senha para logar no sistema e acesso a um diretório home onde os mesmos poderão ter privacidade com seus arquivos pessoais e, por último, os usuários de sistema, responsáveis por controlar requisições de serviços. O shell é a interface entre usuário e sistema. Sem um shell válido, não é possível digitar comandos e interagir com o sistema. O usuário de sistema www-data, responsável por receber requisições do servidor Web, que esteja com um shell válido, poderá introduzir vulnerabilidades ao seu sistema.Desconexão de usuários não autorizados  Inicialmente é importante ter o conhecimento de que usuários não autorizados podem estar dentro ou fora da empresa.  O acesso não autorizado por sistemas externos deve ser cancelado com extrema urgência, em especial se o usuário estiver ocultando sua identidade. Para os casos de acesso por usuários internos não autorizados, podem ser necessárias ações disciplinares dependendo da natureza do acesso.

 É importante salientar que, quando ocorre uma invasão de sistema, é fundamental que as evidências relacionadas ao acesso indevido sejam registradas antes da desativação da conta não autorizada, tendo cuidado para não destruir provas relacionadas ao crime.Colocar senha criptografada no GRUB  Muitos administradores não estão preparados para lidar com estruturas críticas. O simples acesso físico de um usuário a sala de servidores pode representar uma violação de segurança grave, pois este poderá conseguir acesso de root se reiniciar o servidor e alterar a senha do root através do gerenciador de boot (grub). Esse processo poderá ser evitado se uma senha criptografada for adicionada ao gerenciador, não permitindo que um usuário qualquer inicie o sistema no modo de segurança, por exemplo.Política de utilização de serviços de Rede  TCP wrappers oferecem controle de acesso a vários serviços. A maioria dos serviços de rede modernos, como SSH, Telnet e FTP, utilizam os TCP wrappers que ficam monitorando a entrada de um pedido e o serviço requisitado.  O uso do TCP wrappers é uma boa prática na implementação de segurança em redes, limitando o uso dos serviços de rede. Liberar acesso somente a IPs desejados, configurar as restrições do ssh não permitindo login como root e configurar os módulos do pam para restringir acesso ao servidor em determinado horário, são boas práticas que devem ser adotadas. Gerenciamento de privilégios  O usuário root é o mais visado por crackers ou usuários mal intencionados. Seu foco é conseguir a senha root e obter acesso total ao sistema.  Para dificultar a ação destas ameaças, desativar o login como usuário root nos terminais modo texto torna-se fundamental. Dessa forma, o administrador deverá efetuar o login como usuário comum e quando for necessário executar uma tarefa administrativa tornar-se root com o comando su. Determinar a data de validade para a senha dos usuários e, com auxílio do comando usermod, remover shells válidos de usuários que não estão em uso também são ações importantes a serem tomadas para garantir a robustez do sistema.Segurança no Terminal

Page 21: 10 Steps to Harden Windows Server 2008

Quando é citado o assunto segurança, logo se imagina a exploração de uma vulnerabilidade por uma ameaça remota e, na maioria das vezes, as ameaças internas são esquecidas ou até mesmo subestimadas. Usuários internos mal intencionados podem causar grandes prejuízos e, se o usuário em questão tiver acesso físico aos servidores, a situação fica ainda mais grave.  Um usuário mal intencionado com acesso físico a sala de servidores pode usufruir de uma estação logada como usuário root e assim danificar o sistema. A variável TMOUT tem a função de executar um logout automático após determinado tempo de inatividade do terminal. Seu valor pode ser configurado no arquivo /etc/profile. O valor a ser adicionado deverá ser analisado com cuidado, evitando assim acessos indevidos. Valores muito altos podem dar espaço para que o usuário tenha acesso à estação logado como root, valores muito baixos podem interferir em tarefas onde é necessário uma pesquisa, por exemplo. O arquivo /etc/profile será editado e adicionado a variável com valor de 60 segundos, como pode ser visto na Listagem 6.  O arquivo /etc/profile só é lido durante o boot do sistema, dessa forma utiliza-se o comando source para que o arquivo possa ser lido novamente atribuindo ao sistema as alterações aplicadas, como pode ser visto na Listagem 7.Listagem 6. Inserindo valores no /etc/profile.

#vim /etc/profile

TMOUT=60

export PATH TMOUT

Listagem 7. Comando source.

#source /etc/profile

 Após 60 segundos de inatividade, o shell fará logout automático, conforme mostra a Figura 4.

   [abrir imagem em janela]

Figura 4. Terminal efetuando logout automático.

 Outro ponto importante a ser levado em consideração quando se pensa em controle de acesso em uma organização, é avaliar quem tem acesso aos servidores. Usuários mal intencionados podem simplesmente usar o CTRL+ALT+DEL para reiniciar o servidor, parando assim todos os serviços disponíveis em uma rede. Isso pode ocorrer em empresas que não têm uma política de acesso aos seus servidores. Segundo a norma ISO 27002, devem-se tratar as questões de acesso físico à sala de servidores. No entanto, independentemente desta norma, pode-se inibir a função CTRL+ALT+DEL editando o arquivo /etc/inittab, conforme a Listagem 8.SSH  O SSH (Secure Shell) é um programa usado para acessar remotamente outro computador usando uma rede, executar comandos em uma máquina remota e copiar arquivos de um computador para outro. Fornece autenticação forte e comunicação segura sobre canais inseguros (como a Internet, por exemplo). É muito usado para logar

Page 22: 10 Steps to Harden Windows Server 2008

em um sistema GNU/Linux através de uma máquina Windows, Mac ou mesmo outro GNU/Linux, na qual os tradicionais telnet e rlogin não podem fornecer criptografia da senha e da sessão. Detalhes importantes precisam ser levados em consideração quando um servidor ssh é configurado. Para isso, algumas configurações importantes devem ser feitas no arquivo de configuração, conforme apresenta a Listagem 9.  Após efetuar as alterações, o serviço ssh precisa ser reiniciado (ver Listagem 10).Listagem 8. Editando o arquivo /etc/ssh/inittab.#vim /etc/inittab

# Antes

# What to do when CTRL-ALT-DEL is pressed.

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Depois

# What to do when CTRL-ALT-DEL is pressed.

#ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

#ou

# Depois

# What to do when CTRL-ALT-DEL is pressed.

ca:12345:ctrlaltdel:/bin/echo “Opção desativada !”

Listagem 9. Editando o arquivo /etc/ssh/sshd_config.

#vim /etc/ssh/sshd_config

# Altere a porta padrão

Port 42129

# Protocolo 2 (anteriores possuem falhas de segurança)

Protocol 2

# Tempo ativado para digitar a senha

LoginGraceTime 45

# Não aceitar login como root

PermitRootLogin no

# Não aceitar login sem senha

PermitEmptyPasswords no

# Usar o modulo do pam para se autenticar

UsePAM yes

# Definir usuários que tem permissão de fazer login

AllowUsers “flavio marcos eduardo”

Portas Abertas   Quando o sistema novo é instalado, alguns aplicativos (serviços) podem abrir portas introduzindo assim vulnerabilidades no sistema. Com o aplicativo nmap, pode-se fazer uma busca por todas as portas abertas no sistema e, em seguida, podem ser criadas

Page 23: 10 Steps to Harden Windows Server 2008

regras no firewall para bloquear as que não devem estar disponíveis. Uma listagem de portas feita utilizando o aplicativo nmap pode ser visto na Listagem 11.Notanmap: Network Mapper, é um aplicativo livre e de código aberto, sobre licença GPL, utilizado para explorar uma rede afim de efetuar uma auditoria de segurança.

  Analisando o resultado do nmap pode-se observar que a porta 80 está aberta, normalmente usada por um servidor Web. Se esse serviço não for utilizado, a porta deverá ser fechada, evitando que vulnerabilidades sejam exploradas. Uma regra do firewall iptables poderá ser utilizada para bloquear tentativas de acesso a essa porta, como exibe a Listagem 12.  Após adicionar a regra no firewall, faça novamente a pesquisa com o nmap e analise o resultado. Listagem 10. Reiniciando o serviço ssh

$invoke-rc.d ssh restart

  Observe que a porta 80 está sendo filtrada, conforme a Listagem 13.SUID BIT  O SUID BIT é uma das permissões especiais disponíveis no GNU/Linux. Quando está atribuída a um binário, é possível que um usuário execute o mesmo com os privilégios de seu dono. Se o dono do binário for o usuário root, o usuário vai executar o binário como root.  Podemos encontrar problemas de segurança ao ter binários com essa permissão especial configurada. Segundo a norma ISO 27002, no item 11.6.1, o acesso à informação e às funções dos sistemas de aplicações por usuário e pessoal do suporte devem ser restritas, de acordo com o definido na política de controle de acesso. Esse ponto deve estar muito bem determinado e esclarecido para todos os funcionários da organização. Pois caso algo seja violado, existe um documento para comprovar que aquilo não é certo.  Através de um script é possível localizar e alterar essa permissão, como apresenta a Listagem 14.  Depois de criado o script, é necessário alterar suas permissões, deixando que apenas o usuário root possa executá-lo, e retirando qualquer permissão dos demais usuários e grupos.     Para essa função é usado o comando chmod (Listagem 15).  O primeiro passo é executar o script, e como parâmetro deverá ser utilizado “n” ou “N”. Nesse modo ele apenas irá gerar uma lista de binários que possuem a permissão de SUID-BIT no sistema, de acordo com a Listagem 16.  Observe no diretório /root/auditoria que o arquivo list.suid foi criado (Listagem 17).Listagem 11. Listagem de portas utilizando nmap.

#nmap -A -p 1-65535 localhost

PORT     STATE SERVICE VERSION

22/tcp   open  ssh     protocol 2.0

25/tcp   open  smtp    Postfix smtpd

53/tcp   open  domain  dnsmasq 2.47

80/tcp   open  http    httpd 2.2.11 

Page 24: 10 Steps to Harden Windows Server 2008

631/tcp  open  ipp     CUPS 1.3.9

3306/tcp open  mysql   MySQL 5.0.75-0

Listagem 12. Bloqueando a porta 80 com iptables.

#iptables -A INPUT -i eth0 -p tcp -dport 80 -j DROP

Listagem 13. Conferindo portas com nmap.

#nmap -A -p 80 localhost

PORT     STATE SERVICE VERSION

22/tcp   open  ssh     protocol 2.0

25/tcp   open  smtp    Postfix smtpd

53/tcp   open  domain  dnsmasq 2.47

80/tcp   filtered   http 

631/tcp  open  ipp     CUPS 1.3.9

3306/tcp open  mysql   MySQL 5.0.75-0

Listagem 14. Script sugerido para remoção de permissões SUID-BIT.

#vim /root/auditoria/localiza_suid.sh

#!/bin/bash

# Envia uma mensagem na saída padrão de vídeo 

echo "Verificando arquivos com permissão de SUID BIT.."

# faz uma busca em todo sistema por arquivos 

que contenham a permissão de SUID BIT e salva em um arquivo texto

find / -perm -4000 > /root/auditoria/list.suid

# Envia mensagem na tela orientando o que deve ser feito

echo -n "Deseja remover o SUID BIT dos arquivos?(S/N):"

# Recebe a opção escolhida 

read acao

# Executa a ação

case $acao in

  S|s)

    chmod -Rv -s /

    echo " Permissões de SUID BIT Removidas!"

    sleep 3

    exit

  ;;

  N|n)

    exit

  ;;

  *)

Page 25: 10 Steps to Harden Windows Server 2008

    echo "Opção Inválida!!"

    sleep 3

    exit 

  ;;

esac

Listagem 15. Alterando as permissões do script.

#chmod 700 /root/auditoria/localiza_suid.sh

Listagem 16. Executando o script com o parâmetro n ou N.

#./localiza_suid.sh n

Listagem 17. Listando o diretório auditoria.

# ls /root/auditoria/list.suid

 Como se trata de um sistema recém-instalado, o administrador não deve encontrar nenhum problema. Mas é necessária a atenção do mesmo, pois se estiver analisando um servidor de uma empresa, onde este se encontra em produção, devem-se remover as permissões suid.  Agora execute o script utilizando o parâmetro “s” ou “S”, removendo assim a permissão SUID BIT de todos os binários, como visto na Listagem 18. Deve-se observar quais binários serão necessários ficar com a permissão ativa.

  Considerando que o firewall está sendo desenvolvido, o comando su será necessário para que o usuário comum possa virar root e assim executar as políticas implementadas no firewall. Utilizando o comando chmod, atribui-se a permissão suid somente ao comando su, como visto na Listagem 19.  Outro binário que precisamos deixar com a permissão SUID BIT ativa é o passwd, para que os usuários consigam trocar suas próprias senhas. Com o comando chmod atribui-se a permissão SUID BIT ao binário /usr/bin/passwd, como visto na Listagem 20.  Com essa modificação, um dos problemas será resolvido. Mas apenas retirar a permissão SUID BIT dos comandos não evitará problemas no sistema de arquivos. Segundo a norma ISO 27002 nos itens 10.4 e 10.4.1, deve-se proteger a integridade do software e da informação e ter um controle contra códigos maliciosos.  Uma backdoor é um código malicioso. Um cracker pode instalar uma backdoor no sistema utilizando uma técnica como, por exemplo, o PHP Injection (inserção de script malicioso através de páginas vulneráveis), a colocando dentro do /tmp com permissões de SUID BIT e executá-la remotamente.  Para exemplificar um ataque ao diretório /tmp, é utilizado o comando adduser para adicionar um usuário flavio, como visto na Listagem 21. Seguindo o exemplo, será utilizado o comando cp para copiar todos os shells do sistema para a partição /tmp e, logo após, será atribuída a permissão de SUID BIT, como visto na Listagem 22.  A seguir é apresentada uma sequência de comandos, onde o usuário flavio está logado no terminal tty1, o que pode ser verificado com o comando w. Em seguida é realizado o acesso ao diretório /tmp, onde é possível executar o script sh de acordo com a Listagem 23.Listagem 18. Executando o script com o parâmetro (s ou S).

#./localiza_suid.sh s

Listagem 19. Adicionando permissão de SUID-BIT ao binário su.

Page 26: 10 Steps to Harden Windows Server 2008

# chmod +s /bin/su

Listagem 20. Adicionando permissão de SUID-BIT ao passwd.

# chmod +s /usr/bin/passwd

Listagem 21. Adicionando o usuário flavio.

#adduser flavio

Listagem 22. Teste com binários que tenham permissão SUID-BIT.

# cp /bin/*sh* /tmp

# chmod 4755 /tmp/*sh*

Listagem 23. Usuário comum com permissão de root.

$ w

22:31:21 up  3:46,  1 users,  load average: 0,07, 0,07, 0,08

USER     TTY      FROM          LOGIN@   IDLE   JCPU   PCPU WHAT

flavio   tty1   -             22:20    0.00s  0.26s  0.01s w

$ cd /tmp

$ ./sh

 Pode-se observar com o comando id que o usuário flavio ganhou acesso de root “euid=0(root)”. Sendo o usuário root o dono desse shell com a permissão de SUID BIT ativa, o usuário consegue executar o shell sh como root, conforme mostra a Figura 5.

   [abrir imagem em janela]

Figura 5. Usuário comum recebendo direitos de root.

  Para evitar esse tipo de problema, alguns parâmetros do comando mount podem ser utilizados. O parâmetro apresentado aqui é o nosuid, que inibe a execução de binários na partição indicada. Logado como usuário root, aplica-se essa opção à partição montada em /tmp, como visto na Listagem 24.  É importante lembrar que o diretório /tmp necessariamente deverá estar em uma partição separada. Isso segue as boas práticas de particionamento.  Após ter aplicado a correção ao diretório /tmp, faça novamente o login com o usuário flavio e tente executar a shell sh novamente. Observe que a diretiva “euid=0(root)” não mais é listada. Dessa forma o usuário já não tem mais permissões de root, conforme mostra a Figura 6.NOEXECUm script malicioso pode ser inserido em uma partição do sistema causando danos ao servidor. O comando mount tem um parâmetro chamado noexec, seu uso pode evitar que um script seja executado dentro dessa partição. Assim, para solucionar este problema, pode-se aplicar a opção noexec e remontar a partição.  Utilizando o comando mount com o parâmetro remount a partição /tmp será remontada com a opção de leitura e escrita e acrescentando o noexec, de acordo com a Listagem 25.Listagem 24. Remontando o diretório /tmp com a opção nosuid.

Page 27: 10 Steps to Harden Windows Server 2008

# mount -o remount,rw,nosuid /tmp

# mount

Listagem 25. Remontando o diretório /tmp com a opção noexec.

# mount -o remount,rw,noexec /tmp

  Para conferir se a alteração foi efetivada, utilizamos o comando mount novamente (ver Figura 7).  Após remontar a partição, foi realizada mais uma tentativa de executar o binário sh. No entanto, agora sua execução está impedida, independente do usuário logado. No exemplo foi executado como root, como mostra a Figura 8. Realizando a montagem das partições manualmente, os parâmetros não serão aplicados de forma fixa às partições, ou seja, ao reiniciar o sistema, essas configurações serão perdidas. Para que as configurações sejam mantidas mesmo após um restart, basta editar o arquivo /etc/fstab (responsável por armazenar a tabela de partições do GNU/LINUX, que é lido durante o boot do sistema).Dessa forma, quando a opção noexec é inserida diretamente no arquivo, já será implementado o bloqueio ao iniciar a montagem da tabela de partições do sistema. Um exemplo desse arquivo pode ser visto na Figura 9.

   [abrir imagem em janela]

Figura 6. Usuário comum sem direitos de root.

   [abrir imagem em janela]

Figura 7. Comando mount, em destaque a partição /tmp com opção noexec.

   [abrir imagem em janela]

Figura 8. Tentando executar um binário em uma partição com a opção noexec aplicada.

Page 28: 10 Steps to Harden Windows Server 2008

   [abrir imagem em janela]

Figura 9. Arquivo /etc/fstab alterado com as opções noexec.

  O administrador poderá encontrar um problema ao executar o aplicativo aptitude se as partições /var e /tmp estiverem com o noexec e nosuid ativos, pois esse aplicativo precisa executar scripts dentro de tais partições. O script da Listagem 26 pode ser utilizado para contornar tal problema. Dessa forma pode-se remover a proteção ao executar o aplicativo e, em seguida, reativá-las.Listagem 26. Script para alterar opção noexec e nosuid em partições desejadas.

#!/bin/bash

case $1 in

  start)

    # monta as partições listadas  

    mount -o remount,rw,noexec /var

    mount -o remount,rw,noexec /tmp

    mount

    echo "Partições SEM permissão de execução"

  ;;

  stop)

    # monsta as partições listadas

    mount -o remount,rw,exec /var

    mount -o remount,rw,exec /tmp

    mount

    echo " Partições COM permissão de execução "

  ;;

  *) echo "erro use $0 {start|stop}"

    exit 0

  ;;

esac

exit 1

Page 29: 10 Steps to Harden Windows Server 2008

ConclusãoNeste artigo foram tratados os conceitos de hardening, além de demonstrar algumas técnicas para endurecer o acesso ao sistema. Contudo, o assunto é muito extenso e importante, devendo ser tratado como fator fundamental em um projeto de implementação de um servidor, antes mesmo de entrar em produção, desde a instalação até a disponibilização de serviços na rede.  Sistemas como o AppArmor e o SELinux estão sendo utilizados para aumentar ainda mais a segurança em sistemas Linux, criando uma camada a mais de segurança, e devem ser considerados para também endurecer o sistema.É importante salientar que existem técnicas de hardening mais específicas, como o hardening em kernel, em serviços como Apache e MySql, entre outros, que serão temas de novos artigos.

Segurança de Redes - Hardening

Definição:

Hardening é um processo de mapeamento das ameaças, mitigação dos riscos e execuçãodas atividades corretivas, com foco na infraestrutura e objetivo principal de torná-lapreparada para enfrentar tentativas de ataque.

Normalmente, o processo inclui remover ou desabilitar nomes ou logins de usuários que não estejam mais em uso e serviços desnecessários.

Outras providências que um processo de hardening pode incluir:

-limitar o software instalado àquele que se destina à função desejada do sistema;

-aplicar e manter os patches atualizados, tanto de sistema operacional quanto de aplicações;

-revisar e modificar as permissões dos sistemas de arquivos, em especial no que diz respeito a escrita e execução;

-reforçar a segurança do login, impondo uma política de senhas fortes.

Tempo de sobrevivência: (2005-hoje)

O básico

http://csrc.nist.gov/publications/PubsSPs.html

Mundo Windows

FirewallWMIC (Windows Management InstrumentationCommand)

Page 30: 10 Steps to Harden Windows Server 2008

Windows Server Update Services (WSUS)MBSA (Microsoft Baseline Security Analyzer)Microsoft Security Compliance ManagerSysInternalsWMIC (WindowsManagementInstrumentation Command)

Lista os patches instalados

Verifica se existe um patch em um host remoto

wmic qfe list fullwmic /node:Micro010 qfe list full | findstr "976098"

Cria um arquivo com os programas iniciados

wmic startup get CAPTION, COMMAND,LOCATION /format:htable.xsl > c:\teste.html.

Windows Server Update Services (WSUS)

Permite que os administradores implantem as atualizações mais recentes dos produtos nos computadores que estiverem executando o sistema operacional Windows.Com o WSUS, os administradores podem gerenciar integralmente a distribuição dasatualizações lançadas no Microsoft Update nos computadores da rede.

Microsoft Baseline Security Analyzer

Microsoft Security Compliance Manager

SysInternals


Recommended