• Nenhum resultado encontrado

Um sistema para gestão do conhecimento em ameaças, vulnerabilidades e seus efeitos

N/A
N/A
Protected

Academic year: 2017

Share "Um sistema para gestão do conhecimento em ameaças, vulnerabilidades e seus efeitos"

Copied!
93
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA

PROGRAMA DE P ´OS-GRADUA ¸C ˜AO EM ENGENHARIA EL´ETRICA

Um Sistema para Gest˜

ao do Conhecimento em Amea¸cas,

Vulnerabilidades e seus Efeitos

M´ıriam Valen¸ca Massud

(2)

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA

PROGRAMA DE P ´OS-GRADUA ¸C ˜AO EM ENGENHARIA EL´ETRICA

Um Sistema para Gest˜

ao do Conhecimento em Amea¸cas,

Vulnerabilidades e seus Efeitos

M´ıriam Valen¸ca Massud

Orientador: Prof. Dr. Paulo S´ergio da Motta Pires

(3)

M´ıriam Valen¸ca Massud

Um Sistema para Gest˜

ao do Conhecimento em Amea¸cas,

Vulnerabilidades e seus Efeitos

Trabalho submetido ao Programa de P´os-Gradua¸c˜ao em Engenharia El´etrica do Centro de Tecnologia da Universidade Federal do Rio Grande do Norte como requisito parcial para a obten¸c˜ao do grau de Mestre em Ci-ˆencias.

Orientador: Prof. Dr. Paulo S´ergio da Motta Pires.

(4)

Agradecimentos

Aos meus pais, Munir Massud e Gilda Valen¸ca Massud, pelo amor incondicional, pelo incen-tivo e por terem me estimulado a escolher o caminho das ciˆencias genu´ınas, onde s˜ao menores os enganos e maiores as esperan¸cas, minha homenagem e meu amor.

Ao ilustre Professor Doutor Paulo S´ergio da Motta Pires, insigne orientador desta Disserta-¸c˜ao, devoto o meu apre¸co e o agrade¸co pelas luzes dos seus ensinamentos, pela sua extremada paciˆencia e generosa disponibilidade. ´E certo que o guardarei na mem´oria e no cora¸c˜ao.

Aos queridos amigos Rafael Pereira, Talita Pitanga Santos e Marconi Cˆamara Rodrigues, companheiros nesta jornada, que contribu´ıram direta ou indiretamente para o meu aprendizado cient´ıfico e afetivo, concito-os a participarem comigo deste momento e de todos os outros, se houverem, em honra a amizade que nos une.

(5)

Resumo

Ataques a dispositivos conectados em rede constituem um dos principais problemas relacio-nados `a confidencialidade das informa¸c˜oes sens´ıveis e ao correto funcionamento dos sistemas de computa¸c˜ao. Apesar da disponibilidade de ferramentas e de procedimentos que dificultam ou evitam a ocorrˆencia de incidentes de seguran¸ca, dispositivos de rede s˜ao atacados com sucesso utilizando-se estrat´egias aplicadas em eventos anteriores. O desconhecimento dos cen´arios nos quais esses ataques ocorreram contribui de maneira efetiva para o sucesso de novos ataques. O desenvolvimento de uma ferramenta que disponibilize esse tipo de informa¸c˜ao ´e, ent˜ao, de grande relevˆancia.

(6)

Abstract

Attacks to devices connected to networks are one of the main problems related to the con-fidentiality of sensitive data and the correct functioning of computer systems. In spite of the availability of tools and procedures that harden or prevent the occurrence of security incidents, network devices are successfully attacked using strategies applied in previous events. The lack of knowledge about scenarios in which these attacks occurred effectively contributes to the success of new attacks. The development of a tool that makes this kind of information available is, therefore, of great relevance.

(7)

Sum´

ario

1 Introdu¸c˜ao 1

2 O Modelo ADBS 5

2.1 Introdu¸c˜ao . . . 5

2.2 O Banco de Dados . . . 6

2.3 O Sistema de Gerenciamento de Banco de Dados . . . 9

2.4 Opera¸c˜oes no Banco de Dados . . . 11

2.4.1 Adi¸c˜ao de Informa¸c˜oes . . . 11

2.4.2 Recupera¸c˜ao de Informa¸c˜oes . . . 11

3 Taxonomia de Incidentes de Seguran¸ca 14 3.1 Introdu¸c˜ao . . . 14

3.2 Descri¸c˜ao . . . 15

4 Implementa¸c˜ao do Sistema 24 4.1 Introdu¸c˜ao . . . 24

4.2 O Sistema de Banco de Dados . . . 25

4.2.1 Pol´ıtica de Acesso `as Informa¸c˜oes . . . 26

4.2.2 Esquema do Banco de Dados . . . 32

4.2.3 Acesso `as P´aginas do Sistema . . . 34

4.2.4 Funcionalidades . . . 36

4.3 O Assistente ao Especialista . . . 43

5 Estudos de Casos 53 5.1 Vermes . . . 53

5.1.1 Sasser . . . 54

5.1.2 Kelvir . . . 60

(8)

5.2.1 Citibank . . . 65 5.2.2 VISA . . . 71

(9)

Lista de Figuras

2.1 Tabela ATTACK SCENARIO. . . 6

2.2 Tabela ATTACK STEP. . . 7

2.3 Tabela ATTACK COMMENT. . . 8

2.4 Tabela USER. . . 8

2.5 Tabela ACTIVITY LOG. . . 8

2.6 ADBS envia mensagem ao usu´ario. . . 10

2.7 Usu´ario envia mensagem ao ADBS. . . 11

2.8 Etapas da opera¸c˜ao de adi¸c˜ao de informa¸c˜oes no banco de dados ADBS. . . 12

2.9 Etapas da opera¸c˜ao de recupera¸c˜ao de informa¸c˜oes armazenadas no banco de dados ADBS. . . 13

3.1 Eventos de computadores e de redes de computadores. . . 17

3.2 Ataques a computadores e a redes de computadores. . . 19

3.3 Representa¸c˜ao simplificada de um incidente de computador e de rede. . . 21

3.4 Taxonomia de incidentes. . . 23

4.1 Arquitetura do sistema implementado. . . 25

4.2 Usu´ario com n´ıvel de acesso confidencial (C) insere em Codigos de Ataque uma linha cujo c´odigo j´a havia ocorrido. H´a, ent˜ao, a m´utipla instancia¸c˜ao da linha cujo c´odigo ´e 1. . . 28

4.3 Usu´ario atualiza informa¸c˜ao cuja classifica¸c˜ao ´e idˆentica ao n´ıvel de acesso dele (confidencial - C). A atualiza¸c˜ao ocorre normalmente. N˜ao h´a poliinstancia¸c˜ao. . 29

4.4 Usu´ario atualiza informa¸c˜ao cuja classifica¸c˜ao (confidencial - C) ´e menor que o n´ıvel de acesso dele (secreto - S). A linha ´e poliinstanciada. . . 29

4.5 Usu´ario atualiza informa¸c˜ao cuja classifica¸c˜ao (confidencial - C) ´e menor que o n´ıvel de acesso dele (secreto - S). A linha j´a poliinstanciada ´e que ´e atualizada. . 30

4.6 Algoritmo de atualiza¸c˜ao adotado no sistema de gest˜ao do conhecimento. . . 31

(10)

4.8 Tabela ATTACK STEP do sistema implementado. . . 34

4.9 Tabela USER do sistema implementado. . . 34

4.10 Tabela ACTIVITY LOG do sistema implementado. . . 34

4.11 Opera¸c˜ao de autentica¸c˜ao. (a) Interface que os usu´arios encontram para acessar o sistema de banco de dados. (b) Interface ap´os o processo de autentica¸c˜ao. . . . 37

4.12 Opera¸c˜ao de consulta de informa¸c˜oes. (a) Formul´ario para o fornecimento do n´umero do CVE. (b) Informa¸c˜ao exibida ao usu´ario. . . 38

4.13 Opera¸c˜ao de atualiza¸c˜ao de informa¸c˜oes. (a) Bot˜ao de atualiza¸c˜ao. (b) Informa-¸c˜oes para edi¸c˜ao. (c) Mensagem emitida ao usu´ario informando que a atualiza¸c˜ao foi bem sucedida. . . 39

4.14 Opera¸c˜ao de remo¸c˜ao de informa¸c˜oes. (a) Formul´ario para a remo¸c˜ao de informa-¸c˜oes. Deve-se fornecer apenas o identificador do ataque. (b) Mensagem emitida ao usu´ario informando que a remo¸c˜ao foi bem sucedida. . . 40

4.15 Opera¸c˜ao de adi¸c˜ao de usu´arios. (a) Formul´arios para preenchimento das infor-ma¸c˜oes sobre o usu´ario. (b) Mensagem emitida ao usu´ario caso inser¸c˜ao seja bem sucedida. . . 41

4.16 Opera¸c˜ao de remo¸c˜ao de usu´arios. (a) A remo¸c˜ao de usu´arios ´e feita fornecendo-se apenas o login do usu´ario. (b) Ao final, ´e exibida uma mensagem informando ao usu´ario que a remo¸c˜ao foi bem sucedida. . . 42

4.17 Sintaxe das regras do assistente ao usu´ario implementado. . . 43

4.18 Exemplo de regra. . . 44

4.19 Interface inicial de consulta do assistente ao especialista. . . 46

4.20 Algoritmo para transformar a classifica¸c˜ao da informa¸c˜ao de n´ıvel de atributo em n´ıvel de linha. . . 47

4.21 Interface simulada para ilustrar a execu¸c˜ao do algoritmo de convers˜ao de classi-fica¸c˜ao de informa¸c˜oes de n´ıvel de coluna em n´ıvel de linha. . . 48

4.22 Resultado do segundo e terceiro passos do algoritmo de convers˜ao de informa¸c˜oes de n´ıvel de coluna em n´ıvel de linha. . . 49

4.23 Resultado do quarto passo do algoritmo de convers˜ao de informa¸c˜oes de n´ıvel de coluna em n´ıvel de linha. . . 50

4.24 Resultado do quinto passo do algoritmo de convers˜ao de informa¸c˜oes de n´ıvel de coluna em n´ıvel de linha. . . 51

(11)

5.1 Entrada doevent log relativa a uma falha no processo lsass.exe. . . 55

5.2 Entrada noevent log relativa ao excesso de conex˜oes TCP. . . 56

5.3 Mensagem de erro relacionada ao verme Sasser. . . 57

5.4 Mensagem emitida pelo verme Kelvir. . . 60

5.5 Chaves de registro modificadas pelo verme Kelvir. . . 61

5.6 O URL referenciado pelo link do e-mail ´e modificado. A mensagem de erro exibida no navegador cont´em um URL diferente daquele presente na barra de ferramentas. . . 67

5.7 Embora o URL exibido na barra de ferramentas seja leg´ıtimo do Citibank, a p´agina exibida no navegador ´e fraudulenta. Uma p´agina apresenta ind´ıcios de conex˜ao segura quando possui a imagem de um cadeado cadeado fechado ou uma chave completa na barra destatus. N˜ao h´a nenhuma dessas imagens na referida localiza¸c˜ao. . . 68

5.8 E-mail fraudulento no nome da empresa VISA. . . 73

(12)

Cap´ıtulo 1

Introdu¸

ao

Ataques a dispositivos conectados em rede constituem um dos principais problemas relacio-nados `a confidencialidade das informa¸c˜oes sens´ıveis e ao correto funcionamento dos sistemas de computa¸c˜ao. Embora t´ecnicas que evitam a ocorrˆencia de incidentes sejam criadas e constan-temente aperfei¸coadas, diversos sistemas s˜ao invadidos utilizando-se estrat´egias j´a conhecidas e aplicadas em eventos anteriores. O desconhecimento dos cen´arios nos quais ocorreram ata-ques bem sucedidos, portanto, contribui de maneira efetiva para o sucesso de novos ataata-ques.

