You are on page 1of 14

16/05/13

DevMedia - Leitor Digital

Entenda o site

Tecnologias

Revistas LO GIN:

Cursos

Pocket vídeos SENHA:

Fórum

Serviços

Publicar

Compre Créditos

Loja Virtual

A ssine

Bem vindo a DevMedia!

Esque ci m inha se nha

C adastre -se

[Infra Magazine 1 - Índice]

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.

Hardening
Blindando um Sistema GNU/Linux
Vídeo Hardening 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.

FLAVIO ALEXANDRE DOS REIS
Tecnólogo em Sistemas de Informação, Pós Graduando em Redes de Computadores (CESJF) e Especialista em Segurança da Informação - FMG/JF, Certificado LPIC-1.

www.devmedia.com.br/websys.5/webreader.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403

1/14

implementação de políticas de utilização de serviços de rede. consiste na utilização de técnicas para prover mais segurança a servidores que disponibilizam serviços externos. estabilidade e tranquilidade para os administradores de redes. Atualmente professor em Instituições de Ensino Superior da Região de Juiz de Fora em disciplinas ligadas a redes. Neste artigo são analisadas e discutidas técnicas para a aplicação de hardening desde a instalação do sistema operacional.10. verificação de usuários inválidos. Servidor : Debian Lenny. Marcos Fabiano Verbena Bacharel em Sistemas de Informação CES/JF. este artigo tem como objetivo apresentar o conceito e técnicas disponíveis para a implementação de hardening em servidores GNU/Linux. se faz necessária a utilização de técnicas capazes de proporcionar maior segurança.br/websys. como servidores Web. análise de serviços desnecessários e inseguros. Pós Graduando em Segurança da Informação . ou blindagem de sistemas. gerenciamento de privilégios e aplicação de segurança no terminal. entre outros.5/webreader. por ser um Linux reconhecidamente pela comunidade como estável e robusto. como servidores de banco de dados. ou até mesmo serviços internos. o processo de particionamento de discos. o sistema operacional escolhido foi o GNU/Debian Lenny. desconexão de usuários não autorizados. e consultor atuando principalmente nas áreas de redes de computadores e segurança. voltado para servidores. localização de senhas fracas.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 2/14 .10. com enfoque em Linux.Leitor Digital Eduardo Pagani Julio Mestre em Computação pela Universidade Federal Fluminense.com. As técnicas aqui demonstradas foram implementadas no servidor e as máquinas clientes foram www. de arquivos. [C lique aqui para ve r e m tam anho grande ] Devido ao crescente número de ameaças existentes na Internet e dentro dos ambientes corporativos.devmedia. Para a realização da parte prática do artigo.FMG/ JF VIDEO TUTORIAL #1: Na vídeo aula deste artigo. foram utilizados três computadores com as seguintes configurações: Cliente 1: Ubuntu 9.16/05/13 DevMedia . Pensando nisso. Para o servidor. Hardening. Cliente 2: Ubuntu 9. veja na prática como proteger o ambiente de TI através de técnicas de Hardening.

[abrir im age m e m jane la] Figura 1. pois cada partição tem sua tabela de alocação de arquivos separada. pois quanto maior a segurança menor o risco e também a flexibilidade. 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. risco e flexibilidade. faça os testes em máquinas virtuais a fim de entender e evitar possíveis falhas na implementação. 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. que contenham correções e patches de segurança.devmedia. Hardening O hardening consiste na realização de alguns ajustes finos para o fortalecimento da segurança de um sistema.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 3/14 . Estrutura utilizada para o artigo. Por isso.com. Serviços críticos como web. email e DNS devem estar sempre nas versões mais atuais. É importante ressaltar que as técnicas aqui apresentadas podem não ser adequadas para todas as situações.16/05/13 DevMedia . é fundamental que haja um estudo completo do cenário e serviços em questão. O administrador deverá ter atenção ao implementar as técnicas. Ao particionar o disco.5/webreader. é inserida no sistema uma maior segurança. Caso não tenha experiência nos exemplos aqui demonstrados. Quando se deseja aplicar a técnica de hardening há três grandezas que devem ser consideradas: segurança. Um exemplo de como pode ser configurada a tabela www. levando o sistema a uma alta produtividade e segurança. O administrador de redes deve analisar muito bem essas grandezas e encontrar um estado de harmonia entre elas. 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. conforme a Figura 1. Softwares desnecessários devem ser desinstalados e pacotes inseguros devem ser substituídos por alternativas mais confiáveis. antes de implantar efetivamente as técnicas de hardening.Leitor Digital utilizadas apenas para a realização de acessos e monitoramento.br/websys. Inicialmente recomenda-se sempre instalar versões atuais dos sistemas operacionais. 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.

