UIA4
UIA4
UIA4
Este material é destinado exclusivamente aos alunos e professores do Centro Universitário IESB, contém
informações e conteúdos protegidos e cuja divulgação é proibida por lei. O uso e/ou reprodução total ou
parcial não autorizado deste conteúdo é proibido e está sujeito às penalidades cabíveis, civil e
criminalmente.
SUMÁRIO
Nesta aula veremos a importância dos logs e sua análise. Logs são os registros das atividades geradas
pelo funcionamento e operação dos programas e serviços implementados em um computador.
19.1.!LOGS
São registros de todos os eventos importantes produzidos pelo sistema operacional,
aplicativos e serviços, tornando possível a criação de um histórico de atividades que
permite que se conheça o que aconteceu ou o que está acontecendo.
Os logs são geralmente utilizados para fins de auditorias, solução de problemas e também são
empregados como prova digital, definindo as autorias e responsabilidades das ações em um sistema.
Estes registros são, normalmente armazenados em arquivos ASCII ou texto simples, capazes de
armazenar o que se passa com sistemas computacionais e serviços de rede. A correlação de logs de
eventos, segurança e auditoria são fundamentais para que se possa reconstruir o que efetivamente
ocorreu com um sistema computacional no passado.
Geralmente é possível definir os logs por variados tipos de registros, tais como registros de eventos do
sistema operacional, de redes, de aplicações e de sistemas específicos, capazes de prover informações
vitais para a notificação de incidentes no ambiente computacional.
Todos os registros de log formam uma fonte essencial e básica de informação tanto para a detecção,
como para o processo de solução de problemas. Através de análises das informações fornecidas pelos
logs é possível detectar e identificar o uso indevido do ambiente de TI, exploração de vulnerabilidades,
ataques, rastrear e auditar as diversas ações executadas pelo usuário e detectar problemas de hardware
ou nos programas e serviços instalados no computador. Com base nestas informações é possível tomar
medidas preventivas para tentar evitar que um problema maior ocorra ou tentar reduzir os danos.
Os arquivos dos registros de log fornecem a única evidência real de que uma determinada atividade
ilícita realmente aconteceu.
Na grande maioria das vezes, os logs são o único recurso que um administrador possui para descobrir as
causas de um problema ou um comportamento anormal.
Os arquivos de logs se caracterizam por serem flexíveis, onde através de configurações é possível
registrar desde eventos críticos até praticamente todos os eventos de um sistema, desta forma, são
considerados a principal fonte de informação sobre o funcionamento dos programas servindo como
ferramenta para a correção de erros e verificações de rotina.
http://juliobattisti.com.br/artigos/windows/images/tcpip_p17_clip_image008.jpg
Qualquer registro de log gerado por um sistema pode ajudar a descobrir problemas na execução de
softwares, problemas de hardwares, tentativas de invasão, acessos indevidos, entre outras coisas.
A integridade e disponibilidade dos logs são fatores vitais para garantir a continuidade dos negócios.
Para tanto destacam-se as ferramentas que unificam a administração destes registros, pois possibilitam
gerenciar redes e sistemas informatizados mais complexos.
Através dos arquivos registros de log é possível registrar ações dos usuários, o que os torna uma ótima
fontes de informação para auditorias futuras. Os logs registram quem acessou os recursos
computacionais, aplicativos, arquivos de dados e utilitários, quando foi feito o acesso e que tipo de
operações foram efetuadas.
Desta forma, é possível identificar um invasor ou usuário não autorizado que realizou acesso a um
determinado sistema, apagou ou alterou dados, acessou aplicativos, mudou configurações do sistema
operacional com o intuito de prejudicar a organização e facilitar futuras invasões. Sem os registros de
logs, estas ações não seriam identificadas fazendo com que o administrador sequer ficasse sabendo que
houve uma invasão.
Uma auditoria de segurança bem sucedida depende da existência de registros de logs íntegros e
confiáveis. Independentemente do quão seguro é um computador, uma rede ou um sistema, nunca será
possível confiar totalmente nos registros de um sistema que foi comprometido, pois isso dificulta ou até
mesmo impossibilita uma auditoria de sucesso.
Se os registros de auditoria estão seguros é possível aumentar as chances de sucesso ao se correlacionar
e identificar padrões ou rever os incidentes de segurança ocorridos em um sistema. Para alcançar estes
objetivos é recomendável estabelecer um sistema de logs centralizado e dedicado, ou seja, que tenha
como função exclusiva a coleta, registro e análise de eventos de logs.
Ao armazenar dados gerados pelo sistema, aplicações, rede, atividades dos usuários, entre
outros, os logs fornecem inúmeras informações que se transformam em indicadores
capazes de medir os níveis de segurança e de avaliar se medidas de segurança estão
surtindo o efeito esperado e planejado.
A melhor forma de verificar a extensão de um incidente de segurança, identificando que
ativo foi violado e que a informação foi exposta é por meio dos registros de logs, por isso
eles são vitais para a continuidade dos negócios de uma organização. Neste ponto, é
importante ressaltar quanto ao uso correto dos softwares de análise de logs, pois estes
registros são gerados de diversas formas e devem ser interpretados corretamente,
possibilitando uma compactação e consolidação das informações no sentido de melhorar
a extração do resultado final.
De acordo com o “Código de prática para gestão de segurança da informação – ABNT NBR
ISO/IEC 27002:2013”, é estabelecido que os sistemas sejam monitorados e eventos de
segurança da informação sejam registrados, tendo como principais objetivos:
•! Detectar atividades não autorizadas de processamento da informação;
Para saber mais sobre Logs: O que eles comem, onde vivem e como se
reproduzem, assista ao vídeo:
http://tinyurl.com/gonhgrw
Contém a informação de data e hora que o registro de log foi gerado. É muito importante para que
possamos comparar a ocorrência de um evento com outros registros de log no tempo e, assim,
correlaciona-los;
SEVERIDADE
19.1.4.!ARMAZENAMENTO DE LOGS
Desta forma, é importante que eles sejam monitorados com frequência para possibilitar que eventuais
problemas sejam identificados e solucionados. Neste sentido, o gerenciamento de logs envolve um amplo
conjunto de atividades:
Análise Léxica e Processo que analisa as linhas de mensagens de log e produz uma saída
Transformação formatada em um padrão mais adequado para futuro processamento;
Análise Sobre Eventos É o processo, que por meio de algoritmos, regras ou consultas extrai as
de Log informações relevantes sobre mensagens de logs;
Este conjunto de atividades deu origem a uma nova classe de sistemas denominados de Sistemas de
Gerenciamento de Log (Log Management Systems – LMS). Estes sistemas implementam os
procedimentos acima listados e normalmente consistem em utilizar a forma de armazenamento on-line,
ou seja, um servidor de logs centralizado para receber, indexar, analisar e visualizar os eventos de logs.
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 10
Um LMS é capaz de suprir a necessidade de uma pequena aplicação até sistemas mais complexos com
grande volume de acessos e distribuídos.
19.2.1.!ARQUIVO LASTLOG
Arquivo binário que registra o horário da última vez que o usuário tentou acessar o sistema seja com ou
sem sucesso. O seu conteúdo muda a cada login e é reportado toda vez que o usuário entrar no sistema
ou o comando finger for executado. No Linux, estes registros devem ser explicitamente habilitados
configurando a variável LASTLOG_ENAB do arquivo /etc/login.defs.
É recomendável configurar as permissões deste arquivo para 644, tendo como dono o
usuário root.
Exemplos do comando:
lastlog -u nono
Irá informa o dia e a hora que o usuário nono logou no sistema pela última vez.
lastlog -t 3
Exibirá a lista dos usuários que logaram no sistema nos últimos 3 dias e informa o dia e a
hora do último acesso de cada um desses usuários.
19.2.2.!ARQUIVO UTMP/UTMPX
Estes arquivos registram informações relacionadas a usuários locais que encontram-se conectados ao
sistema nesse momento. Os dados contidos nestes arquivos são armazenados em formato binário.
Portanto, deverão ser lidos usando comandos específicos, tais como: who, whodo, write, finger e ps, os
quais reportam as informações contidas neste arquivo.
19.2.3.!ARQUIVO WTMP/WTMPX
Registram dados detalhados sobre uma determinada sessão de usuário. Da mesma forma que os
arquivos descritos anteriormente, os dados contidos nestes arquivos são armazenados em formato
binário e legíveis unicamente através de comandos do tipo: last, acctcom, etc. Recomenda-se configurar
as permissões destes arquivos para 644, tendo como dono o usuário root.
19.2.4.!ARQUIVO SULOG
Registra tentativas de execução do comando su, tenham sido bem sucedidas ou não. Recomenda-se que
este arquivo tenha como dono o usuário root e suas permissões de acesso configuradas para 600.
19.2.5.!ARQUIVO MESSAGES
Fonte: http://tinyurl.com/jkcgtj8
Arquivo que registra qualquer mensagem enviada ao console, tendo sido ela gerada pelo kernel do
sistema ou por algum mecanismo de logging tal como o syslog. Recomenda-se que este arquivo tenha
como dono o usuário root e suas permissões de acesso configuradas para 400.
19.2.6.!ARQUIVO LOGINLOG
Registra tentativas falhas de acesso a um sistema. No Linux, é preciso configurar a variável FAILED_LOG
do arquivo /etc/login.defs. Para gerar logs de entrada neste arquivo, é preciso indicar o número mínimo
de tentativas consecutivas sem sucesso. Por padrão no Linux este número é de cinco, mas ele pode ser
alterado. No Linux isto é feito através do arquivo /etc/login.defs (variável LOGIN RETRIES). Recomenda-se
configurar as permissões deste arquivo como 600, tendo como dono o usuário root.
19.2.7.!ARQUIVOS PACCT/ACCT
Estes arquivos registram comandos executados individualmente pelo usuário.
O mecanismo de logging que utiliza arquivos deste tipo é conhecido como process
accounting e deverá ser inicializado pelo usuário root.
Vale salientar que, usados em conjunto com o arquivo wtmp é possível fazer um rastreamento dos
horários em que tais comandos foram executados. No Linux, o processo de contabilidade poderá ser
ativado conforme descrito no documento: Process-Accounting (mini-HOWTO). Recomenda-se que estes
arquivos tenham como dono o usuário root e suas permissões de acesso configuradas para 600.
Segue uma lista não exaustiva dos arquivos de logs mais importantes (podem variar de
acordo com o sistema operacional);
/etc/mail/maillog = Arquivo que registra os logs do Servidor de E-mails;
/var/log/messages = Contém registros de acesso ao sistema e em alguns casos registros do
IPTABLES;
/var/log/httpd/(access, error ou agent.log) = Logs do Servidor Web Apache;
/var/log/lpr.log = logs de impressoras. Hoje são visadas por atacantes, pois geralmente
não recebem atualizações ou são sistemas embarcados baseados em Linux ou Windows;
/etc/log/daemon.log = Logs de serviços em geral;
/var/log/syslog: log do sistema;
/var/log/auth.log: log de autenticação;
/var/log/kern.log: log do kernel;
/var/log/cron.log: log crond;
/var/log/lighttpd: log de erro e acesso a Lighttpd;
/var/log/boot.log: registro de inicialização do sistema;
/var/log/mysqld.log: registro de banco de dados MySQL;
19.3.!APLICATIVOS
Abaixo citamos alguns aplicativos que auxiliam a leitura e análise de logs:
•! Glogg - http://glogg.bonnefon.org/ - (Linux/Windows)
Podemos definir auditoria como a medição de algo contra um padrão. Apesar de estarmos tratando de
Segurança da Informação, o conceito de auditoria pode ser aplicado em qualquer área, como qualidade,
ambiental, financeira, de conformidade etc. Quando tratamos especificamente de auditoria de SI,
podemos estar auditando o cumprimento de uma política de segurança, a eficácia de um novo sistema
de segurança (um firewall por exemplo), se um sistema está com todas as correções conhecidas
aplicadas, entre outros. Nesta aula, vamos tratar especificamente de auditoria de segurança, utilizando
ferramentas e técnicas para verificar se as implementações de segurança realizadas estão provendo o
nível de segurança especificado. Entre as técnicas utilizadas em auditorias, as mais comuns são a análise
de vulnerabilidades e os testes de penetração (penetration testing ou pentest).
É importante ressaltar que vamos tratar apenas da auditoria de dispositivos de segurança, sem entrar em
questões de políticas, análise de risco e outros tópicos relacionados à governança e normatização.
20.1.!AUDITORIA
Processo com um conjunto de atividades, formais e controladas, que são realizadas para a avaliação dos
procedimentos de controle e segurança vinculados ao processamento das informações, visando garantir a
qualidade no tratamento das informações e a integridade, confidencialidade e disponibilidade dos dados.
20.2.!ANÁLISE DE VULNERABILIDADES
Uma vulnerabilidade pode ser definida como uma brecha em um sistema
computacional.
Quando tratamos de programas (software), essas vulnerabilidades são muitas vezes chamadas de
bugs. Um sistema vulnerável pode ser um software, um sistema operacional, um roteador, um
protocolo ou até um hardware.
pois confiar na ferramenta pode levar à não aplicação de uma correção caso ela esteja desatualizada ou
mesmo não tenha sido atualizada para verificar uma vulnerabilidade específica.
Os principais objetivos da Análise de Vulnerabilidades são:
•! Providenciar uma nova solução de segurança como, por exemplo, o uso de um bom antivírus,
com possibilidade de update constante;
•! Alterar as configurações de softwares a fim de torná-los mais eficientes e menos suscetíveis a ataques;
•! Utilizar mecanismos para bloquear ataques automatizados (worms, bots, entre outros);
Documentar os níveis de segurança atingidos para fins de auditoria e conformidade com leis,
regulamentações e políticas.
Como novas falhas são encontradas todos os dias, uma boa ferramenta de análise de vulnerabilidades
deve ser constantemente atualizada, de modo que possa detectar as falhas mais recentes descobertas.
Existe atualmente uma série de ferramentas de análise de vulnerabilidades, gratuitas e comerciais.
Algumas ferramentas gratuitas / open source: Nmap, Nessus, OpenVas, Microsoft MBSA; comerciais:
Rapid7 NeXpose (www.rapid7.com ), eEye Retina (www.beyondtrust.com/products/retina-network-
security-scanner/ ), GFI LANguard (www.languard.com/ ), IBM Internet Scanner.
A seguir, detalharemos o uso da ferramenta Nessus, que é gratuita para fins não comerciais e pode ser
obtida livremente na internet
20.3.!NESSUS
O Nessus é uma ferramenta de análise de vulnerabilidades, atualmente mantida
pela empresa Tenable Network Security. Apesar de originalmente ser uma
ferramenta open source, hoje a sua licença permite o uso gratuito apenas
residencial e para treinamento.
O uso comercial necessita da aquisição de uma licença específica. Por conta dessas mudanças, foi criado
um novo produto, a partir da última versão livre do Nessus, atualmente conhecido como OpenVAS.
Ele foi criado em 1998, como uma alternativa open-source aos vários softwares de
segurança comerciais da época, busca ser o mais atualizado possível e simples de usar,
sendo dividido em “Nessusd” (servidor) e “nessus” (cliente), ambos com versões para
sistemas operacionais Linux e Windows.
Possui arquitetura cliente/servidor e baseada em plug-in. Cada plug-in é utilizado em uma
vulnerabilidade de segurança que é enquadrada por órgãos competentes destinados a
lançarem boletins de segurança a respeito de falhas em sistemas de informação.
O Nessus pode ser utilizado para descobrir worms e backdoors instalados em estações de
trabalho e servidores. A ferramenta tem atualização frequente e suas funcionalidades
incluem relatórios completos, scanning de um grupo de hosts e buscas de
vulnerabilidades em tempo real.
Com sua arquitetura cliente-servidor o Nessus possui do lado servidor compatibilidade com os sistemas
operacionais: Windows, Mac OS, Linux, FreeBSD e Solaris. Do lado cliente o Nessus disponibiliza acesso via https.
Com isso, é possível utilizá-lo em um navegador de qualquer sistema operacional. A Tenable também
disponibiliza clientes para celulares com aplicativos para os sistemas operacionais iOS e Android OS.
Algumas características do Nessus são iguais às características citadas do OpenVAS, pois, como citado
anteriormente, este é uma derivação dos códigos fontes do Nessus.
A verificação de vulnerabilidades feita pelo Nessus também utiliza programas escritos em NASL - Nessus Attack
Scripting Language – conhecidos como plugins. Atualmente o scanner de vulnerabilidades conta com mais de
50.000 plugins como é possível verificar na figura abaixo. A lista de plugins pode ser atualizada através da
inscrição nos serviços ProfessionalFeed (para uso comercial) e HomeFeed (uso doméstico). Na figura está
selecionado o plugin para verificar a vulnerabilidade de SQL Injection em paginas web.
20.3.1.!INSTALAÇÃO
A instalação se da de forma fácil e rápida, podendo ser realizada a partir de um pacote deb para
distribuições baseadas em Debian.
Apos a instalação, é obrigatória a atualização dos plug-ins de segurança, o que demora um tempo
razoável. Duvidas podem ser consultadas no site do desenvolvedor, onde disponibilizado o
manual completo em português com passos de instalação e configurações.
20.3.2.!POLÍTICAS
Política no Nessus consiste em uma série de opções de configurações já relacionadas para realização de
uma varredura para identificação de vulnerabilidades. As opções são, entre outras, as seguintes:
•! Parâmetros que controlam aspectos técnicos da varredura, como intervalos de tempo, número
de hosts, tipo de scanner de porta etc.
•! Credenciais para varreduras locais (por exemplo: Windows, SSH), varreduras autenticadas de
bancos de dados Oracle, HTTP, FTP, POP, IMAP ou autenticação pelo Kerberos.
•! Especificações individualizadas de varreduras por família ou plugin.
O Nessus é distribuído com várias políticas padrão criadas pela Tenable Network
Security, Inc. As políticas são fornecidas como modelos para ajudá-lo a criar
políticas adequadas à sua organização ou para serem usadas sem modificações
para varreduras básicas dos seus recursos.
Leia e entenda as políticas padrão antes de utilizá-los em varreduras com os seus recursos.
Varredura de rede Esta política foi projetada para a verificação de hosts externos e que
externa normalmente apresentam menos serviços à rede. Os plugins relacionados a
vulnerabilidades conhecidas de aplicativos da Web (as famílias de plugins CGI
Abuses e CGI Abuses: XSS) são ativados com a aplicação desta política. Além
disso, todas as 65.536 portas (inclusive a porta 0 por meio de plugin separado)
são examinadas em cada destino.
Varredura de rede Esta política foi projetada levando-se em conta a melhoria do desempenho, pois
interna pode ser usada para verificar redes internas de grande porte com muitos hosts,
vários serviços expostos e sistemas incorporados, como impressoras. As
varreduras de CGI estão desabilitadas e um conjunto de portas padrão é
examinado, mas não todas as 65.535.
Testes de aplicativos Esta política de varredura é usada para verificar os sistemas e fazer com que o
da Web Nessus detecte vulnerabilidades conhecidas e desconhecidas nos aplicativos da
Web. Os recursos de “difusão” do Nessus são ativados com esta política, o que
fará com que o Nessus detecte todos os websites descobertos e verifique as
vulnerabilidades presentes em cada um dos parâmetros, incluindo XSS, SQL,
injeção de comandos e vários outros. Esta política identificará os problemas via
HTTP e HTTPS.
Estas ferramentas têm amadurecido e a maioria das vulnerabilidades existentes hoje já está endereçada e
é bem resolvida. Além disso, como os aplicativos web continuam a crescer em tamanho, o teste manual
está ficando cada vez mais difícil. Em muitas organizações ele se torna praticamente impossível de ser
aplicado, pois seria necessária a dedicação de muito tempo, esforço físico e dinheiro.
Por exemplo, um aplicativo pode direcionar o usuário a partir do ponto A ao ponto B e ao ponto C, onde
o ponto B é uma validação de segurança. A revisão manual do aplicativo pode mostrar que é possível ir
diretamente a partir do ponto A ao ponto C, ignorando totalmente a validação de segurança.
Tanto os testes manuais quanto os automatizados são métodos exaustivos de identificação de
vulnerabilidades em aplicações web. Cada método tem suas forças e fraquezas inerentes e ambos podem
ser usados para descobrir vulnerabilidades críticas de segurança.
Combinados, eles formam a base onde estão todas as suas aplicações que rodam no computador.
Comparativamente falando, o Sistema Operacional Linux e seu kernel são razoavelmente seguros. Um
grande número de opções de segurança estão inclusas no kernel e uma grande variedade de ferramentas
e configurações de segurança open-source já estão inclusas nas mais variadas distribuições.
Adicionalmente, o Linux oferece excepcional controle sobre quem, como e quais recursos e aplicações os
usuários podem ter acesso.
Normalmente, “o problema está nos detalhes”. A segurança do sistema depende de uma enorme quantidade
de elementos de configuração em nível, tanto de Sistema Operacional quanto de aplicações. O próprio
Sistema Operacional e seu kernel são bastante complexos, e sua correta configuração não é um processo
trivial. Sistemas Operacionais baseados no kernel Linux possuem infinitas configurações, e cada ajuste pode
causar sérios problemas de segurança. Vulnerabilidades e falhas de segurança não são fáceis de encontrar.
Para estar apto para numerar esses pontos, precisamos adquirir sólidos conhecimentos sobre os
requisitos básicos de segurança do nosso Sistema Operacional e seu núcleo.
21.1.!HARDENING – O QUE É
De acordo com a Wikipedia, “hardening é um processo de mapeamento das ameaças, mitigação dos
riscos e execução das atividades corretivas – com foco na infraestrutura e com o objetivo principal de
torná-la preparada para enfrentar tentativas de ataque”.
Já segundo a ITSecurity.com,
Esse processo implica realizar várias configurações, instalação de pacotes destinados a algum
procedimento de segurança e modificação de permissionamento com o objetivo de melhorar e reforçar a
segurança do ambiente.
Essa ideia fica mais clara se for considerada a tradução como “fortalecimento”, que do ponto de vista
empírico pode ser explicado como um conjunto de configurações e melhoramento, ajustes finos que vão
gerar controles para que o sistema torne-se mais seguro.
Administradores sem muita experiência em segurança preparam seus servidores com uma instalação básica e
depois que suas aplicações já estão funcionando, acabam deixando da maneira que ficou, pois a possibilidade
de fazer com que aplicação pare de funcionar realizando um procedimento de segurança é grande.
Os Sistemas Operacionais modernos trazem muitos “controles” para melhorar a segurança e gerenciar
melhor o uso dos recursos, mas quando se trata de Sistema Operacional moderno, desenhado para
prover serviços de redes, é muito comum que esses controles estejam desabilitados. Uma prova disso é
que a maioria das distribuições são vulneráveis a um ataque de fork bomb (código que tenha a função e
a capacidade de se replicar indefinidamente), ou seja, um ataque simples que consiste em exaurir os
recursos, abrir um processo após o outro até não termos mais recursos e o servidor travar.
•! “:()” é a definição da função chamada “:”, uma função que não aceita
argumentos.
A sintaxe para a função via Bash é:
:(){ :|: & };:
•! “&” coloca a chamada de função em segundo plano para que cada processo-
filho criado não morra e fique consumindo recursos do sistema;
Um ataque de fork bomb é motivo suficiente para se pensar em um hardening. Entretanto, no momento
que se inicia a implementação das técnicas de hardening, é necessário pensar em três fatores: segurança,
risco e flexibilidade, como observado na figura a seguir:
O desafio é saber dosar muito bem esses três fatores para definir um conjunto de controles que possam
proporcionar ao sistema equilíbrio entre produtividade e segurança. Muitas perguntas podem ocorrer
durante o processo, como:
Outro grande desafio é que os fatores “segurança” e “flexibilidade” ou mesmo “segurança” e “risco” são
inversamente proporcionais e consequentemente impactam diretamente no risco. É um fato que não é possível
ter segurança 100%, mas, por outro lado, quanto mais segurança, menores serão o risco e a flexibilidade.
Uma vez que não é possível ter 100% de segurança, deve-se elaborar o maior número possível de
controles para tornar um Sistema Operacional mais seguro. Dessa forma, o hardening permite mitigar
possíveis vulnerabilidades.
!! Com metodologia
Não existe regra direta devido ao fato de que depende de cada situação e de acordo com o tipo de necessidade.
Por isso, toda implementação de um servidor deve ter seu planejamento de segurança bem definido antes de
sua instalação, ou seja, a elaboração do baseline que formalizará o hardening é fundamental.
Deve-se lembrar que o conjunto de técnicas e ferramentas para implementação de um hardening,
normalmente utilizadas em um Sistema Operacional Linux sejam interessantes do ponto de vista de
garantia dos serviços e realmente agreguem à segurança. Não será incomum o fato de que um conjunto
de ações pré-estabelecidos em uma baseline não se apliquem em todas as situações. Cada caso é um
caso. É preciso analisar e descobrir que controles serão mais adequados para a necessidade em questão e
também qualificar o quanto de segurança foi estabelecido no respectivo contexto.
A segurança na camada do Sistema Operacional é iniciada no hardening, mas não termina nele. E deve
ser aderente, ou seja, estar em conformidade com as políticas das empresas.
Diante disso, é conveniente lembrar que ferramentas são importantes, mas não são
o fim e sim o meio para a execução dos procedimentos do processo, que, somados
a outras ações, como a capacitação das pessoas envolvidas, é fator determinante
de sucesso, pois a imperícia é um inimigo de qualquer trabalho. Explicando de um
ponto de vista prático, esse processo envolve:
•! Definir controles para limites do uso dos recursos pelas aplicações e/ou usuários;
21.2.!PÓS-INSTALAÇÃO
Após o planejamento da instalação e sua execução, o sysadmin vai iniciar a execução do hardening, que
também foi previamente planejado no Baseline. É fato que um bom processo de hardening tem como
princípio “menor recurso e menor privilégio”.
Um bom exemplo da aplicação desse princípio é verificar a lista de pacotes instalados, pois serão
identificados possíveis pacotes que não são necessários para a finalidade do servidor ou aplicações que
demandarão ter o permissionamento revisto.
A CIS Security também cita a remoção de programas que não estão em uso e ressalta que tais programas
podem ser usados por um exploit (código que explora a vulnerabilidade de um programa para ganhar um
acesso não autorizado ao sistema) para um ataque tanto local quanto remoto, dependendo do programa.
Exemplos de programas que podem ser desnecessários, dependendo do tipo de servidor:
•! netcat (nc): “canivete suíço” que possibilita transferência de malware ou até mesmo criar backdoors;
Caso a remoção do pacote seja a melhor decisão, esta pode ser realizada da seguinte
forma:
# apt-get remove --purge wget
Uma alternativa é rever o permissionamento dos binaries com o comando chmod, deixando-os apenas
com direitos para o root e em casos extremos definir regras via sudo para utilização desse aplicativos,
considerando sempre as questões de segurança. O sudo é um recurso que pode ser útil, embora deva ser
usando sempre com cautela.
Mas uma coisa deve ser avaliada: será que todos esses binários que já estão com a
permissão de Suid bit serão usados por algum usuário comum do sistema? Será
que os usuários comuns do sistema precisam de todos esses comandos à
disposição? Será que no servidor em questão usuários comuns terão shell válida?
Demanda-se que o administrador fique atento para esses detalhes.
Como o sistema possui muitos binários com Suid bit, problemas como a combinação de shells com Suid
bit podem passar despercebidos. Dessa forma, o conceito de “menor privilégio e menor recurso” deve
sempre ser um balizador para decisões.
Então, o que pode ser feito? Retirar todas as permissões de Suid bit do sistema e somente deixar as
permissões para os binários que sejam fundamentais para operações de um determinado usuário. No
entanto, não existe regra geral: haverá casos diferentes, pois os binários que julgam-se importantes para
um servidor firewall, por exemplo, podem não ser para um servidor de e-mail.
Para a remoção de todas as permissões de Suid bit dos binários, é necessário fazer uma
pesquisa no sistema e gerar lista com todos para melhor análise. Nesta exemplificação será
criado um diretório chamado “teste”, dentro do /root para que seja gravada a lista de
arquivos com Suid bit, que será gerada pelo comando find.
# cd /root
# mkdir teste
# find / -perm -04000 > /root/teste/lista.suid
O número 4000 representa a permissão de Suid bit. Embora seja passado o parâmetro -04000, a parte
importante são os quatro últimos dígitos. Os três zeros são as permissões-padrão do sistema (0 para
usuário, 0 para grupo e 0 para outros), e o 4 representa a permissão Suid bit. Podemos ter no lugar do 4 o
número 2, que é o direito especial denominado Sgid bit, ou 1, que representa stick bit.
Vamos fazer uma listagem detalhada em um desses binários para ver como a permissão de
Suid bit é representada:
# ls -l /bin/su
Nas permissões do usuário, é representado um s no lugar do x para indicar Suit bit. Isso
representa que a permissão de Suid bit está ativada, mas a permissão de execução (x) é
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 26
•! -v: é o modo verbose (mostra o que está sendo feito pelo comando).
# ls -l /bin/su
Logo após remover o Suid bit de todo o sistema, basta definir a permissão de Suid bit
somente para os dois binários que julgarmos realmente necessário.
# chmod +s /usr/bin/passwd
# chmod +s /bin/su
# ls -l /usr/bin/passwd
# ls -l /bin/passwd
Pode ser que para um determinado servidor só o passwd e o su não sejam suficientes. Provavelmente
outros binários precisem estar com o Suid bit ativado. Cabe ao administrador analisar o que será
necessário para cada tipo de serviço. Uma solução alternativa ao Suid bit é a adoção do comando sudo.
21.4.3.!EXECUÇÃO DO PROCEDIMENTO
A primeira opção do mount que será mostrada é o nosuid, que faz com que binários com
permissão de Suid bit não tenham efeito na partição na qual estão definidos. Para um exemplo
prático, adicione um usuário:
# adduser teste
Faça uma cópia das shells do seu sistema para o diretório “home” desse usuário e atribua
às shells a permissão de Suid bit.
# cp /bin/*sh* /home/teste
# chmod 4755 /home/teste/*sh*
Efetue login em outro terminal com um usuário comum que foi criado anteriormente e
tente executar uma dessas shells.
$ cd /home/teste
$ ./sh
# id
Na saída do comando id, pode-se ver que esse usuário conseguiu permissões de root.
É recomendável, para fins de melhor conhecimento do sistema, que esse teste seja feito em todas as shells
disponíveis. Assim, é possível estimar melhor o poder de uma ameaça em um contexto similar a esse.
Para resolver isso, basta remontar a partição onde está montado o “/home”, mas
com a opção de nosuid.
# mount -o remount,rw,nosuid /home
# mount
O comando mount sem parâmetros nos mostra quais as partições estão montadas e suas respectivas opções.
Com a partição remontada com nosuid, faça o teste novamente e veja que as shells continuam com o Suid bit
ativado. Entretanto, quando forem executadas, não vão mais possibilitar o acesso no nível de root.
Outra opção interessante de montagem que pode ser usada é o noexec, que impossibilita a execução de
qualquer binário ou arquivo executável dentro da partição na qual essa opção está ativada. Essa opção
pode ser aplicada a todos os diretórios que contenham binários necessários às funções do sistema. Um
clássico exemplo é aplicá-la a diretórios como “/home” e “/tmp”. Crackers podem se aproveitar do
diretório “/tmp”, onde por padrão qualquer usuário pode escrever, para introduzir backdoors ou qualquer
outro programa malicioso para tentar ter acesso completo a um sistema comprometido.
Para melhor entendimento, pode-se fazer o mesmo o que feito com o nosuid. Basta
remontar a partição com a opção noexec e tentar executar umas das shells que
foram copiadas para o “/home”.
# mount -o remount,rw,noexec /home
# mount
# ./sh
Essa simulação mostra que não é possível executar a shell. Na tentativa de executá-la, recebemos a
mensagem de “permissão negada”, ou seja, nessa partição, nada poderemos executar.
A terceira opção que podemos usar é a noatime, que não é especificamente uma opção para aumentar a
segurança, mas sim para melhorar a performance, pois faz com que o kernel do Linux execute uma rotina
a menos quando o noatime está definido e destinado à atualização do tempo de acesso de arquivo. Veja
um exemplo para entender como funciona:
A saída desse comando nos retorna informações importantes, nas quais destacam-se as informações do
Access (atime), do Modify (mtime) e do Change (ctime).
São criados dois arquivos, um no diretório “/root” e outro no “/tmp”, assumindo que o “/root” e o “/tmp”
estão em partições diferentes.
# touch /root/teste1
Depois da criação dos dois arquivos, são consultadas as informações de metadados, mas com foco nas
informações do Access, do Modify e do Change.
# stat /root/teste1
# stat /tmp/teste2
Agora que as informações já foram coletas, basta fazer os testes e ver o que será mudado. O próximo
procedimento consiste em visualizar o conteúdo dos arquivos com o comando cat, supondo que eles
tenham algum conteúdo, e logo em seguida vamos verificar novamente o status dos arquivos.
# cat /root/teste1
# cat /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
Olhando com atenção, será verificado que o tempo do Access (atime) dos arquivos estão diferentes, ou
seja, quando foi visualizado o conteúdo dos arquivos, evidentemente foi feito um acesso a ele, mas
somente de leitura do seu conteúdo. Por consequência, o seu tempo de acesso (Access) foi modificado.
O experimento ilustra um teste de modificação de permissão com o comando chmod e a consulta das
informações de metadados com o comando stat, para verificar como e sistema guarda esse tipo de
informação.
# chmod 777 /root/teste1
# chmod 777 /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
É percebido que o tempo Access não foi modificado, mas o Change (ctime) foi alterado. Assim sendo,
quando for mudada uma informação de metadados, como, por exemplo, uma permissão de um arquivo,
o Change será mudado, registrando a última data e a hora da mudança.
Outro experimento para avaliar o que é modificado ao inserir um conteúdo nesses arquivos, ou seja, que
tipo de metadados são modificados considerando as informações do experimento anterior.
# echo abc > /root/teste1
# echo abc > /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
É observado que o Change foi alterado novamente, mas não alterado sozinho: o Modify (mtime) também
foi, pois agora não ocorreu só uma mudança de metadados (no caso o tamanho), mas uma alteração no
conteúdo do arquivo.
Com esses experimentos foi possível exemplificar a diferença entre o Access, o Modify e o Change. Agora
já conseguimos fazer a alteração na partição e ver o que será melhorado.
Para essa exemplificação, a partição vinculada ao diretório “/tmp”, que será usada para demonstrar que
basta remontar a partição com a opção noatime para desligar esse controle do sistema.
# mount -o remount,rw,noatime /tmp
# mount
Com a partição remontada com a opção noatime, deve-se listar o conteúdo dos arquivos e em seguida
verificar o que foi modificado em relação às informações de metadados dos arquivos.
# cat /root/teste1
# cat /tmp/teste2
# stat /root/teste1
# stat /tmp/teste2
Será observado que o Access (atime) do arquivo teste2 dentro do “/tmp” não será modificado,
justamente por causa da opção noatime, que foi parametrizada na remontagem da partição.
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 30
Isso pode ser muito útil para diretórios de logs, onde o acesso é feito constantemente pelo sistema, uma
vez que arquivos de logs são atualizados constantemente.
Dessa forma, com “noatime” parametrizado em uma partição, o kernel deixa de executar uma rotina de
atualização dos metadados de tempo de acesso, o que ajuda na performance do sistema. Outro ponto
relevante é que o tempo de Access (atime) de um arquivo em uma partição com noatime sempre será o
primeiro tempo registrado, ou seja, a data de acesso no momento da criação do arquivo. Nesse contexto,
mesmo com a mudança do tempo de modificação (mtime), o administrador terá o tempo de Access (atime)
como data efetiva da criação, e o tempo de modificação (mtime) como tempo da última modificação.
A tabela da figura a seguir é um bom exemplo da maneira com a qual um administrador pode planejar a
aplicação dessas opções especiais de montagem separando de forma estratégica diretórios importantes
com regras de montagens diferentes.
Para que as regras de montagem fiquem definitivas no sistema, devem ser feitos ajustes no “/etc/fstab”.
Para validar, é interessante que se reinicie o sistema, para que todas as modificações entrem em vigor e
tenhamos a certeza de que nenhum erro foi cometido durante a parametrização do “/etc/fstab”. Isso, é
claro, se as regras de montagem não são efetuadas durante a instalação.
Com essas opções ativadas, é importante lembrar que podemos ter um pequeno problema quando
formos instalar um novo pacote com o apt-get ou dpkg. Esses utilitários, em muitos casos, executam e
gravam informações nos diretórios “/var” e “/tmp” e, caso estejam parametrizados com a opção noexec,
nada poderá ser instalado corretamente, gerando erros na gestão de pacotes. Então, podemos habilitar
as regras de montagem no momento em que formos colocar o servidor em produção. Uma alternativa é
criar um script bem simples com os comandos para remontar essas partições e poder instalar os pacotes.
# vi /root/noexec#!/bin/bash
case $1 in
start)
mount -o remount,rw,noexec /var
mount -o remount,rw,noexec /tmp
mount
echo “Partições SEM permissão de execução”
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 31
;;
stop)
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
Para ativar a regra de noexec na partição:
# ./noexec start
O script vai deixar as partições sem permissão de execução, o que será útil quando formos instalar os
outros pacotes. Para voltar à partição a noexec, basta digitar:
# ./noexec stop
O script vai permitir novamente que possa ser executado algo dentro dessas partições, possibilitando a
instalação de novos pacotes. Para melhorar, pode-se copiar esse script para um diretório do PATH do root. Por
exemplo, o “/sbin”. Dessa maneira, será possível executar o script de qualquer diretório do sistema.
Para que as regras de montagem fiquem definitivas no sistema, devem ser feitos ajustes no “/etc/fstab”.
Para validar, é interessante que se reinicie o sistema, para que todas as modificações entrem em vigor e
tenhamos a certeza de que nenhum erro foi cometido durante a parametrização do “/etc/fstab”. Isso, é
claro, se as regras de montagem não são efetuadas durante a instalação.
Com essas opções ativadas, é importante lembrar que podemos ter um pequeno problema quando
formos instalar um novo pacote com o apt-get ou dpkg. Esses utilitários, em muitos casos, executam e
gravam informações nos diretórios “/var” e “/tmp” e, caso estejam parametrizados com a opção noexec,
nada poderá ser instalado corretamente, gerando erros na gestão de pacotes. Então, podemos habilitar
as regras de montagem no momento em que formos colocar o servidor em produção. Uma alternativa é
criar um script bem simples com os comandos para remontar essas partições e poder instalar os pacotes.
# vi /root/noexec#!/bin/bash
case $1 in
start)
mount -o remount,rw,noexec /var
mount -o remount,rw,noexec /tmp
mount
21.4.4.!SEGURANÇA NO TERMINAL
Em muitos momentos, um administrador pode inicialmente concentrar seus esforços para mitigar a
possibilidade de ameaças remotas. Mas se o esforço for exclusivo para esse ponto de vista, deve-se
assumir que o todo não é mitigado, pois servidores que não estão conectados diretamente à internet
também correm riscos.
Existem vários tipos diferentes de vulnerabilidades que possibilitam ameaças, um exemplo é a
possibilidade de um cracker conseguir passar pela segurança de perímetro definida por firewalls através
de um ataque a uma vulnerabilidade de um navegador (ataque do tipo side client) e, através da estação
de trabalho comprometida, chegar até outros servidores.
Outra preocupação importante é com a ameaça interna. Por exemplo, quando um funcionário mal-
intencionado tem acesso local (físico) a um servidor. Isso pode acontecer durante a ausência do administrador
que, ao sair de sua sala, se esquece e deixa o terminal do servidor com o login ativo como usuário de root.
Para esse tipo de situação, pode-se aplicar alguns procedimentos para atribuir um grau de “segurança
física” ao servidor, sejam eles destinados a serviços que estarão disponíveis na internet ou dedicados à
rede local. Mas em momento algum parametrizações no sistema podem substituir um aparato de
segurança física, como uma sala de CPD/Datacenter com controle biométrico, apenas vão agregar mais
segurança ao todo.
Em algumas distribuições Linux que ainda usam o /etc/inittab, essa parametrização pode
ser feita editando o /etc/inittab e comentando a linha a seguir:
# ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
Pode-se também mapear as teclas para executar um outro comando qualquer, por
exemplo:
# ca:12345:ctrlaltdel:/bin/echo “Esse recurso foi desabilitado”
Depois das alterações, deve-se ativar as mudanças realizadas no arquivo /etc/inittab.
Isso é feito com o comando:
# init q
No entanto, existem exceções: um bom exemplo são as versões mais recentes do Ubuntu,
que embora seja uma distribuição Like Debian, possui configuração diferente para esse
procedimento. É necessário editar o arquivo # vi /etc/init/control-alt-delete.conf. Comente a
linha a seguir:
#exec shutdown -r now “Control-Alt-Delete pressed”
Para essa mudança ser efetivada, execute este comando:
# initctl reload-configuration
•! account: essa interface verifica se uma conta tem autorização para usar o sistema, o que pode
significar verificar se existe, se está vencida ou se tem acesso permitido em determinado horário,
vinculada a um grupo ou através de determinado serviço;
•! auth: interface que serve para autenticar usuários. Isso pode ocorrer através de senhas, banco de
dados ou outro mecanismo. Além disso, esses módulos também têm permissão para definir
credenciais, como membros de grupo ou mesmo baseados em tokens Kerberos;
Mas será que esses dois arquivos possibilitariam a criação de um controle definindo
o horário em que um determinado usuário pode realizar um login? Ou o número
de terminais simultâneos que um usuário pode fazer o login?
A resposta para essas perguntas é: não! Mas o PAM pode fazer isso com os seus módulos que são
plugados ao programa de login. O PAM não faz só isso: ele possui muitos módulos com funções bem
diferentes, e não é somente ao programa de login que se aplica; o PAM já tem suporte a muitos
programas. Dessa forma, o uso do PAM em um processo de Hardening deve sempre ser considerado.
Para certifica-se se um determinado programa tem suporte a PAM, é possível consultar se este foi
compilado com suporte a libpam.so.
# ldd /bin/su
# ldd /bin/login
# ldd /usr/sbin/sshd
Como é possível saber se um determinado programa tem suporte ao PAM? Outra forma é acessar o
diretório /etc/pam.d. Dentro desse diretório, deve existir um arquivo com o nome do programa. No
entanto, essa não é uma regra absoluta.
Por exemplo, vejamos se existe um arquivo chamado login dentro do /etc/pam.d.
# ls -l /etc/pam.d
Veja como exemplo o arquivo login. Existem muitos outros também.
21.4.8.!SINALIZADORES DE CONTROLE
Para cada interface, o arquivo de configuração especifica um sinalizador de controle, que determina o
que o PAM fará em seguida, com base no resultado da verificação realizada. Existem quatro sinalizadores
de controle: optional, required, requisite e sufficient:
•! optional: os módulos opcionais não afetam o sucesso nem a falha da autenticação, a menos que
não haja outros módulos para determinada interface;
•! required: para que o usuário possa continuar, deverá ser retornado um resultado de sucesso. A
notificação de usuário não ocorre até todos os módulos para uma interface estarem satisfeitos;
21.4.9.!CAMINHO DO MÓDULO
O caminho do módulo informa ao PAM a localização do módulo. Normalmente, é um nome de caminho
completo, que contém o nome e a extensão do módulo, como /lib/security/pam_unix.so. Se não for
especificado um caminho, o PAM assume como padrão /lib/security para poder localizar o módulo.
Além de ser parte da maioria das distribuições Linux, esse recurso também é encontrado em outros
sistemas, como Solaris.
21.4.10.!PAM_TIME
É uma boa prática em sistema Like Unix não deixar o login como root habilitado para conexão direta. O
ideal é a execução do “login” com um usuário comum inicialmente, e depois obter acesso como root
quando precisar executar alguma tarefa administrativa. Usando um conceito de autenticação em duas
camadas, o que gera uma contramedida contra ataques de força bruta, destinado ao usuário root.
Outra forma interessante para criar um controle para a conta do usuário root é “descomentar” a linha que
refere-se a pam_time.so para bloquear o login de root utilizando o conceito baseado horário de acesso.
Essa linha está tratando da conta dos usuários (account) com o módulo pam_time.so. Até aqui essa linha não
está fazendo nada, pois a maioria dos módulos do PAM depende de um arquivo de configuração adicional.
Onde:
•! !Al0000-2359: indica o horário permitido. O caractere “!” estabelece que aquele horário não é
permitido.
Sintaxe: services;ttys;users;times
Com essa configuração, está definido que o root não pode efetuar login em nenhum terminal, em
nenhum dia ou horário. Dessa maneira, cria-se um controle que bloqueia a usuário root para que este
não tenha acesso direto ao “login” do sistema.
Para validar o controle, basta tentar realizar um login em outro terminal como root, o que não deverá
ocorrer. Todavia, essa proposta imagina que haverá um usuário definido que terá acesso ao recurso login
e, a partir dele, será permitido usar o comando su ou sudo para usar a conta do root.
21.4.11.!PAM_LIMIT
A seguir será mostrado como definir uma política para não permitir que um usuário faça login em mais
de um console, consecutivamente com a utilização da biblioteca pam_limits.so.
Primeiro é preciso habilitar o módulo que vai possibilitar a utilização desse recurso. Para
isso, é necessário editar o /etc/pam.d/login e inserir a linha a seguir:
# vi /etc/pam.d/login
session required pam_limits.so
Com o módulo habilitado, temos de editar o arquivo de configuração adicional desse
módulo. Na sequência, deve-se ir até o diretório /etc/security, editar o arquivo limits.conf e
inserir a seguinte linha:
# vi /etc/security/limits.conf
usuário hard maxlogins 1
Com isso, é criado um controle que limita o usuário para que utilize somente um terminal. Para testar,
basta executar o “login” em um terminal com o usuário e tentar efetuar login em outro simultaneamente.
Outra utilização da biblioteca pam_limits.so é a parametrização para limitar os processos dos usuários ou
um grupo, o que é importante para a execução de um sistema estável.
Nessa parametrização, ficou definido que membros de um grupo de estudantes poderão abrir 150
processos; membros do grupo sysprinters, 100; e sysop, 200 processos. Já o usuário testeadmin poderá
criar até 300 processos. Todavia, esse tipo de configuração deve ser bem avaliado, para que seja
dimensionado o número de processo ideal.
21.4.12.!PAM_WHEEL
Nessa exemplificação, será usado como exemplo um usuário denominado toor e um grupo denominado
“administradores”, feitos para criar mais uma camada de controle com o objetivo de aumentar ainda mais
a segurança na autenticação:
# adduser toor
# groupadd administradores
# usermod –G toor administradores
A proposta é somar ao procedimento de limitação de “logins”, já mencionado, uma política que não
permita o uso do comando su por qualquer usuário, possibilitando o uso do su somente para os usuários
do grupo administradores.
Essa configuração vai será pouco diferente das outras, pois não precisa de um arquivo de configuração
adicional. Basta limitar a utilização do programa su, com a edição do arquivo su, que está dentro do
diretório /etc/pam.d.
# vi /etc/pam.d/su
auth required pam_wheel.so group=administradores
Essa configuração trata a autenticação do usuário (auth) com o módulo pam_wheel.so, utilizando o
grupo administradores. Uma vez parametrizado, somente usuários que pertencerem ao grupo
administradores é que poderão usar o comando su.
Para testar, execute o “login” com o usuário toor em um terminal e com o tux em outro. Então é necessário
tentar fazer o su com os dois usuários. Caso as configurações tenho sido feitas de forma correta, será observado
que somente o usuário toor conseguirá, pois só ele pertence ao grupo administradores.
Por questões de segurança, toda a atividade do comando su deve ser monitorada. Os procedimentos a
seguir servem para registrar em arquivo de log o uso do comando su pelos usuários.
Para validação, deve-se fazer um teste e usar em paralelo o comando tail para melhor visualização do log,
podendo-se desviar a saída padrão do arquivo para ver o conteúdo do arquivo de log em tempo real,
para um determinado terminal. No exemplo foi escolhido o terminal 12.
# tail -f /var/log/sulog > /dev/tty12 &
Na sequência, devemos efetuar login com o usuário toor e usar o comando su para alternar para o
usuário root.
$ su
Feito isso, visualize os registros do log no terminal 12.
Com alguns ajustes nos arquivos de configuração do PAM, é possível limitar bastante os privilégios
comuns e até mesmo limitar o próprio root, o que em muitas situações pode ser útil. Sendo também
possível fazer essas e outras configurações utilizando o PAM, o que ajuda um sysadmin a ter grande
controle e mostra que o uso do recurso PAM é uma grande ferramenta para gerenciar privilégios.
Para conhecer mais sobre Hardening Linux e como fazer assista aos vídeos:
http://tinyurl.com/z2btjtf
http://tinyurl.com/jdkzv5h
http://tinyurl.com/j44zsoq
http://tinyurl.com/hspcpgx
http://tinyurl.com/jdwo4p6
Prevenir acesso não autorizado a dados sensíveis é essencial em qualquer ambiente em que múltiplos
usuários têm acesso aos recursos físicos ou via rede. Um sistema operacional deve ser configurado de
forma segura antes de ser exposto em uma rede pública não controlada, como o caso da internet. Este
processo de reforçar a segurança é chamado de hardening.
Apesar de muito importante, o administrador de segurança não deve confiar inteiramente na segurança
do servidor após o hardening, pois alguma configuração insegura pode ter passado despercebida, ou
alguma nova vulnerabilidade, desconhecida quando o hardening foi implantado, podendo ter afetado o
servidor em questão. Seguindo o princípio da defesa em profundidade, recomenda-se que o servidor seja
ainda protegido por outros recursos, como firewalls, proxies reversos, IDS (HIDS e NIDS) e IPS.
Por ser uma máquina com serviços públicos, essa será a primeira barreira a ser vencida por um invasor
para tentar obter acesso aos sistemas da rede privada. q Existem várias implementações possíveis de
bastion hosts, de acordo com os serviços que ele oferece. Alguns exemplos:
•! Firewall gateways
•! Servidores web
•! Servidores FTP
•! Transportadores de e-mail.
No caso, um bastion host pode oferecer mais de um serviço, conforme as topologias já discutidas.
•! Configurar adequadamente os registros de log do sistema para que possam identificar possíveis
ataques ou atividade suspeita.
•! Evitar a instalação de aplicativos não necessários e/ou notadamente vulneráveis como Flash, PDF
Viewers, Java, entre outros.
Podemos utilizar uma ferramenta que acompanha o sistema operacional: netstat, ou ferramentas adicionais
como o TCPview da suíte Sysinternals. Através do netstat e do TCPview, verificamos as portas abertas no
servidor para localizar e desabilitar o serviço em questão, ou filtrar a porta. Cada serviço de rede presente em
um servidor pode escutar uma porta, TCP ou UDP, para receber conexões de outros servidores ou clientes.
Alguns desses serviços são importantes para o bom funcionamento do servidor, e nem sempre podem ser
desabilitados. Quando verificamos as portas abertas em uma configuração padrão de um servidor Windows,
vemos que existe uma série de portas que são abertas por padrão no sistema.
Felizmente, muitos sistemas operacionais permitem que seja configurado um filtro de pacotes para controlar
as portas que estarão disponíveis para serem conectadas por hosts externos. A versão padrão do Windows XP,
2003, 2008 e 7 trazem no próprio sistema operacional um aplicativo para controlar o filtro de pacotes. No caso
específico do XP e do 2003, o filtro de pacote é mais simples, o que justifica o uso de aplicativo de terceiros
para melhor controle do filtro, como por exemplo o Zone Alarm, da Check Point.
Lembre-se de que essa filtragem é local, e não deve ser utilizada para substituir uma filtragem de
perímetro, propriamente feita através de um firewall, mas apenas como um mecanismo adicional de
segurança (defesa em profundidade). Devemos observar também que caso haja muitos servidores
disponibilizando serviços públicos, a configuração de filtros de pacotes locais em cada servidor pode
tornar o gerenciamento do ambiente complexo, de modo que o uso de filtros em cada servidor deve ser
feito com parcimônia.
Para listar as portas que estão aguardando conexão de rede ou as conexões estabelecidas, podemos usar
uma ferramenta do próprio sistema operacional, neste caso com o comando netstat.
Fonte: http://tinyurl.com/hv3sgry
A suíte de ferramentas SYSInternals oferece outra ferramenta para listar com mais detalhes as conexões
de rede estabelecidas e seus respectivos processos, além de também listar as portas que estão
aguardando por conexões de rede.
Através do netstat e do TCPview, podemos verificar as portas que estão abertas no servidor, de modo a
localizar e desabilitar o serviço em questão ou filtrar a porta. Outra forma de verificar as portas abertas é
utilizando o Nmap. Desabilitar serviços em sistemas Windows é um processo que demanda certa
paciência. Caso um serviço essencial seja desabilitado,
algum comportamento inesperado pode acontecer. Recomenda-se que seja utilizada uma máquina de
testes, para se criar familiaridade com o processo, antes de desabilitar serviços em servidores em
produção. Mais à frente, serão vistos com mais detalhes o modo de desabilitar serviços no Windows.
Fonte: http://tinyurl.com/j8x7fgq
Nas versões Windows 7 e Windows Server 2008, o aplicativo recebeu atualizações significantes,
permitindo a configuração de perfis, importação e exportação de regras, entre outras funcionalidades.
Fonte: http://tinyurl.com/jtxx8ap
•! Clique na opção desejada de acordo com a necessidade de criar uma regra de entrada (pacotes
que entram no servidor) ou regra de saída (pacotes que saem do servidor).
•! Selecione as portas que deseja incluir nesta regra, separadas por vírgula.
ferramentas que permitem a criação de uma baseline e a posterior auditoria para verificar se a
configuração atual atende ao mínimo necessário de segurança.
Além da baseline, é preciso criar um mapa do tempo (timeline) dos servidores da rede, registrando a data de
instalação do sistema operacional, das principais correções e da instalação de aplicativos. Essa linha do tempo
será útil para manter atualizado o inventário dos sistemas e principalmente para uma eventual auditoria.
•! Liberar exceções nos filtros de pacotes nas interfaces de rede que forem necessárias.
Logo após a instalação do sistema operacional, depois do primeiro acesso ao sistema, a ferramenta de
configuração de papéis é apresentada. Com a escolha de um determinado role, o aplicativo iniciará
somente os serviços e liberará exceções nos filtros de pacotes nas interfaces de rede em que isso for
necessário. Essa é uma grande evolução, que facilita o processo de desabilitar serviços desnecessários e
liberar regras de acesso para os serviços que estão sendo usados.
Nos sistemas operacionais que possuem o recurso de roles, é importante verificar se os roles realmente
disponibilizam somente os serviços necessários. Nos sistemas operacionais mais antigos da Microsoft
(Windows XP e 2003 Server), os serviços se tornam o principal controle de recursos disponíveis no
sistema, de modo que devem ser desabilitados de forma manual. A ferramenta Services MMC, que
acompanha o sistema operacional, ajuda nessa tarefa. Ela pode ser encontrada no Painel de Controle, no
item “Ferramentas Administrativas”. Ao iniciar a ferramenta Services, obtemos a tela a seguir.
Fonte: http://tinyurl.com/gnvrypw
Através da ferramenta, podemos iniciar, encerrar e desabilitar serviços. Para iniciar e encerrar um serviço,
basta clicar em cima do serviço e escolher uma das opções, que se assemelham aos controles de um
programa tocador de música. Note que alguns serviços não podem ser encerrados, pois são serviços
essenciais para o funcionamento do sistema operacional. Para desabilitar um serviço, basta clicar no
serviço desejado e mudar o startup type para disabled.
Uma tarefa importante para a configuração segura de servidores consiste em saber a porta TCP ou UDP
associada a um determinado serviço, de modo que possamos desabilitar os serviços desnecessários que
abrem portas de rede no servidor. Essa tarefa pode ser realizada
utilizando alguns utilitários disponíveis na internet. Abaixo, um exemplo de como podemos descobrir um
serviço que corresponda a uma porta específica.
a)! Através do netstat –ano ou do TCPview, verificamos uma porta da qual desejamos saber o serviço
correspondente. No exemplo abaixo, a porta UDP 1900, que corresponde ao processo de número
1216 (svchost.exe). Geralmente um serviço é executado por esse programa.
d)! Na Wikipedia (List of TCP and UDP port numbers) há uma lista de portas conhecidas e os
processos correspondentes, onde podemos confirmar que a porta 1900 UDP corresponde de fato
ao serviço SSDP, que possui relação com a descoberta de dispositivos UPnP.
Fonte: http://tinyurl.com/je6eg3j
•! startup: lista todos os processos que são iniciados junto com o sistema operacional.
22.6.2.!SYSINTERNALS
A suíte de ferramentas desenvolvidas inicialmente por Mark Russinavich e Bryce Cogswell oferece a
possibilidade de uma verificação mais detalhada do funcionamento do sistema operacional. As
ferramentas podem ser baixadas gratuitamente do site da Microsoft:
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 47
http://technet.microsoft.com/en-us/sysinternals/
Algumas já foram apresentadas, como o TCPview e o Process Explorer.
Com o objetivo de auxiliar o analista a gerenciar o host, resolver problemas e diagnosticar o sistema
operacional e aplicativos, a Microsoft adquiriu em 2006 a suíte de ferramentas SYSInternals e contratou
Mark Russinavich para continuar na equipe de desenvolvimento da suíte de ferramentas. q A seguir
algumas ferramentas importantes da suíte do SysInternals:
•! Process Monitor: monitora diversas informações sobre processos, incluindo alterações do registry
e do sistema de arquivos. Muito útil para verificar o comportamento de certos programas.
Com ela você poderá gerar um arquivo de texto contendo todas as permissões de acesso dos usuários
referentes a arquivos, pastas, registros e compartilhamentos. Tal relatório permite identificar se todas as
permissões estão configuradas de acordo com a política da organização.
Fonte: http://tinyurl.com/htsbo4a
Fonte: http://tinyurl.com/hfocrhb
Além de verificar a instalação de correções de segurança, o MBSA também verifica falhas comuns na
configuração dos servidores, como o serviço de atualização desligado, contas de usuário que nunca
expiram, contas sem senhas, configurações com fragilidade de segurança
Ao iniciarmos o MSCM pela primeira vez, o aplicativo automaticamente busca e instala as versões mais
recentes dos templates de segurança para as plataformas suportadas por ele. Essa atualização é
importante para garantir que as últimas versões dos templates estão sendo utilizadas. Essa atualização
pode também ser realizada através do menu “Tools”, opção “Check for baselines”. Na tela principal,
temos então os seguintes componentes:
Baseline Library
•! Ao clicar em uma baseline com o botão direito, um menu apresenta alguns comandos que
podem ser aplicados.
Baseline Information Pane
•! Site: é o mais alto nível e normalmente atribuído a GPOs mais genéricas, válidas para qualquer
usuário/computador/domínio nesse site.
•! GPO local.
•! GPO de site.
•! GPO de domínio.
•! GPO de OU.
As GPOs são baseadas em modelos que possuem uma lista de opções configuráveis de forma bastante
intuitiva. Em sua maioria oferecem a opção de:
•! Habilitada: especifica o item que será ativado.
•! Não configurada: deixa a opção neutra: não está ativada nem desativada, essa é a opção padrão.
22.9.!DIRETIVA DE SENHAS
Sempre é bom lembrar que uma boa política de senhas é fundamental para uma organização, mas, antes
de mais nada, é um controle de segurança, e antes de defini-lo o administrador precisa entender
exatamente quais os riscos envolvidos em se definir como o usuário vai trabalhar com suas senhas, o
valor do que está sendo protegido com essa senha e os demais controles de acesso que existem
adicionalmente além da própria senha.
A organização deve estar preocupada não somente com ataques de força bruta ou por dicionário, mas
também evitar que o usuário esqueça a senha e tenha de redefini-la diversas vezes. Porém, uma fraca
política de autenticação invalida todas as outras barreiras implementadas, tais como firewalls,
criptografia etc. Para se defender contra essas vulnerabilidades, faz-se necessário uma correta aplicação
de diretivas de senha utilizando o console Diretiva de segurança local ou do domínio, se o servidor for
um controlador de domínio.
Opções:
•! A senha deve satisfazer a requisitos de complexidade: se essa diretiva estiver habilitada, as senhas
deverão atender aos itens abaixo informados.
•! Aplicar histórico de senhas: configuração de segurança que determina o número de novas
senhas exclusivas que devem ser associadas a uma conta de usuário, para que uma senha antiga
possa ser utilizada. Valor entre 0 e 24 senhas.
•! Armazenar senhas usando criptografia reversível: diretiva que oferece suporte a aplicativos que
necessitam armazenar a senha original do usuário, essa opção só deve ser utilizada se realmente
for necessário.
•! Tempo de vida mínimo da senha: configuração que determina o período de tempo em dias em
que uma senha deve ser utilizada antes de o usuário poder alterá-la. Valor 0 habilita o usuário a
trocar a senha imediatamente.
22.10.!DIRETIVA DE AUDITORIA
A auditoria de segurança é uma das ferramentas mais poderosas para ajudar a manter a segurança do
sistema. A auditoria deve identificar ataques, bem sucedidos ou não, que representam algum tipo de
ameaça a sua rede ou ataques contra os recursos determinados em sua avaliação de riscos.
Principais opções:
•! Acesso aos serviços de diretório de auditoria: determina se o sistema operacional fará a auditoria
das tentativas dos usuários de acessar os objetos do Active Directory.
•! Auditoria de alteração de diretivas: determina se o sistema operacional fará a auditoria de cada
instância de tentativas de alteração da diretiva de atribuição de direitos, diretivas de auditoria,
diretivas de contas ou diretivas de confiança do usuário.
!! Perda de eventos que passaram por auditoria, devido a falha no sistema de auditoria.
•! Acesso a este computador pela rede: esse direito de usuário determina quais usuários e grupos
têm permissão para se conectar com o computador pela rede.
•! Permitir logon pelos serviços de terminal: essa configuração de segurança determina quais
usuários ou grupos têm permissão para fazer logon como um cliente de serviços de terminal.
•! Alterar a hora do sistema: permite informar quais usuários têm permissão para alterar a data e a
hora do computador.
Quando falamos de segurança, devemos pensar num conjunto de fatores, que acabam acarretando o
aumento das vulnerabilidades e a crescente preocupação com a proteção:
•! competitividade e a pressa no lançamento de novos produtos;
Pelo contrário, a segurança tem justamente o papel de evitar que alguém perceba que alguma coisa está
errada. O fato é que ninguém percebe a existência da segurança, apenas a inexistência dela, quando um
incidente acontece e resulta em prejuízos gigantescos.
Sobre a segurança, ainda hoje se tem esse conceito de que ela é um artigo
caro e dispensável, necessário somente quando algum ataque acontece e traz
prejuízos à organização.
Apesar dessa visão reativa, algumas organizações já vêem a segurança com outros olhos, passando a
considerá-la como parte essencial do negócio.
•! falta de uma classificação das informações quanto ao seu valor e à sua confiabilidade, que serve de
base para a definição de uma estratégia de segurança adequada. Isso resulta em um fator de risco
para a organização, além de dificultar o dimensionamento das perdas resultantes de um ataque;
•! controle de acesso mal definido faz com que os usuários, que são autenticados no início da
conexão, tenham acesso irrestrito a quaisquer partes da rede interna, até mesmo a partes do
sistema que não são necessárias para a realização de suas tarefas;
•! dificuldade de controle do administrador sobre todos os sistemas da rede interna faz com que estes
não possam ser considerados confiáveis. Os ‘bugs’ nos sistemas operacionais ou nos softwares
utilizados por esses equipamentos podem abrir ‘brechas’ (vulnerabilidades) na rede interna;
•! Internet deve ser considerada um ambiente hostil e, portanto, não confiável. Assim, todos os seus
usuários devem ser considerados não confiáveis e potenciais atacantes;
•! qualquer conexão entre a rede interna e qualquer outro ponto pode ser utilizada para ataques à
rede interna;
•! telefones podem ser grampeados e as informações que trafegam pela linha, seja por voz ou
dados, gravadas;
•! firewalls protegem contra acessos explicitamente proibidos, mas ainda não quanto a ataques
contra serviços legítimos;
•! quando se adota a ‘segurança pela obscuridade’, situação em que a organização pensa que sua
rede nunca será invadida porque não é conhecida, os responsáveis ‘torcem’ para que o invasor
não saiba dos problemas com segurança e dos valores disponíveis na rede interna;
•! novas tecnologias significam novas vulnerabilidades;
Todos os níveis devem ser considerados para que a informação, que é o maior bem da organização, seja
protegida. Partindo do sistema operacional, devem ser avaliados e considerados, ainda, os serviços, os
protocolos, as redes, as aplicações, os usuários e as instalações físicas envolvidas com a informação.
Isso pode ser explicado, porque a segurança pode ser comprometida pelos seguintes
fatores:
•! exploração da vulnerabilidade em sistemas operacionais, aplicativos, protocolos e
serviços;
•! exploração dos aspectos humanos das pessoas envolvidas;
Assim, se um servidor Windows 2012 tem dez mil arquivos e cem usuários, existe um milhão de possíveis
pontos de acesso vulneráveis. A previsão de todas as brechas é impraticável, principalmente porque o fator
humano está envolvido, o que significa, por exemplo, que a escolha das senhas por cada um dos usuários
influi diretamente no nível de segurança do ambiente. Além disso, existe ainda a complexidade, que aumenta
com as interações, e o perigo das triangulações, que influem diretamente na segurança do ambiente.
O objetivo, portanto, é equilibrar a segurança com os riscos, minimizando os impactos que uma falha de
segurança pode causar à organização. As obrigações dos administradores quanto à manutenção da segurança
devem estar claramente definidas na política de segurança da organização. Ela especifica as responsabilidades
do acompanhamento das novidades e dos boletins sobre os sistemas que estão sendo utilizados na
organização, principalmente quanto a relatórios de segurança e instalação de patches de correção.
O problema é que uma política de segurança muito restritiva geralmente afeta a produtividade do
usuário. Se o FTP for bloqueado com o objetivo de prevenir a entrada de ‘cavalos de Tróia’, e o usuário
necessita utilizar esse serviço para o seu trabalho, ele certamente buscará maneiras de ‘driblar’ essa
restrição do firewall. O usuário poderá instalar um modem em seu equipamento ou tentar achar ‘brechas’
no bloqueio do firewall. Quando isso acontece, os objetivos não são alcançados, pois a segurança é
comprometida pelas ações dos usuários, e sua produtividade é prejudicada, pois eles perdem tempo
tentando encontrar maneiras de ‘driblar’ o firewall.
Por isso, é importante ter uma política de segurança bem definida e bem balanceada, tanto com relação
aos serviços externos quanto aos serviços internos que os usuários, internos e externos, podem acessar. O
objetivo é criar uma política que defina, de forma ideal, apenas os serviços realmente necessários. Outro
ponto a ser considerado na definição desses serviços que serão permitidos é quanto a serviços como
youtube e sessões de bate-papo, que constituem um problema, pois comprometem o nível de
produtividade da organização, além de consumir grande largura de banda da rede. Alguns deles ainda
podem introduzir novas vulnerabilidades à rede interna da organização.
Uma vez que a segurança envolve aspectos tecnológicos (o melhor sistema de autenticação), aspectos
técnicos (um bom administrador de segurança), aspectos sociais (funcionários inescrupulosos que
roubam informações confidenciais da própria organização), aspectos humanos (funcionários inocentes
que sofrem com a engenharia social) e aspectos educacionais (funcionários que devem saber, pelo
menos, como escolher senhas seguras), com toda essa complexidade, o objetivo das organizações deve
ser tentar proteger ao máximo os recursos da organização e não tentar protegê-los totalmente.
Diversos aspectos contribuem para medir essa ‘máxima proteção’. Entre eles, está:
•! definir os recursos que devem ser protegidos;
Outro ponto importante é que as novas técnicas e tecnologias devem ser utilizadas antes que os hackers
as utilizem contra a organização.
Cada uma dessas camadas tem de ser transposta pelo hacker para que ele chegue ao seu objetivo, que é
o acesso à informação. Quanto maior o número de camadas, maior a dificuldade de atacar o recurso.
Assim, a tentativa de estabelecer uma segurança total pode ‘levar à loucura’; a segurança parcial, por
definição, assume os riscos. As organizações, portanto, devem definir o nível de segurança, de acordo
com suas necessidades, já assumindo esses riscos. Isso faz com que o plano de contingência seja um dos
pontos essenciais dentro do esquema de segurança de uma organização.
O objetivo não é construir uma rede totalmente segura, mas sim um sistema
altamente confiável, que seja capaz de anular os ataques mais casuais de hackers e
também de tolerar acidentes, como a possibilidade de um tubarão romper os
cabos de transmissão localizados no mar.
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 60
As falhas benignas devem ser toleradas pelos sistemas. Essas vulnerabilidades devem ser colocadas em
um lugar no qual não possam causar problemas. Uma rede nunca será totalmente segura, mas deve-se
procurar meios de torná-la, no mínimo, mais confiável.
A segurança é necessária, porém sua estratégia de implementação deve ser bem definida,
medindo-se custos e benefícios e assumindo-se riscos, pois a segurança total não é
possível.
Um caminho possível é a criação de listas de verificação com as atividades que devem ser realizadas
continuamente e a partir delas criar procedimentos padrão para o trabalho diário.
Durante todo o curso apresentamos conceitos, procedimentos básicos e ferramentas que permitem a
melhoria do processo segurança, seja ela segurança computacional ou segurança da informação.
Entretanto como podemos ver no nosso dia-a-dia, amplamente divulgado pelos meios de comunicação,
isto somente não é suficiente.
Faz-se necessário uma mudança de consciência sobre a forma que enxergamos e trabalhamos a
segurança no ambiente de TI das nossas organizações. Quando falamos de segurança, devemos pensar
num conjunto de fatores, que acabam acarretando o aumento das vulnerabilidades e a crescente
preocupação com a proteção:
•! Novas tecnologias;
•! E muitas outras...
Copyright © 2017 Centro Universitário IESB. Todos os direitos reservados.
SEGURANÇA DE REDES DE COMPUTADORES | UIA 4 | 61
Tudo isso acarreta o surgimento de novas vulnerabilidades e em consequência uma mudança diária da
nossa forma de pensarmos a segurança.
Nesta seção buscamos apresentar uma visão ampla de futuras tendências de segurança e que nos
obrigam a uma mudança de postura para que possamos acompanhar e fazer frente a este novo mundo.
Por a isso faz-se necessário que tenhamos dentro de nossas organizações uma constante preocupação
com a segurança, criando uma área ou setor focada neste tema.
A preocupação constante com a segurança ainda é relativamente nova, e muitos ainda não conseguem
enxergar sua importância, imaginando apenas que as soluções são caras e não trazem nenhum retorno
financeiro. Apesar dessa visão evoluir com o decorrer dos anos, ela faz com que os executivos preferiram
aplicar seus recursos em novas soluções que possam trazer vantagens visíveis aos olhos de todos.
•! dificuldade de controle do administrador sobre todos os sistemas da rede interna faz com que estes
não possam ser considerados confiáveis. Os erros e/ou incidentes nos sistemas operacionais ou nos
softwares utilizados por esses equipamentos podem criar e abrir vulnerabilidades na rede interna;
•! Internet deve ser considerada um ambiente hostil e, portanto, não confiável. Assim, todos os seus
usuários devem ser considerados não confiáveis e potenciais atacantes;
•! qualquer conexão entre a rede interna e qualquer outro ponto pode ser utilizada para ataques à
rede interna;
•! telefones podem ser grampeados e as informações que trafegam pela linha, seja por voz ou
dados, gravadas (atenção com smartphones);
•! firewalls protegem contra acessos explicitamente proibidos, mas ainda não quanto a ataques
contra serviços legítimos;
•! quando se adota a ‘segurança pela obscuridade’, situação em que a organização pensa que sua
rede nunca será invadida porque não é conhecida, os responsáveis ‘torcem’ para que o invasor
não saiba dos problemas com segurança e dos valores disponíveis na rede interna;
Cuidar de alguns pontos e negligenciar outros pode comprometer totalmente a organização, pois os incidentes
sempre ocorrem no elo mais fraco da corrente, ou seja, no ponto mais vulnerável do ambiente.
Todos os níveis devem ser considerados para que a informação, que é o maior bem da
organização, seja protegida. Partindo do sistema operacional, devem ser avaliados e
considerados, ainda, os serviços, os protocolos, as redes, as aplicações, os usuários e as
instalações físicas envolvidas com a informação.
Uma característica que pode ser vista é que, em um primeiro momento, a falta de um planejamento em
segurança pode parecer uma boa situação, pois tudo funciona adequadamente. No entanto, os
problemas de segurança invariavelmente aparecem depois, o que pode resultar em custos
estratosféricos para que sejam resolvidos, principalmente, em grandes ambientes.
A importância da segurança cresce ainda mais rapidamente, quando se leva em consideração o rápido
aumento da complexidade das conexões, característico dos ambientes cooperativos.
Ou seja, quanto maiores as funcionalidades, como serviços, aplicativos e demais facilidades, menor é a
segurança desse ambiente. Isso pode ser explicado, porque a segurança pode ser comprometida pelos
seguintes fatores:
•! exploração da vulnerabilidade em sistemas operacionais, aplicativos, protocolos e serviços;
Além disso, existe ainda a complexidade, que aumenta com as interações, e o perigo das triangulações,
que influem diretamente na segurança do ambiente.
O objetivo, portanto, é equilibrar a segurança com os riscos, minimizando os impactos que uma falha de
segurança pode causar à organização. As obrigações dos administradores quanto à manutenção da segurança
devem estar claramente definidas na política de segurança da organização. Ela especifica as responsabilidades
do acompanhamento das novidades e dos boletins sobre os sistemas que estão sendo utilizados na
organização, principalmente quanto a relatórios de segurança e instalação de patches de correção.
Por isso, é importante ter uma política de segurança bem definida e bem balanceada, tanto com relação
aos serviços externos quanto aos serviços internos que os usuários, internos e externos, podem acessar.
O objetivo é criar uma política que defina, de forma ideal, apenas os serviços
realmente necessários.
Outro ponto a ser considerado na definição desses serviços que serão permitidos é quanto a serviços
como youtube e sessões de bate-papo, que constituem um problema, pois comprometem o nível de
produtividade da organização, além de consumir grande largura de banda da rede. Alguns deles ainda
podem introduzir novas vulnerabilidades à rede interna da organização.
Diversos aspectos contribuem para medir essa ‘máxima proteção’. Entre eles, está:
Outro ponto importante é que as novas técnicas e tecnologias devem ser utilizadas
antes que os hackers as utilizem contra a organização.
A segurança de perímetro e a abordagem em camadas, nas quais vários mecanismos de segurança são
adotados de forma encadeada, também são importantes. Dessa forma, as camadas de segurança
funcionariam como os catafilos da cebola, que protegem o seu interior. Cada uma dessas camadas tem
de ser transposta pelo hacker para que ele chegue ao seu objetivo, que é o acesso à informação.
Assim, a tentativa de estabelecer uma segurança total pode ‘levar à loucura’; a segurança parcial, por
definição, assume os riscos. As organizações, portanto, devem definir o nível de segurança, de acordo
com suas necessidades, já assumindo esses riscos. Isso faz com que o plano de contingência seja um dos
pontos essenciais dentro do esquema de segurança de uma organização.
O objetivo não é construir uma rede totalmente segura, mas sim um sistema altamente
confiável, que seja capaz de anular os ataques mais casuais de hackers e também de
tolerar acidentes, como a possibilidade de um tubarão romper os cabos de transmissão
localizados no mar.
As falhas benignas devem ser toleradas pelos sistemas. Essas vulnerabilidades devem ser colocadas em
um lugar no qual não possam causar problemas. Uma rede nunca será totalmente segura, mas deve-se
procurar meios de torná-la, no mínimo, mais confiável.
24.6.!SEGURANÇA EM CLOUD
Computação em Nuvem (Cloud Computing) é a utilização de recursos
computacionais (memória, dispositivos de armazenamento e capacidade de
cálculo (processamento) de computadores e servidores interligados por meio da
rede internet de forma transparente para o usuário.
Com a Computação em Nuvem, um usuário pode ter acesso a recursos que se fossem executados na
máquina do mesmo, demandariam maior capacidade de hardware do equipamento do usuário,
instalação de softwares que geralmente tem licenças caras, além de maior gasto de energia, aumentando
desta forma os custos.
Fonte: http://tinyurl.com/y85zrft9
Assim, a Computação em Nuvem, permite alguns modelos de serviço, explicados de forma resumida a seguir:
Software como Serviço (Software as a Service - SaaS): Compreende o uso de aplicações que
são executadas na nuvem, como por exemplo um cliente web de e-mail, o Google Docs, que
permite criação e edição de documentos, planilhas e apresentações de slides via navegador.
Plataforma como Serviço (Platform as a Service - PaaS): Permite ao usuário submeter
aplicações desenvolvidas em linguagem de programação ou ferramentas de acordo com o a
plataforma e executá-la dentro de um sistema operacional virtual. O usuário não tem controle
sobre nada além de suas aplicações, como sistema operacional, rede e armazenamento.
Como pode ser observado a segurança nessas plataformas é algo extremamente crítico.
SEGURANÇA EM IOT
Internet das Coisas (Internet of Things ou IoT) significa apenas um ambiente que reúne informações de
vários dispositivos (computadores, veículos, smartphones, semáforos, e quase qualquer coisa com um
sensor) e de aplicações (qualquer coisa desde uma aplicação de mídia social como o Twitter a uma
plataforma de comércio eletrônico, de um sistema de produção a um sistema de controlo de tráfego).
Basicamente, são precisos dados e meios para acessar – que é de onde surge o rótulo de “Internet”,
embora, naturalmente, não seja necessária a própria internet, ou até mesmo uma ligação sempre
disponível de rede.
Uma coisa, no contexto da Internet das Coisas, é um objeto conectado que pode ser, por exemplo, uma
pessoa com um monitor cardíaco, um animal rastreado em uma fazenda, um tanque industrial com sensores
de nível, um carro com sensores que avisam a pressão dos pneus, uma lâmpada de iluminação pública de
uma cidade, uma tomada em sua casa ou qualquer outro objeto natural ou construído pelo homem.
Fonte: http://tinyurl.com/yafa2alb
Fonte: http://tinyurl.com/y9kb79h6
Leiam:
http://tinyurl.com/yawqxp7b
Assistam aos vídeos:
http://tinyurl.com/y7yay2yp
http://tinyurl.com/y78n27s4
http://tinyurl.com/ybnghep5
http://tinyurl.com/ya23kovl
http://tinyurl.com/yavrkuwp
http://tinyurl.com/y7c4mkth
SEGURANÇA BYOD
O BYOD é uma realidade crescente nas organizações. É fundamental compreender que, essa não é uma
questão que deva ser tratada exclusivamente pela área de TI, apesar dos aspectos tecnológicos. A
interseção com o os departamentos Jurídico e de Recursos Humanos é grande e o trabalho colaborativo
entre as áreas é fundamental para se estabelecer uma política sólida e consistente de BYOD.
Fonte: http://tinyurl.com/y9qagmyr
Você terminou o estudo desta unidade. Chegou o momento de verificar sua aprendizagem.
Ficou com alguma dúvida? Retome a leitura.
Quando se sentir preparado, acesse a Verificação de Aprendizagem da unidade no menu
lateral das aulas ou na sala de aula da disciplina. Fique atento, essas questões valem nota!
Você terá uma única tentativa antes de receber o feedback das suas respostas, com
comentários das questões que você acertou e errou.
Vamos lá?!
! !
REFERÊNCIAS
ALERTASECURITY. A importância da Análise de vulnerabilidade. 2016.
http://www.alertasecurity.com.br/blog/82-a-importancia-da-analise-de-vulnerabilidadeAcesso 20 out 2016.
COMPUTERWORLD. Oito ferramentas de teste de invasão para reforçar a segurança de sua empresa.
2015. Disponível em < http://computerworld.com.br/oito-ferramentas-de-teste-de-invasao-para-reforcar-
seguranca-de-sua-empresa>. Acesso 20 out 2016.
EMQUESTÃO. A análise de logs como estratégia para a realização da garantia do usuário. 2015. Disponível
em < http://www.seer.ufrgs.br/index.php/EmQuestao/article/view/59806/36047>. Acesso 20 out 2016.
FETCH. Avaliação de Ferramentas de Análise de Segurança: Nessus – OpenVAS. 2013. Disponível em <
http://187.7.106.14/wiki2013_2/lib/exe/fetch.php?media=projeto03:artigo_projeto_integrador_1_tiago_
pasa.pdf>. Acesso 20 out 2016.
FLAVIOMICHELETTI. Análise das principais vulnerabilidades de aplicações web tendo como base a
arquitetura lamp e as top 10 vulnerabilidades da owasp. 2011. Disponível em <
https://flaviomicheletti.github.io/tcc-flavio-alexandre-micheletti.pdf>. Acesso 20 out 2016.
IBM. Testes de segurança manuais versus testes de automatizado. 2009. Disponível em <
http://www.ibm.com/developerworks/br/rational/local/security_test/>. Acesso 20 out 2016.
IDGNOW. Teste: Produtos para análise de segurança da rede de sua empresa. 2011. Disponível em <
http://idgnow.com.br/ti-corporativa/2011/07/01/idgnoticia.teste-seguranca-corporativa/#&panel1-1>.
Acesso 20 out 2016.
IMASTERS. Análise Forense Computacional de Logs em Sistemas Linux: as testemunhas da rede. 2008.
Disponível em < http://imasters.com.br/artigo/10207/gerencia-de-ti/analise-forense-computacional-de-logs-
em-sistemas-linux-as-testemunhas-da-rede?trace=1519021197&source=single>. Acesso 20 out 2016.
INFOQ. Análise do Livro LogStash: Gerenciamento de logs de forma simples. 2013. Disponível em <
https://www.infoq.com/br/articles/review-the-logstash-book>. Acesso 20 out 2016.
OLIVEIRA, Wilson. Técnicas para hackers e soluções para segurança: versão 2 – Editora
Centroatlantico.pt – Portugal – 2003
http://repositorio.ucb.br/jspui/bitstream/10869/2687/1/Rodrigo%20Sim%C3%A3o%20Teixeira.pdf>.
Acesso 20 out 2016.
TENABLE. Proteja sua rede localmente e na nuvem com Nessu Vulnerability Scanner. Disponível em
< http://www.tenable.com/pt-br/nessus/>. Acesso 20 out 2016.
TRTEC. Eeye digital security anuncia nova versão do retina network security scanner. Disponível em
< http://www.trtec.com.br/pages/retina5.html>. Acesso 20 out 2016.