Você está na página 1de 25

SISTEMA MONITOR DE CONEXES TCP IP1

Paulo Henrique Soares Machado <machado800cc@gmail.com>


Maria Adelina Raupp Sganzerla <masganzerla@gmail.com> - Orientadora

Universidade Luterana do Brasil (Ulbra) - Curso de Sistemas de Informao - Campus Guaba


BR 116, 5724 - Bairro Moradas da Colina - CEP 92.500-000 Guaba - RS

27 de junho de 2016

RESUMO
O presente artigo apresenta um estudo de caso em que se identifica a necessidade de
desenvolvimento de aplicativo que incremente a segurana de informaes armazenadas em computadores
locais, ameaadas pelas vias de acesso remoto utilizando-se redes de dados e registre tais acessos para
posterior auditoria se necessria. Para o desenvolvimento do aplicativo pesquisou-se sobre segurana de
dados, protocolos de comunicao de redes, aplicativos de acesso remoto e de identificao de acesso j
existentes. A linguagem de programao Delphi Embarcadero foi escolhida para a codificao do
aplicativo, SQLite para armazenar os registros das conexes. Foram pesquisados outros aplicativos que
tenham como finalidade identificar conexes remotas com caractersticas de usabilidade semelhantes s do
aplicativo proposto neste trabalho. Se concluiu que os aplicativos existentes encontrados e estudados at a
presente data no atendem aos requisitos propostos pela empresa, reforando a necessidade de
desenvolvimento de uma ferramenta especfica para a funo de monitoramento de acessos remotos.
Palavras-chave: Monitoramento; Acesso; Remoto; Ethernet; Segurana; Privacidade.

ABSTRACT
TITLE: TCP/IP CONNECTIONS MONITOR SYSTEM

This article presents a case study that identifies the need for application development that increases the
security of information stored on local computers, threatened by remote access routes using data networks
and record such access to subsequent audit if necessary . For application development it was searched on
data security, network communication protocols, remote access applications and existing access
identification. Delphi Embarcadero programming language was chosen for the application encoding,
SQLite to store the records of connections. They searched other applications that are intended to identify
remote connections with usability features similar to the proposed application in this work. It was concluded
that the existing applications found and studied currently not meets the requirements proposed by company,
reinforcing the need for development of a specific tool for monitoring of remote access function.
Key-words: Monitoring; Access; Remote; Ethernet; Security; Privacy.

1 INTRODUO
De acordo com Laudon (2010, p.41) Durante os ltimos 50 anos, cada vez mais as
informaes organizacionais e o fluxo delas entre os principais atores dos negcios foram
computadorizados.
Esta migrao de informaes do papel para meios digitais, dificultou o controle de acesso s
informaes armazenadas. Se no passado uma gaveta trancada era suficiente para manter informaes
sigilosas em segurana, hoje devido a informatizao dos processos os prprios funcionrios
representam problemas srios de segurana. Eles tm acesso a informaes privilegiadas e, na
presena de procedimentos de segurana internos frouxos, muitas vezes podem perambular por todos
os sistemas da organizao sem deixar vestgios (LAUDON, 2010, p.226).

1Artigo da disciplina de Trabalho de Concluso do Curso em Sistemas de Informao, submetido ao Curso de


Sistemas de Informao da Universidade Luterana do Brasil, Campus Guaba.
O problema se agrava quando em determinadas situaes existem funcionrios, normalmente
da equipe de tecnologia da informao (TI) ou outros profissionais que tem a prerrogativa de efetuar
acessos remotos com o consentimento prvio do acessado ou da prpria instituio.
O usurio acessado pode ou no ter cincia do evento, sendo este acesso consentido ou no, e
neste caso configurando uma potencial falha de segurana, o que define o principal objetivo deste
trabalho, ou seja, o controle de acessos as informaes armazenadas no equipamento acessado.
A questo se quem est acessando tem o direito e objetivo legtimo para faz-lo. A
possibilidade de algum usurio se apoderar indevidamente de uma senha de administrador, ou fazer-se
passar por tal no pode ser desprezada e o registro da hora e origem do acesso podem auxiliar na
identificao de um possvel fraudador. Os motivos pelos quais os procedimentos de segurana de
informao possam no ser ideais ou adequados variam para cada instituio, e vo desde a falta de
recursos tecnolgicos e financeiros at a simples falta de conhecimento. Logo, qualquer ferramenta
que incremente a segurana da informao e o respeito privacidade do usurio tem relevante
aplicao neste cenrio.
Diante deste cenrio, este artigo define alguns requisitos para uma ferramenta de deteco de
acesso remoto, pesquisa aplicativos existentes para este fim e estuda tecnologias e ferramentas para o
desenvolvimento e implementao de um aplicativo que atenda os requisitos propostos.

2 CONCEITOS
O desenvolvimento do aplicativo proposto neste Trabalho de Concluso implica na
compreenso dos mecanismos de conexo entre computadores utilizando redes de dados e o protocolo
TCP/IP, para tanto faz-se necessria abordagem pontual das tecnologias envolvidas no processo e suas
caractersticas.
De acordo com Mendes (2007, p.31), Uma rede existe quando feita a interligao de
computadores de forma local ou remota. Para fazer essa interligao, so necessrios os componentes
que formam a rede, tais como placas, cabos, conectores e outros aparelhos, ou seja, sempre que
houverem dois ou mais computadores interligados por qualquer via e compartilhando recursos ou
dados, est formada uma rede de dados.

2.1 Protocolos de comunicao.


