Segurança da Informação Professor conteudista: Luiz Antonio de Lima Sumário Segurança da Informação Unidade I 1 SISTEMAS OPERACIONAIS E A SEGURANÇA ...........................................................................................1 1.1 Conceitos básicos ....................................................................................................................................4 1.2 Evolução dos sistemas operacionais..............................................................................................11 1.2.1 Computadores da primeira geração................................................................................................ 12 1.2.2 Computadores da segunda geração ............................................................................................... 14 1.2.3 Computadores da terceira geração ................................................................................................. 16 1.2.4 Computadores da quarta geração ................................................................................................... 17 1.3 Estrutura e funções dos sistemas operacionais ....................................................................... 20 1.4 Gerenciamento de processos........................................................................................................... 22 1.5 Gerência de memória ......................................................................................................................... 24 1.6. Gerência de dispositivos ................................................................................................................... 29 1.7 Sistemas de arquivos .......................................................................................................................... 31 1.8 Sistema operacional distribuído..................................................................................................... 34 1.9 A segurança dos sistemas operacionais ...................................................................................... 35 Unidade II 2 FUNDAMENTOS DE SEGURANÇA COMPUTACIONAL ........................................................................ 37 2.1 Propriedade............................................................................................................................................. 38 2.2 Políticas e violações............................................................................................................................. 40 2.3 Modelos de segurança da informação ........................................................................................ 41 2.4 Serviços e mecanismos ...................................................................................................................... 43 2.5 Controles criptográficos .................................................................................................................... 44 2.5.1 Sistemas criptográficos ........................................................................................................................ 46 2.5.2 Assinatura digital .................................................................................................................................... 46 2.5.3 Gerência de chaves ................................................................................................................................ 49 2.5.4 Public Key Infrastructure (PKI) .......................................................................................................... 49 Unidade III 3 GERENCIAMENTO DA SEGURANÇA DA TI ............................................................................................. 52 3.1 Ferramentas de gerenciamento de segurança ......................................................................... 53 3.2 Segurança em sistemas distribuídos ............................................................................................ 54 3.2.1 Autenticação e autorização ............................................................................................................... 55 3.2.2 Controle de acesso ................................................................................................................................. 56 Unidade IV 4 DESAFIOS DE SEGURANÇA, ÉTICOS E SOCIAIS, DA TI ....................................................................... 58 4.1 Segurança, ética e sociedade em negócios/TI .......................................................................... 58 4.1.1 Ética nos negócios .................................................................................................................................. 59 4.1.2 Ética tecnológica..................................................................................................................................... 61 4.2 Crime em informática ........................................................................................................................ 62 4.2.1 Hacking ....................................................................................................................................................... 63 4.2.2 Pirataria de software ............................................................................................................................. 64 4.2.3 Furto cibernético ..................................................................................................................................... 66 4.2.4 Uso não autorizado no trabalho ...................................................................................................... 68 4.2.5 Furto de propriedade intelectual...................................................................................................... 70 4.2.6. Vírus de computador, adware e spyware ..................................................................................... 71 4.3 Questões de privacidade ................................................................................................................... 75 4.4 Privacidade na Internet ..................................................................................................................... 76 SEGURANÇA DA INFORMAÇÃO Unidade I 1 SISTEMAS OPERACIONAIS E A SEGURANÇA INTRODUÇÃO A cada dia que passa, as pessoas de modo geral passam a dar mais valor para a questão da segurança em todos os aspectos, mas para os usuários de computadores e sistemas informatizados, a segurança computacional torna-se atrativa diante das ameaças 5 a esses sistemas. Vivemos num mundo moderno, no qual os processadores controlam as máquinas de modo a torná-las um pouco mais inteligentes. Hardware e processadores 10 Processadores são circuitos integrados capazes de realizar operações de processamento de dados e são considerados por muitos como sendo o cérebro do computador. Esses processadores podem ser ligados em redes de modo a fornecer aos usuários as informações, possibilidades de 15 monitoração e controle a distância nos diversos sistemas que existem na sociedade. Mas se os processadores são dispositivos tipo hardware, então como eles funcionam em termos lógicos, ou seja, em termos de software? Que mecanismos de segurança podem 20 estar relacionados com estes dispositivos? 1 Unidade I Softwares e a segurança dos sistemas computacionais Ocorre que processadores são componentes de hardware e que, para funcionar, necessitam do software, que é considerado por muitos como sendo o combustível ou a alma 5 do computador. Na realidade, a segurança, normalmente, é implementada por meio de software. Mas que tipos de software existem nos computadores? Uma classificação mais simplista, mas aplicável no momento, 10 considera os softwares como sendo básicos, aplicativos e aplicações. Softwares básicos incluem os sistemas operacionais e softwares de comunicação, enquanto aplicativos e aplicações estão relacionados com os sistemas. Em relação ao software básico denominado “sistema operacional”, talvez esse seja um dos mais importantes, pois em cima dos mesmos vão rodar os outros softwares, como é o caso dos jogos, dos aplicativos de editores de textos, aplicativos de banco de dados, aplicativos de planilha eletrônica, aplicativos de 20 apresentação, aplicativos de e-mail etc. 15 Já com relação a aplicações, dependendo do tipo de negócio, estas podem ser aplicações de entretenimento, aplicações de vendas, aplicações contábeis, aplicações para área de saúde etc. 25 Os sistemas operacionais Sistemas operacionais podem ser encontrados em telefones celulares, automóveis, aeronaves, embarcações, computadores pessoais, sistemas robóticos, computadores 2 SEGURANÇA DA INFORMAÇÃO de grande porte (mainframes), e, na maioria dos sistemas operacionais, o usuário do sistema requisita ao computador que o mesmo realize uma ação, por exemplo, mostrar alguma coisa na tela, ou carregar algum software, ou imprimir 5 algum documento. No caso, o sistema operacional gerencia o software e o hardware para produzir o resultado esperado (Deitel; Choffnes, 2005, p. 5). Nos sistemas operacionais, começa a segurança dos computadores. Um exemplo prático é relacionado com 10 a atualização desses sistemas: à medida que se baixam atualizações dos mesmos e se implementam essas atualizações nos computadores, diminui-se os riscos em relação a vírus e ameaças, pois os fabricantes tentam eliminar as falhas encontradas ou pontos vulneráveis em cada atualização de 15 modo a tornar o sistema operacional mais seguro em relação às ameaças anteriores. Ocorre que a cada dia surgem novos vírus e novas possibilidades de ameaça, de modo que o trabalho dos projetistas desses sistemas operacionais é constante, e 20 quando a quantidade de modificações ou atualizações é muito grande, talvez, seja um indicativo de que é necessário se criar outra versão mais nova de sistema operacional, pois o sistema anterior chegou ao seu limite de possibilidade de atualização. 25 Caro(a) aluno(a), o presente material didático foi dividido em quatro unidades, que vão abordar respectivamente: 1. Os sistemas operacionais e a segurança; 2. Fundamentos de segurança computacional; 3. Gerenciamento da segurança de TI; 30 4. Desafios de segurança éticos e sociais de TI. 3 Unidade I Vamos trabalhar, nesta unidade 1, Os sistemas operacionais e a segurança, os seguintes itens: 1.1. Conceitos básicos; 1.2. Evolução dos sistemas operacionais; 5 1.3. Estrutura e funções dos sistemas operacionais; 1.4. Gerenciamento de processos; 1.5. Gerência de memória; 1.6. Gerência de dispositivos; 1.7. Sistemas de arquivos. 10 Não deixe acumular a matéria. O segredo é ler diariamente. Anote num caderno os itens ou coisas que você descobriu, para conversar e discutir com os outros. Anote suas dúvidas e leve-as para os colegas e para o professor. Interaja de modo correto, ético e positivo. 15 Ajude os colegas, participe, aprenda e, desta forma, você terá sucesso na vida, nos estudos e no trabalho. Bons estudos. Vamos começar então com os conceitos básicos. 1.1 Conceitos básicos Sistema operacional pode ser entendido como sendo uma 20 máquina estendida ou virtual que esconde a complexidade dos comandos de programação necessários para gerenciar as tarefas em computadores ou processadores, seja de uso industrial, militar, comercial, bancário, rural, em lazer ou doméstico. 4 SEGURANÇA DA INFORMAÇÃO Também outra visão é a do sistema operacional como provedor de uma interface (telas e dispositivos de entrada e saída) conveniente aos usuários, em que o sistema gerencia partes de um sistema complexo em que ele tem que fazer uma 5 alocação ordenada e controlada de processadores, memórias, temporizadores, discos, dispositivos de entrada e saída entre os vários programas que competem por estes recursos (Tanenbaum, 2003, p.2-3). Vamos então a uma definição. 10 Sistema operacional é: Um software que habilita as aplicações a interagir com o hardware de um computador (Deitel; Choffnes, 2005, p. 4). Todo computador precisa de um sistema operacional para funcionar. Este software pode ser proprietário ou software livre e pode possuir vulnerabilidades que serão exploradas pelos hackers, phreakers e pessoas que criam ameaças virtuais. 15 Para finalidade de estudo e comparação, apresentam-se a seguir algumas imagens relacionadas com sistemas operacionais existentes no mercado. Sistemas operacionais livres Um exemplo de software de sistema operacional que está 20 com uma quantidade crescente de usuários é o Ubuntu, bem como suas variantes, como é o caso do Kubuntu. A figura 1 ilustra um exemplo de imagem simbólica do software de sistema operacional livre Ubuntu, sob a licença GNU – pronuncia-se guinú. Esta licença é a do software livre. 25 Há quem diga que o significado é “GNU is not Unix”, outros consideram os softwares open source, ou seja, de código aberto 5 Unidade I como sendo os softwares livres e cuja fonte é recebida de modo livre e gratuito, e qualquer modificação que for realizada no software terá que ser mantida livre e disponibilizada na web. Figura 1: Software livre de sistema operacional Ubuntu, sob a licença GNU. Fonte: <http://img74.imageshack.us/i/ubuntucapakq9.jpg/>. Caro aluno, para que seu aprendizado seja mais eficiente e 5 efetivo, é preciso que você participe dos fóruns: leve suas dúvidas para discutir com os colegas e com seu professor. Participe! Aprenda, compartilhe opiniões e informações. A figura 2 apresenta uma imagem que ilustra o Kubuntu. Figura 2: imagem associada ao Kubuntu, na Internet. Fonte: <http://walkmans.files.wordpress.com/2008/04/kubuntu.png>. 6 SEGURANÇA DA INFORMAÇÃO Também aos alunos interessados, sugerimos que busquem na web os softwares, como é o caso do Ubuntu e Kubuntu para baixarem em suas máquinas e testarem. Softwares livres não são comercializados. Disponibilizam o 5 código-fonte e possibilitam aos usuários realizarem alterações nos mesmos (Ex.: Linux e BSD). Com relação ao Linux, este foi desenvolvido inicialmente por Linus Torvalds, enquanto o mesmo era estudante de computação na Finlândia. Torvalds disponibilizou gratuitamente 10 os códigos-fonte e pediu a ajuda de todos os programadores do mundo para colaborarem na construção de um software livre de sistema operacional que seria útil para todos. Daí nasceu o Linux. Surgiram várias distribuições de Linux ao redor do mundo. 15 No Brasil, a Conectiva, que é uma empresa paranaense, trabalhou algumas das versões de Linux nacionais. No caso, a empresa comercializava os manuais, treinamentos e suporte, mas não o software, que é livre. Surgiram outras versões importantes, como é o caso do Linux 20 Kurumin, que foi desenvolvido por Carlos Morimoto, engenheiro e autor de obras. No caso de outros países, como os Estados Unidos, a distribuição Red Hat se espalhou bastante; na Alemanha, houve a disseminação da distribuição Linux, denominada SuSE, enfim, 25 em vários países houve a criação de distribuições famosas do LInux. Além dos sistemas de código aberto (como é caso do Unix), existem também os sistemas gratuitos, porém, neste caso, apesar de o usuário não ter custos em poder usar os 30 mesmos, ele não terá como acessar o código-fonte. Este é o caso do BeOS. 7 Unidade I Sistemas operacionais proprietários Talvez o sistema proprietário mais famoso do mundo seja o Windows, em suas várias versões, e uma das pessoas mais ilustres seja Bill Gates, fundador da Microsoft Co, proprietária 5 da marca Windows. Na figura 3 seguinte, apresenta-se uma imagem representativa da embalagem, caixa, na qual vêm os CDs correspondentes ao operacional Windows, cuja marca é propriedade da Microsoft Co, que vende a licença de uso de 10 seus softwares. Figura 3: Software Windows, que é software proprietário da empresa norteamericana Microsoft Co. Fonte: <http://www.newformat.com.br/images/windows_xp_box_small.jpg>. Na figura 4, pode-se observar a imagem associada a outro software de sistema operacional proprietário, que é o sistema da Apple. Nesta figura, observa-se de modo semelhante à figura 15 anterior, para fins de comparação, a embalagem “caixa”, 8 SEGURANÇA DA INFORMAÇÃO na qual vêm os CDs de instalação do software de sistema operacional. Figura 4: Imagem associada ao sistema operacional proprietário Apple. Fonte: <http://images.apple.com/br/support/products/images/applecare_ indextop20061024.jpg>. Atualmente, principalmente nas máquinas mais potentes, isto é, com bom processador e memória, um dos recursos que 5 se tem utilizado quando se necessita fazer a troca de sistemas operacionais com frequência numa mesma máquina é se trabalhar com sistemas virtuais. Este é o caso, por exemplo, de uma instituição de ensino que ensina Linux Debian 3.2, para uma turma e, a seguir, entra outra turma que vai utilizar o 10 Windows 2003. Note que, em ambientes de ensino, este procedimento pode ocorrer com frequência, e o uso de um sistema que permita a instalação de vários sistemas operacionais e até mesmo de vários softwares diferentes que rodam em sistemas operacionais 15 diferentes. A figura 5 ilustra o sistema VMWare, que cria máquinas virtuais, nas quais cada uma pode trabalhar com um sistema operacional particular. 9 Unidade I Oracle SQL Application Servers Email File Print Power multiple “virtual machines” on one server with VMWare Figura 5: Sistema operacional VMWare que cria máquinas virtuais. Fonte: <http://www.ziontechgroup.com/nzion/img/GRD_274_vmware_ virtualization.jpg>. O conhecimento dos sistemas operacionais é o início do conhecimento dos sistemas computacionais juntamente com o hardware e que, por este motivo, o estudo da segurança pode se iniciar pelo estudo deste par. 5 O hardware (equipamentos e dispositivos) mais o software (sistemas operacionais e aplicativos que vão rodar em cimas dos mesmos) e pessoas (desenvolvedores e usuários), em conjunto com as organizações e regras, vão formar os sistemas de informação computadorizados atuais. 10 Mas falando mais especificamente nos sistemas operacionais, vamos conhecer um pouco mais deles. Como eles surgiram? Como evoluíram? Qual é o histórico desses softwares básicos? Vamos ver estes assuntos no item seguinte. 10 SEGURANÇA DA INFORMAÇÃO 1.2 Evolução dos sistemas operacionais Com a finalidade didática, costumamos dividir a Era dos computadores em gerações, conforme se apresenta a seguir. Charles Babbage (1792-1871) projetou o primeiro computador digital do mundo, porém, este computador mecânico não chegou 5 a ser implementado. Era chamado de máquina analítica. Ela não possuía um sistema operacional como conhecemos atualmente, pois, sendo mecânica, dependia de engrenagens, rodas, alavancas, parafusos, que, na época, não possuíam a precisão para se alcançar o mínimo necessário para um computador bem simples. 10 A figura 6 ilustra a imagem da máquina diferencial de Babbage. Pode-se observar nela a presença somente de componentes mecânicos, num computador que na época não chegou a funcionar. Figura 6 – Ilustração da máquina diferencial de Babbage. Fonte: <http://2.bp.blogspot.com/_lL5b_nJRrcU/SbVhjPhieBI/AAAAAAAAAEE/ Jbm8Kqq73co/s320/Maquina+analitica.bmp>. 11 Unidade I Aparentemente, o projeto de Babbage estava correto, e mais de um século depois ela foi reconstruída com finalidades históricas. A máquina de Babbage era um computador mecânico, 5 e naquela época, nem se pensava em formar redes de computadores, pois nem se conseguia fazer funcionar um computador simples. Também as informações possíveis de se trabalhar naquela máquina não eram relevantes e, desta forma, não havia perigo algum relacionado com ameaças virtuais. 10 A máquina diferencial reconstruída e que trabalha como Babbage projetou está em operação desde 1991, no Museu de Ciências de Londres. Tal feito mostrou que Babbage estava certo na teoria, permitindo a produção de partes da precisão requerida. 15 Na época original, Babbage falhou devido ao fato de seus desenhos serem muito ambiciosos; ele teve problemas com relações de trabalho, e era politicamente inapto (Wiki [1], 2009). A importância da máquina de Babbage está no aspecto 20 histórico e de evolução da computação. É interessante notar que a entrada de dados deveria ocorrer por meio de tábuas perfuradas, e a saída de resultados também ocorreria de modo semelhante, ou seja, Babbage já se preocupava com a questão das entradas, dos processamentos e das saídas. 25 A seguir, aborda-se os computadores de primeira geração. 1.2.1 Computadores da primeira geração A primeira geração (1945-1955) era válvulas, conectores, chaveamentos eletromecânicos, relés e só realizavam cálculos simples. Na década de 1950, surgiram os cartões perfurados, que 12 SEGURANÇA DA INFORMAÇÃO dispensavam os conectores e facilitavam a entrada e saída de dados. Um expoente da computação deste período era Alan Mathison Turing. Este cientista inglês criou o conceito de 5 máquina universal, que seria uma máquina em fita, na qual os dados entrariam em sequência e seriam processados em sequência, e os resultados também sairiam em sequência. A ideia da máquina de Turing foi importante e continua sendo, pois os computadores atuais continuam trabalhando 10 com os processadores seguindo as ideias da máquina de Turing, ou seja, computadores são máquinas universais. Turing, durante a Segunda Grande Guerra Mundial, ajudou o serviço secreto inglês a decodificar as mensagens militares secretas dos alemães, que eram escritas para os comandantes daquele país 15 realizarem as estratégias de guerra. As mensagens dos alemães eram codificadas em máquinas denominadas Enigma. O trabalho de Turing utilizando o computador Colossus permitiu que as traduções dos códigos secretos fossem realizadas em poucas horas e, com isso, a Inglaterra salvou muitas vidas e 20 ganhou a guerra. O uso dos computadores de primeira geração já estava ocorrendo por meio de seus precursores. Logo após o final da guerra, Turing ajudou outro expoente da computação da época, que foi John Von Neumann, que 25 trabalhava no projeto do computador Eniac. Os computadores possuíam o tamanho de edifícios de vários andares. Os sistemas operacionais dependiam de ações manuais e eram projetados junto com a máquina. Esses computadores só geravam tabelas de senos, cossenos, logaritmos e problemas 30 relativamente simples. 13 Unidade I A figura 7 ilustra um computador da primeira geração, o Eniac. Figura 7: Imagem de computador da primeira geração, o Eniac. Fonte: <http://blogs.atlassian.com/developer/eniac3.jpg>. Os computadores de primeira geração necessitavam do hardware e do sistema operacional próprio e não estavam 5 sujeitos às ameaças virtuais. 1.2.2 Computadores da segunda geração Em 1965 veio a segunda geração, quando as máquinas funcionavam com transistores (estes substituíam as válvulas) e com processamento batch, ou seja, sistemas em lote de cartões perfurados. 10 14 Estes computadores já eram menores que os da geração anterior e possuíam capacidades maiores de processamento em relação aos computadores da primeira geração. SEGURANÇA DA INFORMAÇÃO O mundo dos computadores estava se organizando. Os sistemas operacionais eram próprios de cada máquina e não serviam em outras que não fossem exatamente do mesmo tipo. Já se faziam trocas de dados entre computadores semelhantes, 5 mesmo distantes, por meio de linhas telefônicas. Desta forma, programavam-se os jobs (surgiu a figura do scheduller de computador, que organizava a sequência de jobs ou serviços), ou seja, a sequência de programas ou lotes que seriam processados. 10 Havia manuais bem-escritos e detalhados. A hierarquia e as funções eram bem-definidas. A segurança era bastante controlada e evitava-se a entrada de pessoas estranhas nos Centros de Processamentos de Dados. As saídas eram gravadas em fita. Com o uso dos transistores, 15 o tamanho dos computadores diminuiu. Tanenbaum e Woodhull (2008, p. 27) afirmaram que: 20 25 Grandes computadores de segunda geração eram usados principalmente para cálculos científicos e de engenharia, como a solução de equações diferenciais parciais que frequentemente ocorrem na física e na engenharia. Eles eram programados principalmente em FORTRAN e em linguagem assembly. Os sistemas operacionais típicos eram o FMS (o Frortran Monitor System) e o Ibsys (sistema operacional da IBM para o 7094). Na figura 8, pode-se observar a imagem de um computador da segunda geração digital. Figura 8: Computador da segunda geração, com transistores. Fonte: <http://www.netangola.com/CCA/pages/marks/computador/imagens/comp/ leo.jpg>. 15 Unidade I Até a segunda geração, a preocupação com segurança ainda era muito pequena, limitando-se mais à questão da segurança física, pois ainda não havia muitas ameaças aos ambientes computacionais. 5 Nos computadores de segunda geração, que trabalhavam comercialmente, havia já algum risco de ameaça por parte de programadores ou analistas descontentes e também alguma ameaça externa, no sentido de concorrentes que buscavam já um início de engenharia social para obter informações de 10 concorrentes. A seguir, na ordem didático-cronológica, vieram os computadores da terceira geração. 1.2.3 Computadores da terceira geração Na terceira geração, utilizavam-se Circuitos Integrados (CIs), que agrupavam grandes quantidades de transistores num espaço 15 pequeno e utilizavam multiprogramação (1965 a 1980). O tamanho dos computadores diminuiu, mas a capacidade de processamento continuou crescendo. Os computadores se tornavam mais rápidos. A organização dos Centros de Processamentos de Dados era cada vez maior. 20 Já havia monitores e impressoras. Utilizava-se a técnica de Simultaneous Peripheral Operation on Line (spooling) . Os computadores já pareciam bem com os computadores que conhecemos atualmente. As linguagens de programação, como é o caso do Cobol, 25 Fortran, Algol e Basic eram ensinadas para vários profissionais da computação. Os computadores eram cada vez mais utilizados em empresas: indústria, comércio, bancos, escolas etc., porém, ainda não eram 16 SEGURANÇA DA INFORMAÇÃO populares, pois somente as grandes empresas e universidades faziam uso deles. Na figura 9, pode-se observar a imagem de um computador da terceira geração. Figura 9: Imagem de computador de terceira geração, com VLSI. Fonte: <http://img56.imageshack.us/i/brlescii1.gif/#q=computador da terceira geração>. 5 Na terceira geração, já havia uma preocupação com auditoria dos sistemas nas empresas e avançava a questão da segurança física e lógica dos sistemas computacionais. A seguir, abordam-se os computadores de quarta geração, que são os atuais, mas que estão em evolução – e quem sabe 10 logo estaremos na quinta ou sexta geração? 1.2.4 Computadores da quarta geração Esta geração está associada ao desenvolvimento dos circuitos integrados com grande escala de integração, ou 17 Unidade I Large Scale Integration (LSI), que são chips contendo milhares de transistores em um centímetro quadrado de sillício e, assim, surgiu a Era do computador pessoal baseado em microporcessador. 5 Entre os primeiros sistemas operacionais para os microcomputadores, estava o Control Program for Microcoputers (CP/M) desenvolvido pela empresa Digital Research para o processador Z-80 produzido pela empresa Zilog. Não tardou, a Motorola produziu seu processador 6800. 10 Logo a seguir, surgiram os IBM PC com processadores Intel; os computadores da Apple com os sistemas operacionais Mac OS X. E a evolução continuou com a Microsoft lançando o sistema operacional Windows. Também os usuários do sistema Unix, o qual existia 15 desde a década de 70, desejavam uma interface gráfica, e para o mesmo criou-se o Motif (Tanenbaum; Woodhull, 2008, p. 32-33). A microcomputação possibilitou a disseminação do uso do computador entre usuários do mundo inteiro. Inicialmente 20 para jogos, lazer, ou mesmo para uso comercial, e em escritório, logo os computadores mostraram-se excelentes ferramentas de produtividade. Um desenvolvimento que começou na década de 80 foi o crescimento na quantidade de redes de computadores 25 pessoais executando sistemas operacionais de rede e sistemas operacionais distribuídos. Este fato fez com que um computador enxergasse o conteúdo de outros computadores que estivessem numa mesma rede (Tanenbaum; Van Steen, 2002). 18 SEGURANÇA DA INFORMAÇÃO A figura 10 ilustra um computador de quarta geração. Figura 10: Imagem de computador da quarta geração. Fonte: <http://www.4linking.com.br/wp-content/uploads/2009/09/Asus-eee-PC1101HA-black.jpg>. A partir dos computadores ligados em rede, a quantidade de ameaças virtuais cresceu e, atualmente, as pessoas que possuem suas máquinas ligadas em rede têm que baixar atualizações de 5 antivírus todos os dias. Além dos vírus de computador, há também os cavalos de Tróoa, as ameaças de invasões e esse conjunto de coisas que acontece no cotidiano assusta as pessoas, pois todos possuímos informações importantes guardadas nos computadores. 10 Uma forma de se diminuir o perigo é se evitar a ligação de computadores em rede e na Internet. Este fato, porém, não libera um computador de receber vírus por meio de pendrives, CDs, disquetes ou qualquer meio de armazenamento de informações. 19 Unidade I A partir da quarta geração, houve a proliferação de muitos tipos de crimes virtuais e houve um grande avanço na questão da segurança em TI. Mas como será que surgem grandes ameaças virtuais? 5 Um dos caminhos mais fáceis está no descobrimento de vulnerabilidades dos sistemas operacionais e dos sistemas em geral. Quando tais vulnerabilidades são descobertas, por meio delas entram os perigos virtuais. A seguir, vamos estudar a estrutura e funções dos sistemas 10 operacionais para conhecer mais sobre eles. 1.3 Estrutura e funções dos sistemas operacionais Um sistema operacional não é um único programa. Ele é constituído ou formado por um conjunto de programas ou rotinas que vão realizar tarefas por meio do controle do hardware e suas partes. O conjunto de rotinas de um sistema operacional é denominado núcleo do sistema ou kernel. 15 Um sistema computacional pode ser visto em termos de níveis de programação para facilitar seu entendimento para as pessoas que ingressam na área de TI. Uma das divisões mais conhecidas é a da máquina de níveis, proposta por Tannembaum, que apresenta os seis níveis 20 seguintes (Tabela 1): Tabela 1: Máquina de níveis 6 Aplicativos 5 Utilitários 4 Sistema operacional 3 Linguagem de máquina 2 Microprogramação 1 Dispositivos físicos Fonte: Rosales; Godoy, 2007, p. 5. 20 SEGURANÇA DA INFORMAÇÃO Existe uma preocupação em se manter a integridade do sistema operacional, pois, se o mesmo falhar, o computador trava ou para de funcionar. Para manter a integridade, a segurança é realizada fazendo 5 com que o sistema não atenda diretamente os pedidos dos usuários. O atendimento é feito pelas chamadas de sistema, ou system calls. System calls são: Portas de acesso ao núcleo do sistema operacional e a seus serviços. 10 A figura 11 apresenta a imagem do sistema operacional formando uma camada entre o usuário e o hardware. Interpretador de comandos (Shell) é uma interface entre o usuário e o sistema operacional. Fazendo uso dele, um usuário pode solicitar a execução de um programa. Os comandos 15 enviados são interpretados para o sistema operacional. A seguir, aborda-se em ordem e sequência os itens: Gerência de processos; Gerência de memória; Gerência de entrada e saída; 20 Gerência de arquivos; Gerência de arquivos secundários; Sistemas distribuídos. 21 Unidade I Bloco de notas Windows Explorer Minha aplicação Serviços de sistema Modo usuário Modo Kernel Hardware Figura 11: Imagem de serviços de sistema operacional entre o usuário e o hardware Fonte: <http://www.caloni.com.br/blog/wp-content/uploads/monolithic.gif>. Nas linhas seguintes, aborda-se o gerenciamento de processos associados aos sistemas operacionais. 1.4 Gerenciamento de processos Uma aplicação pode ser dividida em vários processos. Existem processos-pais que chamam processos-filhos. 5 Os processos mais leves são denominados threads (pronuncia-se trédis). Um processo é um programa em execução e necessita de CPU, memória, arquivos e dispositivos de E/S. Em relação aos estados possíveis para um processo, este pode estar: pronto, em execução ou bloqueado. Existem trocas de estado durante a operação normal. 10 22 Note que no estado “pronto” pode existir uma fila de processos aguardando serem executados na CPU. SEGURANÇA DA INFORMAÇÃO Para otimizar o funcionamento do processador, o sistema operacional possui um componente denominado escalonador de processos. É este componente que determina, por meio de algoritmos de escalonamento, qual processo será executado 5 num momento. Algoritmos de escalonamento podem ser: preenptivos, cooperativos ou não preenptivos. Swapping é a troca de processos normal que ocorre durante o trabalho de um sistema operacional. 10 Papel do SO: 1. criar e terminar processos; 2. suspender e recomeçar processos; 3. prover mecanismos para; 4. sincronização; 15 5. comunicação entre processos; Caro aluno, traga suas dúvidas para discutir com os colegas e com o professor nos fóruns da disciplina. Participe. Procure livros relacionados com os assuntos em estudo, nas bibliotecas, em revistas da área e em sites da Internet. Todo conhecimento 20 é cumulativo, somativo e, à medida que você prossegue numa determinada área de conhecimento, fica cada vez mais especializado e conhecedor. Neste curso, trabalhamos apenas aspectos mais básicos, e nos cursos de pós-graduação, especialização e nos cursos de 25 mestrado e doutorado, trabalha-se mais a fundo as questões e problemas específicos. A seguir, aborda-se a gerência de memória. 23 Unidade I 1.5 Gerência de memória Memória possui lista endereçável e perde conteúdo se desligada. Há também as memórias secundárias, cujo conteúdo não se perde quando se desliga o equipamento (por exemplo, HD, 5 pendrive, DVD, CD etc.). Em relação à memória, estarão ocorrendo vários trabalhos: paginação, memória virtual, substituição de páginas etc.. A Figura 12 ilustra a hierarquia das memórias de computador gerenciadas pelos SO. Registradores da CPU Cache Nível 1 Nível 2 Áreas de armazenamento temporário RAM Memória física ROM/ BIOS Memória virtual Tipos de didpositivos de armazenamento Armazenamento Discos Discos Rede/ removíveis rígido Internet Áreas de armazenamento permanente Fontes de entrada Teclado Mouse Mídia removível Scanner/ Câmera/ Microfone/ Vídeo Fontes remotas Figura 12: Hierarquia das memórias de um computador. Fonte: <http://static.hsw.com.br/gif/computer-memory-pyramid.gif>. 24 Outras fontes SEGURANÇA DA INFORMAÇÃO Na hierarquia das memórias de computador, que já caiu em inúmeras provas, tanto de concursos como até de provões do MEC, pode-se notar que no topo estão os registradores. Note que os registradores são as memórias internas dos 5 processadores. Estas memórias são as mais rápidas e mais caras que existem, embora armazenem pequena quantidade de informação. Quando se fala que um processador é de 32 bits, significa que os registradores internos do mesmo trabalham com 32 bits por vez. 10 Abaixo dos registradores vêm as memórias cache, que são as memórias RAM (Randon Access Memories), mas do tipo estática. Estas memórias são mais rápidas que as memórias RAM dinâmicas. A Figura 13 ilustra a imagem de uma memória RAM 15 dinâmica. Figura 13: Imagem de memórias RAM. Fonte: <http://www.infowester.com/img_art/ram_ddr.jpg>. Em outras palavras, as RAM estáticas armazenam as informações que estão sendo mais solicitadas pelo computador, de modo a evitar que se tenha que procurar pelas mesmas no 25 Unidade I HD da máquina. E estas informações também não são voláteis, ou seja, não se apagam com facilidade. Memórias RAM estáticas são mais baratas e lentas que os registradores, porém, são mais caras e mais rápidas que as RAM 5 dinâmicas. Já as memórias RAM dinâmicas são aquelas correspondentes aos pentes de memória que se adquire no mercado para aumentar a capacidade de RAM das máquinas. As memórias RAM dinâmicas são mais baratas e lentas em 10 relação às RAM estáticas, porém, são mais caras e mais rápidas em relação à memória de massa. As memórias de massa são aquelas destinadas a guardar grande quantidade de informações. Apesar de serem mais lentas, o custo por quantidade de informação armazenada é 15 relativamente pequeno. Nesta categoria, encontram-se os HDs, os DVDs, os CDs, as fitas DAT etc. A figura 14 ilustra a imagem de um HD (hard disk) interno, aberto. Este tipo de HD, normalmente, é instalado no interior do gabinete do computador. Figura 14: Imagem de um HD interno, aberto. Fonte: <http://www.fahad.com/pics/fujitsu_160gb_300mbs_hard_disk.jpg>. 26 SEGURANÇA DA INFORMAÇÃO Na figura 15, pode-se observar a imagem de um HD externo. Figura 15: Imagem de HD externo. Fonte: <http://4.bp.blogspot.com/_qrf0rYYf7Sw/Sm0nLGSUZvI/AAAAAAAAAYw/9sSVQj4JsM/s320/hd-externo-500gb-princeton.jpg>. Há uma categoria de memórias que são mais rápidas que os HDs, mas mais lentas que as memórias RAM, que são as 5 memórias flash. Estas também são conhecidas como pendrives. A figura 16 ilustra a imagem de um pendrive, ou memória flash, que é bastante comum atualmente. Figura 16: Imagem de pendrive. Fonte: <http://www.pontodamidia.com.br/loja/images/PEN-DRIVE-KINGSTONDATA-TRAVELER-100-2GB-02.jpg>. 27 Unidade I Os HDs são memórias relativamente lentas, pois dependem dos motores do HD para posicionar as agulhas de leitura e gravação. Enquanto um HD leva alguns milisegundos para localizar uma 5 informação, uma memória RAM dinâmica leva milionésimos de segundo para realizar a mesma operação. Os endereços de memória são sempre expressos por meio de numeração hexadecimal. Em resumo, pode-se dizer que o papel do SO em relação à 10 memória é: 1. identificar que partes, quem é o dono no momento; 2. manter dados e estatística sobre uso da memória; 3. decidir que processo carregar quando há espaço; 4. alocar e desalocar memória. 15 Os hackers podem utilizar endereços de memória para acessar informações ou realizar alterações. Já uma forma mais comum é a contaminação por vírus nos meios digitais, principalmente nas memórias flash. Para se evitar os vírus de computador, é preciso atualizar 20 diariamente os softwares antivírus e evitar o acesso a sites estranhos ou evitar abrir arquivos de e-mails estranhos (de pessoas não conhecidas, ou então de mensagens de bancos comerciais ou pessoas afirmando terem fotos comprometedoras etc). 25 28 É preciso que o profissional de informática e TI esteja sempre atento, aprendendo sobre as formas novas de ataque que surgem SEGURANÇA DA INFORMAÇÃO a cada dia, bem como as formas de preveni-las e de se evitar dores de cabeça desnecessárias. Os profissionais de segurança da informação estão sendo cada vez mais valorizados pelas empresas. É preciso se atualizar sempre: leia livros, participe de seminários e congressos sobre segurança da informação, frequente cursos da área, leia revistas sobre segurança da informação, participe de grupos de discussão sobre o assunto, procure sempre informações novas na web sobre este 10 assunto. 5 Nas linhas seguintes, aborda-se a gerência de dispositivos. 1.6. Gerência de dispositivos O sistema de E/S consiste de um sistema de buffercaching, uma interface geral para gerenciadores (drivers) de dispositivos e de gerenciadores (drivers) para dispositivos de 15 hardware. A figura 17 ilustra um exemplo de dispositivo de E/S. Figura 17: Exemplo de dispositivo de E/S. Fonte: <http://images.philips.com/is/image/PhilipsConsumer/SWR1200_10-GALglobal?wid=430&hei=430&$jpglarge$>. 29 Unidade I Gerenciador de dispositivos possibilita, segundo a Microsoft (2009): • Determinar se o hardware de seu computador está funcionando adequadamente. 5 • Alterar as definições de configuração de hardware. • Identificar os drivers de dispositivo que estão carregados para cada dispositivo e obter informações sobre cada driver de dispositivo. 10 • Alterar configurações avançadas e propriedades dos dispositivos. • Instalar drivers de dispositivo atualizados. • Desativar, ativar e desinstalar dispositivos. • Reinstalar a versão anterior de um driver. 15 • Identificar conflitos de um dispositivo e definir manualmente as configurações de dispositivo. • Imprimir um resumo dos dispositivos que estão instalados no seu computador. 20 25 • Normalmente, você vai utilizar o Gerenciador de Dispositivos para verificar o status de seu hardware e atualizar os drivers de dispositivo no seu computador. Os usuários avançados, que conhecem a fundo o hardware do computador, também podem usar os recursos de diagnóstico do Gerenciador de Dispositivo para resolver conflitos entre dispositivos e alterar configurações de recursos. A figura 18 ilustra um exemplo de gerenciamento de E/S de disco. 30 SEGURANÇA DA INFORMAÇÃO 66% x 14.000 Mciclos/seg. / 80 transações/seg. = 115,5 Mciclos/transação Operação de serviço 1 Série de teste Taxa de transação e % do total da CPU 100 90 80 70 60 50 40 30 20 Tx / seg. 10 % do total da CPU 0 1 2 3 4 5 6 7 8 Iterações de teste, com carga aumentada 9 Figura 18: Imagem de gerenciamento de E/S de disco. Fonte: <http://www.microsoft.com/brasil/msdn/arquitetura/Journal/SaaS%20Capa city%20Planning_Transaction%20Cost%20AnalysisRevisited_files/SaaS%20Capac ity%20Planning_Transaction%20Cost%20AnalysisRevisited_03.jpg>. A seguir, apresentam-se os sistemas de arquivos. 1.7 Sistemas de arquivos Em relação a um sistema de arquivos, diz Alecrim (2007): 5 (...) é uma estrutura que indica como os dados devem ser gravados em dispositivos de gravação. É de acordo com os recursos oferecidos por essa estrutura que é possível determinar o espaço disponível e ocupado em disco, e gerenciar como partes de um arquivo podem ficar “distribuídas” nas áreas de armazenamento. É também 31 Unidade I o sistema de arquivos que determina como os dados podem ser acessados, copiados, movidos, renomeados, protegidos e eliminados. Portanto, sem um sistema de arquivos, é impossível utilizar um disco rígido (e outros dispositivos) para armazenamento de informações. 5 Um arquivo é um conjunto de informações, programas e dados. A figura 19 ilustra o gerenciamento de arquivos. On-disk journal File system writes File system commit Disk partition File system recovery Figura 19: Imagem ilustrando o gerenciamento de arquivos pelo SO. Fonte: <http://www.ibm.com/developerworks/br/library/l-journaling-filesystems/ figure1.gif>. Papel do SO em relação à gerência de arquivos: 10 1. criar e apagar diretórios; 2. criar e apagar arquivos; 3. instruções para manipulação de arquivos e diretórios; 4. mapear arquivos em armazenamento secundário; 5. fazer backup. 32 SEGURANÇA DA INFORMAÇÃO Existe também a gerência de arquivos secundários: serve para manter dados entre acionamentos do computador, que, normalmente, são dados de discos. No caso do sistema operacional Linux, o sistema de arquivos 5 ext3 suporta três diferentes modos de trabalho do Journaling. São eles: Journal: grava todas as mudanças em sistema de arquivos. É o mais lento dos três modos, mas é o que possui maior capacidade de evitar perda de dados; 10 15 Ordered: grava somente mudanças em arquivos metadata (arquivos que guardam informações sobre outros arquivos), mas guarda as atualizações no arquivo de dados antes de fazer as mudanças associadas ao sistema de arquivos. Este Journaling é o padrão nos sistemas de arquivos ext3; Writeback: também só grava mudanças para o sistema de arquivo em metadata, mas utiliza o processo de escrita do sistema de arquivos em uso para gravação. É o mais rápido Journaling ext3, mas o menos confiável. 20 25 O modo Ordered é o padrão no ext3, mas é possível especificar qual o modo que você deseja usar, através da atualização do arquivo fstab. Por exemplo, pode ser que a linha /dev/hda1/opt tenha sua opção data com o valor ordered. Você pode mudar este valor para writeback ou journal. Papel do SO: 1. alocação de espaço; 2. gerência de espaço livre; 3. escalonamento do acesso a disco. 33 Unidade I Nas linhas seguintes, apresenta-se o sistema operacional distribuído. 1.8 Sistema operacional distribuído Sistema distribuído é conjunto de CPUs que não compartilham clock e memória, que são individuais de cada 5 máquina, que se comunicam umas com as outras por meio de rede de computadores. Vantagens: 1. trabalho distribuído; 2. confiabilidade; 10 3. rapidez; 4. disponibilidade. Resumo das funções de um sistema operacional: 1. criação e eliminação de processos e threads; 2. tratamento de interrupções e exceções; 15 3. sincronização e comunicação entre processos e threads; 4. escalonamento e controle de processos e threads; 5. gerência de memória; 6. gerência de dispositivos E/S; 7. gerência do sistema de arquivos; 20 8. suporte a redes locais e distribuídas; 9. contabilização do uso do sistema; 10. auditoria e segurança do sistema. Nas linhas seguintes, trabalha-se a segurança dos sistemas operacionais. 34 SEGURANÇA DA INFORMAÇÃO 1.9 A segurança dos sistemas operacionais Em relação à segurança do sistema operacional Windows, Kropiwiec e Geus (2004) afirmaram que: 5 O Windows apresentava originalmente uma segurança bem inferior a essa, por utilizar como sistema de suporte o DOS (e consequentemente, o sistema de arquivos FAT16/32, que não provia nenhum tipo de controle de acesso), e só posteriormente o Windows veio a utilizar um sistema de arquivos que permitia o controle de acesso dos usuários, o NTFS. Os mesmos autores consideraram um paradigma que o usuário dos sistemas era um agente limitador da segurança dos mesmos; para eles, também é um paradigma a existência de um superusuário, que é o administrador do sistema, e o terceiro paradigma consiste no uso da cifragem como forma de garantir 15 a segurança. 10 Desta forma, afirmaram que pode ocorrer a quebra da segurança considerando-se os paradigmas mencionados: 20 25 30 Com relação ao primeiro paradigma, existem dois pontos principais a serem analisados. É comum o usuário negligenciar a configuração correta das permissões sobre seus arquivos, seja por desconhecimento de como fazê-lo, seja por descuido ou descaso do mesmo. Conseqüentemente, caso o domínio de outro usuário seja comprometido, e as permissões do primeiro usuário assim o permitirem, a partir do outro será possível obter acesso aos arquivos, ou até destruí-las. O segundo ponto está relacionado com o domínio associado às aplicações. Estas possuem acesso ao mesmo domínio do usuário que as executou, e, caso sejam comprometidas por um ataque bem sucedido, o invasor terá acesso ao 35 Unidade I 5 10 15 mesmo domínio do usuário. Esse ponto tem maior implicação quando em conjunto com o segundo paradigma. Em se tratando de um ataque a aplicações de usuários comuns, apenas os arquivos aos quais os mesmos possuem acesso poderão ser copiados e/ou destruídos. O risco maior encontra-se na possibilidade de que aplicações que necessitem de privilégios adicionais sejam comprometidas, pois, em função do segundo paradigma, uma vez que isso aconteça, todo o sistema estará comprometido. O problema, portanto, é a falta de granularidade na distribuição das operações privilegiadas do sistema operacional. Esta falta de granularidade decorre do fato de que todos os privilégios estão centralizados e isolados em um único domínio, o do super-usuário, o que impossibilita restringir a aplicação apenas ao subconjunto mínimo de operações privilegiadas necessárias (Kropiwiec; Geus, 2004). A segurança de um sistema de informações pode começar 20 pela segurança nos sistemas operacionais, mas existem muitos outros itens importantes para se alcançar um bom nível de segurança. À medida que se busca mais segurança, também o custo dela sobe. A seguir, apresentam-se os fundamentos de segurança 25 computacional. 36