´

E importante, ent˜ao, que as informa¸c˜oes sobre as estrat´egias utilizadas pelos atacantes sejam conhecidas e disseminadas para a comunidade de seguran¸ca de uma corpora¸c˜ao.

Este trabalho apresenta um sistema para gest˜ao do conhecimento em amea¸cas, vulnerabili-dades e seus efeitos. Entende-se por amea¸ca uma potencial viola¸c˜ao da seguran¸ca de um sistema [1] e por vulnerabilidade, uma fraqueza que permite a realiza¸c˜ao de uma a¸c˜ao n˜ao autorizada [2]. Este sistema armazena poss´ıveis formas de explorar a seguran¸ca do sistema de computa¸c˜ao de uma corpora¸c˜ao utilizando-se determinadas vulnerabilidades. Essas possibilidades de viola-¸c˜ao s˜ao advindas de ataques bem sucedidos. Estes ataques representam amea¸cas e devem ser estudados com o objetivo primordial de evitar a ocorrˆencia de ataques semelhantes.

(13)

ent˜ao, ´e armazenado no sistema de banco de dados, que o disponibiliza segundo uma pol´ıtica de acesso.

O acesso a informa¸c˜oes sobre cen´arios de ataque oferecido por esta ferramenta contribui para a diminui¸c˜ao do tempo de resposta ao incidente ocorrido e para a eleva¸c˜ao do n´ıvel de seguran¸ca dos dispositivos de rede de uma corpora¸c˜ao. Ademais, o sistema, ap´os algum tempo de uso, constitui um acervo de documentos estruturados sobre estrat´egias de ataque, que pode ser utilizado, por exemplo, para a gera¸c˜ao de relat´orios sobre a incidˆencia de ataques na corpora¸c˜ao. Al´em disso, h´a a possibilidade desta ferramenta servir de base para o desenvolvimento de um sistema de treinamento na ´area de seguran¸ca.

´

E importante salientar que este n˜ao ´e um sistema para o armazenamento de vulnerabili-dades, como o CVE [3], Common Vulnerabilities and Exposures, e o OSVDB [4],Open Source Vulnerability Database, por exemplo. O sistema descrito neste trabalho visa armazenar cen´arios nos quais ataques reais ocorreram e foram bem sucedidos.

O conjunto de a¸c˜oes realizadas pelos atacantes para perfazerem seus objetivos (cen´arios de ataque) ´e proveitosa para a identifica¸c˜ao das vulnerabilidades existentes no dispositivo de rede alvo e da(s) estrat´egia(s) utilizada(s) pelo atacante. A existˆencia de ferramentas que facilitem a reprodu¸c˜ao dessas a¸c˜oes ´e, ent˜ao, de grande utilidade. Alguns trabalhos sobre gera¸c˜ao de cen´arios de ataque foram encontrados na literatura pertinente e s˜ao sumariamente comentados nos pr´oximos par´agrafos com o objetivo prec´ıpuo de apresentar o estado atual do tema desta disserta¸c˜ao.

NING et al. [5] apresentam uma ferramenta para a gera¸c˜ao de cen´arios de ataque a partir de correla¸c˜oes de alertas de sistemas de detec¸c˜ao de intrusos. A constru¸c˜ao dos cen´arios de ataque ´e baseada em hiper-alertas, cada um dos quais constitu´ıdo pela tr´ıadefato,pr´e-requisito

e conseq¨uˆencia, que correspondem, respectivamente, `a informa¸c˜ao que est´a sendo reportada no alerta, `a condi¸c˜ao primordial para o ataque suceder e ao resultado do ataque. Os pr´e-requisitos e as conseq¨uˆencias s˜ao representados por predicados. Um ataque A est´a correlacionado com um ataque B quando pelo menos um dos predicados das conseq¨uˆencias de A coincide com um dos predicados dos pr´e-requisitos de B. Al´em disso, A deve anteceder B. Esta ferramenta, embora constitua uma maneira autom´atica de gera¸c˜ao de cen´arios de ataque espec´ıficos, est´a condicionada, por sua pr´opria natureza, a alertas de sistema de detec¸c˜ao de intrusos. Assim, a n˜ao detec¸c˜ao de um est´agio (anterior ou posterior) do ataque pode comprometer a gera¸c˜ao correta do cen´ario correspondente.

(14)

infor-ma¸c˜oes de alertas provenientes de diversos entes de monitoramento, como sistema de detec¸c˜ao de intrusos,firewalls, verificadores de integridade de arquivos, entre outros, para fornecer dados em um mesmo n´ıvel de abstra¸c˜ao a uma m´aquina de correla¸c˜ao. Esta m´aquina ´e respons´avel por processar esses alertas e gerar cen´arios de ataque.

H´a ainda a descri¸c˜ao de uma ferramenta [7] que gera poss´ıveis cen´arios de ataque a partir de uma configura¸c˜ao de rede e uma pol´ıtica de acesso espec´ıficas, e entradas CVE, que determinam as vulnerabilidades nos dispositivos de rede. Os cen´arios de ataque s˜ao mostrados na forma de grafos direcionados e identificam estrat´egias que podem ser utilizadas pelo atacante para invadir o sistema.

Conforme j´a mencionado, o sistema implementado neste trabalho utiliza um assistente ao especialista para a gera¸c˜ao de cen´arios de ataque espec´ıficos. Diferentemente das ferramentas acima mencionadas, que utilizam informa¸c˜oes provenientes de entes de monitoramento, o as-sistente ao especialista utiliza informa¸c˜oes procedentes de um especialista em seguran¸ca. Estas informa¸c˜oes s˜ao extra´ıdas atrav´es de uma consulta realizada por interm´edio de interface web. Nesta consulta ´e realizada uma s´erie de perguntas relativas ao incidente ocorrido. No par´agrafo subseq¨uente descreve-se como este trabalho est´a organizado.

Este trabalho possui seis Cap´ıtulos. No Cap´ıtulo 2, ´e apresentado o modelo no qual o sistema de banco de dados est´a baseado. Tal modelo, chamado ADBS [8], Attack Database System, prop˜oe um sistema de banco de dados seguro para disponibilizar, segundo uma pol´ıtica de acesso, cen´arios nos quais ocorreram ataques bem sucedidos. No ADBS, as informa¸c˜oes possuem classifica¸c˜oes e os usu´arios possuem n´ıveis de acesso. A disponibilidade de uma informa¸c˜ao ´e determinada pela compara¸c˜ao entre o n´ıvel de acesso do usu´ario e a classifica¸c˜ao da informa¸c˜ao que ´e requisitada. Este modelo disp˜oe de dois componentes: o banco de dados e o sistema de gerenciamento de banco de dados, SGBD. O banco de dados tem cinco rela¸c˜oes, das quais trˆes armazenam informa¸c˜oes referentes aos cen´arios de ataque. As demais rela¸c˜oes s˜ao utilizadas para registrar as atividades e os dados dos usu´arios do sistema. O SGBD, por sua vez, ´e composto por trˆes controladores: controlador de acesso, controlador de seguran¸ca e controlador de dados. As fun¸c˜oes inerentes a cada um desses controladores s˜ao descritas no Cap´ıtulo 2.

Para estruturar o conhecimento que o assistente ao especialista possui, adotou-se a taxono-mia de incidentes de seguran¸ca proposta por HOWARD & LONGSTAFF [9]. Esta taxonotaxono-mia, descrita no Cap´ıtulo 3, classifica cada uma das etapas que constituem um incidente de seguran¸ca. Um incidente de seguran¸ca ´e composto pelas etapasatacante,ferramenta,vulnerabilidade,a¸c˜ao,

alvo,resultado n˜ao autorizado e objetivos.

(15)

seus componentes. S˜ao tamb´em descritos os procedimentos realizados para simular um ambiente multin´ıvel com requisitos de seguran¸ca e as adapta¸c˜oes realizadas nas opera¸c˜oes de consulta, de remo¸c˜ao e de atualiza¸c˜ao para a ado¸c˜ao de uma pol´ıtica de acesso no sistema de banco de dados. A forma de representa¸c˜ao do conhecimento e como esse conhecimento ´e processado pelo assistente ao especialista s˜ao explanados. Adicionalmente, s˜ao apresentados as linguagens e os

softwares que foram utilizados na implementa¸c˜ao desses componentes.

No Cap´ıtulo 5, s˜ao apresentados quatro estudos de casos, dois referentes a ataques de

phishing scam e dois a ataques de vermes. Nele ´e mostrada a seq¨uˆencia de perguntas reali-zada durante a consulta e as poss´ıveis evidˆencias a partir das quais essas informa¸c˜oes podem ser determinadas ou inferidas. H´a tamb´em uma an´alise dos cen´arios de ataque gerados e do comportamento do sistema quando submetido a testes de valida¸c˜ao.

