November 5, 2006

Leis imutáveis da Segurança - Visão Microsoft

Filed under: Segurança

Esta é uma visão da Microsoft. Penso que conseguiria assinalar umas quantas mais verdades absolutas no que toca a segurança no entanto, pelo facto de se tratar de uma abordagem da própria Microsoft, vou manter os 10 pontos assinalados sem qualquer alteração.

1. Se um hacker o conseguir persuadir a executar o programa dele no seu computador, então deixa de ser o seu computador.
2. Se um hacker puder alterar o sistema operativo do seu computador, então deixa de ser o seu computador.
3. Se um hacker tiver acesso físico sem restrições ao seu computador, então deixa de ser o seu computador.
4. Se permitir que um hacker possa fazer upload de programas para o seu site web, então deixa de ser o seu site web.
5. Passwords simples prevalecem sobre um nível de segurança elevado.
6. Um computador é tão seguro quanto a confiança que tem no seu administrador.
7. Os dados cifrados são somente tão seguros quanto a chave da cifra.
8. Um anti-virus desactualizado é apenas ligeiramente melhor que não ter anti-virus.
9. Anonimato absoluto não existe na vida real nem na web.
10. A tecnologia não é um remédio universal.

Ilidio Gonçalves

November 3, 2006

Intrusão de rede e outras ameaças

Filed under: Segurança

A intrusão de rede, bem como outros ataques, são provenientes de vários pontos e aparecem sob várias formas. Encontramos então ataques provenientes da rede pública (tipicamente a Internet) mas também da nossa própria rede privada. Na certeza de que ambas as proveniências são de levar em consideração, há que salientar a importância da segurança na rede privada. Os ataques provenientes da rede privada são seguramente mais bem sucedidos do que os restantes já que provêm de pessoal que desde já está autorizado a aceder a áreas no interior da infra-estrutura seja ela física, como pontos de rede, acesso a redes sem fios, acesso físico a servidores, acesso a fitas de backup, ou lógica como funcionários com privilégios na rede e acesso a serviços. Naturalmente que o facto de alguém ter acesso à rede não é sinónimo de ter acesso a todos os recursos e será este um dos níveis de segurança a ter em conta.

O hacker (termo utilizado para designar o individuo que tenta furar um sistema de segurança) encontra variadíssimas classificações junto de especialistas em segurança, no entanto, um factor que fora crucial para designar um indivíduo como hacker fora o conhecimento de informática. Hoje em dia, esse factor já não é crucial dada a existência de aplicações automatizadas no sentido de tentar contornar os sistemas de segurança. Uma das muitas questões que podemos levantar será a da motivação que leva alguém a ser hacker. Pois a este nível, encontramos várias respostas, desde logo o reconhecimento público do indivíduo ou grupo de hackers, a curiosidade de aceder a informação e ou recursos privilegiados, o factor de obtenção de lucros com o acesso e eventual comercialização de informação privilegiada a terceiros, a vingança pessoal entre outros.
Torna-se importante nesta fase perceber as diferenças entre tentativa de intrusão e ataque. Um ataque não origina por si só uma intrusão. Encontramos ataques com o objectivo claro de indisponibilizar recursos ou serviços. Quero com isto dizer que nem sempre o objectivo do hacker passa pelo acesso a informação ou recursos de uma rede. Pode simplesmente ter interesse em provocar outro tipo de danos sobre a infra-estrutura.

Vamos considerar o cenário de um hacker com uma motivação de vingança sobre uma entidade com presença na Internet e comércio electrónico. A paragem ainda que temporária deste serviço poderá traduzir um prejuízo para esta entidade, alimentando desta forma a motivação do hacker.