Para que haja comunicao entre os equipamentos, alm da conexo fsica ou remota, devem
haver protocolos de comunicao que estabeleam regras de comunicao que ambos equipamentos
possam entender. Nas palavras de Kurose (2013, p.7) Um protocolo define o formato e a ordem das
mensagens trocadas entre duas ou mais entidades comunicantes, bem como as aes realizadas na
transmisso e/ou no recebimento de uma mensagem ou outro evento.
Os protocolos so identificados por siglas e o principal para o objetivo deste trabalho o
protocolo TCP/IP, segundo Mendes (2007, p.18), O nome TCP/IP refere-se a uma pilha de
protocolos que tem como principais protocolos o TCP (Transmission Control Protocol) e o IP
(Internet Protocol) alm de outros protocolos conhecidos tais como ARP, RARP, UDP e ICMP.
O protocolo TCP prov servios orientados a conexo para suas aplicaes. Alguns desses
servios so a entrega garantida de mensagens da camada de aplicao ao destino e controle de fluxo
(isto , compatibilizao das velocidades do remetente e do receptor) (KUROSE 2013, p.38).
O protocolo IP define os campos no datagrama e o modo como os sistemas finais e
roteadores agem nesses campos (KUROSE 2013, p.38).
H duas verses do protocolo IP em uso hoje (KUROSE 2013, p.244), cujas siglas so IPv4
(Internet Protocol version 4) e IPv6 (Internet Protocol version 6) onde o sufixo v4 e v6 faz meno ao
campo identificador de verso do protocolo IP que corresponde aos quatro primeiros bytes do
datagrama.
De acordo com a RFC 15942 (Request for Comments 1594) da organizao Internet
Engineering Task Force (IETF), o datagrama uma entidade de dados completa e independente que
contm informaes suficientes para ser roteada da origem ao destino sem precisar confiar em trocas
anteriores entre essa fonte, a mquina de destino e a rede de transporte [traduo nossa].
Em outras palavras, o datagrama se assemelha a uma palavra ou frase de dados, contendo em
si informaes que permitem identificar sua origem, destino e propsito. O campo identificador no
datagrama IP necessrio pois examinando o nmero da verso, o roteador pode determinar como
interpretar o restante do datagrama IP. Diferentes verses de IP usam diferentes formatos de
datagramas (KUROSE 2013, p.245).
O protocolo IPv4 foi descrito pela IETF na publicao RFC 7913 de setembro de 1981, e o
protocolo IPv6 foi descrito na RFC 24604 de dezembro de 1998.
A principal diferena entre os protocolos IPv4 e IPv6 o nmero de endereamentos
possveis a partir da sua mscara de identificao. Enquanto o IPv4 utiliza uma mscara de 32 bits e
permite 4.294.967.296 endereos ou 2, o IPv6 utiliza uma mscara de 128 bits aumentando
drasticamente a quantidade de endereamentos possveis.
O IPv4 ainda largamente utilizado conforme o Registro de Endereos da Internet para a
Amrica Latina e o Caribe (Latin America and Caribbean Network Information Centre/LACNIC,
2016) mas deve ser substitudo gradativamente pelo IPv6 por permitir um maior nmero de
endereamentos.

2.2 Portas de comunicao


Alm da estrutura de conexo, protocolos e endereos, so necessrias portas para que se
estabelea a comunicao. Ford (2002, p.48 e p.49) menciona que as portas so os recursos
principais de exposio de qualquer computador e ainda todo pacote que enviado atravs da rede
tambm contm uma porta de destino que identifica o recurso especfico no computador de destino
para o qual o pacote destinado. Em outras palavras, no h conexo sem que uma porta seja
utilizada. O pacote, nesta situao, so os dados que trafegam na rede.
Por padro as portas so numeradas de 0 a 65535 e embora no haja determinao explcita
que impea uma aplicao de usar qualquer porta no intervalo, a organizao Internet Assigned
Numbers Authority (IANA)5 estabelece que algumas portas so de uso preferencial de determinados
servios conforme RFC 63356. Podem ser citadas como exemplo as portas apresentadas no Quadro 1.

2https://tools.ietf.org/html/rfc1594
3https://tools.ietf.org/html/rfc791
4https://tools.ietf.org/html/rfc2460
5http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
6https://tools.ietf.org/html/rfc6335
Quadro 1 - Exemplos de utilizao de portas de comunicao.
Porta/Protocolo Descrio
20/TCP FTP (File Transfer protocol)(Protocolo de transferncia de arquivo) - data port
22/TCP,UDP SSH (Secure Shell) (Shell seguro) - usada para logins seguros, transferncia de arquivos e
redirecionamento de porta
23/TCP,UDP Telnet protocol - comunicao de texto sem encriptao
25/TCP,UDP SMTP (Simple Mail Transfer Protocol) (Protocolo simples de envio de e-mail) - usada
para roteamento de e-mail entre servidores (por questes de segurana, conforme o
Comit Gestor da Internet no Brasil CGI.br, atualmente usado a porta 587)
43/TCP WHOIS protocolo de consulta de informaes de contato e DNSprotocol
80/TCP (HyperText Transfer Protocol)(Procolo de transferncia de HiperTexto) - usada para
transferir pginas WWW
110/TCP (Post Office Protocol version 3): Protocolo de Correio Eletrnico, verso 3 - usada para
recebimento de e-mail
137/TCP,UDP NetBIOS NetBIOS Name Service
443/TCP HTTP Protocol over TLS/SSL (transmisso segura)(Camada de transporte seguro)
1433/TCP Microsoft SQL database system
1863/TCP Windows Live Messenger
Fonte: IANA-Service Name and Transport Protocol Port Number Registry

2.3 Acesso remoto


Contudo, no so exatamente os equipamentos que se comunicam entre si, e sim os processos
ou aplicativos neles executados. Kurose (2013, p.65) afirma que uma aplicao de rede consiste em
pares de processos que enviam mensagens uns para os outros por meio de uma rede e ainda que
para cada par de processos comunicantes normalmente rotulamos um dos dois processos de cliente e
o outro, de servidor.
Estes rtulos definem quem est acessando (o cliente) e quem est sendo acessado (o
servidor). O cliente a parte que inicia a conexo, que uma vez estabelecida ocorre de forma
bidirecional, onde tanto o servidor quanto o cliente podem enviar e receber dados.
importante esclarecer que alguns tipos de acesso, seja local ou remoto, dependem do tipo de
usurio, das permisses ou poderes que ele possa ter sobre o sistema acessado. Existem basicamente
dois tipos de usurio: o usurio comum e o administrador, tambm conhecido como superusurio ou
root.
Tanenbaum (2009, p.496) esclarece que o superusurio tem o poder de ler todos os arquivos
do sistema, no importando quem sejam os proprietrios ou como eles estejam protegidos.
Normalmente tais privilgios so concedidos apenas ao usurio administrador do sistema ou da rede.
Ao usurio dito comum, normalmente so designados poderes suficientes apenas para que
desempenhe as funes condizentes com suas atividades.
Dentre as vrias aplicaes para a rede de dados esto o compartilhamento de recursos,
informaes (normalmente arquivos digitais) e at mesmo a prpria interface do usurio. Para tanto
existem diversas ferramentas que proporcionam diferentes tipos de acesso, alguns discretos e quase
indetectveis e outros explcitos. Estas conexes podem ou no ser consentidas dependendo da
situao.

2.4 Tipos de acesso remoto


Para o objetivo deste trabalho sero considerados dois tipos de conexes que so de uso
comum em redes de dados, as quais por suas caractersticas so mais facilmente dissimuladas, de
forma que o usurio no equipamento acessado pode no ter cincia da conexo.
O primeiro tipo o acesso administrativo, que ocorre quando o acessante tem poderes
administrativos na rede, normalmente um superusurio ou root, e pode acessar o contedo dos discos
ou os recursos de outro computador utilizando apenas um navegador de arquivos (como o aplicativo
Explorer no sistema operacional Windows) onde informa o nome ou IP do equipamento acessado
seguido de um identificador especfico terminado em $ (cifro).
A Figura 1 ilustra a utilizao deste tipo de acesso utilizando o Windows Explorer, aplicativo
do sistema operacional Windows, atravs do qual o acessante com poderes administrativos obtm
acesso completo ao disco rgido ou qualquer outro recurso do acessado.
Figura 1 Exemplo de utilizao do acesso via Explorador de Arquivos.