(16)

Cap´ıtulo 2

O Modelo ADBS

O sistema de banco de dados implementado no prot´otipo baseia-se na pol´ıtica de acesso e no esquema de tabelas propostos pelo modelo ADBS [8], Attack Database System. Tal mo-delo, descrito neste Cap´ıtulo, prop˜oe um sistema multin´ıvel seguro para o armazenamento e a recupera¸c˜ao de informa¸c˜oes sobre cen´arios de ataque bem sucedidos.

2.1

Introdu¸

ao

Conforme mencionado no Cap´ıtulo 1, o modelo ADBS prop˜oe um sistema seguro para o armazenamento e a recupera¸c˜ao de informa¸c˜oes sobre cen´arios nos quais ocorreram ataques bem sucedidos. Ele possui dois componentes principais: o banco de dados e o sistema de gerenciamento de banco de dados. O banco de dados ´e composto por cinco rela¸c˜oes, que s˜ao utilizadas para o armazenamento de cen´arios nos quais ocorreram ataques bem sucedidos, o registro das atividades realizadas no sistema e o cadastro de usu´arios. O SGBD, por sua vez, ´e constitu´ıdo por trˆes controladores: controlador de acesso, controlador de seguran¸ca e controlador de dados. As fun¸c˜oes inerentes a cada um desses controladores na arquitetura do modelo s˜ao descritas posteriormente.

No ADBS, as informa¸c˜oes sens´ıveis possuem classifica¸c˜oes e os usu´arios possuem n´ıveis de acesso. As informa¸c˜oes podem ser classificadas como FOUO (For Official Use Only), Confi-dential, Secret ou Top Secret. O termo FOUO ´e usado para referenciar uma informa¸c˜ao sem classifica¸c˜ao, mas que n˜ao pode ser usada publicamente. A pol´ıtica de acesso `as informa¸c˜oes estabelece que um usu´ario s´o acessa informa¸c˜oes cujas classifica¸c˜oes s˜ao iguais ou inferiores ao n´ıvel de acesso dele e s´o escreve informa¸c˜oes que ser˜ao vistas por usu´arios cujos n´ıveis de acesso s˜ao iguais ou superiores ao dele.

(17)

ata-ques bem sucedidos devem ser codificadas antes de serem armazenadas. Segundo o modelo de referˆencia, a criptografia de chave sim´etrica ´e suficiente. Por outro lado, as informa¸c˜oes trocadas entre o ADBS e o usu´ario devem ser criptografadas utilizando-se um algoritmo de chave assi-m´etrica. Este sistema de criptografia ´e utilizado n˜ao somente para garantir a confidencialidade das informa¸c˜oes que trafegam pela rede, mas tamb´em como mecanismo de autentica¸c˜ao dos usu´arios do sistema.

O modelo ADBS prop˜oe disponibilizar cen´arios de ataque real´ısticos. Informa¸c˜oes dessa natureza n˜ao s˜ao adequadas para o uso p´ublico, pois revelam vulnerabilidades e, at´e mesmo, informa¸c˜oes confidenciais de um sistema. O acesso ao ADBS, portanto, ´e restrito.

Neste Cap´ıtulo, a arquitetura do modelo ADBS ´e apresentada. Na Se¸c˜ao 2.2, descreve-se cada uma das cinco rela¸c˜oes do banco de dados. O SGBD ADBS ´e mostrado na Se¸c˜ao 2.3. Nela, s˜ao atribu´ıdas as fun¸c˜oes inerentes a cada um de seus componentes. Por fim, na Se¸c˜ao 2.4, descreve-se como o sistema procede para realizar as opera¸c˜oes de adi¸c˜ao e recupera¸c˜ao de informa¸c˜oes sobre cen´arios de ataque.

2.2

O Banco de Dados

O banco de dados do modelo ADBS ´e composto por cinco rela¸c˜oes. A primeira rela¸c˜ao ´e a ATTACK SCENARIO. Ela visa fornecer as informa¸c˜oes necess´arias para o entendimento do incidente e ´e apresentada na forma de nove campos explicativos, conforme ilustra a Figura 2.1.

ATTACK SCENARIO Attack ID

Operating System OS Version Date of Attack

Attacker Info Target Category

Ultimate Goal Prerequisites Classification

(18)

Na tabela ATTACK SCENARIO s˜ao armazenadas informa¸c˜oes sobre o nome e a vers˜ao do sistema operacional vulner´avel (Operating System eOS Version, respectivamente). H´a tamb´em entradas para a data de ocorrˆencia do ataque (Date of Attack), informa¸c˜oes sobre o atacante (Attacker Info) e o tipo de institui¸c˜ao atacada (Target Category), que pode ser um banco ou uma universidade, por exemplo. Al´em disso, s˜ao armazenadas informa¸c˜oes sobre a meta final do atacante ao invadir essa institui¸c˜ao (Ultimate Goal), como, por exemplo, o acesso como super usu´ario, o roubo de arquivos, a nega¸c˜ao de recursos, entre outros; al´em das condi¸c˜oes necess´arias para a ocorrˆencia do incidente (Prerequisites). Finalmente, h´a o campo Classification, que armazena a classifica¸c˜ao da informa¸c˜ao. A chave prim´aria da tabela ATTACK SCENARIO ´e o identificador do ataque (Attack ID).

A segunda tabela do banco de dados ADBS ´e a ATTACK STEP. Ela visa prover informa¸c˜oes detalhadas sobre as a¸c˜oes individuais que compuseram o ataque (cen´ario de ataque). Conforme se pode observar na Figura 2.2, a rela¸c˜ao ATTACK STEP possui entradas para a porta e o endere¸co da m´aquina que foi utilizada pelo atacante (Source Port e Source Addr), assim como o endere¸co do sistema alvo (Dest Addr) e a porta pela qual este foi atacado (Dest Port). Os campos Description, Goal e Classification fornecem, respectivamente, a descri¸c˜ao da a¸c˜ao individual, o objetivo dessa a¸c˜ao e a classifica¸c˜ao da informa¸c˜ao. H´a ainda um campo de auto-incremento de n´umeros inteiros (Sequence Number), que constitui, juntamente com o campo para armazenamento do identificador do ataque (Attack ID), a chave prim´aria dessa tabela.

ATTACK STEP Attack ID Sequence Number Source Port Source Addr Dest Port Dest Addr Description Goal Classification

Figura 2.2: Tabela ATTACK STEP.

(19)

do incidente. A chave prim´aria da tabela ATTACK COMMENT ´e o identificador do ataque (Attack ID).

ATTACK COMMENT Attack ID

Comments

Figura 2.3: Tabela ATTACK COMMENT.

Todos os campos das tabelas anteriormente descritas podem ser nulos, exceto os correspon-dentes `as chaves prim´arias.

O modelo ADBS tamb´em prop˜oe a existˆencia de uma tabela para armazenar informa¸c˜oes relacionadas aos usu´arios do sistema: USER. Esta tabela, mostrada na Figura 2.4, possui o iden-tificador, a senha, a chave p´ublica e o n´ıvel de acesso do usu´ario armazenados, respectivamente, nos camposUser ID,password,public keyeclearance. A senha ´e armazenada criptografada por uma fun¸c˜ao hash-one way. A chave prim´aria da tabela ´e o identificador do usu´ario.

USER

User ID password public key

clearance

Figura 2.4: Tabela USER.

A quinta tabela do banco de dados ADBS ´e a ACTIVITY LOG, utilizada para registrar as atividades dos usu´arios que acessam o sistema. Ela possui campos para armazenar o n´umero da a¸c˜ao (Action Number), o identificador de usu´ario (User ID), o tipo da a¸c˜ao (Action Type) e a data de ocorrˆencia desta (Date), conforme se pode observar na Figura 2.5.

ACTIVITY LOG Action Number

User ID Action Type

Date

(20)

Nesta tabela devem ser registradas mudan¸cas em cen´arios, tempos delogin elogout dos usu´arios do sistema, entre outros. A tabela ACTIVITY LOG ´e especialmente ´util em situa¸c˜oes de uso inadequado dos registros do sistema. Ela serve como documento para investigar o sucedido e atribuir responsabilidades.

2.3

O Sistema de Gerenciamento de Banco de Dados

O sistema de gerenciamento de banco de dados ADBS ´e composto por trˆes controladores: controlador de acesso, controlador de seguran¸ca e controlador de dados. As fun¸c˜oes inerentes a cada uma destes controladores nas opera¸c˜oes de consulta e adi¸c˜ao de informa¸c˜oes s˜ao explicitadas nos par´agrafos subseq¨uentes.

O controlador de acesso ´e o principal componente do sistema de gerenciamento de banco dados ADBS. Ele corresponde `a interface inicial encontrada pelos usu´arios que desejam acessar o sistema. Devido `a natureza das informa¸c˜oes que o modelo prop˜oe disponibilizar, determina-se que o acesso ao ADBS deve ser restrito. Portanto, para o usu´ario autenticar-se no sistema, ele deve fornecer o identificador de usu´ario (UserID) e a senha (password). As senhas dos usu´arios do sistema s˜ao armazenadas criptografadas por uma fun¸c˜ao hash-one way. O controlador de dados, portanto, criptografa automaticamente a senha fornecida para, posteriormente, verificar a legitimidade do usu´ario que est´a acessando o sistema. O usu´ario tem acesso ao sistema apenas se oUserID e a senha coincidirem com as informa¸c˜oes armazenadas nos camposUserID

epassword de alguma linha da tabela USER. Caso o usu´ario seja autenticado, o controlador de acesso extrai o n´ıvel de acesso do usu´ario, armazenado no campo Clearance da tabela USER, e o passa como parˆametro, juntamente com o identificador do usu´ario, para o controlador de seguran¸ca. O usu´ario n˜ao possui mais contato com este componente durante a sess˜ao.