Os ataques podem ser categorizados sob múltiplas formas. Podemos definir um ataque como sendo um conjunto de operações a serem executadas com um objectivo concreto. É crucial percebermos estas operações para que consigamos traçar o perfil do hacker. O hacker pode então utilizar operações automatizadas para o seu ataque, o que se traduz num conjunto de ordens camufladas num programa informático que visa tirar partido de uma maior rapidez de execução. Imaginemos um cenário onde encontramos um pedido de validação ao recurso. Sendo um indivíduo a introduzir manualmente as múltiplas combinações possíveis para a palavra chave de acesso, em função do número de combinações possíveis da chave, poderíamos estar perante um objectivo inatingível, no entanto se a mesma operação fosse automatizada com o recurso a um programa informático para o efeito, em função da velocidade de processamento e comunicações esse objectivo iria ver o seu tempo de execução reduzido de forma absolutamente radical. Naturalmente que, na construção destes programas esteve um indivíduo ou grupo com vastos conhecimentos informáticos transversais a múltiplas áreas nucleares da informática como as redes, os sistemas e a programação. Estas ferramentas visam acima de tudo acelerar as operações, no entanto, há que ter em atenção que nem sempre se limitam a executar a operação que os menos atentos pensam como única. É através deste “doce” que os hackers atraem os seus cúmplices para os ataques mais arrojados. Pode ser facilmente camuflado código malicioso por detrás destas ferramentas com o objectivo de criar buracos nos sistemas destes utilizadores menos experientes. A isto chamamos de back doors da aplicação. Um back door pode existir na própria aplicação que o hacker disponibilizou ou pode ser um pequeno aplicativo anexo ao programa que é executado e reside em memória sob a forma de um serviço a que está assignado o termo de Cavalo de Tróia (Trojan Horse). A função a desempenhar por este Trojan é na realidade fundamental para o hacker já que lhe vai permitir um acesso anónimo e sem restrições a este equipamento. A utilização de uma back door por parte do hacker é o método utilizado para dificultar a identificação da real proveniência de um ataque. Se um ataque é proveniente de um equipamento que está a ser utilizado remotamente, será mais difícil de seguir o rasto. Estes equipamentos intermediários no ataque são intitulados de zombies.

Este tipo de ataque tem o nome de ataque distribuído e é naturalmente um ataque mais complexo, no entanto abre outras portas ao hacker permitindo uma rapidez de processamento e comunicação bastante superior já que quantos mais equipamentos estiverem infectados, maior será o número de máquinas que o hacker poderá utilizar para disparar um ataque sobre um qualquer alvo. Um ataque simultâneo proveniente de múltiplas fontes irá aumentar as probabilidades de sucesso e irá diminuir o seu tempo de execução. Imaginemos um ataque cujo objectivo passa por provocar uma falha de um serviço. Com um ataque distribuído, o hacker pode rapidamente disparar um inúmero conjunto de ataques em paralelo provocando uma indisponibilidade do mesmo. A este ataque chamamos de Distributed Denial of Service (DDOS).

Esta é apenas uma pequena amostra dos múltiplos ataques a que uma organização está sujeita. Com este artigo pretendo despertar o interesse dos leitores para as questões envoltas na segurança de um sistema.

Ilídio Gonçalves

April 11, 2006

Tecnologias para Comunicações Seguras em Redes TCPIP

Filed under: Segurança

Ambiente Windows

Após uma primeira abordagem aos ataques mais comuns, percebe-se que se torna cada vez mais difícil falar em redes seguras. No entanto existem algumas tecnologias que nos permitem construir barreiras cada vez mais complexas no sentido de desencorajar os ataques sobre as nossas infra-estruturas lógicas e físicas. A cifra dos dados teve e terá sempre um destaque especial aquando da implementação de métodos de segurança extremos. Sobre este tema surgem-me desde logo algumas questões.

Quais as tecnologias ao nosso dispôr?
Quais as vantagens?
Qual o custo da implementação?

São e serão sempre questões de julgamento subjectivo e naturalmente que as respostas irão variar em função de um conjunto muito extenso de variáveis. As tecnologias dos nossos dias passarão a obsoletas amanhã e irei aqui descrever algumas das que hoje se encontram ainda no mercado com uma relação custo/benefício aceitável.

Comecemos pelos protocolos de cifra ao nosso dispôr.