Fonte: A Pesquisa
O segundo o acesso utilizando o protocolo Remote Framebuffer (RFB)7 utilizado em Virtual
Network Computing (VNC) que permite que o acessante veja e interaja, se desejar, com a interface do
usurio acessado como se estivesse em frente ao equipamento acessado.
A Figura 2 ilustra um acesso via VNC onde se observa que o acessante v o contedo da tela
do acessado como se estivesse fisicamente diante do equipamento.
Figura 2 Exemplo de acesso via VNC.

Fonte: A Pesquisa

7https://tools.ietf.org/html/rfc6143
Em ambos casos, o usurio acessado pode ou no ter cincia do evento, sendo este acesso
consentido ou no, e neste caso configurando uma potencial falha de segurana, o que define o
principal objetivo deste trabalho, ou seja, o controle de acessos as informaes armazenadas no
equipamento acessado.

3 APLICATIVOS EXISTENTES NA REA


Existe grande disponibilidades de aplicativos que executam o monitoramento de conexes,
alguns so gratuitos, outros pagos. Variam principalmente quanto a interface, quantidade e a forma da
informao que disponibilizam sobre as conexes, mas basicamente exibem endereos e portas de
origem e destino, o tipo de protocolo utilizado e o estado da conexo.
Possivelmente o mais conhecido seja o aplicativo NETSAT (Network Statistic), que
fornecido juntamente com os sistemas operacionais Windows, Linux e OSX, sem necessidade de
instalao ou compra de licenas adicionais. Os recursos do NETSTAT podem ser apresentados de
forma grfica tal como no aplicativo TcpView, ou fazer parte de pacotes de aplicativos tais como o
Network Utility.
Outros aplicativos tais como o NetActView8, CurrPorts9, Private Eye10, TCPEye11 ou
PortsMonitor12 (apenas para citar alguns) podem ser adquiridos e instalados no sistema operacional
com o mesmo objetivo, variando basicamente a interface. Uma das vantagens destes aplicativos
consiste em atualizarem-se automaticamente, exibindo a mudana de estado das conexes conforme
elas ocorrem sem que haja necessidade de atualizar e executar manualmente nova consulta.

3.1 NetStat
O monitoramento de conexes ativas no computador uma tarefa relativamente simples, para
qual o prprio sistema operacional normalmente dispe de ferramentas para executar. No caso dos
sistemas operacionais Windows, Linux e OSX a ferramenta mais conhecida o aplicativo
NETSTAT cujo funcionamento difere pouco entre os sistemas operacionais.
O NETSTAT executado no prompt de comando do sistema operacional. A Figura 3 ilustra a
execuo do comando no sistema operacional Windows, onde se observa o resultado da consulta
disposto em quatro colunas:
Proto, o indicativo do protocolo em que ou ser feita a conexo;
Endereo Local, o identificador IP do equipamento local, seguido de dois pontos e do
nmero da porta lgica que est aberta para conexes.
Endereo Externo, o identificador IP do equipamento conectado, seguido de dois pontos e
do nmero da porta lgica que est aberta para conexes.
Estado, a situao atual da porta no par de IPs referenciados (Local e Externo).