O segundo componente do sistema de gerenciamento de banco de dados ADBS ´e o contro-lador de seguran¸ca. Ele recebe como parˆametros o identificador e o n´ıvel de acesso do usu´ario do controlador de acesso e os utiliza, primeiramente, para registrar o acesso do usu´ario no sis-tema na tabela ACTIVITY LOG. A principal fun¸c˜ao do controlador de seguran¸ca ´e refor¸car a arquitetura multin´ıvel do modelo, garantindo que os usu´arios acessem apenas informa¸c˜oes cujas classifica¸c˜oes sejam iguais ou inferiores aos n´ıveis de acesso deles. Outra fun¸c˜ao inerente a este controlador refere-se `a prote¸c˜ao das informa¸c˜oes transmitidas entre o usu´ario e o banco de dados. Utiliza-se um algoritmo de chave p´ublica para codificar e decodificar, respectivamente, as informa¸c˜oes enviadas e recebidas. Nos par´agrafos subseq¨uentes h´a uma descri¸c˜ao do processo de troca de informa¸c˜oes entre o usu´ario e o ADBS.

(21)

obtida no campopublic key da tabela USER, e, posteriormente com a chave privada do banco. Para obter as informa¸c˜oes em texto plano, o usu´ario deve decodificar a mensagem utilizando, respectivamente, a chave p´ublica do ADBS e a chave privada dele. A Figura 2.6 ilustra esse processo.

Figura 2.6: ADBS envia mensagem ao usu´ario.

Para enviar informa¸c˜oes ao banco de dados, o usu´ario deve criptografar a mensagem com a chave p´ublica do ADBS e, posteriormente, com a chave privada dele. O controlador de seguran¸ca decodifica a mensagem utilizando a chave p´ublica do usu´ario e a chave privada do ADBS para obter as informa¸c˜oes em texto plano. A Figura 2.7 ilustra esse processo.

O processo de gera¸c˜ao de chaves n˜ao ´e especificado. A chave p´ublica do ADBS ´e distribu´ıda somente aos seus usu´arios, enquanto a privada ´e mantida no sistema. O controlador de seguran¸ca passa o n´ıvel de acesso do usu´ario e as informa¸c˜oes por ele decodificadas para o controlador de dados.

O controlador de dados constitui o terceiro componente do SGBD ADBS. Ele cria visualiza-¸c˜oes requisitadas pelos usu´arios e edita as informavisualiza-¸c˜oes provenientes dos usu´arios em um formato propriet´ario. O controlador de dados ´e o ´unico ente que possui acesso direto `as informa¸c˜oes armazenadas no banco de dados. Ele atua codificando as informa¸c˜oes que ser˜ao armazenadas no banco de dados e decodificando-as em caso de consulta.

´

(22)

Figura 2.7: Usu´ario envia mensagem ao ADBS.

2.4

Opera¸

oes no Banco de Dados

Nesta Se¸c˜ao s˜ao descritas as seq¨uˆencias de a¸c˜oes realizadas pelos controladores que consti-tuem o SGBD ADBS nas opera¸c˜oes de adi¸c˜ao e recupera¸c˜ao de informa¸c˜oes.

2.4.1 Adi¸c˜ao de Informa¸c˜oes

Para realizar a opera¸c˜ao de adi¸c˜ao, o usu´ario deve encaminhar as informa¸c˜oes ao banco de dados em arquivos, que podem ser enviados separadamente ou compactados em um ´unico arquivo. Essas informa¸c˜oes devem estar em formato propriet´ario e devem ser duplamente codi-ficadas. Quando as informa¸c˜oes s˜ao recebidas pelo ADBS, elas devem ser decodificadas e, caso necess´ario, descompactadas pelo controlador de seguran¸ca. As informa¸c˜oes em texto plano, ent˜ao, s˜ao enviadas ao controlador de dados, que decodifica as tabelas relacionadas ao ataque e converte as informa¸c˜oes contidas nos arquivos em linhas dessas tabelas. Como novas informa-¸c˜oes foram inseridas, o controlador de dados atualiza os ´ındices multin´ıveis do sistema. Por fim, os ´ındices e as tabelas relacionadas aos ataques s˜ao codificados (algoritmo de chave sim´etrica) e armazenados no banco de dados. A Figura 2.8 ilustra essa opera¸c˜ao.

2.4.2 Recupera¸c˜ao de Informa¸c˜oes

(23)

informa¸c˜ao e a passa, juntamente com o n´ıvel de acesso do usu´ario, para o controlador de dados.

Figura 2.8: Etapas da opera¸c˜ao de adi¸c˜ao de informa¸c˜oes no banco de dados ADBS.

Ao receber o pedido em texto plano, o controlador de dados decodifica os ´ındices multin´ıveis que possuem classifica¸c˜ao igual ou inferior ao n´ıvel de acesso do usu´ario que est´a requisitando a informa¸c˜ao. A partir dos ´ındices decodificados, ele obt´em os n´umeros de identifica¸c˜ao de registro, RINs - Record Identification Numbers, das linhas que satisfazem os parˆametros do pedido. O controlador de dados, ent˜ao, decodifica as informa¸c˜oes das linhas correspondentes aos RINs selecionados na busca e as utiliza para criar uma vis˜ao. A classifica¸c˜ao da vis˜ao ´e idˆentica `a maior classifica¸c˜ao das informa¸c˜oes que foram inclusas nela. A vis˜ao, ent˜ao, ´e encaminhada ao controlador de seguran¸ca.

(24)

Figura 2.9: Etapas da opera¸c˜ao de recupera¸c˜ao de informa¸c˜oes armazenadas no banco de dados ADBS.

(25)

Cap´ıtulo 3

Taxonomia de Incidentes de

Seguran¸

ca

O assistente ao especialista implementado possui a fun¸c˜ao de facilitar a composi¸c˜ao de cen´arios de ataque e informa¸c˜oes relacionadas. Para cada tipo de ataque existe um conjunto de perguntas que visam extrair do especialista em seguran¸ca o conhecimento que ele possui sobre o incidente ocorrido. A uni˜ao de todos estes conjuntos compreende a base de conhecimento. Com o intuito de estruturar o conhecimento do assistente ao especialista, adotou-se a taxonomia de incidentes de seguran¸ca proposta por HOWARD & LONGSTAFF [9]. Tal taxonomia ´e descrita neste Cap´ıtulo.

3.1

Introdu¸

ao

Taxonomia consiste em uma ciˆencia de classifica¸c˜ao [10] e, segundo AMOROSO [11], para que ela seja satisfat´oria, deve ser:

• mutuamente exclusiva: a classifica¸c˜ao em uma categoria exclui todas as outras; • exaustiva ou completa: a jun¸c˜ao de todas as categorias inclui todas as possibilidades; • n˜ao amb´ıgua: clara e precisa de modo que a descri¸c˜ao de cada categoria n˜ao gere incertezas

na classifica¸c˜ao;

• repet´ıvel: classifica¸c˜oes repetidas devem gerar os mesmos resultados;

• aceit´avel: l´ogica e intuitiva de modo que suas categorias tenham aprova¸c˜ao generalizada; • us´avel: as categorias devem ser intelig´ıveis - os termos utilizados devem ser compreens´ıveis;

(26)

Segundo HOWARD & LONGSTAFF [9], uma taxonomia ´e uma aproxima¸c˜ao da realidade e, por isso, deve-se esperar que uma taxonomia satisfat´oria falhe em alguns desses requisitos. Esse pode ser particularmente o caso em que as caracter´ısticas dos dados a serem classificados sejam imprecisas e incertas, como ´e o caso da informa¸c˜ao t´ıpica de seguran¸ca de computador. No entanto, a classifica¸c˜ao ´e um pr´e-requisito importante e necess´ario para um estudo sistem´atico.

3.2

Descri¸

ao

Um evento, do ponto de vista de computador e de rede de computadores, consiste em uma a¸c˜ao direcionada a um alvo que possui o objetivo de causar uma mudan¸ca no estado do mesmo. A ocorrˆencia de um evento n˜ao implica necessariamente na modifica¸c˜ao do estado do sistema alvo. Uma tentativa de acesso sem ˆexito a uma conta, por exemplo, ´e um evento. Neste caso, a a¸c˜ao ´e a de autentica¸c˜ao e o alvo, a conta.

Uma a¸c˜ao pode ser direcionada a uma entidade l´ogica (conta, processo ou dado) ou a uma entidade f´ısica (componente, rede ou inter-rede). Os poss´ıveis alvos de uma a¸c˜ao s˜ao descritos nos pr´oximos par´agrafos.

• Conta: consiste no dom´ınio de acesso do usu´ario em um computador ou em uma rede que ´e controlado de acordo com um registro de informa¸c˜ao [9]. Este registro cont´em o nome da conta do usu´ario, a senha dele e as restri¸c˜oes de uso.

• Processo: ´e um programa em execu¸c˜ao. Ele ´e constitu´ıdo por um programa execut´avel, os dados e a pilha do programa, o seu contador de programa, o ponteiro de pilha e outros registros, e todas as outras informa¸c˜oes necess´arias para se executar um programa [12]. • Dados: s˜ao representa¸c˜oes de fatos, conceitos ou instru¸c˜oes em uma maneira conveniente

para a comunica¸c˜ao, interpreta¸c˜ao ou processamento por humanos ou por meios autom´a-ticos [12]. Os dados podem se apresentar na forma de arquivos em uma mem´oria vol´atil ou n˜ao vol´atil, em um equipamento de armazenamento de dados ou em trˆansito atrav´es de um meio de transmiss˜ao [9].

• Componente: ´e uma das partes que comp˜oe um computador ou uma rede [12].

(27)

• Rede: consiste em um grupo interconectado ou interelacionado de computadores, elemen-tos de liga¸c˜ao e ramos de interconex˜ao [12].

• Inter-rede: consiste em uma rede de redes [9].

Diversas a¸c˜oes podem ser direcionadas a cada um dos alvos anteriormente mencionados. As a¸c˜oes que podem ser direcionadas aos dados s˜ao as de leitura, c´opia, modifica¸c˜ao, roubo ou remo¸c˜ao; a um processo, as de probe, scan, autentica¸c˜ao, bypass e flood; a uma conta, a de autentica¸c˜ao; entre outras poss´ıveis combina¸c˜oes. Em seguida s˜ao descritas as a¸c˜oes que podem ser direcionadas aos alvos anteriormente descritos.

• Probe: consiste em uma a¸c˜ao utilizada para determinar as caracter´ısticas de um alvo espec´ıfico.

• Scan: consiste em uma a¸c˜ao na qual um usu´ario ou processo acessa uma ordem de alvos seq¨uencialmente para determinar aqueles que possuem caracter´ısticas particulares. • Flood: consiste em acessar o alvo repetidamente para sobrecarregar a capacidade dele. • Autentica¸c˜ao: ´e uma a¸c˜ao realizada pelo usu´ario para assumir uma identidade. Ela se

inicia quando um usu´ario acessa um processo de autentica¸c˜ao, que requer uma identifica¸c˜ao [9]. Uma autentica¸c˜ao pode ser requerida n˜ao somente para o acesso a um sistema, mas tamb´em para o acesso a objetos do sistema, a execu¸c˜ao de processos, entre outros. • Bypass: consiste em uma a¸c˜ao realizada para evitar um processo usando um m´etodo

al-ternativo para acessar o alvo [9]. Alguns sistemas operacionais possuem vulnerabilidades que podem ser exploradas por atacantes para acessar contas sem a necessidade de forne-cimento de uma combina¸c˜ao v´alida de identificador e senha ao processo de autentica¸c˜ao. Esta a¸c˜ao ´e debypass, j´a que ela utiliza um m´etodo alternativo para acessar o alvo. • Spoof: consiste em uma a¸c˜ao na qual uma m´aquina da rede assume a identidade de

outra. Falsificando-se o endere¸co IP de origem de um pacote, o atacante pode injetar ou modificar dados que trafegam em um canal de comunica¸c˜ao, redirecionar respostas de conex˜oes, entre outros.

• Leitura: ocorre quando o atacante obt´em dados de um arquivo ou de outro meio de armazenamento de dados.

(28)

• Roubo: a concep¸c˜ao de roubo de arquivos pode ser feita por analogia ao roubo de bens f´ısicos. No roubo de um carro, por exemplo, o ladr˜ao obt´em o carro e o propriet´ario do ve´ıculo, sem carro, ´e privado de seu uso. Em rela¸c˜ao a dados, isso significa que o atacante obt´em uma c´opia dos dados e, em seguida, os remove do sistema alvo, tornando-os indispon´ıveis ao propriet´ario e aos usu´arios cujo acesso era permitido.

• Modifica¸c˜ao: ocorre quando o atacante altera dados do sistema alvo, seja pela adi¸c˜ao, remo¸c˜ao ou substitui¸c˜ao de informa¸c˜oes.

• Remo¸c˜ao: ocorre quando dados s˜ao apagados do sistema alvo.

A Figura 3.1 [9] ilustra uma matriz de a¸c˜oes e alvos. Ela representa poss´ıveis eventos de computadores e de redes de computadores. Pode-se observar que nem todas as combina¸c˜oes de a¸c˜oes e alvos s˜ao poss´ıveis. A combina¸c˜ao debypass e dados, por exemplo, ´e inadmiss´ıvel.

(29)

Vale salientar que n˜ao se pode definir um conjunto de a¸c˜oes autorizadas e n˜ao autorizadas. Uma a¸c˜ao que pode ser autorizada em um sistema pode ser n˜ao autorizada em outro. Segundo HOWARD & LONGSTAFF [9], a¸c˜oes usualmente vistas de maneira hostil, como tentativas de fraudar processos de controle de acesso para acessar uma conta privilegiada (bypass), podem ser autorizadas em circunstˆancias especiais. Os administradores de seguran¸ca, portanto, s˜ao quem determinam as a¸c˜oes autorizadas estabelecendo uma pol´ıtica de seguran¸ca para seus sistemas. A etapa de a¸c˜ao, portanto, engloba a¸c˜oes autorizadas e n˜ao autorizadas.

• autorizado: aprovado pelo propriet´ario ou administrador [9].

• n˜ao autorizado: n˜ao aprovado pelo propriet´ario ou administrador [9].

Um ataque constitui uma s´erie de passos realizados pelo atacante para alcan¸car um resul-tado n˜ao autorizado. Ele envolve o uso de uma ferramenta para explorar uma vulnerabilidade existente no sistema alvo e visa obter um resultado que n˜ao ´e permitido, do ponto de vista do sistema alvo, para o atacante. A Figura 3.2 [9] ilustra as etapas de um ataque: ferramenta,

vulnerabilidade, a¸c˜ao, alvo e resultado n˜ao autorizado. Nela pode-se observar que um ataque engloba uma a¸c˜ao direcionada ao alvo (evento). As etapas de um ataque n˜ao explicitadas at´e o presente momento s˜ao descritas nos par´agrafos subseq¨uentes.

Ferramentas s˜ao o primeiro passo da seq¨uˆencia realizada em um ataque. Elas s˜ao um meio de explorar uma vulnerabilidade de um computador ou de uma rede e objetivam conduzir o sistema alvo a um resultado n˜ao autorizado. As ferramentas s˜ao categorizadas conforme a seguir.

• Ataque f´ısico: ocorre quando um computador, rede, componentes de computador ou de rede, ou sistemas de suporte `a eles (como ar condicionado, potencia el´etrica, etc.) s˜ao roubados ou danificados.

