Hardening de servidores com IIS 7.0 e 7.5


1) Utilize uma conta sem privilégios para administração, caso necessite de permissão de Administrador utilize o RunAS

2) Renomeie a conta de Administrador

3) Altere o caminho padrão de armazenamento dos arquivos

4) Rode o Pool de Aplicativos com o usuário (ApplicationPoolIdentity)

5) Execute cada site com um Pool de Aplicativos diferente

6) Remova qualquer modulo que não esteja sendo utilizado

7) Não habilite o Remote Desktop, caso seja necessário certifique-se que seja acessado a partir de uma VPN.

8) Não é recomendado instalar o serviço de FTP e SMTP no mesmo servidor.

9) Habilite o Firewall do Windows, bloqueie todas as portas com excessão das 80, 443 e 3389.

10) Mantenha o servidor atualizado com os últimos paths e Service Packs

11) Rode aplicações ASP.NET com o nível MEDIUM ou abaixo

https://iisbrasil.wordpress.com/2011/04/26/net-trust-levels-page/

12) Habilite a auditoria local de segurança

13) Utilize anti-virus

14) Habilite Custom Errors para não exibir erros remotamente

http://learn.iis.net/page.aspx/267/how-to-use-http-detailed-errors-in-iis/

15) Desabilitar modulo de autenticação anonima

appcmd set config /section:anonymousAuthentication /enabled:false

15) Microsoft Web Application Configuration Analyzer v2.0

https://iisbrasil.wordpress.com/2012/01/02/microsoft-web-application-configuration-analyzer-v2-0-waca/

16) DynamicIPRestrictions

http://www.iis.net/download/DynamicIPRestrictions

17) Bloqueando SQL Injection com URL Rewrite

https://iisbrasil.wordpress.com/2011/02/03/bloqueando-sql-injection-com-url-rewrite/

18) Boas práticas de segurança com o PHP.INI

https://iisbrasil.wordpress.com/2011/04/13/boas-praticas-de-seguranca-com-o-php-ini/

19) IIS Lockdown Tool

http://technet.microsoft.com/en-us/library/dd450372%28WS.10%29.aspx

20) Improving Web Application Security: Threats and Countermeasures

Improving Web Application Security: Threats and Countermeasures

21) ISAPI/CGI Restrictions

http://www.iis.net/ConfigReference/system.webServer/security/isapiCgiRestriction

 

Erick Albuquerque

MVP, MCTS, MCITP SA, MCITP EA

Conhecendo o CasPol.exe (CAS)


Introdução

A ferramenta de política de segurança para acesso ao código (CAS) ou (Caspol.exe), permite que os usuários e administradores modifiquem a diretiva de segurança para o nível de diretiva de computador, de usuário e o nível de diretiva da empresa…

O caspol.exe está armazenado em: %windir%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe ou C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CasPol.exe, acesse a partir do prompt de comando em modo elevado.

Administradores que possuem um farm de servidores web normalmente possui sua aplicação armazenada em um storage ou seja centralizada. Muitas vezes encontram dificuldades neste tipo de ambiente, pois o IIS não consegue “montar” o site em um diretório remoto ou share remoto, para resolver este tipo de problemas é utilizado o CasPol.exe.

Abaixo um lista de comandos que podem ser utilizados pelos CasPol.exe.

caspol -m[achine]
Indica que todas as opções aplica a diretiva de nível de Computador. 
caspol -u[ser]
Indica que todas as opções aplica a diretiva de nível de usuário.
caspol -en[terprise]
Indica que todas as opções se aplicam a diretiva de nível empresarial. 
caspol -cu
Permite a administração de uma diretiva de usuário personalizada que não pertença 
caspol -a[ll]
Indica que todas as opções se aplica as diretivas de computador, usuário e empresa
caspol -ca
Indica que todas as opções se aplicar ao computador, empresa e as diretivas de usuário 
personalizada especificada.
caspol -l[ist]
Lista os grupo de código conjuntos de hierarquia e a permissão para o computador especificado, 
usuário, empresa ou todas níveis de diretiva.
caspol -lg
Exibe os grupos de código de nível de diretiva especificado ou todos níveis de diretiva.
caspol -lp
Exibe a permissão e define o nível de diretiva especificado ou Todos níveis de diretiva.
caspol -lf
Listas o sumário completo de assemblies para o nível de diretiva especificada.
caspol -ap
Adiciona um novo conjunto de permissão nomeadas à diretiva. O conjunto de Permissão deve ser 
criado em XML.
caspol -cp
Altera um conjunto de permissão nomeadas. O argumento de psfile fornece a nova definição de conjunto de Permissão
caspol -rp
Remove o conjunto da diretiva de permissão especificado. O argumento de pConjunto_name indica qual permissão o
Conjunto deve remover
caspol -addfulltrust 
Adiciona um assembly que implementa um objeto de segurança personalizado (sistema autônomo, por exemplo, uma permissão personalizada ou uma condição de associação personalizada) 
caspol -rf
Remove um conjunto de módulos. Esta operação deve ser executada se um conjunto de permissões que contenha uma permissão personalizada é não é mais usada pela diretiva
caspol -rg
Remove o Agrupamento de código especificado pelo seu nome ou rótulo.
caspol -cg
Altera as configurações da exclusivo, levelfinalnome ou sinalizadores de descrição, conjunto de Permissão ou uma condição de associação de agrupamento de códigos.
caspol -ag
Adiciona um novo agrupamento de código para o agrupamento de código hierárquico
caspol -rsg
Mostra os grupos de código de um assembly específico (assembly_file ).
caspol -rsp
Exibe todas as permissões que é especificado
caspol -s[ecurity] { on | off }
segurança de acesso do código é ativado ou desativado. 
caspol -e[xecution] { on | off }
Quando definido indica que o conjunto de permissão associado ou Agrupamento de códigos está adicionando ou modificando é considerado quando algum código ajusta a condição de associação do agrupamento de códigos.
caspol -pp
Ativa ou desativa o Aviso que será exibido sempre que Caspol.exe é executado usando uma opção que altere uma diretiva
caspol -q[uiet]
Desativa temporariamente o aviso que é exibido de uma opção que faz alterações em uma diretiva.
caspol -r[ecover]
Recupera a diretiva de um arquivo de backup
caspol -rs
Devolve a diretiva ao seu estado padrão e armazena em disco
caspol -rsld
Volta a diretiva para uma versão mais restritiva do que o estado padrão 
caspol -f[orce]
Suprime o teste de auto-destruição da ferramenta e as mudanças da política de diretiva, tal como especificado pelo usuário.
caspol -b[uildcache]
Atualiza a politica de segurança do arquivo de cache.