8para sistema operacional Linux, disponvel em (http://netactview.sourceforge.net/).


9para sistema operacional Windows, disponvel em (http://www.nirsoft.net/utils/cports.html).
10para sistema operacional MAC OS, disponvel em (http://radiosilenceapp.com/private-eye).
11para sistema operacional Windows, disponvel em (http://tcpmonitor.altervista.org/download/?did=1).
12para sistema operacional MAC OS, disponvel em (http://alternativeto.net/software/portsmonitor/).
Figura 3 Exemplo de utilizao do NETSTAT sem argumentos.

Fonte: A Pesquisa
Porm possvel passar argumentos para o NETSTAT para que ele retorne informaes
especficas ou em formatos diferentes. Os parmetros na p TCP, informam para aplicao que
desejamos que nos mostre apenas conexes do protocolo TCP, exibindo endereos e portas no formato
numrico e exibindo tambm todas as conexes e portas no modo de escuta, mesmo as que no
estiverem sendo utilizadas no momento.A Figura 4 demonstra a sada do comando NETSTAT
utilizando-se os parmetros na p TCP.
Figura 4 Exemplo de utilizao do NETSTAT com argumentos.

Fonte: A Pesquisa
Cabem alguns esclarecimentos, como mencionado anteriormente, cada equipamento
integrante de uma rede possui um ou mais identificadores que so seus nmeros IP, no entanto
observa-se que tanto na coluna Endereo Local quanto na coluna Endereo externo existem endereos
zerados (0.0.0.0) e/ou portas com nmero 0 (zero), isto deve ser entendido como qualquer. Para
melhor compreenso vide Figura 5.
Figura 5 Informaes sobre conexo.
Proto Endereo local Endereo externo Estado
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING

L-se: Usando o protocolo TCP, qualquer endereo local atende (LISTENING) a porta 135
para qualquer endereo externo em qualquer porta. Outro exemplo de estado de conexo
apresentado na Figura 6:
Figura 6 Estado de uma conexo.
Proto Endereo local Endereo externo Estado
TCP 10.0.0.165:49996 216.58.222.14:443 ESTABLISHED

L-se: Usando o protocolo TCP, o endereo local 10.0.0.165 utilizando a porta 49996 est
conectado (ESTABLISHED) com o endereo externo 216.58.222.14 em sua porta 443.
Conforme a RFC 79313 (IETF) os estados possveis para as conexes so:
LISTEN, (ouvir), representa a espera por um pedido de conexo de qualquer TCP e porta.
SYN_SEND, (sincronizao enviada), representa a espera pela confirmao de aceite de
conexo aps um pedido de conexo ter sido enviado.
SYN_RECEIVED, (sincronizao recebida), representa espera por uma conexo aps
ambos terem confirmado pedido de conexo.
ESTABLISHED, (estabelecido), representa uma conexo aberta, em que dados podem ser
entregues ao utilizador. o estado normal para a fase de transferncia de dados da
conexo.
FIN_WAIT_1, (aguarda finalizao 1), representa a espera ou um reconhecimento de
confirmao de uma solicitao de finalizao de conexo enviada anteriormente
FIN_WAIT_2, (aguarda finalizao 2), representa a espera pela finalizao da conexo.
CLOSING, (fechando), representa a espera do encerramento solicitado.
LAST_ACK, (ltima confirmao), representa espera pela confirmao de um pedido de
finalizao enviada anteriormente ao TCP remoto.
TIME_WAIT, (tempo de espera), estado de espera para certificar-se que a conexo foi
encerrada aps a confirmao do pedido de encerramento.
CLOSED, (encerrada), indica que a conexo foi encerrada com sucesso.
Para efeito de monitoramento de conexes, so relevantes os estados ESTABLISHED e
LISTENING, que correspondem a indicao de conexo estabelecida ou porta livre respectivamente,
j que os demais estados so transies entre estes.
O NETSTAT embora comum, eficiente e gratuito (normalmente fornecido j instalado no
sistema operacional) pouco utilizado por usurios no familiarizados com as reas de Informtica e
Processamento de Dados, pois sua execuo ocorre via linha de comando (prompt) no possuindo
interface grfica. Tambm no opera automaticamente, devendo ser acionado toda vez que se queira
verificar as conexes existentes no equipamento.

3.2 TcpView
O TcpView um aplicativo para o sistema operacional Windows da Microsoft integrante
da sute Sysinternals disponibilizada gratuitamente pela Microsfot em seu site 14. Exibe informaes
semelhantes as apresentadas pelo NETSTAT de forma grfica juntamente com algumas mtricas de
trfego de dados, tais como quantidade de dados recebida ou transferida, nmero de conexes em
cada estado, entre outras. A Figura 7 ilustra a interface do aplicativo TcpView.

13https://tools.ietf.org/html/rfc793#page-30
14https://technet.microsoft.com/en-us/sysinternals/bb842062.
Figura 7 Aplicativo TcpView.

Fonte: A Pesquisa

3.3 Network Utility


O Network Utility um aplicativo integrante dos sistemas operacionais OSX da Apple e
consiste em um pacote de aplicativos para diagnstico e teste de rede de dados 15, do qual faz parte
uma interface grfica do NETSTAT. Pode-se observar na Figura 8 o aplicativo em execuo com foco
na aba NETSTAT exibindo o estado das conexes.
Figura 8 Aplicativo Network Utility

Fonte: A Pesquisa

4 PROPOSTA DE DESENVOLVIMENTO DO SISTEMA MONITOR.


Prope-se o desenvolvimento de um aplicativo que monitore e documente os acessos remotos
ao computador atravs do registro das conexes de rede no protocolo TCP/IP.
Como consequncia pretende-se assim aumentar a segurana das informaes, o respeito a
privacidade do usurio acessado e compor uma base de dados a partir das informaes de conexo
coletadas pelo aplicativo que permita no s responsabilizar o acessante por seus atos como tambm
servir como base de conhecimento, tendo em vista que parte dos acessos remotos tem inteno de
suporte tcnico ao usurio ou equipamento acessado.

15https://support.apple.com/en-us/HT202790
4.1 Caractersticas do Monitor
So premissas deste projeto que o software a ser desenvolvido no interfira significativamente
no desempenho do equipamento em que estiver instalado, tenha uma interface simples, apresentando
informaes claras e objetivas direcionadas principalmente aos usurios menos familiarizados com
ambientes de tecnologia da informao. Para tanto, no se prev desenvolvimento de ferramentas de
anlise de pacotes de dados ou qualquer tipo de inferncia na conexo identificada, pois para estes
fins j existem ferramentas, tais como firewalls e antivrus, mais apropriados.
Cada computador integrante da rede ter o aplicativo instalado localmente, executando-o
minimizado ou em segundo plano, monitorando automaticamente em intervalos pr-determinados a
situao das portas de comunicao do protocolo TCP/IP. O aplicativo no influenciar na conexo de
forma alguma, limitando-se a registrar e, quando necessrio, notificar o usurio sobre o evento.
O intervalo padro de atualizao da tabela de conexes ser de 20 (vinte) segundos, podendo
ser alterado. Supe-se que este intervalo seja adequado pelos seguintes motivos:
tempo limitado para que o usurio execute alguma ao relevante entre uma leitura e outra
que impea o monitor de registrar o evento.
No onera o processamento, tal como faria um sistema que ficasse constantemente lendo a
tabela de conexes.
O monitoramento se dar atravs da obteno da relao de portas de comunicao abertas e
seus respectivos estados. Estes dados, tomados automaticamente em intervalos regulares, sero
comparados com os registros da leitura imediatamente anterior, identificando quais portas sofreram
alterao de estado.
importante ressaltar que o Sistema Monitor proposto no um antivrus, tampouco um
firewall. Tambm no intermedia, intercepta ou analisa os dados da conexo. A conexo em si,
independente qual for, no depende, no sofre influncia e no influencia o funcionamento do sistema
Monitor.
A comunicao entre Monitores, registro das informaes, envio para unidade centralizadora,
atualizao da tabela de conexes, e todas as demais atividades de monitoramento so automticas e o
usurio s toma cincia de que o Monitor est instalado em seu equipamento se este identificar uma
conexo remota que no esteja na lista de excees ou se alguma porta for aberta.
A interface apresentada aos usurios, acessado e acessante, ser idntica. O diferencial ser o
momento em que esta interface ser apresentada. No caso do acessado, aparecer no incio da
conexo, no fim e aps o recebimento da justificativa. J para o usurio acessante, s aparecer no
fim, solicitando a justificativa para o acesso.

4.2 Requisitos de Funcionamento do Monitor


O aplicativo proposto deve monitorar as conexes de rede no computador em que esteja
instalado e deve atender ainda os seguintes requisitos:
Deve ser capaz de enviar o registro do evento para terceiros a fim que possa haver
centralizao da documentao a respeito dos acessos havidos na rede de dados que envolvam
o computador em que estiver instalado. A existncia de uma unidade centralizadora ser
recomendvel, mas opcional. Se existir ter o nico propsito de centralizar as informaes
sobre as atividades de conexes remotas ocorridas na rede e documentadas pelos monitores,
no interferindo no funcionamento do Monitor local.
Deve monitorar e documentar no mnimo as atividades ocorridas nas portas 5800, 5900 e 445
do protocolo TCP/IP;
Deve permitir que se defina quais conexes (IPs ou Portas) devem ser notificadas e quais
devem ser ignoradas ou somente documentadas, diminuindo a quantidade de avisos ao
usurio para que haja pouca ou nenhuma interferncia em sua produtividade. Para isso, o
aplicativo dever dispor de uma tabela de excees, que dever conter endereos Ips e portas
no monitorveis. Normalmente sero endereos de servidores de rede, switches, impressoras
e outros equipamentos que podero ser conectados, desconectados e reconectados sem prvio
aviso, atividade que alterar a tabela de conexes. Contudo, pelas caractersticas prprias
destes equipamentos no h necessidade que o usurio seja avisado deste tipo de conexo.
Dever dispor de mecanismo de consulta e/ou relatrio do histrico de conexes.
Dever ser executvel no sistema operacional Windows nas verses XP, Vista, 7, 8
e 10, 32 ou 64 bits.
Dentre os requisitos acima, encontra-se o que impe o principal diferencial para o aplicativo
Monitor. Ao permitir que se definam Ips ou portas as quais, se utilizadas, no devem ser notificadas
ao usurio, contribui para que o mesmo receba apenas avisos relevantes, evitando distraes e perda
de tempo analisando informaes sem potencial prejudicial para os dados contidos no equipamento
acessado.

4.3 Ferramentas e Tecnologias Utilizadas


Para seu desenvolvimento, esto em estudo as seguintes ferramenta e tecnologias:
Embarcadero Delphi verses XE5 e XE7. O Delphi um compilador orientado a eventos 16 e
uma Integrated Development Environment (IDE) ou Ambiente de Desenvolvimento
Integrado, largamente utilizado para desenvolvimento de aplicaes desktop. O Delphi ser
utilizado para a codificao do software.
SQLite. O Sqlite consiste em uma pequena biblioteca em C que implementa um banco de
dados do tipo Structured Query Language (SQL) ou Linguagem de Consulta Estruturada,
embutido. O SQLite permite que aplicativos disponham de recursos de armazenamento de
dados SQL sem a necessidade de executar um Sistema de Gerenciamento de Banco de Dados
(SGBD) - do ingls Data Base Management System (DBMS), em separado.
LibreOffice. O LibreOffice uma sute de aplicativos para escritrio da qual fazem parte
editores de documentos, de planilhas de clculo e de apresentaes utilizados para
documentao deste trabalho.
DIA Portable. O DIA um software para criao de diagramas e esquemas.
Application Programming Interfaces (APIs). um conjunto de interfaces de aplicao
integrante do sistema operacional Windows do qual fazem parte ferramentas para obteno
de informaes sobre as conexes de rede de dados utilizadas neste projeto.
As ferramentas e tecnologias escolhidas para o desenvolvimento do software Monitor
aplicam-se ao sistema operacional Windows em virtude de sua maior utilizao nos computadores.
Todavia, o aplicativo proposto neste trabalho pode, adaptando as ferramentas de acordo com a
necessidade, ser implementado em outros sistemas operacionais.

4.4 Sequncia padro de eventos em uma conexo remota.


Para ilustrar melhor o funcionamento desejado da ferramenta, segue exemplo de conexo
entre dois computadores utilizando-se o aplicativo VNC:
1. Utilizando um software de acesso remoto o acessante conecta o acessado via VNC
a) O Monitor de Conexes identifica, baseado no estado anterior das portas locais
registradas na leitura anterior, que o estado destas mudou, e portanto h atividade de
conexo. Se a conexo identificada fizer parte da lista de excees, ignora, caso contrrio:
b) So realizadas aes distintas no lado acessado e acessante. Todas automticas (sem
interao do usurio).

16Programao orientada a eventos um paradigma de programao, em que o controle de fluxo de programas


so guiados por indicaes externas, chamadas eventos.
No lado acessante, o Monitor inclui a conexo recm identificada na base de dados
local.
No lado acessado, alm de incluir na base local, envia um pedido de identificao
para o acessante (via socket) para obter o nome do computador e o nome do usurio
logado no lado acessante. Juntamente com o pedido de identificao envia tambm
seus dados, nome do computador e do usurio logado no lado acessado.
O lado acessante recebe o pedido de identificao, atualiza sua base local com os
dados recebidos e responde com seus dados.
O lado acessado, ao receber os dados de identificao do acessante (ou no),
apresenta tela no desktop do usurio acessado notificando-o que est sofrendo acesso
remoto. Este aviso ser apresentado mesmo que o usurio acessante no responda
com sua identificao. Caso em que sero apresentadas apenas o IP do acessante e a
hora do incio do acesso.
c) Neste ponto, a conexo remota conhecida e registrada em ambos lados.
d) Ambos, acessante e acessado, ou apenas um dos lados envia para unidade centralizadora
o registro do evento de conexo.
2. Durante o tempo que a conexo se manter, o Monitor far as checagens peridicas conforme
foi programado, mas conexes conhecidas sero ignoradas. Havendo novas conexes, de
qualquer tipo, sero tratadas como descrito anteriormente, uma a uma.
3. Fim da conexo, que pode ter sido interrompida tanto do lado acessante quanto do lado
acessado, ou de ambos.
a) O lado acessado alerta o usurio sobre o fim do acesso to logo identifique o fim da
conexo. Envia nota de encerramento para unidade centralizadora.
b) No lado acessante, ao identificar o fim da conexo o Monitor solicita que o acessante
informe o motivo para o acesso. Este motivo gravado na base de dados local e enviado
via socket para o acessado e para unidade centralizadora.
c) O acessado recebe a justificativa de acesso enviada pelo acessante, atualiza sua base local
e apresenta nova tela sobre o fim da conexo, agora j com a justificativa informada pelo
acessante. Envia nota de atualizao para unidade centralizadora.
importante salientar que caso alguma das partes no tenha o Monitor instalado ou este no
esteja em execuo, as atividades da outra parte no sero afetadas, excetuando pelo fato de que
algumas informaes no podero ser trocadas de forma completa entre elas.