• Troca de informa¸c˜ao: consiste em um meio de obter informa¸c˜ao de outros atacantes ou de outras pessoas que possuam algum conhecimento sobre o sistema alvo (engenharia social). • Comando de usu´ario: conforme o pr´oprio nome sugere, essa categoria refere-se aos coman-dos que o atacante digita em uma interface gr´afica ou de linha de comando para realizar o ataque.

• Script ou programa: consiste em um meio de explorar uma vulnerabilidade atrav´es da execu¸c˜ao de um arquivo de comandos (script) ou de um programa em interface de processo. • Agente autˆonomo: consiste em um meio de explorar uma vulnerabilidade utilizando um

(30)

Figura 3.2: Ataques a computadores e a redes de computadores.

(31)

• Toolkit: ´e um pacote de software que cont´em scripts, programas ou agentes autˆonomos, que exploram vulnerabilidades.

• Ferramenta distribu´ıda: consiste em uma ferramenta que pode ser distribu´ıda em m´ultiplos

hosts. Estas ferramentas, quando coordenadas, podem efetuar ataques contra um alvo ap´os um determinado tempo de espera.

• Data Tap: consiste em um meio de monitorar a radia¸c˜ao eletromagn´etica que emana de um computador ou de uma rede usando um equipamento externo.

Conforme se pode observar, com exce¸c˜ao de ataque f´ısico, troca de informa¸c˜ao edata tap, as categorias descritas anteriormente podem englobar as demais. Esse fato n˜ao satisfaz o requisito de exclus˜ao m´utua de uma taxonomia satisfat´oria. Por´em, se duas ou mais ferramentas forem utilizadas em um ataque, a categoria escolhida ´e aquela que engloba a ferramenta mais complexa. Comandos de usu´ario, por exemplo, s˜ao usados para iniciar programas. A categoria que deve ser escolhida ´e a descript ou programa, j´a que ela ´e mais complexa que a de comando de usu´ario. Segundo HOWARD & LONGSTAFF [9], a obediˆencia a essa regra torna as categorias acima mencionadas mutuamente exclusivas na pr´atica.

Vulnerabilidade, segundo KRSUL [2], ´e uma fraqueza no sistema que permite a realiza¸c˜ao de uma a¸c˜ao n˜ao autorizada. Ela pode ser origin´aria de diferentes est´agios: projeto, implementa¸c˜ao ou configura¸c˜ao, descritos a seguir.

• Vulnerabilidade de projeto: vulnerabilidade herdada do projeto ou da especifica¸c˜ao de um

hardware ousoftware.

• Vulnerabilidade de implementa¸c˜ao: vulnerabilidade ocasionada por um erro de implemen-ta¸c˜ao de um software ou hardware, ambos com projeto satisfat´orios.

• Vulnerabilidade de configura¸c˜ao: vulnerabilidade resultante de um erro de configura¸c˜ao do sistema.

Dentre as vulnerabilidades anteriormente descritas, a mais grave ´e aquela ocasionada por um erro de projeto, pois, devido ao projeto ser o primeiro est´agio de desenvolvimento de um

(32)

• Crescimento de acesso: crescimento n˜ao autorizado do dom´ınio de acesso em um compu-tador ou rede [9].

• Descoberta de informa¸c˜ao: dissemina¸c˜ao da informa¸c˜ao para qualquer pessoa que n˜ao esteja autorizada a acess´a-la [13].

• Corrup¸c˜ao da informa¸c˜ao: qualquer altera¸c˜ao n˜ao autorizada dos arquivos armazenados em um computador ou dos dados em trˆansito pela rede [11].

• Nega¸c˜ao de servi¸co: degrada¸c˜ao intencional ou bloqueio de recursos do computador ou da rede [14].

• Roubo de recursos: uso n˜ao autorizado de recursos de um computador ou de uma rede [9].

Um incidente consiste em um conjunto de ataques relacionados. Ele ´e constitu´ıdo por um atacante, um ou mais ataques, e objetivos, conforme ilustra a Figura 3.3 [9]. Um atacante ´e um indiv´ıduo que ataca uma ou mais vezes o sistema alvo para alcan¸car um objetivo. Objetivo(s) ´e (s˜ao) o(s) prop´osito(s) ou meta(s) final(is) do atacante.

Figura 3.3: Representa¸c˜ao simplificada de um incidente de computador e de rede.

Atacantes s˜ao as fontes de ataques a computadores e a redes de computadores. Eles s˜ao classificados segundo o crit´erio de quem eles s˜ao e quais seus os objetivos ou motiva¸c˜oes, conforme ´e mostrado em seguida.

• Hackers: invadem computadores principalmente pelo desafio estatus de obterem o acesso. • Espi˜oes: atacantes que invadem computadores principalmente para obterem informa¸c˜oes

que podem ser usadas para ganho pol´ıtico.

• Terroristas: atacantes que invadem computadores principalmente para causarem medo, que ajudar´a no ganho pol´ıtico.

(33)

• Criminosos profissionais: atacantes que invadem computadores para obterem ganho finan-ceiro pessoal.

• Vˆandalos: atacantes que invadem computadores para causarem preju´ızos.

• Voyeur: atacantes que invadem computadores com o objetivo de obter informa¸c˜oes sens´ı-veis.

Finalmente, a taxonomia de incidentes proposta por HOWARD & LONGSTAFF [9] ´e ilus-trada na Figura 3.4.

(34)

Figura 3.4: Taxonomia de incidentes.

(35)

Cap´ıtulo 4

Implementa¸

ao do Sistema