mesmo sendo uma instalação básica. wget. Um servidor nunca deve conter programas “clientes”. O comando mount (comando UNIX usado para montar partições) permite utilizar algumas opções para aumentar a segurança nas partições.16/05/13 DevMedia . uma vez que essa distribuição traz um número maior de pacotes instalados que um GNU/LINUX Debian. ou desativando-os em todos os níveis de inicialização. Além disso.com. Neste exemplo são apresentados os passos necessários para a remoção de pacotes que não são utilizados no sistema. onde por padrão.txt. Nota Devman 1: nosuid é o parâmetro usado para inibir a execução de binários com permissão de suid bit.Leitor Digital de partições é apresentado na Tabela 1. como uma porta dos fundos não autorizada. utilizado em distribuições GNU/Linux Debian e derivados.5/webreader. crie um diretório em /root chamado auditoria. rshd. O comando dpkg -l. dentre outros. identd. como pode ser visto na Listagem 1. rlogind. permitindo o controle remoto da máquina sem que o usuário saiba. faz uma pesquisa no sistema e lista todos os pacotes instalados. e o comando sed. evitando assim que vulnerabilidades sejam exploradas. rwhod. como pode ser visto na Listagem 2.devmedia. Nota Devman 2: Backdoor: são programas que instalam um ambiente de serviço em um computador. retira as cinco primeiras linhas. Em distribuições Red Hat e derivados utiliza-se o comando rpm -qa. qualquer usuário pode gravar dados no sistema. podem-se remover entradas específicas dos programas no boot do sistema operacional. ftpd. Crackers podem aproveitar do diretório /tmp. sendmail. Estes serviços podem ser desinstalados usando o gerenciador de pacotes do sistema operacional. podendo assim analisar quais serão removidos.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 4/14 . Serviços desnecessários e inseguros Depois do sistema instalado. nesse exemplo. Um filtro com o comando awk é utilizado para formatar a saída do comando. deverão ser removidos. Opções da tabela de partições. e noatime é o parâmetro responsável por eliminar a necessidade de escrita no disco para arquivos que precisam ser somente lidos. Esse resultado é gravado em um arquivo texto chamado pacotes. A análise desse arquivo pode ser um pouco demorada. onde será gerado um arquivo com todos os pacotes que estão instalados. deve ser realizada uma verificação minuciosa de todos os programas instalados e se são realmente necessários.br/websys. ainda mais se o administrador estiver analisando a saída gerada por um servidor Red Hat. Para seguir o exemplo. Serviços como telnet. mostrando assim somente a segunda e terceira colunas. tornando-o acessível à distância. [abrir im age m e m jane la] Tabela 1. noexec é o parâmetro usado para inibir a execução de um binário na partição. A remoção de pacotes obsoletos deverá ser executada. fazendo assim uma pesquisa em todos os pacotes instalados. para introduzir um backdoor ou qualquer outro programa malicioso para ter um acesso completo ao sistema. Um pacote interessante para www.