4.5 Interface do Monitor


A Figura 9 apresenta o prottipo de aviso de conexo remota. Este aviso tem o mesmo
formato tanto no lado acessado quanto no acessante, sendo que no lado acessante ele apresentado
uma nica vez, ao fim da conexo, quando o usurio dever justificar o motivo do acesso. No lado
acessado, este aviso dever ser apresentado quando identificada nova conexo remota, ao fim desta, e
no momento em que receber a justificativa do acessante.
Figura 9 -Tela de alerta de conexo e pedido de justificativa.

Fonte: A Pesquisa
O aviso de abertura de porta exibido sempre que o sistema identifica uma nova porta aberta
na lista do NETSTAT que no constava na lista imediatamente anterior. Ao receber o aviso o usurio
dever avaliar se aciona ou no medidas de segurana conforme tenha sido previamente orientado
pela equipe de informtica. A Figura 10 ilustra o prottipo para o aviso.
Figura 10 - Alerta de porta aberta.

Fonte: A Pesquisa
As telas de configurao do sistema (Figura 11) normalmente no sero visveis ao usurio
padro. O cadastro de excees dever conter Ips e/ou portas que no sero monitoradas.
Normalmente sero includos Ips de impressoras, scheelites, servidores de rede ou outros
equipamentos que, embora conectados ao computador local, no devem ser avisados. Estes
equipamentos tm como caracterstica principal o fato de poderem ser desligados, ressetados e
religados durante o dia, perdendo e refazendo conexes de rede, sem com isso apresentar risco que
merea ateno do usurio. A Figura 11 ilustra o prottipo da tela de Configurao de Excees onde
se observa a possibilidade de indicar um intervalo de Ips, uma porta especfica e indicar de que lado,
(acessante ou acessado) ela deve estar para que constitua uma exceo, e uma observao para
orientar o usurio sobre o motivo pelo qual determinada configurao constitui uma exceo.
Figura 11 - Cadastro de excees.