Neste Cap´ıtulo ´e mostrada a arquitetura do sistema de gest˜ao do conhecimento. As fun¸c˜oes inerentes a cada um de seus componentes e os procedimentos realizados para implementa-los s˜ao apresentados. Conforme j´a mencionado, o sistema de banco de dados est´a baseado na pol´ıtica de acesso e no esquema de tabelas propostos pelo modelo ADBS, descrito no Cap´ıtulo 2, e o assistente ao especialista possui seu conhecimento estruturado segundo a taxonomia de incidentes de seguran¸ca descrita no Cap´ıtulo 3.

4.1

Introdu¸

ao

O sistema de apoio `a gest˜ao de seguran¸ca corporativa possui dois componentes: um sistema de banco de dados e um assistente ao especialista. O primeiro componente, o sistema de banco de dados, possui a fun¸c˜ao de prover um sistema com requisitos de seguran¸ca para o armaze-namento e a recupera¸c˜ao de cen´arios de ataque e informa¸c˜oes relacionadas. A necessidade de implementa¸c˜ao de requisitos de seguran¸ca nesse sistema ´e advinda da natureza das informa¸c˜oes que ele prop˜oe disponibilizar. Cen´arios de ataque revelam, al´em da estrat´egia utilizada pelo atacante, vulnerabilidades existentes nos dispositivos de rede de uma corpora¸c˜ao. ´E not´orio que essas informa¸c˜oes n˜ao devem ser de uso p´ublico. ´E importante, ent˜ao, que o acesso a elas seja feito de forma controlada. O segundo componente, o assistente ao especialista, consiste em uma forma automatizada de extrair o conhecimento que o especialista em seguran¸ca possui sobre o incidente ocorrido. Ele abstrai do usu´ario a necessidade do conhecimento das tabelas do banco de dados relacionadas aos incidentes de seguran¸ca para a gera¸c˜ao do cen´ario de ataque espec´ıfico.

(36)

por interfaces web e arquivos texto, e interfaces web e banco de dados. Atrav´es das interfaces web do assistente ao especialista ´e que realiza-se consultas para a constru¸c˜ao dos cen´arios. O conhecimento sobre ataques s˜ao armazenados em arquivos texto. Para realizar uma consulta, uma das interfaces deste componente lˆe as perguntas do arquivo texto correspondente ao tipo de ataque especificado. Nessas interfaces tamb´em s˜ao processadas as informa¸c˜oes fornecidas pelo usu´ario para gera¸c˜ao do cen´ario correspondente ao incidente ocorrido. Nas interfaces web do sistema de banco de dados est˜ao implementados a pol´ıtica de acesso, os requisitos de seguran¸ca para evitar o acesso n˜ao autorizado `as informa¸c˜oes sens´ıveis e as opera¸c˜oes de adi¸c˜ao e remo¸c˜ao de informa¸c˜oes e de usu´arios do sistema. Novamente na Figura 4.1, pode-se observar que as interfaces web do assistente ao especialista se comunicam com o banco de dados atrav´es da linguagem SQL, Structured Query Language. A interface do assistente ao especialista ap´os o processo de autentica¸c˜ao pode ser acessada atrav´es de interface do sistema de banco de dados e a interface do sistema de banco de dados ap´os o processo de autentica¸c˜ao pode ser acessada atrav´es de interface do sistema especialista. Detalhes inerentes a cada um dos componentes do sistema implementado s˜ao apresentados nas Se¸c˜oes subseq¨uentes.

Figura 4.1: Arquitetura do sistema implementado.

4.2

O Sistema de Banco de Dados

(37)

adds-lashes [15] ´e usada para evitar ataques de SQL Injection. Este ataque ocorre submetendo-se uma string maliciosa ao banco de dados para conseguir, por exemplo, acesso a um sistema. A criptografia da senha dos usu´arios, por sua vez, ´e realizada pela fun¸c˜ao crypt [16], que codifica

strings utilizando um algoritmohash-one way. O mecanismo de sess˜ao ´e usado para evitar que usu´arios n˜ao autenticados possuam acesso ao sistema. A sess˜ao armazena o n´ıvel de acesso do usu´ario, que ´e utilizado para controlar o acesso `as informa¸c˜oes sens´ıveis.

A comunica¸c˜ao cliente-servidor ´e protegida pelo SSL, Secure Sockets Layer. O SSL ´e um protocolo da camada de aplica¸c˜ao que estabelece canais de comunica¸c˜ao seguros entre cliente e servidor utilizando algoritmos de chaves sim´etrica e assim´etrica.

O SGBD que est´a sendo utilizado ´e o PostgreSQL, pois, al´em de ser um software livre, ele oferece recursos intr´ınsecos de seguran¸ca como o suporte a transa¸c˜oes, que contribui de maneira efetiva para consistˆencia e integridade das informa¸c˜oes armazenadas no banco de dados. A linguagem utilizada para comunica¸c˜ao com o banco de dados ´e a SQL.

Por projeto, todos os c´odigos s˜ao executados no servidor. Esse fato ´e importante para a seguran¸ca do sistema, uma vez que as chaves e fun¸c˜oes de criptografia dos cen´arios de ataque e das senhas dos usu´arios do sistema se encontram nesses c´odigos.

4.2.1 Pol´ıtica de Acesso `as Informa¸c˜oes

A pol´ıtica de acesso `as informa¸c˜oes ´e idˆentica `aquela adotada pelo modelo ADBS. Essa pol´ıtica resulta da agrega¸c˜ao de duas propriedades do modelo de Bell-La Padula, comumente referenciadas comono read up (propriedadesimple security - um usu´ario s´o acessa informa¸c˜oes com classifica¸c˜oes iguais ou inferiores ao n´ıvel de acesso dele) e no write down (propriedade * -um usu´ario s´o escreve informa¸c˜oes que ser˜ao vistas por usu´arios com n´ıveis de acesso iguais ou superiores ao dele). Os procedimentos utilizados para evitar a viola¸c˜ao dessa pol´ıtica de acesso s˜ao apresentados nos pr´oximos par´agrafos.

Opera¸c˜oes que modificam a base de dados devem preservar a pol´ıtica de acesso `as informa-¸c˜oes. Em decorrˆencia disso, convencionou-se que um usu´ario s´o insere e remove informa¸c˜oes cujas classifica¸c˜oes s˜ao idˆenticas ao n´ıvel de acesso dele. A opera¸c˜ao de atualiza¸c˜ao envolve a expans˜ao das chaves prim´arias das tabelas que armazenam informa¸c˜oes sens´ıveis e a ado¸c˜ao de um algoritmo. Os motivos para a realiza¸c˜ao desses procedimentos s˜ao explicitados a seguir.

(38)

posteriormente atualizada por um outro usu´ario cujo n´ıvel de acesso ´e superior. A classifica¸c˜ao final da informa¸c˜ao ´e idˆentica ao n´ıvel de acesso do usu´ario que a atualizou. A informa¸c˜ao inserida pelo primeiro usu´ario, portanto, se torna indispon´ıvel para ele mesmo. O segundo caso ocorre quando um usu´ario insere uma informa¸c˜ao com uma determinada chave prim´aria e outro, com n´ıvel de acesso inferior, tenta inserir uma informa¸c˜ao com essa mesma chave. Do ponto de vista do segundo usu´ario, o sistema apresenta um comportamento inconsistente, na medida em que ele n˜ao pode inserir uma informa¸c˜ao que, para ele, n˜ao consta no banco de dados. Para evitar situa¸c˜oes dessa natureza, expandiu-se a chave prim´aria das tabelas nas quais as informa¸c˜oes possuem classifica¸c˜ao, que s˜ao aquelas que armazenam cen´arios de ataque e informa¸c˜oes relacionadas, e implementou-se um algoritmo de atualiza¸c˜ao adequado.

A expans˜ao da chave prim´aria ocorre adicionando-se a classifica¸c˜ao da informa¸c˜ao ao menor conjunto de atributos que identificam uma linha em uma rela¸c˜ao. Uma rela¸c˜ao multin´ıvel ´e aquela na qual as informa¸c˜oes possuem classifica¸c˜ao. Em uma rela¸c˜ao multin´ıvel, o menor conjunto de atributos que identificam uma linha ´e chamado chave aparente. Ainda neste tipo de rela¸c˜ao, a uni˜ao da chave aparente com a classifica¸c˜ao da informa¸c˜ao ´e denominada chave prim´aria. Na Figura 4.2, o c´odigo (Codigo) ´e a chave aparente da tabela Codigos de Ataque. A chave prim´aria da rela¸c˜ao multin´ıvel, portanto, consiste na uni˜ao do atributo Codigo com a classifica¸c˜ao da informa¸c˜ao (Classificacao). Nesta mesma Figura pode-se observar que o usu´ario confidencial (C) s´o inseriu uma linha com c´odigo idˆentico ao daquela j´a existente porque a chave prim´aria da tabela foi expandida. O usu´ario confidencial n˜ao visualiza a informa¸c˜ao secreta (S), uma vez que esta possui classifica¸c˜ao superior ao n´ıvel de acesso dele. A expans˜ao da chave prim´aria ocasiona poliinstancia¸c˜ao, definida em seq¨uˆencia.

A poliinstancia¸c˜ao, id´eia primeiramente abordada pelo projeto SeaView [17], consiste em m´ultiplas instancia¸c˜oes de linhas que possuem a mesma chave aparente. Na Figura 4.2, pode-se observar que, ap´os a inser¸c˜ao da informa¸c˜ao, ocorreu a poliinstancia¸c˜ao.

O algoritmo de atualiza¸c˜ao implementado ´e uma adapta¸c˜ao de um algoritmo de atualiza¸c˜ao de informa¸c˜oes descrito em JAJODIA & SANDHU [17]. Ele prevˆe dois casos de estudo: o usu´ario atualiza uma informa¸c˜ao com classifica¸c˜ao igual ao n´ıvel de acesso dele e o usu´ario atualiza uma informa¸c˜ao com classifica¸c˜ao inferior ao n´ıvel de acesso dele. Este ´ultimo caso envolve dois subcasos, que ser˜ao mostrados a seguir. Em concordˆancia com a pol´ıtica de acesso adotada, n˜ao existe situa¸c˜ao na qual o usu´ario atualiza uma informa¸c˜ao com classifica¸c˜ao superior ao n´ıvel de acesso dele.

(39)

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Buffer Overflow Severo S

INSERT INTO Codigos de Ataque (Codigo, Tipo Ataque, Risco) VALUES (‘1’, ‘Nega¸c˜ao de Servi¸co’, ‘Severo’);

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Severo C

1 Buffer Overflow Severo S

Figura 4.2: Usu´ario com n´ıvel de acesso confidencial (C) insere em Codigos de Ataque uma linha cujo c´odigo j´a havia ocorrido. H´a, ent˜ao, a m´utipla instancia¸c˜ao da linha cujo c´odigo ´e 1.

informa¸c˜ao com classifica¸c˜ao inferior ao n´ıvel de acesso do usu´ario que est´a realizando a opera¸c˜ao n˜ao sucede de forma habitual, pois, conforme mencionado, isso resultaria na indisponibilidade da informa¸c˜ao. A solu¸c˜ao provida pelo algoritmo de atualiza¸c˜ao para esse caso ´e manter a linha com classifica¸c˜ao inferior inalterada e inserir uma nova linha com classifica¸c˜ao idˆentica ao n´ıvel de acesso do usu´ario. Essa linha herda as informa¸c˜oes daquela de classifica¸c˜ao inferior, exceto aquelas que foram atualizadas pelo pedido. A Figura 4.4 ilustra essa situa¸c˜ao.

(40)

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Severo C

UPDATE Codigos de Ataque SET Tipo Ataque=‘Buffer Overflow’;

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Buffer Overflow Severo C

Figura 4.3: Usu´ario atualiza informa¸c˜ao cuja classifica¸c˜ao ´e idˆentica ao n´ıvel de acesso dele (confidencial - C). A atualiza¸c˜ao ocorre normalmente. N˜ao h´a poliinstancia¸c˜ao.

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Severo C

UPDATE Codigos de Ataque SET Tipo Ataque=‘Buffer Overflow’;

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Severo C

1 Buffer Overflow Severo S

(41)

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Mediano C

1 Roubo de Arquivos Severo S

UPDATE Codigos de Ataque SET Tipo Ataque=‘Buffer Overflow’ WHERE Tipo Ataque=‘Nega¸c˜ao de Servi¸co’;

Codigos de Ataque

Codigo T ipo Ataque Risco Classif icacao

1 Nega¸c˜ao de Servi¸co Mediano C

1 Buffer Overflow Severo S

Figura 4.5: Usu´ario atualiza informa¸c˜ao cuja classifica¸c˜ao (confidencial - C) ´e menor que o n´ıvel de acesso dele (secreto - S). A linha j´a poliinstanciada ´e que ´e atualizada.

(42)

Seja t a linha que est´a sendo atualizada e c o n´ıvel de acesso do usu´ario que est´a realizando a modifica¸c˜ao:

Passo 1. Se a classifica¸c˜ao de t ´e igual ao n´ıvel de acesso do usu´ario, ent˜ao a atualiza¸c˜ao o-corre normalmente.

Passo 2. Se a classifica¸c˜ao de t ´e menor que o n´ıvel de acesso do usu´ario que est´a atualizan-do a informa¸c˜ao, ent˜ao h´a dois subcasos:

a. t n˜ao foi poliinstanciada no n´ıvel c.

Deve-se adicionar uma linha com mesma chave prim´aria e classifica¸c˜ao c atrav´es da seguinte regra:

- Os parˆametros que n˜ao fazem parte da cl´ausula SET s˜ao herdados da linha t.

- Os demais parˆametros s˜ao atualizados com o valor determinado no pedido. b. t foi poliinstanciada no n´ıvel c.

A linha que deve ser atualizada ´e aquela que est´a poliinstanciada no n´ıvel c, atrav´es da seguinte regra:

- Os parˆametros que n˜ao fazem parte da cl´ausula SET s˜ao mantidos.

- Os demais parˆametros s˜ao atualizados com o valor determinado no pedido.

(43)

4.2.2 Esquema do Banco de Dados

Modifica¸c˜oes foram efetuadas no esquema de tabelas proposto do modelo ADBS. Estas modifica¸c˜oes s˜ao mostradas nos par´agrafos subseq¨uentes.

Primeiramente foram acrescidos os seguintes campos `a tabela ATTACK SCENARIO (Figura 2.1, Cap´ıtulo 2):