Erick Albuquerque | Moderator at Technet Brasil
https://iisbrasil.wordpress.com/ | http://erickalbuquerque.com.br/
Twitter: @_ealbuquerque

Boas práticas de segurança com o php.ini


Introdução

Utilizar boas praticas de segurança para impedir ataques de SQL Injection, RFI, LFI e outros.

Pratica

Normalmente o php.ini esta armazenado em “C:\Program Files (x86)\php\php.ini”, mas pode variar o local de armazenamento.

Pode ser que em algumas ocasiões as variáveis abaixo estejam habilitadas. Como uma pratica de segurança e’ necessários que essas variáveis estejam desabilitadas (Off), lembrando que ao desabilitar essas variáveis não impacta de forma alguma em seu ambiente. Portanto DESABILITE.

#VARIAVEIS

# Impede ataques de RFI e LFI ( Remote e Local File Inclusion )
allow_url_fopen = Off

# Impede que mensagens de erros sejam exibidas no browser
display_errors = Off

# Impede a execução de caracteres especiais digitados em campos de formulário convertendo-os em barra invertida. Protege contra ataques de SQL injection
magic_quotes_gpc = Off

# Impede o acesso a arquivos remotos através dos parâmetros include ou require, evitando injeção de código malicioso.
allow_url_include = Off

# Impede a exibição das informações sobre o PHP no browser
expose_php = Off

# Impede a execução de strings maliciosas devido as falhas no desenvolvimento da aplicação.
register_globals = Off

Referencias

http://www.php.net/
http://alexos.org

Erick Albuquerque | Moderator at Technet Brasil
https://iisbrasil.wordpress.com/ | http://erickalbuquerque.com.br/

Security update released for FTP 7.0 and FTP 7.5 0-day


Em dezembro/2010 publicaram um exploit o qual possibilita um DoS. (http://www.exploit-db.com/exploits/15803/)

Hoje liberam um hotfix para correção (http://www.microsoft.com/technet/security/bulletin/ms11-004.mspx)

Para maiores informações (http://blogs.technet.com/b/srd/archive/2011/02/08/regarding-ms11-004-addressing-an-iis-ftp-services-vulnerability.aspx)

 

[]s

Bloqueando SQL Injection com URL Rewrite


Ola,

Creio que seja uma preocupação de todos os ataques de SQL Injection nos diversos tipos de aplicações, mas existem algumas formas de bloquear este tipo de ataque, uma delas ‘e com o URL Rewrite utilizando expressão regular, o código abaixo deve ser colocado em um arquivo web.config.

 

<rewrite>

<rules>

<rule name=”Filter SQL injection” stopProcessing=”true”>

<match url=”.*” />

<conditions>

<add input=”{REQUEST_URI}” pattern=”[dD][\%]*[eE][\%]*[cC][\%]*[lL][\%]*[aA][\%]*[rR][\%]*[eE][\s\S]*[@][a-zA-Z0-9_]+[\s\S]*[nN]*[\%]*[vV][\%]*[aA][\%]*[rR][\%]*[cC][\%]*[hH][\%]*[aA][\%]*[rR][\s\S]*[eE][\%]*[xX][\%]*[eE][\%]*[cC][\s\S]*” />

</conditions>

<action type=”AbortRequest” />

</rule>

</rules>

</rewrite>