Listando pacotes instalados no Debian.Leitor Digital remover é o wget. 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. checando diretamente o arquivo /etc/shadow dos servidores. www. como pode ser visto na Listagem 3. será necessário descobrir se os usuários estão usando senhas fracas. O utilitário John the Ripper pode ser utilizado com a finalidade de encontrar senhas fracas escolhidas por usuários de um sistema. O aplicativo pode ser instalado com o aptitude. caso existam. t x t Listagem 3.br/websys. O administrador não deve saber essas senhas. pois são usadas sequências simples. Removendo aplicativos. Listagem 4. Com esse comando. não há necessidade de tal aplicativo. # a p t i t u d ei n s t a l lj o h n [abrir im age m e m jane la] Figura 2. Assim. que testa combinações de senha para encontrar a resposta).16/05/13 DevMedia . Encontrando senhas fracas. No exemplo. # r p mq a>/ r o o t / a u d i t o r i a / p a c o t e s . por exemplo. entre outras. intransferível e de propriedade de um único usuário. Nestes casos. Ele é uma ferramenta de Brute Force (força bruta. #a p t i t u d ep u r g ew g e t Outro exemplo é o pacote wireless-tools. No que diz respeito às senhas. tornando assim o sistema mais robusto e tolerante à exploração de vulnerabilidades. 5 d '> / r o o t / a u d i t o r i a / p a c o t e s . nome próprio. o cracker pode jogar qualquer script que possa danificar o sistema ou até mesmo abrir uma porta para novas invasões.devmedia. Se uma auditoria está sendo executada em um servidor GNU/Linux de uma empresa. #d p k gl|a w k' { p r i n t$ 2 . e a opção purge faz com que os arquivos de configuração do aplicativo sejam removidos. t x t Listagem 2. através de um servidor Web forjado. como 123456. que pode ajudar a descobrir senhas fracas de usuários.com. Procura de senhas fracas A senha deve ser única. Execução do John the Ripper procurando por senhas fracas. ou informações pessoais como datas de aniversário.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. Mas. um cracker pode fazer com que o servidor alvo execute downloads de arquivos. o administrador poderá solicitar que o usuário efetue a substituição da senha por outra que atenda a política de segurança. Instalando o John the Ripper. $ 3 } '|s e d' 1 . o aplicativo John the Ripper é utilizado para teste de senhas fracas.3 e 11. as senhas escolhidas são fáceis de serem descobertas. é possível utilizar ferramentas capazes de avaliar se a senha do usuário é fraca ou não. como pode ser visto na Listagem 4. na maioria das vezes. Listagem 1.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 5/14 . a norma ISO 27002 diz nos itens 11. Caso o servidor em questão não tenha nenhuma placa de rede sem fio.2. O comando aptitude remove o aplicativo wget.3.5/webreader. não deixando vestígios de sua instalação. Listando pacotes instalados no Red Hat.

limitando assim um tamanho mínimo para a senha escolhida. Um valor que pode ser adotado é a cada 20 dias.br/websys. Defina a quantidade de senhas já utilizadas que não poderão ser reaproveitadas.16/05/13 DevMedia . 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. esta poderá já não ser mais válida.devmedia. Regras para definir senhas fortes devem ser levadas em consideração como. s o n u l l o ko b s c u r em i n = 1 0m d 5 Usuários Inválidos Nos Sistemas GNU/Linux há três tipos de usuários. usuário root. responsável por receber requisições do servidor Web. Isso ocorre devido a uma alteração no módulo do PAM. O usuário de sistema www-data.5/webreader. estipular um número mínimo de caracteres (por exemplo. recebendo a mensagem “Escolha uma senha mais longa”. responsáveis por controlar requisições de serviços. por exemplo. O acesso não autorizado por sistemas externos deve ser cancelado com extrema urgência. 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. Deve-se também educar os usuários para que não divulguem suas senhas para terceiros. como pode ser visto na Listagem 5. números e caracteres especiais. Existem vários módulos que podem ser implementados. 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. com a troca de senhas periódica. utilizar letras minúsculas. que podem ser definidos pelo administrador. p a s s w o r dr e q u i r e dp a m _ u n i x . O shell é a interface entre usuário e sistema. Faça com que as senhas sejam alteradas em intervalos de tempo curtos. pode-se impedir que algum atacante consiga quebrar a senha utilizando força bruta.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 6/14 . Listagem 5. que esteja com um shell válido. maiúsculas. em especial se o usuário estiver ocultando sua identidade. usuários comuns. [abrir im age m e m jane la] Figura 3. A opção min=10 foi adicionada. poderá introduzir vulnerabilidades ao seu sistema. Alterando as senha dos usuários. Limitando o tamanho mínimo de uma senha. sem a necessidade de modificar e recompilar programas. por último. 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. podem ser necessárias ações disciplinares dependendo da natureza do acesso. Mesmo que a senha seja quebrada em algum momento. não é possível digitar comandos e interagir com o sistema. que é o administrador do sistema. Sem um shell válido.Leitor Digital O John the Ripper é executado passando como parâmetro o arquivo /etc/shadow. A Figura 3 mostra que o usuário não conseguiu mudar a senha na primeira tentativa. conforme mostra a Figura 2. Tomando essas providências simples.com. O PAM é um recurso que auxilia muito quando se pensa em segurança. Para os casos de acesso por usuários internos não autorizados. por exemplo. os usuários de sistema. aumentando assim o controle de criação e troca de senhas. www. 10 caracteres).