• titulo: armazena o t´ıtulo do ataque, que deve identificar, de forma sucinta, o dispositivo de rede alvo, a causa e a principal conseq¨uˆencia do ataque. O t´ıtulo “Vulnerabilidade no LSASS do Windows XP permite acesso como super usu´ario no dispositivo de rede 192.168.0.2”, por exemplo, esclarece a causa: vulnerabilidade no LSASS, Local Security Authority System Service, do Windows XP; a principal conseq¨uˆencia do ataque: acesso como super usu´ario; e o dispositvo de rede alvo: 192.168.0.2. Ao ler esse t´ıtulo o usu´ario ter´a ciˆencia de que o cen´ario de ataque revela como uma vulnerabilidade no LSASS do Windows XP do dispositivo de rede 192.168.0.2 foi explorada para obter privil´egio de super usu´ario.

• solucao: cont´em as solu¸c˜oes ou medidas paliativas para a vulnerabilidade revelada pelo cen´ario de ataque.

• prevencao: armazena as formas de prevenir que um sistema seja atacado explorando-se a vulnerabilidade em quest˜ao.

• doc rel: armazena nomes de documentos ou endere¸cos de sites que reportam informa-¸c˜oes sobre a vulnerabilidade do incidente de seguran¸ca. Este campo visa relacionar as informa¸c˜oes do banco de dados com aquelas dispon´ıveis na Internet.

• data pub: armazena a data em que a informa¸c˜ao foi inserida no banco de dados. • ult mod: armazena data de ´ultima modifica¸c˜ao da informa¸c˜ao.

(44)

do modelo ADBS que permaneceram nas demais tabelas tamb´em foram traduzidos para o por-tuguˆes. Conforme j´a mencionado, adicionou-se a classifica¸c˜ao da informa¸c˜ao `a chave prim´aria das tabelas ATTACK SCENARIO, ATTACK STEP e ATTACK COMMENT.

ATTACK SCENARIO ID ataque sce

titulo software vulneravel versao software data info atac categ alvo impacto prerequisitos solucao prevencao doc rel data pub ult mod class sce

Figura 4.7: Tabela ATTACK SCENARIO do sistema implementado.

Na tabela ATTACK STEP (Figura 2.2, Cap´ıtulo 2), o campo que armazenava o n´umero de seq¨uˆencia foi substitu´ıdo por um campo para armazenar o n´umero da a¸c˜ao no cen´ario de ataque (passo). Essa substitui¸c˜ao foi necess´aria para que se atualizasse corretamente cada passo dos cen´arios. A Figura 4.8 ilustra a tabela ATTACK STEP do sistema implementado. O campo “class step” armazena a classifica¸c˜ao da informa¸c˜ao e ´e equivalente ao campo Classification do

ADBS.

Na tabela USER (Figura 2.4, Cap´ıtulo 2), o campo para a chave p´ubica do usu´ario ( pu-blic key) foi removido, pois tornou-se desnecess´ario. A Figura 4.9 ilustra a tabela USER do sistema implementado.

Outra tabela modificada foi a ACTIVITY LOG (Figura 2.5, Cap´ıtulo 2). Nela, os seguintes campos foram adicionados:

• hora: armazena a hora que uma determinada a¸c˜ao foi executada pelo usu´ario;

(45)

ATTACK STEP

passo ID ataque step

end orig end dest port orig port dest descri impacto class step

Figura 4.8: Tabela ATTACK STEP do sistema implementado. USER

ID usuario senha nivelacesso

Figura 4.9: Tabela USER do sistema implementado.

A Figura 4.10 ilustra a tabela ACTIVITY LOG do sistema implementado. O campo “se-quencia”corresponde ao campo “Action Number”do modelo ADBS.

ACTIVITY LOG sequencia ID usuario tipo acao

hora data IP

Figura 4.10: Tabela ACTIVITY LOG do sistema implementado.

4.2.3 Acesso `as P´aginas do Sistema

(46)

Quando uma sess˜ao ´e iniciada, um identificador de sess˜ao, formado por 32 d´ıgitos hexade-cimais, ´e gerado aleatoriamente e enviado atrav´es de cookies para o navegador do cliente. No servidor, h´a a cria¸c˜ao de um arquivo vazio, cujo nome ´e constitu´ıdo pelastring sess seguida do identificador de sess˜ao. Este arquivo armazena as vari´aveis registradas na sess˜ao. Caso a sess˜ao j´a exista, o identificador de sess˜ao ´e extra´ıdo do navegador e utilizado para localizar o arquivo correspondente no servidor.

Uma maneira de roubar sess˜oes consiste em capturar o n´umero de uma sess˜ao v´alida e arma-zenar em uma vari´avel do navegador. Quando a p´agina restrita for acessada, o servidor extrair´a o n´umero da sess˜ao armazenado no navegador do cliente, que ´e v´alido, e ent˜ao disponibilizar´a a p´agina solicitada. Uma forma de se obter um n´umero de sess˜ao v´alido ´e executando um programa em PHP no mesmo servidor do site que se deseja roubar a sess˜ao. Pode-se, primei-ramente, executar o c´odigo<? phpinfo(); ?>para descobrir onde os arquivos de sess˜oes est˜ao armazenados. Em seguida, deve-se executar um programa para abrir e ler o diret´orio encontrado no passo anterior. Os identificadores de sess˜ao correspondem aos caracteres hexadecimais do nome do arquivo ap´os a string sess .

Conforme j´a mencionado, implementou-se no sistema um esquema de chaves para evitar roubo de sess˜oes. Este esquema ´e detalhado nos par´agrafos subseq¨uentes.

Primeiramente, uma chave secreta, tamb´em chamada de chave privada, ´e inicializada no pro-grama. A partir dela ´e criada uma chave p´ublica, utilizada para validar as sess˜oes estabelecidas. A chave p´ublica ´e pr´opria de cada sess˜ao. Ela ´e obtida, primeiramente, concatenando-se ologin

do usu´ario ($temp login), a chave secreta ($CHAVE SECRETA), o endere¸co IP da m´aquina que o usu´ario est´a utilizando para acessar o sistema ($ip) e o instante, em segundos, em que a p´agina foi acessada ($hora). A chave p´ublica ´e o md5 da string obtida no passo anterior. A fun¸c˜ao md5 pode ser substitu´ıda por qualquer outra fun¸c˜aohash-one way, como, por exemplo, a sha1, disponibilizada pela linguagem PHP.

