A segurança em sistemas de computação é uma das áreas mais críticas nas ciências da informação. Freqüentemente se ouve falar em alguma "brecha" descoberta em algum sistema. Não importando quão grave seja o problema, já existe certa paranóia em relação a questões de segurança. Esses furos na segurança podem ser explorados de diversas maneiras: para obter benefícios financeiros indevidos, personificação maliciosa a custos de uma pretensa "brincadeira", perda de informações sigilosas, danos em arquivos do sistema, etc. Esses são alguns dos motivos porque se investe cada vez mais em segurança. Como se não bastasse, ainda existem os problemas relativos a legislação: por um lado, o governo pode vir a exigir que a segurança em sistemas de informação seja encarada como um problema federal e impor controle sobre tudo que seja utilizado nos mecanismos de proteção; por outro lado, outros podem reclamar a necessidade de privacidade e liberdade de escolha em problemas relativos a segurança. Os sistemas são, a medida que agregam mais recursos, muito complexos e extensos, propiciando um meio fértil para acúmulo de erros e conseqüentes problemas de segurança. A conectividade alterou a realidade da computação: as redes de computadores estão aí para provar. Entretanto, os sistemas em rede a medida que facilitam a realização de uma série de tarefas também apresentam vulnerabilidades. As redes públicas são um exemplo crítico, pois todas as informações passam por meios não confiáveis sujeitos a alteração ou utilização por terceiros. A Internet talvez represente um dos ambientes mais críticos a nível de segurança. Devido a sua abrangência e velocidade com que cresce, ela é um dos ambientes mais propícios a disseminação e exploração de "furos" de segurança. Existem, entretanto, um esforço constante em desenvolvimento de mecanismos para protegê-la. "Internet Firewalls", são um conjunto de mecanismos utilizados para formar uma barreira de segurança entre a rede interna e a Internet. isolando-a das principais ameaças. Os componentes básicos de um "firewall" são o "packet filter" e o "proxy server". Basicamente, o que esses componentes fazem é uma filtragem dos pacotes. 0 "packet filter", como o nome sugere, faz uma filtragem dos pacotes até o nível de transporte (UDP e TCP). 0 "proxy server" atua como um procurador entre o cliente e o servidor real realizando uma filtragem a nível de aplicação; portanto, é uma tarefa mais apurada. Cada um desses componentes básicos apresentam os seus benefícios à segurança da rede interna. Um dos problemas desses mecanismos, é que eles acarretam em um "overhead" ao sistema, degradando o desempenho. Um "packet filter" tem de ser suficientemente rápido para que não seja o gargalo do sistema. De fato, como é apresentado nesse trabalho, pode-se conseguir um filtro tão rápido quanto necessário. A filtragem dos pacotes é baseada nas regras de filtragem que são elaboradas segundo a política de segurança, a qual estabelece qual o tipo de tráfego que pode existir entre a rede interna e a Internet. Cada pacote que passa pelo filtro é comparado com as regras de filtragem na ordem em que elas foram especificadas pelo administrador. Dependendo do número de regras, e este é um fator relevante porque são em grande número os serviços utilizados na rede, o tempo médio de filtragem aumenta. Uma solução para melhorar o desempenho na filtragem, é realizar a filtragem dos pacotes por sessão ("session filter"). Nesse caso somente se consegue atender aos serviços baseados no TCP (que é orientado a conexão); entretanto, considerando que os serviços mais utilizados na rede são baseados no TCP esse é um mecanismo viável. Na filtragem por sessão apenas o pacote de solicitação de conexão é comparado com a lista de regras de filtragem. Os pacotes subsequentes são verificados junto a uma "cache" de sessões ativas. Caso o pacote pertença a alguma sessão válida ele é passado adiante; caso contrário, ele é descartado. O acesso a "cache" deve ser suficientemente rápido para justificar esse procedimento. Além do ganho em desempenho, o filtro de sessões apresenta a vantagem de monitoramento: todas as sessões ativas entre a rede interna e a Internet estão registradas na "cache". Esta dissertação apresenta o projeto e a implementação de um "Packet/session filter". O filtro foi implementado como um módulo do "kernel" do sistema operacional "FreeBSD". O filtro "ip_fw" disponível como "freeware" na referida plataforma, serviu como referência básica para o desenvolvimento do filtro proposto. O utilitário "ipfw", disponível para gerenciar o filtro de pacotes "ip_fw", foi adaptado para interagir com o filtro desenvolvido. Os testes de desempenho apresentam resultados esperados. Ou seja, o filtro de sessão melhora consideravelmente o processo de filtragem em relação a um filtro convencional. O recurso de monitoramento das sessões ativas também representa uma facilidade a mais no controle e obtenção de estatísticas para o "firewall". / Security in computer systems is one of the most critical areas in "information sciences". Often it is heard something about a new "hole" discovered in some system. No matter how important is such a problem, there is a "paranoia" regarding questions about security. These security holes could be explored in a diversity of ways: to obtain financial benefits, to impersonate somebody to spoofing, to obtain secret informations, to damage to file systems, etc. Those are some of the reasons because so much time and money are spent in security. There are also some problems concerning legislation: government can demand that security in information systems is a federal problem and it can lead to impose control over everything that is used in protection mechanisms; on the other hand, there is the question of privacy and freedom of choice concerning to security. By adding new resources to the systems, the complexity is increase and new bugs and security problems can arise. Connectivity has changed the computer reality: computer networks show that. However, network systems also present weak points. Public networks are a critical example because all information flow by untrusted medias subject to modification or misuse by outsiders. The Internet may be one of the most critical environments concerning security. Because the internet covers almost all the world and grows so fast, it's able to dissiminate "holes" in security. There is, however, a constant effort to develop new mechanisms to protect the Internet, Internet Firewalls are a set of mechanisms used to build a security barrier between the internal network and the internet, maintaining the internal network far away from the main threats. The basic components of a firewall are the packet filter and the proxy server. These two components basically do a packet screening. The "packet filter", as the name suggests, makes a packet filtering up to the transport layer (UDP and TCP). The Proxy Server acts like a proxy between the client and the real server, the proxy does a packet filtering at the application level; therefore, it's a refined task. Each one of these components present their own benefits to the internal network security. A problem of those mechanisms is that they bring an overhead to the system, slowing the performance. A packet filter must be fast enough, otherwise it'll be the bottleneck in the system. The present work slows that, it's possible to obtain a filter as fast as necessary. The packet filtering is based on the filter rules which are prepared following the security policy that establishes what kind of traffic can flow between the internal network and the Internet. Each packet that passes through the filter is compared with the filtering rules to check if it is in the sequence specified by the administrator. Depending on the number of rules, and this is an important issue because there is a great number of services available in the network, the filtering mean time increases. A solution to improve the filtering process is to make the packet filtering by session (session filter). In this case it's only possible to attend to TCP, based services (connection oriented); however, considering that the most used services in the internet are based on TCP this is a feasible mechanism. In the session filtering only the first packet is compared against the filtering rules. The next packets are verified against a session cache. If the packet refers to a valid session it's sent forward; otherwise, it's dropped. The access time to the cache must be fast enough in order to allow applying this procedure. Beyond the performance improvement the session filter presents the advantage of monitoring: all the active sessions are recorded in the "cache". This work presents the project and development of a "packet/session filter". The filter was developed as a kernel module of the operating system "FreeBSD". The filter "ip_fw" available as freeware served as a basic reference to the implementation of the filter here presented. The "ipfw" utility available to manage the "ipfw" packet filter was adapted to interact to the developed filter. The performance benchmark presents expected results. The session filter enhances the filtering process when compared to the conventional packet filter. The monitoring facility also represents an enhancement the control and statistics gathering.
Identifer | oai:union.ndltd.org:IBICT/oai:lume.ufrgs.br:10183/17970 |
Date | January 1997 |
Creators | Spohn, Marco Aurelio |
Contributors | Weber, Raul Fernando |
Source Sets | IBICT Brazilian ETDs |
Language | Portuguese |
Detected Language | Portuguese |
Type | info:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis |
Format | application/pdf |
Source | reponame:Biblioteca Digital de Teses e Dissertações da UFRGS, instname:Universidade Federal do Rio Grande do Sul, instacron:UFRGS |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0035 seconds