dessa forma utiliza-se o comando source para que o arquivo possa ser lido novamente atribuindo ao sistema as alterações aplicadas. as ameaças internas são esquecidas ou até mesmo subestimadas. 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. Inserindo valores no /etc/profile. Colocar senha criptografada no GRUB Muitos administradores não estão preparados para lidar com estruturas críticas.devmedia. por exemplo. 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. Gerenciamento de privilégios O usuário root é o mais visado por crackers ou usuários mal intencionados. tendo cuidado para não destruir provas relacionadas ao crime.Leitor Digital É importante salientar que. 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. Política de utilização de serviços de Rede TCP wrappers oferecem controle de acesso a vários serviços. A variável TMOUT tem a função de executar um logout automático após determinado tempo de inatividade do terminal. Segurança no Terminal Quando é citado o assunto segurança. são boas práticas que devem ser adotadas. 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. Liberar acesso somente a IPs desejados. Usuários internos mal intencionados podem causar grandes prejuízos e.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 7/14 . Valores muito altos podem dar espaço para que o usuário tenha acesso à estação logado como root. Esse processo poderá ser evitado se uma senha criptografada for adicionada ao gerenciador.5/webreader. Seu foco é conseguir a senha root e obter acesso total ao sistema. como pode ser visto na Listagem 7. A maioria dos serviços de rede modernos. O arquivo /etc/profile só é lido durante o boot do sistema. Dessa forma. na maioria das vezes. limitando o uso dos serviços de rede. é fundamental que as evidências relacionadas ao acesso indevido sejam registradas antes da desativação da conta não autorizada. com auxílio do comando usermod. como SSH. valores muito baixos podem interferir em tarefas onde é necessário uma pesquisa. Para dificultar a ação destas ameaças. pois este poderá conseguir acesso de root se reiniciar o servidor e alterar a senha do root através do gerenciador de boot (grub). logo se imagina a exploração de uma vulnerabilidade por uma ameaça remota e.16/05/13 DevMedia . # v i m/ e t c / p r o f i l e T M O U T = 6 0 e x p o r tP A T HT M O U T www. Listagem 6. desativar o login como usuário root nos terminais modo texto torna-se fundamental. a situação fica ainda mais grave. Telnet e FTP. se o usuário em questão tiver acesso físico aos servidores. O valor a ser adicionado deverá ser analisado com cuidado. como pode ser visto na Listagem 6. por exemplo. O simples acesso físico de um usuário a sala de servidores pode representar uma violação de segurança grave. O arquivo /etc/profile será editado e adicionado a variável com valor de 60 segundos. utilizam os TCP wrappers que ficam monitorando a entrada de um pedido e o serviço requisitado. Determinar a data de validade para a senha dos usuários e.br/websys. evitando assim acessos indevidos. O uso do TCP wrappers é uma boa prática na implementação de segurança em redes. Seu valor pode ser configurado no arquivo /etc/profile. não permitindo que um usuário qualquer inicie o sistema no modo de segurança. quando ocorre uma invasão de sistema.com.