Um dos métodos de segurança mais comum será o da utilização de certificados digitais no controlo da autenticação e segurança do acesso aos dados. Para isso torna-se necessária a utilização de uma infra-estrutura de chaves públicas vulgarmente designada de PKI. Esta infra-estrutura condensa um vasto conjunto de funcionalidades associado a uma autorização proporcionada por um certificado digital. Mas então o que é um certificado digital? Pois a resposta a esta questão poderá passar por uma explicação demasiado complexa para ser obtida em poucas linhas no entanto de forma simples um certificado é um ficheiro que proporciona o acesso a uma chave cifrada que por sua vez nos devolve os dados. Poderei dar como exemplo a utilização de uma das funcionalidades do sistema de ficheiros NTFS desde a sua versão 5 (Windows 2000) já que todos os utilizadores terão neste sistema de ficheiros a possibilidade de utilizar os certificados para cifrar documentos (fig. 1). Esta cifra consiste na codificação dos documentos recorrendo a uma chave pública que se encontra disponível e sem qualquer codificação no certificado associado com a sua conta de utilizador. Esta chave irá apenas codificar os documentos já que a descodificação dos mesmos fica a cargo de uma outra chave, esta privada, que se encontra armazenada numa àrea restrita do sistema operativo apenas disponível para um utilizador devidamente autorizado ou seja, aquele que possui o certificado digital utilizado numa primeira fase para a codificação. Estamos então perante um mecanismo de cifra assimétrico. Incide sobre este esquema de chaves públicas e privadas todo o processo de segurança no acesso aos dados contudo para o utilizador final este processo é absolutamente transparente já que o utilizador vai continuar a aceder aos dados através do clique do seu rato. Não devemos esquecer que a codificação/descodificação dos dados tem pontos negativos já que é um processo que consome tempo de processamento bem como espaço de armazenamento. Deverão ponderar a decisão da utilização deste método na sua relação benefício/custo já que dados demasiado dinâmicos ou extensos poder-se-ão traduzir em tempos absolutamente caóticos no que respeita à sua edição e/ou alteração.

Encrypted File System
Fig. 1

Mas as PKI’s não se limitam somente à gestão da confidencialidade dos dados ou cifra dos mesmos, serão também um garante de integridade e autenticidade dos mesmos com as assinaturas digitais. Uma assinatura digital poderá ter vários fins, servindo desta forma vários propósitos. Podemos encontrar assinaturas digitais ao nível do software, provando que o software em questão foi desenvolvido e disponibilizado por uma fonte fidedigna. Como exemplo disso temos os drivers de harware assinados digitalmente pela Microsoft (fig. 2).

Drivers Assinados Digitalmente
Fig. 2

Este método limita-se a garantir que os dados são provenientes de uma dada fonte e não que não foram alterados no seu transporte após a contrução dos mesmos. Vantagens? Naturalmente que existem e desde logo se os dados por ventura forem capturados e adulterados no processo de transporte (Man-in-the-middle), aquando da verificação da autenticidade terão resultados incorrectos o que leva o sistema a rejeitar esses mesmos dados. Esta verificação leva tempo a concluir e poderá não ser solução já que os dados são transportados sem qualquer tipo de segurança. Lembrem-se que autenticidade dos dados não é sinónimo de codificação dos mesmos.

Uma outra alternativa no que respeita a segurança será a da utilização de um driver para cifrar os dados na construção dos pacotes por forma a que toda a transferência de dados seja elaborada de forma segura. Refiro-me à utilização do driver de IPSec que, não obstante o custo da demora da transferência de dados, nos permite atingir um nível de sucesso no que respeita à confidencialidade dos dados bastante elevado. Estamos perante uma tecnologia que para além de permitir a confidencialidade dos dados, também autentica a comunicação, permitindo com isso garantir que a proveniência dos dados será de uma fonte fidedigna. Pois então como se concretiza isso? Bom vou começar por utilizar um pequeno cenário para perceber-mos como tudo isto tem início. Numa primeira fase, a sessão a contruir pelo protocolo TCP vai ser autenticada e esse processo terá de ser naturalmente garantido em todas as máquinas, necessitando para isso que seja previamente preparado um esquema de autenticação compatível entre ambas as máquinas. Sim, ambas no sentido de duas máquinas já que a comunicação IPSec tem esse pequeno senão, ou seja comunica numa base máquina-a-máquina e este pormenor deve estar sempre presente nas vossas mentes se estiverem perante uma infra-estrutura física onde necessitem da utilização de protocolos de routing ou Network Address Translation (NAT). Não quero dizer com isto que não é possível comunicar com IPSec via routers, simplesmente necessitamos de uma gestão do driver diferente e que será abordada num outro ponto desta crónica.

Ilidio Gonçalves

html hit counter code

Get free blog up and running in minutes with Blogsome
Theme designed by Ian Main