Fonte: A Pesquisa

5 MODELAGEM
Conforme se observa na Figura 12, os casos de uso do aplicativo proposto so relativamente
poucos o que demonstra que o foco dever estar bem determinado, mantendo a proposta de
simplicidade operacional e baixa interferncia no desempenho do equipamento em que estiver
instalado. O detalhamento de requisitos dos casos de uso pode ser verificado no Apndice A.
Os atores no precisam necessariamente agir em pares, sendo que se apenas um dos lados,
acessante ou acessado, tiver o aplicativo em execuo, este realizar as aes condizentes com sua
condio, sem dependncia da outra parte.
Figura 12 - Casos de uso.

Fonte: A Pesquisa
Basicamente as aes so decorrentes de eventos ou mudanas de estado ocorridas nas portas
de comunicao ou da atividade de sockets de comunicao utilizados para troca de informaes entre
as partes.
Em uma operao padro a ordem dos eventos seria aproximadamente a seguinte:
1. Acessante inicia conexo.
2. Aplicativo na mquina do acessante identifica incio de conexo e registra na tabela de
atividades (CDSPortas) e na tabela de conexes (NETCNX).
3. Aplicativo na mquina do acessado identifica incio de conexo e registra na tabela de
atividades (CDSPortas), na tabela de conexes (NETCNX) e avisa usurio do incio do
acesso.
4. Acessante finaliza acesso.
5. Aplicativo na mquina do acessante identifica trmino de conexo e exclui da tabela de
atividades (CDSPortas), atualiza tabela de conexes (NETCNX) e apresenta tela
solicitando motivo para o acesso. A seguir, atualiza a tabela de conexes (NETCNX) com
o motivo do acesso e envio a justificativa para o acessado.
6. Aplicativo na mquina do acessado identifica trmino de conexo e exclui da tabela de
atividades (CDSPortas) , atualiza tabela de conexes (NETCNX) e avisa usurio.
7. Aplicativo na mquina do acessado recebe a justificativa do acessante, atualiza tabela de
conexes (NETCNX) com o motivo informado e apresenta para o usurio.
Com relao ao Diagrama de Atividades (Figura 13), este prev trs tipos de atividades
principais. As que so comuns para ambos lados da conexo, as que so executadas apenas no lado
acessante e as executadas somente no lado acessado.
Constituem atividades comuns a obteno da lista NETSTAT, a comparao dos estados das
conexes atuais com as registradas e o tratamento das variaes de estado. Neste tratamento, incluem-
se os avisos exibidos aos usurios e, quando da parte acessada, o pedido de identificao do acessado
ao acessante.
Figura 13 - Diagrama de Atividades.

Fonte: A Pesquisa
No sistema proposto no h relao entre as tabelas de dados, havendo apenas uma estrutura
que armazenar o histrico de conexes, uma para as excees e uma de carcter temporrio, utilizada
unicamente enquanto o software estiver em execuo. A estrutura e funcionalidade das principais
tabelas de dados pode ser verificada no Apndice B.
Como a proposta saber quem acessou quem, quando e porqu, e ambos lados podem ter
identificaes, Ips e usurios diferentes mesmo em circunstncias semelhantes, no faz sentido criar
tabelas associando equipamentos a usurios ou estes a endereos IP. Cada ocorrncia tratada como
nica.

6 CRONOGRAMA
Para prover um mecanismo de acompanhamento e validao das etapas de desenvolvimento,
testes e implementao do aplicativo alm da documentao relativa a segunda parte deste Trabalho
de Concluso, apresentado um cronograma estimado no Quadro 2.
Quadro 2. Cronograma
Atividade Agosto Setembro Outubro Novembro Dezembro
Prototipagem
Implementao do NETSTAT
Implementao dos sockets.
Testes de comunicao sockets
Tabela de Excees
Testes de regras e sockets
Validao da interface
Relatrios de consultas
Implementao em produo
Avaliao de desempenho
Elaborao do Banner
Elaborao do artigo final
Entrega do Banner
Entrega do artigo final
Defesa do Trabalho
Entrega do artigo final corrigido

O cronograma pode sofrer alteraes para se adequar s datas das entregas oficiais e a prpria
evoluo do desenvolvimento do aplicativo.

7 CONSIDERAES FINAIS
A utilizao de ferramentas de acesso remoto no consiste em si uma falha de segurana ou
m gesto, seno quando utilizadas indevidamente. Prtica bastante comum, economiza tempo e
recursos ao permitir que se preste suporte aos usurios e equipamentos sem estar fisicamente presente
onde estes se encontram.
Todavia, preciso admitir a m utilizao do recurso e antecipar aes, criar mtodos de
controle e verificao e documentar as atividades para que, se necessrio, possam ser tomadas as
medidas corretivas adequadas.
A pesquisa por softwares existentes, semelhantes ao aplicativo proposto neste trabalho,
demonstrou que a preocupao com o monitoramento de conexes algo relevante e que existem
vrias abordagens para o tema, onde o aplicativo Monitor mais uma, porm com sua prpria
abordagem e definies, focado principalmente na documentao das conexes que por suas
caractersticas sejam previamente consideradas importantes para o usurio, evitando sobrecarregar o
utilizador com informaes irrelevantes.
O aplicativo Monitor proposto neste trabalho no se pressupe a soluo definitiva de
segurana de dados, de outra forma, intenciona contribuir para uma maior controle dos acessos
efetuados no equipamento em que estiver instalado.
A proposta ora apresentada carece de constante evoluo para que se adapte as novas ou
outras tecnologias (como por exemplo o IPv6, outros sistemas operacionais, etc) conforme forem
surgindo ou se mostrando relevantes no controle de conexes.