c a : 1 2 3 4 5 : c t r l a l t d e l : / b i n / e c h o“ O p ç ã od e s a t i v a d a! ” Listagem 9. Após efetuar as alterações. SSH O SSH (Secure Shell) é um programa usado para acessar remotamente outro computador usando uma rede. c a : 1 2 3 4 5 : c t r l a l t d e l : / s b i n / s h u t d o w nt 1arn o w #D e p o i s #W h a tt od ow h e nC T R L A L T D E Li sp r e s s e d . Fornece autenticação forte e comunicação segura sobre canais inseguros (como a Internet. por exemplo). conforme a Listagem 8. É muito usado para logar em um sistema GNU/Linux através de uma máquina Windows. Terminal efetuando logout automático.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 8/14 . Para isso. Mac ou mesmo outro GNU/Linux. Editando o arquivo /etc/ssh/sshd_config. # v i m/ e t c / s s h / s s h d _ c o n f i g #A l t e r eap o r t ap a d r ã o P o r t4 2 1 2 9 #P r o t o c o l o2( a n t e r i o r e sp o s s u e mf a l h a sd es e g u r a n ç a ) P r o t o c o l2 #T e m p oa t i v a d op a r ad i g i t a ras e n h a L o g i n G r a c e T i m e4 5 #N ã oa c e i t a rl o g i nc o m or o o t www. Outro ponto importante a ser levado em consideração quando se pensa em controle de acesso em uma organização. Usuários mal intencionados podem simplesmente usar o CTRL+ALT+DEL para reiniciar o servidor. [abrir im age m e m jane la] Figura 4. Editando o arquivo /etc/ssh/inittab. devem-se tratar as questões de acesso físico à sala de servidores.Leitor Digital Após 60 segundos de inatividade. Isso pode ocorrer em empresas que não têm uma política de acesso aos seus servidores. conforme mostra a Figura 4.devmedia. Detalhes importantes precisam ser levados em consideração quando um servidor ssh é configurado. independentemente desta norma. No entanto. o shell fará logout automático. o serviço ssh precisa ser reiniciado (ver Listagem 10).com. parando assim todos os serviços disponíveis em uma rede. é avaliar quem tem acesso aos servidores. algumas configurações importantes devem ser feitas no arquivo de configuração. na qual os tradicionais telnet e rlogin não podem fornecer criptografia da senha e da sessão. pode-se inibir a função CTRL+ALT+DEL editando o arquivo /etc/inittab. # s o u r c e/ e t c / p r o f i l e DevMedia .br/websys. Comando source. conforme apresenta a Listagem 9. # v i m/ e t c / i n i t t a b #A n t e s #W h a tt od ow h e nC T R L A L T D E Li sp r e s s e d . executar comandos em uma máquina remota e copiar arquivos de um computador para outro.5/webreader. Listagem 8. Segundo a norma ISO 27002.16/05/13 Listagem 7. # c a : 1 2 3 4 5 : c t r l a l t d e l : / s b i n / s h u t d o w nt 1arn o w # o u #D e p o i s #W h a tt od ow h e nC T R L A L T D E Li sp r e s s e d .

com. pode-se fazer uma busca por todas as portas abertas no sistema e. sobre licença GPL.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 9/14 .5/webreader. Segundo a norma ISO 27002. Quando está atribuída a um binário.16/05/13 P e r m i t R o o t L o g i nn o DevMedia . Uma listagem de portas feita utilizando o aplicativo nmap pode ser visto na Listagem 11. no item 11.br/websys. Depois de criado o script. podem ser criadas regras no firewall para bloquear as que não devem estar disponíveis. Listagem 11. e como parâmetro deverá ser utilizado “n” ou “N”. como exibe a Listagem 12. 2 . é possível que um usuário execute o mesmo com os privilégios de seu dono. o usuário vai executar o binário como root. nmap: Network Mapper. Pois caso algo seja violado. evitando que vulnerabilidades sejam exploradas. Uma regra do firewall iptables poderá ser utilizada para bloquear tentativas de acesso a essa porta. normalmente usada por um servidor Web. Através de um script é possível localizar e alterar essa permissão. Após adicionar a regra no firewall.1. 4 7 o p e n h t t p h t t p d2 . # n m a pAp1 6 5 5 3 5l o c a l h o s t P O R T S T A T ES E R V I C EV E R S I O N 2 2 / t c p 2 5 / t c p 5 3 / t c p 8 0 / t c p o p e n s s h o p e n s m t p p r o t o c o l2 .suid foi criado (Listagem 17). alguns aplicativos (serviços) podem abrir portas introduzindo assim vulnerabilidades no sistema. o acesso à informação e às funções dos sistemas de aplicações por usuário e pessoal do suporte devem ser restritas. em seguida. Listagem 10. de acordo com a Listagem 16. faça novamente a pesquisa com o nmap e analise o resultado. Listagem de portas utilizando nmap. Observe no diretório /root/auditoria que o arquivo list. 1 1 www. como apresenta a Listagem 14. Reiniciando o serviço ssh $ i n v o k e r c . ds s hr e s t a r t Observe que a porta 80 está sendo filtrada. é um aplicativo livre e de código aberto. Com o aplicativo nmap. 0 P o s t f i xs m t p d o p e n d o m a i n d n s m a s q2 . é necessário alterar suas permissões. conforme a Listagem 13. deixando que apenas o usuário root possa executá-lo.6. SUID BIT O SUID BIT é uma das permissões especiais disponíveis no GNU/Linux. utilizado para explorar uma rede afim de efetuar uma auditoria de segurança. de acordo com o definido na política de controle de acesso.devmedia. existe um documento para comprovar que aquilo não é certo. Podemos encontrar problemas de segurança ao ter binários com essa permissão especial configurada. Se o dono do binário for o usuário root. Para essa função é usado o comando chmod (Listagem 15). O primeiro passo é executar o script. Analisando o resultado do nmap pode-se observar que a porta 80 está aberta. e retirando qualquer permissão dos demais usuários e grupos. a porta deverá ser fechada. Nesse modo ele apenas irá gerar uma lista de binários que possuem a permissão de SUID-BIT no sistema.Leitor Digital #N ã oa c e i t a rl o g i ns e ms e n h a P e r m i t E m p t y P a s s w o r d sn o #U s a rom o d u l od op a mp a r as ea u t e n t i c a r U s e P A My e s #D e f i n i ru s u á r i o sq u et e mp e r m i s s ã od ef a z e rl o g i n A l l o w U s e r s“ f l a v i om a r c o se d u a r d o ” Portas Abertas Quando o sistema novo é instalado. Esse ponto deve estar muito bem determinado e esclarecido para todos os funcionários da organização. Se esse serviço não for utilizado.

asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 10/14 . e s a c Listagem 15. #l s/ r o o t / a u d i t o r i a / l i s t . . 0 P o s t f i xs m t p d o p e n d o m a i n d n s m a s q2 . Executando o script com o parâmetro n ou N. # i p t a b l e sAI N P U Tie t h 0pt c pd p o r t8 0jD R O P Listagem 13. s u i d Como se trata de um sistema recém-instalado. o administrador não deve encontrar nenhum problema. .devmedia. 9 M y S Q L5 .Leitor Digital C U P S1 . Listando o diretório auditoria. Bloqueando a porta 80 com iptables. onde este se encontra em produção. pois se estiver analisando um servidor de uma empresa. 7 5 0 Listagem 12. / l o c a l i z a _ s u i d . 3 . devem-se remover as permissões suid.5/webreader. s h # ! / b i n / b a s h #E n v i au m am e n s a g e mn as a í d ap a d r ã od ev í d e o e c h o" V e r i f i c a n d oa r q u i v o sc o mp e r m i s s ã od eS U I DB I T . " #f a zu m ab u s c ae mt o d os i s t e m ap o ra r q u i v o s q u ec o n t e n h a map e r m i s s ã od eS U I DB I Tes a l v ae mu ma r q u i v ot e x t o f i n d/p e r m4 0 0 0>/ r o o t / a u d i t o r i a / l i s t . 3 .br/websys. s u i d #E n v i am e n s a g e mn at e l ao r i e n t a n d ooq u ed e v es e rf e i t o e c h on" D e s e j ar e m o v e roS U I DB I Td o sa r q u i v o s ? ( S / N ) : " #R e c e b eao p ç ã oe s c o l h i d a r e a da c a o #E x e c u t aaa ç ã o c a s e$ a c a oi n S | s ) c h m o dR vs/ e c h o"P e r m i s s õ e sd eS U I DB I TR e m o v i d a s ! " s l e e p3 e x i t . 7 5 0 6 3 1 / t c p o p e n i p p 3 3 0 6 / t c po p e n m y s q l Listagem 14. s hn Listagem 17. s h Listagem 16. .16/05/13 6 3 1 / t c p o p e n i p p 3 3 0 6 / t c po p e n m y s q l DevMedia . 0 . # . . Mas é necessária a atenção do mesmo. # v i m/ r o o t / a u d i t o r i a / l o c a l i z a _ s u i d . Script sugerido para remoção de permissões SUID-BIT. # c h m o d7 0 0/ r o o t / a u d i t o r i a / l o c a l i z a _ s u i d . 4 7 f i l t e r e d h t t p C U P S1 . 9 M y S Q L5 . * ) e c h o" O p ç ã oI n v á l i d a ! ! " s l e e p3 e x i t . N | n ) e x i t . www. 0 . Conferindo portas com nmap. # n m a pAp8 0l o c a l h o s t P O R T 2 2 / t c p 2 5 / t c p 5 3 / t c p 8 0 / t c p S T A T ES E R V I C EV E R S I O N o p e n s s h o p e n s m t p p r o t o c o l2 . Alterando as permissões do script.com.