$CHAVE PUBLICA=md5($temp login.$CHAVE SECRETA.$ip.$hora).

A vari´avel da sess˜ao ´e um vetor ($usuario). Ele armazena ologin ($temp login), o instante, em segundos, em que a p´agina foi acessada ($hora), a chave p´ublica ($chave) e o n´ıvel de acesso do usu´ario ($acesso). Note que o endere¸co IP n˜ao ´e armazenado na sess˜ao.

$usuario=array($temp login, $hora, $chave, $acesso);

(47)

naquela sess˜ao. Uma vez dispon´ıveis, elas s˜ao utilizadas para construir a chave p´ublica. O endere¸co IP do usu´ario ´e obtido atrav´es do seguinte comando:

$ip=$HTTP SERVER VARS[“REMOTE ADDR”];

A chave p´ublica reconstru´ıda, ent˜ao, ´e comparada com aquela armazenada na sess˜ao. Se as chaves forem idˆenticas, o usu´ario ter´a acesso ao sistema se n˜ao ficar inativo por um per´ıodo superior a uma hora. Caso contr´ario, a sess˜ao ´e destru´ıda e o usu´ario ´e redirecionado para a p´agina principal.

Vale salientar que a chave p´ublica ´e modificada toda vez que o usu´ario acessa uma p´agina do sistema, o que dificulta poss´ıveis falsifica¸c˜oes. Isso s´o ´e poss´ıvel porque a vari´avel $hora n˜ao ´e idˆentica para acessos distintos.

4.2.4 Funcionalidades

Nesta Se¸c˜ao s˜ao mostradas as funcionalidades do sistema de banco de dados. Primeiramente s˜ao ilustradas as opera¸c˜oes de inser¸c˜ao, remo¸c˜ao e atualiza¸c˜ao de informa¸c˜oes sobre cen´arios de ataque. Posteriormente, relata-se sobre inser¸c˜ao e remo¸c˜ao de usu´arios no sistema.

(48)

• Autentica¸c˜ao

A Figura 4.11 ilustra a interface inicial encontrada pelos usu´arios que desejam acessar o sistema. Ela possui campos para o login (identificador de usu´ario) e a senha, que s˜ao os ´ uni-cos parˆametros requeridos pelo processo de autentica¸c˜ao do sistema. Nesta mesma Figura ´e mostrada a interface exibida aos usu´arios imediatamente ap´os o processo de autentica¸c˜ao. Ela informa ao usu´ario a hora e a data do ´ultimo acesso.

(49)

• Recupera¸c˜ao de Informa¸c˜oes

A recupera¸c˜ao de informa¸c˜oes sobre cen´arios de ataque ocorre fornecendo-se um n´umero do CVE do ataque. Esse n´umero ´e avaliado antes do pedido ser enviado ao banco de dados. A informa¸c˜ao ´e mostrada apenas se a classifica¸c˜ao dela for igual ou inferior ao n´ıvel de acesso do usu´ario que a requisitou e o n´umero do CVE fornecido for v´alido. A Figura 4.12 ilustra esta opera¸c˜ao.

(50)

• Atualiza¸c˜ao de Informa¸c˜oes

A atualiza¸c˜ao de informa¸c˜oes ocorre logo ap´os a visualiza¸c˜ao da mesma. Ao final da infor-ma¸c˜ao consultada ´e exibido um bot˜ao “Atualizar”. Esse bot˜ao direciona o usu´ario para uma p´agina cujas informa¸c˜oes a serem atualizadas est˜ao dispon´ıveis em formul´arios. A Figura 4.13 ilustra esta opera¸c˜ao.

(51)

• Remo¸c˜ao de Informa¸c˜oes

A remo¸c˜ao de informa¸c˜oes ´e realizada fornecendo-se apenas o n´umero do CVE do ataque. Caso o usu´ario possa remover a informa¸c˜ao (situa¸c˜ao na qual a classifica¸c˜ao da informa¸c˜ao ´e idˆentica ao n´ıvel de acesso do usu´ario que est´a realizando a opera¸c˜ao) e o n´umero do CVE seja v´alido, o usu´ario ´e informado que a exclus˜ao ocorreu normalmente. Caso contr´ario, uma mensa-gem de erro ´e emitida ao usu´ario. A Figura 4.14 ilustra o processo de remo¸c˜ao de informa¸c˜oes.

(52)

• Adi¸c˜ao de Usu´arios

A adi¸c˜ao de usu´arios ´e realizada fornecendo-se o o n´ıvel de acesso, a senha e o login do usu´ario. De forma idˆentica `as opera¸c˜oes mencionadas, emite-se um mensagem informando se a opera¸c˜ao foi bem sucedida. A Figura 4.15 mostra as interfaces de adi¸c˜ao de um usu´ario e de exibi¸c˜ao de mensagem.

(53)

• Remo¸c˜ao de Usu´arios

A remo¸c˜ao de usu´arios ´e realizada fornecendo-se o identificador do usu´ario, constitu´ıdo apenas pelo seulogin. A Figura 4.16 ilustra esta opera¸c˜ao.

(54)

4.3

O Assistente ao Especialista

O assistente ao especialista implementado ´e composto por interfaces web e arquivos texto. De forma idˆentica ao sistema de banco de dados, as interfaces do assistente ao especialista s˜ao providas pelo servidor Apache e foram escritas utilizando-se as linguagens PHP, HTML e JavaScript.

O conhecimento que o assistente ao especialista possui est´a codificado nos arquivos texto. Ele est´a representado na forma de regras de produ¸c˜ao, que s˜ao declara¸c˜oes condicionais que especificam uma a¸c˜ao a ser realizada caso uma condi¸c˜ao seja satisfeita. Elas codificam o conhe-cimento na forma de pares de premissa-a¸c˜ao e apresentam a sintaxe mostrada a seguir.

SE <condi¸c˜ao>ENT˜AO<a¸c˜ao>

A parte esquerda da regra ´e chamada de parte de condi¸c˜ao ou de premissa e estabelece as condi¸c˜oes de aplicabilidade da regra. A parte direita da regra ´e denominada de parte de a¸c˜ao ou de conclus˜ao e ocorre apenas se a condi¸c˜ao estabelecida na respectiva parte de condi¸c˜ao for satisfeita.

A Figura 4.17 ilustra a forma na qual as regras de produ¸c˜ao devem ser inseridas na base de conhecimento. O primeiro parˆametro da regra refere-se `a chave de busca; o segundo, `a pergunta realizada ao especialista e o terceiro, ao tipo de interface de entrada. Os tipos de interfaces de entrada do sistema englobam trˆes entradas de controle [19] disponibilizadas pela linguagem HTML: text (entradas do tipo texto), radio (entradas de ´unica escolha) e checkbox (entradas de m´ultipla escolha). As demais linhas da regra representam poss´ıveis respostas `a pergunta realizada. O caractere “P” concatenado com a resposta selecionada determina a pr´oxima chave de busca. Conforme se pode observar nesta mesma Figura, toda op¸c˜ao de resposta ´e precedida de um identificador. Esse identificador ´e necess´ario para que possam existir no mesmo arquivo perguntas com respostas idˆenticas.

Figura 4.17: Sintaxe das regras do assistente ao usu´ario implementado.

(55)

que as entradas s˜ao de ´unica escolha; a palavra “multipla” para especificar que as entradas s˜ao de m´ultipla escolha e a palavra “texto” para especificar que as entradas s˜ao do tipo texto.

P14

Como esse programa foi explorado? uma

15-Atrav´es de um c´odigo enviado ao dispositivo de rede. 50-Enviando uma c´opia como anexo de e-mail.

300-Atrav´es de um programa de mensagens instantˆaneas. 517-Especificar.

313-Desconhecido.

Figura 4.18: Exemplo de regra. ´

E importante salientar que cada arquivo texto da base de conhecimento corresponde a um tipo de ataque. A busca por regras, ent˜ao, d´a-se no arquivo relacionado `a categoria do inci-dente ocorrido. Essa forma de organizar o conhecimento se assemelha `a de regra de produ¸c˜ao estruturada, na qual regras s˜ao separadas em classes para acelerar o processo de inferˆencia.

O assistente ao especialista processa a an´alise das regras de forma progressiva. A seq¨uˆencia de perguntas ´e determinada pelas respostas fornecidas pelo usu´ario durante a consulta. Uma regra ´e selecionada quando a premissa dela satisfaz a condi¸c˜ao estabelecida pela ´ultima pergunta respondida. As respostas dos usu´arios e as respectivas perguntas realizadas pelo sistema s˜ao armazenadas em uma matriz de strings.

Imagem

Figura 2.2: Tabela ATTACK STEP.
Figura 2.6: ADBS envia mensagem ao usu´ ario.
Figura 2.7: Usu´ ario envia mensagem ao ADBS.
Figura 2.8: Etapas da opera¸c˜ao de adi¸c˜ao de informa¸c˜oes no banco de dados ADBS.
+7

Referências

Documentos relacionados

b) Outros documentos que comprovem a formação escolar serão avaliados e validados a critério da Comissão de Seleção. 8.3 O candidato que, na data da convocação,

O juiz não poderá exercer jurisdição no processo em que: I - tiver funcionado seu cônjuge ou parente, consanguíneo ou afim, em linha reta ou colateral até o terceiro grau,

Neste artigo, apresenta-se uma análise quantitativa do caderno de Geografia do professor, do ensino fundamental II e ensino médio, a fim de verificar a dimensão da cartografia

A coleta de dados será realizada em uma empresa multinacional do segmento de varejo no Brasil cujo nome não será apresentado e será conhecida como Empresa AA. Serão

19) A introdução dos Jogos cooperativos como conteúdo da Educação Física seria de suma importância para o rompimento da tradição unívoca do esporte

The purpose of this study is to recognize and describe anatomical variations of the sphenoid sinus and the parasellar region, mainly describing the anatomy of

Disto decorre que cada entidade sindical minimamente representativa deverá, num futuro próximo, escolher, em primeiro lugar, um dado mix de serviços,sejam de de natureza

A definição desses objetivos deverá ser elaborada levando-se em consideração dois aspectos importantes. Primeiramente, tomando-se os objetivos genéricos que um