8 REFERNCIAS
APPLE, Disponvel em http://www.apple.com/br/osx/ Acessado em 15 de abr. de 2016.
FORD, Jerry Lee. Manual Completo de Firewalls Pessoais-Tudo o Qu Voc Precisa Saber para
Proteger o Seu Computador - So Paulo: Pearson Education do Brasil, 2002
INTERNET ASSIGNED NUMBERS AUTHORITY (IANA). Disponvel em: http://www.iana.org/.
Acesso em 09 de abr. de 2016.
KUROSE, James F., KEITH W. Ross. Redes de Computadores e a Internet: uma abordagem top-
down - 6 ed. - So Paulo: Pearson Education do Brasil, 2013.
LATIN AMERICA AND CARIBBEAN NETWORK INFORMATION CENTRE (LACNIC).
Disponvel em: http://www.lacnic.net/. Acesso em 09 de abr. de 2016.
LAUDON, Kenneth. Sistemas de Informaes Gerenciais, 9 Ed.- So Paulo: Pearson Prentice Hall,
2010.
LINUX, Disponvel em https://www.linux.com/ Acessado em 15 de abr. de 2016.
MENDES, Douglas Rocha. Redes de Computadores - 1 Edio - So Paulo: Novatec Editora,
2007.
MICROSOFT, Disponvel em https://www.microsoft.com/pt-BR Acessado em 15 de abr. 2016.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. - So Paulo: Pearson Prentice Hall,
2009.
THE INTERNET ENGINEERING TASK FORCE (IETF). Disponvel em: https://www.ietf.org/.
Acesso em 08 de abr. de 2016.
APNDICE A
DETALHAMENTO DO DIAGRAMA DE CASOS DE USO
UC 1 Ser avisado sobre abertura de porta
Objetivo Ser avisado sobre abertura de porta.
Atores Acessante. Acessado.
Pr-condies Aplicativo em execuo. Porta local aberta e no cadastrada na tabela de atividade
(CDSPORTAS). Estado da porta diferente de ESTABLISHED. Porta no est na
lista de excees.
Ps-Condies Nenhuma.
Ativao Ativado pelo timer principal do aplicativo disparado automaticamente a cada 20
segundos.
Fluxo de Eventos 1.inclui na tabela de atividades (CDSPORTAS)
2.avisa usurio porta aberta
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Figura 10. Alerta de porta aberta.

UC 2 Iniciar conexo.
Objetivo Iniciar conexo.
Atores Acessante.
Pr-condies Aplicativo em execuo. Porta local em estado ESTABLISHED. Conexo tipo
ativa. Conexo ainda no registrada na tabela de conexes. IP e/ou porta no est
na lista de excees.
Ps-Condies Nenhuma.
Ativao Ativado pelo timer principal do aplicativo disparado automaticamente a cada 20
segundos.
Fluxo de Eventos 1.inclui na tabela de conexes (NETCNX)
2.inclui na tabela de atividades (CDSPORTAS)
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Nenhum.
UC 3 - Ser avisado de nova conexo e pedir identificao do acessante.
Objetivo Ser avisado de nova conexo e pedir identificao do acessante.
Atores Acessado.
Pr-condies Aplicativo em execuo. Porta local em estado ESTABLISHED. Conexo tipo
passiva. Conexo ainda no registrada na tabela de conexes. IP e/ou porta no
est na lista de excees.
Ps-Condies Nenhuma.
Ativao Ativado pelo timer principal do aplicativo disparado automaticamente a cada 20
segundos.
Fluxo de Eventos 1.Inclui na tabela de conexes (NETCNX)
2.Atualiza tabela de atividade (CDSPORTAS)
3.Envia pedido de identificao
4.Envia identificao
5.Recebe identificao
6.Atualiza tabela de conexes (NETCNX)
7.Avisa usurio.
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Figura 9. Tela de alerta de conexo e pedido de justificativa.

UC 4 - Receber e enviar identificao.


Objetivo Receber e enviar identificao.
Atores Acessante
Pr-condies Aplicativo em execuo. Porta local em estado ESTABLISHED. Conexo tipo
ativa. Conexo registrada na tabela de conexes. IP e/ou porta no est na lista de
excees.
Ps-Condie Nenhum.
Ativao Recebimento de mensagem via socket com a identificao do acessado e pedido
de identificao do acessante.
Fluxo de Eventos 1.Localiza registro de conexo na tabela de conexes (NETCNX)
2.Atualiza registro com dados do acessado.
3.Compe string de retorno com informaes solicitadas pelo acessado.
4.Envia informaes.
Requisitos Socket conectado com acessado.
Diagramas Associados Nenhum.
GUI Nenhum.
UC 5 - Ser avisado sobre fim da conexo.
Objetivo Ser avisado sobre fim da conexo.
Atores Acessado
Pr-condies Aplicativo em execuo. Conexo registrada na tabela de conexes. Porta local em
estado diferente de ESTABLISHED para a qual j havia conexo estabelecida
anteriormente OU registro da conexo no est presente na lista de conexes
ativas do sistema operacional. Conexo tipo passiva. IP e/ou porta no est na lista
de excees.
Ps-Condies Nenhuma.
Ativao Ativado pelo timer principal do aplicativo disparado automaticamente a cada 20
segundos.
Fluxo de Eventos 1.Exclui registro de conexo da tabela de atividade.(CDSPORTAS)
2.Atualiza tabela de conexes (NETCNX) com data e hora do fim da conexo.
3.Avisa usurio.
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Figura 9. Tela de alerta de conexo e pedido de justificativa.

UC 6 - Enviar justificativa.
Objetivo Enviar justificativa.
Atores Acessante
Pr-condies Aplicativo em execuo. Conexo registrada na tabela de conexes. Porta local em
estado diferente de ESTABLISHED para a qual j havia conexo estabelecida
anteriormente OU registro da conexo no est presente na lista de conexes
ativas do sistema operacional. Conexo tipo passiva. IP e/ou porta no est na lista
de excees.
Ps-Condies No
Ativao Ativado pelo timer principal do aplicativo disparado automaticamente a cada 20
segundos.
Fluxo de Eventos 1.Exclui registro de conexo da tabela de atividade.(CDSPORTAS)
2.Atualiza tabela de conexes (NETCNX) com data e hora do fim da conexo.
3.Pede justificativa para o acesso.
4.Atualiza tabela de conexes (NETCNX) com justificativa do acesso.
5.Envia justificativa do acesso para acessado via socket
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Figura 9. Tela de alerta de conexo e pedido de justificativa.
UC 7 - Mostrar justificativa.
Objetivo Mostrar justificativa.
Atores Acessado
Pr-condies Aplicativo em execuo. Conexo registrada na tabela de conexes. Conexo tipo
passiva. Conexo encerrada.
Ps-Condies Nenhuma.
Ativao Recebimento de justificativa do acessante via socket.
Fluxo de Eventos 1.Recebe justificativa do acessante via socket com identificador da conexo
justificada.
2.Localiza conexo justificada na tabela de conexes.
3.Atualiza registro de conexo com justificativa recebida.
4.Avisa usurio.
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Figura 9. Tela de alerta de conexo e pedido de justificativa.