0 7 . será utilizado o comando cp para copiar todos os shells do sistema para a partição /tmp e. 0 8 U S E R f l a v i o T T Y t t y 1 F R O M L O G I N @ 2 2 : 2 0 I D L E J C P U P C P UW H A T 0 . deve-se proteger a integridade do software e da informação e ter um controle contra códigos maliciosos. # . removendo assim a permissão SUID BIT de todos os binários.com. será atribuída a permissão de SUID BIT. o usuário consegue executar o shell sh como root. A seguir é apresentada uma sequência de comandos. #c h m o d+ s/ b i n / s u Listagem 20. por exemplo.0 . / s h Pode-se observar com o comando id que o usuário flavio ganhou acesso de root “euid=0(root)”.br/websys. l o a da v e r a g e :0 . para que os usuários consigam trocar suas próprias senhas. o PHP Injection (inserção de script malicioso através de páginas vulneráveis). Utilizando o comando chmod. 2 6 s 0 .16/05/13 DevMedia .devmedia. Usuário comum com permissão de root. onde é possível executar o script sh de acordo com a Listagem 23.5/webreader. 1u s e r s . Seguindo o exemplo.0 . um dos problemas será resolvido. s hs Listagem 19. como visto na Listagem 18. Um cracker pode instalar uma backdoor no sistema utilizando uma técnica como. o comando su será necessário para que o usuário comum possa virar root e assim executar as políticas implementadas no firewall. Com o comando chmod atribui-se a permissão SUID BIT ao binário /usr/bin/passwd. [abrir im age m e m jane la] www. Para exemplificar um ataque ao diretório /tmp. Com essa modificação. 0 0 s 0 . conforme mostra a Figura 5. Adicionando permissão de SUID-BIT ao binário su. Segundo a norma ISO 27002 nos itens 10. #c h m o d+ s/ u s r / b i n / p a s s w d Listagem 21.4 e 10.Leitor Digital Agora execute o script utilizando o parâmetro “s” ou “S”. a colocando dentro do /tmp com permissões de SUID BIT e executá-la remotamente. Executando o script com o parâmetro (s ou S). é utilizado o comando adduser para adicionar um usuário flavio. como visto na Listagem 20. onde o usuário flavio está logado no terminal tty1. atribui-se a permissão suid somente ao comando su. Teste com binários que tenham permissão SUID-BIT. Deve-se observar quais binários serão necessários ficar com a permissão ativa.1. 0 7 . / l o c a l i z a _ s u i d . Em seguida é realizado o acesso ao diretório /tmp.4. Mas apenas retirar a permissão SUID BIT dos comandos não evitará problemas no sistema de arquivos. Sendo o usuário root o dono desse shell com a permissão de SUID BIT ativa. Outro binário que precisamos deixar com a permissão SUID BIT ativa é o passwd.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 11/14 . $w 2 2 : 3 1 : 2 1u p 3 : 4 6 . o que pode ser verificado com o comando w. logo após. como visto na Listagem 19. como visto na Listagem 21. Listagem 18. Adicionando o usuário flavio. #c p/ b i n / * s h */ t m p #c h m o d4 7 5 5/ t m p / * s h * Listagem 23. 0 1 sw $c d/ t m p $. Uma backdoor é um código malicioso. como visto na Listagem 22. # a d d u s e rf l a v i o Listagem 22. Adicionando permissão de SUID-BIT ao passwd. Considerando que o firewall está sendo desenvolvido.

Dessa forma o usuário já não tem mais permissões de root. r w . No entanto. Após remontar a partição. O parâmetro apresentado aqui é o nosuid. como visto na Listagem 24. Observe que a diretiva “euid=0(root)” não mais é listada. faça novamente o login com o usuário flavio e tente executar a shell sh novamente. Remontando o diretório /tmp com a opção nosuid. utilizamos o comando mount novamente (ver Figura 7). ao reiniciar o sistema. [abrir im age m e m jane la] www.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 12/14 . alguns parâmetros do comando mount podem ser utilizados. essas configurações serão perdidas. Para que as configurações sejam mantidas mesmo após um restart. No exemplo foi executado como root. Realizando a montagem das partições manualmente. agora sua execução está impedida. Assim. para solucionar este problema. n o e x e c/ t m p Para conferir se a alteração foi efetivada. Para evitar esse tipo de problema. O comando mount tem um parâmetro chamado noexec. independente do usuário logado. Um exemplo desse arquivo pode ser visto na Figura 9.com. aplica-se essa opção à partição montada em /tmp.devmedia.16/05/13 DevMedia .br/websys. #m o u n tor e m o u n t . n o s u i d/ t m p #m o u n t Listagem 25. que inibe a execução de binários na partição indicada. já será implementado o bloqueio ao iniciar a montagem da tabela de partições do sistema. seu uso pode evitar que um script seja executado dentro dessa partição. Remontando o diretório /tmp com a opção noexec. r w . NOEXEC Um script malicioso pode ser inserido em uma partição do sistema causando danos ao servidor. ou seja.5/webreader. basta editar o arquivo /etc/fstab (responsável por armazenar a tabela de partições do GNU/LINUX. os parâmetros não serão aplicados de forma fixa às partições. que é lido durante o boot do sistema). [abrir im age m e m jane la] Figura 6. quando a opção noexec é inserida diretamente no arquivo. conforme mostra a Figura 6. Logado como usuário root. Usuário comum recebendo direitos de root. Dessa forma. pode-se aplicar a opção noexec e remontar a partição. como mostra a Figura 8. 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.Leitor Digital Figura 5. foi realizada mais uma tentativa de executar o binário sh. Após ter aplicado a correção ao diretório /tmp. Isso segue as boas práticas de particionamento. Usuário comum sem direitos de root. É importante lembrar que o diretório /tmp necessariamente deverá estar em uma partição separada. #m o u n tor e m o u n t . de acordo com a Listagem 25 Listagem 24.

asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 13/14 . pois esse aplicativo precisa executar scripts dentro de tais partições.16/05/13 DevMedia . . r w . s t o p ) #m o n s t aa sp a r t i ç õ e sl i s t a d a s m o u n tor e m o u n t . r w . em destaque a partição /tmp com opção noexec. e x e c/ t m p m o u n t e c h o"P a r t i ç õ e sC O Mp e r m i s s ã od ee x e c u ç ã o" . Arquivo /etc/fstab alterado com as opções noexec. O script da Listagem 26 pode ser utilizado para contornar tal problema. * )e c h o" e r r ou s e$ 0{ s t a r t | s t o p } " e x i t0 . Tentando executar um binário em uma partição com a opção noexec aplicada.devmedia. r w .br/websys. [abrir im age m e m jane la] Figura 9. Dessa forma pode-se remover a proteção ao executar o aplicativo e. r w . n o e x e c/ t m p m o u n t e c h o" P a r t i ç õ e sS E Mp e r m i s s ã od ee x e c u ç ã o " . [abrir im age m e m jane la] Figura 8. reativá-las. e s a c e x i t1 www. . e x e c/ v a r m o u n tor e m o u n t . 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.5/webreader.Leitor Digital Figura 7. Comando mount. Listagem 26. em seguida.com. . # ! / b i n / b a s h c a s e$ 1i n s t a r t ) #m o n t aa sp a r t i ç õ e sl i s t a d a s m o u n tor e m o u n t . n o e x e c/ v a r m o u n tor e m o u n t . Script para alterar opção noexec e nosuid em partições desejadas.

Sistemas como o AppArmor e o SELinux estão sendo utilizados para aumentar ainda mais a segurança em sistemas Linux. É importante salientar que existem técnicas de hardening mais específicas.br/websys.Equipe de moderacao 6/22/2011 5:19:57 PM Equipe Devmedia. aguarde! Atenciosamente. o assunto é muito extenso e importante.asp?cat=62&artigo=3403&revista=inframagazine_1#a-3403 14/14 . antes mesmo de entrar em produção. além de demonstrar algumas técnicas para endurecer o acesso ao sistema. Tiago Laurentino Soares 24/6/2011 15:19 Muito bom artigo.Todos os Dire itos R e se rvados a we b-03 P lug-in social do F acebook www. Dev Media . DevMedia Curtir 8.devmedia. que serão temas de novos artigos. como o hardening em kernel. criando uma camada a mais de segurança. DevMedia | Anuncie | Fale conosco Hospedagem web por Porta 80 Web Hosting 2013 . e devem ser considerados para também endurecer o sistema. entre outros.550 pessoas curtiram DevMedia. parabéns! Fica como sugestão um próximo artigo sobre Hardening em ambientes Windows. Abraços. desde a instalação até a disponibilização de serviços na rede. Existe a intenção de explorá-lo em profundidade ou será somente dessa revista? Que bom que gostou! Em breve a segunda edição da revista. Contudo.Leitor Digital Conclusão Neste artigo foram tratados os conceitos de hardening. A nacleto Pav ão 20/6/2011 18:47 Somente esse assunto ja vale a assinatura da revista. em serviços como Apache e MySql.com.5/webreader. devendo ser tratado como fator fundamental em um projeto de implementação de um servidor.16/05/13 DevMedia .