UC 8 - Emitir relatrios
Objetivo Emitir relatrios
Atores Acessante, Acessado.
Pr-condies Aplicativo em execuo.
Ps-Condies Nenhuma.
Ativao Boto
Fluxo de Eventos 1.Seleciona perodo a relatar (de, at)
2.Filtra perodo na tabela de conexes (NETCNX)
3.Imprime.
Requisitos Nenhum.
Diagramas Associados Nenhum.
GUI Nenhum.

UC 9 - Configurar excees
Objetivo Configurar excees
Atores Acessante, Acessado.
Pr-condies Aplicativo em execuo
Ps-Condies Nenhuma.
Ativao Boto
Fluxo de Eventos 1.Seleo de opes de interao: Incluir, Alterar, Excluir.
2.Grava na tabela de excees (XPTMON)
Requisitos Nenhum.
Diagramas Associados Nenhum
GUI Figura 11. Cadastro de excees.
APNDICE B
ESTRUTURAS DAS TABELAS DE DADOS E SUA UTILIZAO
A tabela NETCNX cuja estrutura se observa na Figura 15, armazena o registro de conexes
encerradas e ativas. As conexes ativas tm como caracterstica o campo FIMCO em branco.
Prevendo a possibilidade de encerramento do software antes que todas as conexes sejam encerradas,
o sistema verifica este campo durante a inicializao, populando com data e hora atuais sempre que o
encontrar em branco, considerando assim todas conexes pendentes como encerradas. O histrico
(campo MOTIV) destas conexes ajustado para que o usurio saiba que o registro foi encerrado
automaticamente pelo sistema. Caso a conexo ainda esteja ativa, ser iniciado novo registro e tratado
de acordo com suas caractersticas.
Figura 15. Estrutura da tabela de conexes encerradas ou ativas.

A tabela CDSPortas descrita na Figura 16 temporria e virtual. Existe somente enquanto o


aplicativo estiver sendo executado. Ela matm registro das conexes ativas e portas abertas, mesmo as
que no estiverem sendo utilizadas, e comparada e atualizada automaticamente em intervalos
regulares. a partir das diferenas entre o registrado nesta tabela e a leitura corrente que so
executadas as aes de monitoramento das conexes. Esta tabele inicia sempre vazia.
Figura 16. Estrutura da tabela temporria de portas abertas e seu estado.

A tabela de excees cuja estrutura se observa na Figura 17, contm os Ips ou faixas de Ips e
portas que mesmo que tenham atividade de conexo ou desconexo, no devem ser notificadas ao
usurio nem registradas nas tabelas. Ela populada a partir do Cadastro de Excees e armazena os
Ips em dois formatos distintos. Primeiramente no formato tradicional, em 4 grupos de at 3 dgitos e
tambm em um campo do tipo double. Este campo objetiva acelerar o processamento das faixas de Ips
ao permitir verificar se determinado IP pertence ou no a uma determinada faixa de forma rpida.
Figura 17. Estrutura da tabela de excees, Ips e/ou portas no monitorveis.

APNDICE C
PSEUDO CDIGO
O pseudo-cdigo a seguir descreve a funcionalidade principal do aplicativo proposto de forma
que possa ser implementada em outras linguagens de programao. Para melhor entendimento sero
utilizadas as seguintes siglas:
CdsPortas=tabela temporria de atividade das portas. Nesta tabela ficam todas as
portas abertas, em uso ou no.
NetCnx=tabela de conexes (encerradas e ativas). Nesta tabela s ficam conexes
ativas ou encerradas.
XptMon=tabela de excees (Ips e/ou portas no monitorveis)
QUEM=string de comunicao, contm o IP, porta, nome do usurio e do computador
acessado e ID da conexo no lado acessado
INFC=string de comunicao, contm o IP, porta, nome do usurio e do computador
acessante e ID da conexo no lado acessante
JUST=string de comunicao, contm Ids da conexo em ambos lados e justificativa
do acessante.
Figura 18. Pseudo cdigo
Incio
Liga timer
Evento onTimer
Desliga Timer
para todo cdsPortas
// seta todos registros da temporria como no checados
cdsPortas.Checada:=false
fimpara
lstNetStat:=obtemNetstat()
para todo lsNetStat
Se lstNetStat.IP em XptMon OU se lstNetStat.Porta em XptMon
// verifica se IP ou porta na lista de excees
ignora
ouSe lstNetStat.Conexo em cdsPortas
// uma conexo conhecida
Se estado da conexo for ESTABLISHED
// ainda est conectado
cdsPortas.Checada:=True
seno // houve desconexo
NetCnx.FimConex:=time() // marca fim da conexo
cdsPOrtas.DELETE() // remove da lista temporria
exibe tela de alerta do fim da conexo
Se for acessante
questiona motivo da conexo
grava motivo na base local
envia motivo para acessado (ver aes dos sockets mais abaixo)
fimse
fimse
ouse lstNetStat.Conexo NO em cdsPortas
// porta desconhecida, aberta recentemente
se estado ESTABLISHED // j est em uso
Inclui em cdsPortas
Inclui em NetCnx
Sou lado acessado ?
Envia QUEM (ver aes dos sockets mais abaixo)
Se recebe INFC
Atualiza NetCnx com dados do INFC
fimse
Tela de alerta para usurio acessado
fimse
senao // inclui somente na tabela de atividades, no h conexo
Inclui em cdsPortas
cdsPortas.Checada:=True
Se no lPrimeiraLeitura
avisa porta aberta
fimse
fimse
fimse
fimpara
cdsPortas.primeiro
enquanto no cdsPOrtas.FIM()
se no cdsPortas.checada
// porta est na lista de atividade mas no consta no Netstat
cdsPOrtas.DELETE() // remove da lista temporria
exibe tela de alerta do fim da conexo
Se for acessante
questiona motivo da conexo
grava motivo na base local
envia motivo para acessado (ver aes dos sockets mais abaixo)
fimse
fimse
cdsPortas.proximo
fimenquanto
fim envento ontimer

Se sou lado acessado


Seleciona todos NetCnx.OutUsu=''
para todo NetCnx
// verifica todas conexes que ainda no tem nome do usurio acessante
envia QUEM
Se Recebe INFC
Atualiza NetCnx com dados do INFC
fimse
fimpara
fimse
liga timer

aes dos sockets


Se ACESSANTE Recebe QUEM
procura dados do acessado em NETCNX
se achou
atualiza registro com dados do acessado
compoe string INFC
envia para acessado
senao
retorna ERRO
fimse
fimse
se ACESSADO recebe INFC
procura id da conexo em NETCNX
atualiza registro com dados do acessante
fimse
se ACESSADO recebe JUST
procura id da conexo em NETCNX
atualiza registro com justificativa do acessante
exibe tela de aviso para usurio
fimse

Você também pode gostar