Baixe o app para aproveitar ainda mais
Prévia do material em texto
27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 1/33 SEGURANÇA DE SISTEMAS OPERACIONAISSEGURANÇA DE SISTEMAS OPERACIONAIS VULNERABILIDADES EM SISTEMASVULNERABILIDADES EM SISTEMAS OPERACIONAISOPERACIONAIS Autor: Me. Marcelo Henrique dos Santos Revisor : Rafae l Rehm I N I C I A R 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 2/33 introdução Introdução Nesta unidade apresentaremos os Tipos de Sistemas Operacionais, seus mecanismos de proteção, suas vulnerabilidades, além dos mecanismos de Controle de Acesso. Além disso, destacamos o conteúdo a partir da de�nição que o sistema operacional (SO) é uma coleção de software que gerencia os recursos do hardware do computador e/ou dispositivos móveis e fornece alguns serviços comuns para os programas (ou aplicativos). Discutiremos, também, sobre o número de vulnerabilidades em várias operações recentes de alguns sistemas. Essa caracterização quantitativa de vulnerabilidades pode ser usada para avaliar as métricas que podem orientar a alocação de recursos para os testes de segurança, agendamento, e desenvolvimento de patches de segurança. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 3/33 O sistema operacional pode ser de�nido como um programa que atua como intermediário entre o usuário de um dispositivo e o hardware. Os objetivos do sistema operacional são: Executar os programas do usuário e facilitar a solução de problemas do próprio usuário; tornar o sistema do computador (ou outros dispositivos) conveniente de usar e utilizar o hardware do dispositivo de maneira e�ciente. Segundo Tanenbaum (2010), o sistema operacional (SO) é uma coleção de software que gerencia os recursos do hardware do computador e/ou dispositivos móveis e fornece alguns serviços comuns para os programas (ou aplicativos). O sistema operacional é um componente essencial do software do sistema, já os programas e os aplicativos geralmente requerem um sistema operacional para funcionar. Além disso, pode ser de�nido como um programa que atua como intermediário entre o usuário de um dispositivo e o hardware. Nesse contexto, os objetivos do SO são: Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 4/33 1. Executar os programas do usuário e facilitar a solução de problemas do próprio usuário; 2. Tornar o sistema do computador (ou outros dispositivos) conveniente de usar; 3. Utilizar o hardware do dispositivo de maneira e�ciente. A seguir serão abordados alguns conceitos fundamentais que estão relacionados com os Sistemas Operacionais. Apresentaremos sobre o Modo Kernel, Modo de usuário, os serviços fornecidos pelo sistema operacional, além da classi�cação e tipos de sistema operacional. Modo Kernel No modo Kernel, o código em execução tem acesso completo e irrestrito ao hardware subjacente. Pode executar qualquer instrução da CPU e fazer a referência a qualquer endereço de memória. Além disso, o modo do kernel geralmente é reservado para o nível mais baixo, e para as funções mais con�áveis do sistema operacional. Modo de Usuário No modo Usuário, o código em execução não tem a capacidade para acessar diretamente o hardware ou a memória de referência. Além disso, o modo de usuário deve delegar para as APIs (Application Programming Interface - Interface de Programação dos Aplicativos) do sistema o acesso ao Hardware ou à memória. Serviços Fornecidos pelo Sistema Operacional De acordo com Silberschatz e Gagne (2010), um sistema operacional fornece serviços para os usuários e para os programas. Ele fornece um ambiente para executar os programas de maneira conveniente. A seguir, serão apresentados alguns dos muitos serviços que são fornecidos pelos sistemas operacionais. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 5/33 Interfaces do usuário - meio pelo qual os usuários podem emitir comandos para o sistema. Dependendo do sistema operacional podem ser uma interface de linha de comando (por exemplo, sh, csh, ksh, tcsh etc.), uma interface GUI (por exemplo, Windows, XWindows, KDE, Gnome etc.) ou um sistema de comando em lote. Estes últimos são geralmente sistemas mais antigos usando cartões perfurados da linguagem de controle de tarefas, JCL, mas ainda podem ser usados hoje em dia, para sistemas especializados projetados para um único propósito. Execução do programa - O sistema operacional deve poder carregar um programa na RAM, executar o programa e �nalizar o programa, normalmente ou de forma anormal. Operações de E / S - O sistema operacional é responsável por transferir dados para os dispositivos de E / S, incluindo teclados, terminais, impressoras e dispositivos de armazenamento. Manipulação do sistema de arquivos - Além do armazenamento de dados brutos, o sistema operacional também é responsável por manter as estruturas de diretórios e subdiretórios, mapeando nomes de arquivos para blocos especí�cos de armazenamento de dados, e fornecendo as ferramentas para navegar e utilizar o sistema de arquivos. Comunicações - Comunicações entre processos, IPC, entre processos em execução no mesmo processador ou entre processos em execução em processadores separados ou em máquinas separadas. Pode ser implementado como memória compartilhada ou passagem de mensagens (ou alguns sistemas podem oferecer os dois). Detecção de erros - os erros de hardware e software devem ser detectados e tratados adequadamente, com um mínimo de repercussões prejudiciais. Alguns sistemas podem incluir prevenção ou recuperação complexa de erros, incluindo backups, unidades RAID e outros sistemas redundantes. Classi�icação e tipos de Sistema Operacional 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 6/33 A partir de Silberschatz e Gagne (2010), um sistema operacional executa todas as tarefas básicas do computador ou dispositivo, como por exemplo: gerenciar arquivos, processos e memória. Assim, o sistema operacional atua como um verdadeiro gerente de todos os recursos, ou seja, gerente de recursos. Assim, o sistema operacional se torna uma interface entre usuário e máquina. A seguir serão apresentados alguns tipos de sistemas operacionais amplamente utilizados: Sistema operacional em tempo real (Real-time Operating System): É um sistema multitarefa, pois visa executar aplicativos em tempo real. Além disso, costumam usar algoritmos de agendamento especializados, para que possam alcançar uma natureza determinística de comportamento. O principal objetivo desses sistemas é a resposta rápida e previsível aos eventos, pois possuem um design orientado a eventos ou de compartilhamento de tempo e, muitas vezes, aspectos de ambos elementos. Um sistema orientado a eventos alterna entre as tarefas com base em suas prioridades ou eventos externos, enquanto os sistemas operacionais de compartilhamento de tempo alternam tarefas com base no relógio de forma ininterrupta. Sistema operacional multiusuário (Multi-user Operating System): permite que vários usuários acessem um sistema de computador ao mesmo tempo. O compartilhamento de tempo dos sistemas e servidores da Internet podem ser classi�cados como sistemas multiusuário, pois permitem o acesso de vários usuários a um computador através da partilha de tempo. Os sistemas operacionais de usuário único têm apenas um usuário, mas podem permitir que vários programas possam ser executados ao mesmo tempo. Sistema operacional multitarefa (Multi-tasking Operating System): permite que mais de um programa seja executadoao mesmo tempo, a partir do ponto de visão das escalas de tempo humana. Um sistema de tarefa única possui apenas um programa em execução. A multitarefa pode ser de dois tipos: preventivo e cooperativo. Na multitarefa preventiva, o sistema operacional reduz o tempo da CPU e dedica um slot a cada um dos programas. Sistemas operacionais semelhantes ao Unix, como Solaris e Linux, oferecem suporte a multitarefas preventivas, assim como o AmigaOS. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 7/33 A multitarefa cooperativa é alcançada con�ando em cada processo para fornecer o tempo para os outros processos de maneira de�nida. As versões de 16 bits do Microsoft Windows usavam multitarefa cooperativa, já as versões de 32 bits do Windows NT e Win9x usavam multitarefas preventivas, e o Mac OS anterior ao OS X usava a multitarefa cooperativa. Sistema Operacional Distribuído (Distributed Operating System): gerencia um grupo de computadores independentes e os faz parecer um único computador. O desenvolvimento de computadores em rede que poderiam ser conectados e se comunicar entre si deu ascensão à computação distribuída. Além disso, os cálculos distribuídos são realizados em mais de uma máquina. Quando os computadores estão em um grupo de trabalho em cooperação, eles fazem um sistema distribuído. Sistema operacional incorporado (Embedded Operating System): São projetados para serem usados em sistemas de computadores embarcados, além disso, operaram em máquinas pequenas como PDAs com menos autonomia, ainda são capazes de operar com um número limitado de recursos, sendo muito compactos e extremamente e�cientes por design. Sistema operacional de compartilhamento de tempo (Time Sharing Operating System): agendam tarefas para o uso e�ciente do sistema e também podem incluir um software para alocação de custos de tempo do processador, armazenamento em massa, impressão e outros recursos. Exemplos de sistemas operacionais modernos populares incluem Android, BSD, iOS, Linux, OS X, QNX, Microsoft Windows, Windows Phone e IBM z / OS. Todos esses, exceto Windows, Windows Phone e z / OS compartilham raízes no UNIX. praticar Vamos Praticar 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 8/33 Nos sistemas de tempo real críticos (hard real-time), o não cumprimento do requisito temporal pode ser catastró�co, tanto no sentido econômico quanto em vidas humanas. OLIVEIRA, R.; CARISSIMI, A.; TOSCANI, S. Organização de sistemas operacionais convencionais e de tempo real. In: JAI - JORNADA DE ATUALIZAÇÃO EM INFORMÁTICA, XXI; CONGRESSO DA SBC, XXII, 2002, [S.l.]. Anais [...]. [S.l.]: SBC, 2002. A partir da de�nição de Oliveira, Carissimi e Toscani (2002) assinale a alternativa que corresponda ao Sistema operacional em tempo real (Real-time Operating System). a) Um sistema operacional em tempo real é multitarefa, que visa executar aplicativos em tempo real. b) Um sistema operacional em tempo real é multitarefa, que visa executar aplicativos em tempo distinto. c) Um sistema operacional em tempo real permite que vários usuários acessem um sistema de computador ao mesmo tempo. d) Um sistema operacional em tempo real permite que mais de um programa seja executado ao mesmo tempo, a partir do ponto de visão das escalas de tempo humana. e) Um sistema operacional em tempo real gerencia um grupo de computadores independentes e os faz parecer um único computador. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1&… 9/33 Segundo Palmer (2004), pensando em proteção dos computadores, os mecanismos de proteção e segurança fornecidos por um sistema operacional devem atender aos seguintes requisitos: Con�dencialidade: (ou privacidade), o requisito de que as informações mantidas por um sistema de computador sejam acessíveis somente por partes autorizadas (os usuários e os processos que são executados como / representam esses usuários). A interceptação ocorre quando uma parte não autorizada obtém acesso a um recurso; exemplos incluem a cópia ilícita de arquivos e a invocação de programas. Integridade: o requisito de que os recursos de um sistema de computador possam ser modi�cados apenas por terceiros autorizados. A modi�cação ocorre quando uma parte não autorizada, não apenas obtém acesso às informações e altera um recurso, como dados ou a execução de um processo em execução. Disponibilidade: o requisito de que um sistema de computador esteja acessível em horários solicitados pelas partes autorizadas. A interrupção ocorre quando uma parte não autorizada reduz a disponibilidade ou os recursos que são oferecidos. Mecanismos de ProteçãoMecanismos de Proteção 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 10/33 Autenticidade: o requisito de que um sistema de computador possa veri�car a identidade de um usuário. A fabricação ocorre quando uma parte não autorizada insere dados falsi�cados entre dados válidos. O hardware é principalmente vulnerável à interrupção, por roubo ou vandalismo, e as medidas de segurança física são usadas para evitar esses ataques. O software também é vulnerável a interrupções, pois é muito fácil de excluir, contudo, os backups são usados para limitar os danos causados pela exclusão. Sendo assim, a modi�cação ou fabricação por alteração (por exemplo, por vírus) é um grande problema, pois pode ser difícil de detectar rapidamente. O software também é vulnerável à interceptação através de cópia não autorizada, problema que ainda não foi resolvido. Dessa forma, os dados são vulneráveis de várias maneiras, pois a interrupção pode ocorrer através de uma simples destruição de arquivos de dados. Já a interceptação pode ocorrer através da leitura de arquivos de dados, ou mais perniciosamente por meio de análise não autorizada e agregação de dados. Além disso, a modi�cação e fabricação também são óbvias pelos problemas com consequências potencialmente enormes. As comunicações são vulneráveis a todos os tipos de ameaças, que podem ser: Ataques passivos: que assumem a forma de espionagem e se dividem em duas categorias: lendo o conteúdo de uma mensagem, ou mais sutilmente, analisando padrões de tráfego para inferir a natureza de mensagens seguras. Os ataques passivos são difíceis de detectar, portanto a ênfase geralmente está na prevenção. Ataques ativos: que envolvem a modi�cação de um �uxo de dados ou a criação de um falso �uxo de dados. Uma entidade pode se disfarçar de outra (presumivelmente uma com mais ou diferentes privilégios), talvez capturando e reproduzindo uma sequência de autenticação. Os ataques ativos são difíceis de evitar (inteiramente), portanto a ênfase geralmente está na detecção e controle de danos. Ataques de negação de serviço: visam inibir o uso normal das instalações de comunicação. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 11/33 O conteúdo da mensagem também pode ser modi�cado, geralmente para induzir um comportamento incorreto em outros usuários. Nesse contexto, em um sistema de multiprogramação, há um ou mais programas carregados na memória principal, prontos para execução. Apenas um programa por vez é capaz de obter a CPU para executar suas instruções (ou seja, há no máximo um processo em execução no sistema) enquanto todos os outros estão aguardando sua vez. A multiprogramação envolve o compartilhamento de muitos recursos, incluindo o processador, memória, dispositivos de E / S, programas e dados. Sendo assim, a proteção de tais recursos é executada ao longo do seguinte espectro: 1. Nenhuma proteção pode ser adequada, por exemplo se procedimentos sensíveis são executados em horários separados.2. O isolamento implica que as entidades operam separadamente uma da outra no sentido físico. 3. Compartilhar tudo ou nada implica que um objeto seja totalmente privado ou totalmente público. 4. Compartilhar via limitação de acesso implica que diferentes entidades desfrutem de diferentes níveis de acesso a um objeto, a cargo do proprietário. Nesse caso, o sistema operacional atua como um guarda entre entidades e os objetos para impor o acesso correto. 5. O compartilhamento via recursos dinâmicos estende o primeiro para permitir que os direitos sejam alterados de forma dinâmica. 6. Limitar o uso de um objeto implica que não apenas o acesso ao objeto é controlado, como o uso ao qual ele pode ser usado também varia entre as entidades. O espectro destacado é listado aproximadamente em ordem crescente de �nura de controle para os proprietários e também aumentando a di�culdade de sua implementação. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 12/33 Intrusos Os intrusos e os vírus são as duas ameaças de segurança mais divulgadas. Sendo assim, podemos classi�car três classes de intrusos: 1. Um mascarador (masquerador) é um indivíduo não autorizado (um estranho) que penetra o sistema para explorar contas de usuários legítimos. 2. Um infrator (misfeasor) é um usuário legítimo (um insider) que acessa os recursos aos quais ele não é privilegiado ou que abusa de tais privilégios. 3. Um usuário clandestino (clandestine user) é um indivíduo (interno ou externo) que apreende a forma como controlar um sistema para evitar controles de auditoria ou para suprimir a coleta de auditoria. Os invasores geralmente tentam obter acesso a um sistema ou aumentar os privilégios, aos quais não têm direito, geralmente obtendo a senha para uma conta. São diversos métodos que os invasores podem utilizar, dentre eles, temos: A. Tentar senhas padrão; saiba mais Saiba mais Proteção refere-se a um mecanismo que controla o acesso de programas, processos o usuários aos recursos de�nidos por um sistema de computador. Podemos ter a proteç auxiliando no sistema operacional de multiprogramação, para que muitos usuários possam compartilhar com segurança um espaço de nome lógico comum, como diretó ou arquivos. Saiba mais sobre essa temática no material que tem por título Linux versus Microsoft: as novas tendências no mercado de sistemas operacionais. Fonte: Elaborado pelo autor. ACESSAR http://www.scielo.br/scielo.php?pid=S0103-37862005000100006&script=sci_abstract&tlng=pt 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 13/33 B. Teste exaustivo de senhas curtas; C. Tentar palavras de um dicionário ou de uma lista de senhas comuns; D. Coletar informações pessoais sobre usuários; E. Utilizar um cavalo de Troia; F. Espionar as linhas de comunicação. Os métodos comuns para proteger senhas são por meio de criptogra�a unidirecional, ou limitando o acesso aos arquivos de senha. No entanto, as senhas são inerentemente vulneráveis. Software malicioso As ameaças mais so�sticadas aos sistemas de computador são causadas por malware, que tenta causar danos ou consumir os recursos de um sistema de destino. Além disso, o malware pode ser dividido em programas que podem operar de forma independente e aqueles que precisam de um programa host; e também em programas que podem replicar eles mesmos e aqueles que não podem. Nesse contexto, um alçapão é um ponto de entrada secreto em um programa, geralmente deixado pelos desenvolvedores ou, às vezes, entregues por meio de uma atualização de software. Já uma “bomba lógica” é um código embutido em um programa que "explode" quando certas condições são cumpridas, em uma determinada data ou a presença de certos arquivos, além disso, elas também se originam com os desenvolvedores de software. O cavalo de Troia é um programa útil (ou aparentemente útil) que contém um código oculto para executar alguma função indesejada ou prejudicial que pode causar danos locais ou se espalhar para outros programas ou rede. Já o worm é um programa independente que se espalha por meio de conexões de rede, normalmente usando email, execução remota ou login remoto para fornecer 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 14/33 ou executar uma cópia de si mesmo para outro sistema, além de causar alguma dani�cação. E, um zumbi é um programa independente que, secretamente assume um sistema e o usa para lançar ataques a outros sistemas, que geralmente envolvem replicação adicional do próprio zumbi, que são frequentemente usados em ataques de negação de serviço. Os três últimos vírus envolvem replicação. Em todos os casos, a prevenção é muito mais fácil que a detecção e recuperação. praticar Vamos Praticar Nos sistemas operacionais de mercado, existem algumas ferramentas para monitorar e controlar os recursos do sistema, mas funcionam de uma forma primitiva. Esses sistemas operacionais geralmente fornecem somente um mecanismo de prioridades para ordenar o acesso aos recursos. E ainda assim, por muitas vezes, os ajustes de utilização dos recursos podem ser aplicados somente estaticamente, ou seja, somente na próxima execução do processo, ou no próximo login do usuário é que esses ajustes terão efeito. MERCER, C. W.; RAJKUMAR, R. An interactive interface and RT-Mach support for monitoring and controlling resource management. In: RTAS’01 - IEEE REAL-TIME TECHNOLOGY AND APPLICATIONS SYMPOSIUM, 1995, [S.l.]. Proceedings [...]. [S.l.]: IEEE, 1995, p. 134–139. Os dados são vulneráveis de várias maneiras, pois a interrupção desses pode ocorrer através de uma simples destruição de arquivos de dados. Já a interceptação pode ocorrer através da leitura de arquivos de dados, ou mais perniciosamente, por meio de análise não autorizada e agregação de dados. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 15/33 A partir da de�nição de Mercer e Rajkumar (1995), é possível a�rmar que as comunicações são vulneráveis a todos os tipos de ameaças. Nesse contexto, assinale a alternativa que contém a nomenclatura correta dos ataques que assumem a forma de espionagem e se dividem em duas categorias: lendo o conteúdo de uma mensagem, ou mais sutilmente, analisando padrões de tráfego para inferir a natureza de mensagens seguras. a) Ataques passivos. b) Ataques ativos. c) Ataques alternados. d) Ataques híbridos. e) Ataques sequenciais. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 16/33 É amplamente reconhecido que um software livre de falhas é muito difícil de alcançar, pois enquanto são realizados testes extensivos, podemos isolar uma grande fração dos defeitos, porém diante desse contexto, é impossível eliminar de forma completa. Contudo, uma densidade de defeitos variando de 3 a 6 falhas por mil linhas de código de software era comum no passado (KRUSL; SPAFFORD; TRIPUNITARA, 1998). Assim, inúmeras tentativas foram feitas pelos pesquisadores para estimar, de maneira quantitativa, o número de defeitos em uma versão especí�ca do software. Essas medidas ajudam a determinar os recursos que precisam ser alocados para testar um software especí�co, desde as vulnerabilidades do sistema operacional - as falhas associadas à manutenção que representam os requisitos de segurança são consideradas um caso especial de defeitos de software, uma medida semelhante para estimar vulnerabilidades de segurança é garantida. Sendo assim, neste tópico vamos examinar o número de vulnerabilidades em várias operações recentes de alguns sistemas. Essa caracterização quantitativa de vulnerabilidades pode ser usada para avaliar as métricas que podem orientara VulnerabilidadesVulnerabilidades 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 17/33 alocação de recursos para os testes de segurança, agendamento, e desenvolvimento de patches de segurança. Além disso, ele pode ser usado pelos usuários �nais para avaliar riscos e estimar a redundância necessária em recursos e procedimentos para lidar com possíveis violações de segurança (SCHULTZ JR.; BROWN; LONGSTAFF, 1990). Os sistemas operacionais enfrentam crescentes desa�os de segurança, porque a conectividade é crescente, e o número total de incidentes está aumentando. CERT/CC (2004) e outros bancos de dados acompanham as vulnerabilidades e incidentes relatados. Esses números mostram um rápido crescimento no número de incidentes relatados e no número de vulnerabilidades descobertas nos últimos anos. A tendência geral para o período de oito anos é talvez linear, sugerindo uma possível correlação entre as taxas de incidentes e a taxa de localização de vulnerabilidades. A inclinação positiva sugere que o número de incidentes está subindo mais rápido que a complexidade dos sistemas. Sistema operacional Microsoft Windows saiba mais Saiba mais Assista à palestra “Análise Forense no Sistema Operacional Windows 8” em que o prof. Ricardo Kléber faz uma análise do que muda (e do que permanece) na análise forense e sistemas Windows 8. ASS I ST IR 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 18/33 A família de sistemas operacionais Windows da Microsoft dominou o mercado de sistema operacional O.S. nas últimas décadas. Um registro de cada vulnerabilidade encontrada está disponível, portanto, eles são bons exemplos de sistemas complexos para estudar. O Windows NT 4.0 e seu sucessor, o Windows 2000, são destinados a servidores. Consequentemente, atacar sistemas usando esses sistemas operacionais seria mais grati�cante para os invasores do que as versões do Windows 95 ou 98, usados principalmente para PCs individuais. Os sistemas operacionais dos servidores precisam ser mais seguros. Isso pode explicar parcialmente, por que a família NT e 2000 viu muito mais vulnerabilidades descobertas e relatadas. Além disso, em sistemas operacionais destinados a servidores, pode haver mais código que lida com mecanismos de acesso que podem ter um número maior de vulnerabilidades. Percebemos que várias vulnerabilidades abrangem diferentes versões dos Sistemas Windows. Uma observação interessante é que algumas vulnerabilidades foram relatadas, antes mesmo da data de lançamento da versão especí�ca. Isso nos leva a concluir que vários módulos de uma versão especí�ca são responsáveis pelas vulnerabilidades, pois são módulos reutilizados em versões posteriores, antes que as vulnerabilidades sejam corrigidas (WANG; WULF, 1997). Windows 95 e Windows 98 Tanto o Windows 95, quanto o Windows 98, mostraram uma taxa de crescimento mais rápida, o que sugere que o Windows 98 havia herdado muitos módulos do Windows 95, o que é suportado pela plotagem de vulnerabilidades compartilhadas. A base instalada do Windows 98 atingiu o pico durante 1999-2000 (ALHAZMI; MALAIYA; RAY, 2004). Com base nessa observação sobre as vulnerabilidades, é possível compreender que muitas das vulnerabilidades do Windows 95 foram descobertas posteriormente (somente na versão do Windows 98). O número de vulnerabilidades do Windows 95 e Windows 98 parecem atingir um platô, no entanto, algumas vulnerabilidades listadas no Windows 98 foram descobertas tarde demais, o que é explicado pelo código compartilhado entre Windows 98 e o XP, conforme discutido na próxima subseção. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 19/33 Windows 98 e Windows XP O Windows XP mostrou um rápido crescimento de vulnerabilidades em relação ao seu lançamento, havia muitas vulnerabilidades compartilhadas com o Windows 98. No entanto, o XP possui algumas vulnerabilidades únicas e são a maioria. A nitidez da curva para o XP é explicada por sua rápida taxa de adoção, tornando mais difícil encontrar vulnerabilidades no XP. O Windows 98 mostrou uma fase de aprendizado mais longa, seguida por uma linear de acumulação, posteriormente seguida de saturação (ALHAZMI; MALAIYA; RAY, 2004). Windows 98 e as Vulnerabilidades Compartilhadas com o Windows 95 e Windows XP Segundo Alhazmi, Malaiya e Ray (2004), o relacionamento entre as vulnerabilidades relatadas no Windows 95, Windows 98 e Windows XP são importantes. O Windows 98 herdou a maioria das vulnerabilidades antigas no Windows 95, as vulnerabilidades relatadas para essa versão (Windows 98) diminuiu a velocidade em algum momento, apenas para recuperar novamente quando o Windows XP estava liberado (e lançado). Parece que o Windows XP contribuiu para a descoberta da maioria das vulnerabilidades posteriores ao Windows 98. Contudo, os dados para os três sistemas operacionais demonstram que há signi�cante interdependência entre as taxas de descoberta de vulnerabilidades para essas três versões. Sendo assim, essa interdependência se dá, devido ao compartilhamento de código e à troca de compartilhamentos da base instalada. É necessário levar em consideração essa característica ao examinar as tendências de descoberta de vulnerabilidades. O Windows 98 representa um estágio intermediário entre as outras duas versões dentro da perspectiva de descoberta de vulnerabilidades (ALHAZMI; MALAIYA; RAY, 2004). Windows NT 4.0 e Windows 2000 Observamos a descoberta de vulnerabilidades na família Windows NT, que inclui o Windows 2000. A plotagem para o NT 4.0 mostra uma desaceleração por volta de julho de 2000, na época em que a versão do Windows 2000 foi liberada (ICAT METABASE, 2003). 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 20/33 O compartilhamento da base instalada para o NT4.0 apresentou uma signi�cativa diminuição desde o início de 2002. No entanto, as vulnerabilidades compartilhadas com a próxima versão apresentaram uma acumulação constante. Para o Windows 2000, lançado em meados de 2000, a fase de aprendizado foi muito breve, devido à semelhança entre com o Windows NT 4.0. A curva para o Windows 2000 mostra em grande parte uma tendência linear. O Windows 2000 não mostrou uma clara desaceleração na acumulação das vulnerabilidades, que ocorre porque ainda estava no início da vida, além disso, sua participação de mercado foi muito signi�cativa (ICAT METABASE, 2003). Solaris A seguir, veremos um sistema operacional muito diferente - a família SunOS Solaris, que possui várias versões. Vamos apresentar as versões do Solaris 2.5 e 8.0. Comparando o acúmulo de vulnerabilidades, observamos que essas versões parecem estar muito correlacionadas. O Solaris 8.0 é o sucessor, portanto, continha a maioria das vulnerabilidades da versão 2.5. Então, a versão 8.0 começou a mostrar algumas vulnerabilidades únicas com algumas compartilhadas. Para a versão 2.5, todas as vulnerabilidades relatadas posteriormente também foram relatadas na 8.0. Assim, concluímos que essas vulnerabilidades foram herdadas pela versão 8.0 e foram descobertas na 8.0 ou 2.5. Para os sistemas operacionais Solaris, não vemos as mudanças tão abruptas, quanto nas janelas dos sistemas operacionais. praticar Vamos Praticar 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 21/33 Um Sistema Operacional é composto basicamente por um kernel (do inglês, núcleo) de sistema, que unido a uma biblioteca básica e a um conjunto de aplicativos dá completa funcionalidade ao SO, permitindo a interação entre usuário e hardware. Sendo assim, existem diferentes arquiteturas de kernel, sendo as principais Monolíticae Microkernel. PINTO, R. S. Uma plataforma para ensino e treinamento em desenvolvimento de sistemas operacionais. Dissertação (Mestrado - Programa de Pós-Graduação em Ciências de Computação e Matemática Computacional) - Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 2012. Disponível em: https://teses.usp.br/teses/disponiveis/55/55134/tde-06122012- 105021/publico/Dissertacao.pdf. Acesso em: jan. 2020. A partir da de�nição de Pinto (2012), assinale a alternativa que apresenta o sistema operacional que apresentou diversas vulnerabilidades que foram compartilhadas com o Windows XP. a) Windows 95. b) Solaris 8.0 c) Windows 98. d) Windows NT 4.0 e) Windows 2000 https://teses.usp.br/teses/disponiveis/55/55134/tde-06122012-105021/publico/Dissertacao.pdf 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 22/33 Os controles de acesso fornecidos com um sistema operacional geralmente autenticam as entidades usando algum mecanismo, como senhas ou Kerberos. Seu efeito geralmente pode ser modelado por uma matriz de permissões de acesso, com colunas para arquivos e linhas para usuários. Para isso, escreveremos r para permissão de leitura, w para permissão de escrita e x para obter permissão para executar um programa e (-) para nenhum acesso, como mostrado no quadro 1.1. Mecanismos de Controle de AcessoMecanismos de Controle de Acesso 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 23/33 Quadro 1.1 - Matriz de controle de acesso ingênuo Fonte: Maybury e Needham (2011, p. 96). Nesse exemplo simpli�cado do quadro 1.1, Sam é o administrador do sistema e possui acesso universal (exceto para a trilha de auditoria, que mesmo ele deve ser capaz de ler). Alice, gerente, precisa executar o sistema operacional e o aplicativo, mas apenas pelas interfaces aprovadas - ela não deve ter a capacidade de adulterá- las, por isso, também precisa ler e escrever os dados. Bob, o auditor, pode ler tudo. O contexto relacionado geralmente é su�ciente, mas no caso especí�co de um sistema de contabilidade, não é bem isso o que precisamos. Queremos garantir que as transações sejam bem formadas - que cada débito seja correspondido por um crédito em outro lugar. Também os responsáveis pelo projeto poderiam preferir que Sam não tenha esse acesso; para que todo o acesso de gravação ao arquivo de dados contábeis fosse por meio do programa contábil. As permissões de acesso podem, agora, parecer com as apresentadas no quadro 1.2 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 24/33 Quadro 1.2 - Exemplo de matriz de controle de acesso para contabilidade Fonte: Maybury e Needham (2011, p. 97). Em geral, nossa preocupação não é com um programa, mas com um domínio de proteção, que é um conjunto de processos ou threads que compartilham acesso aos mesmos recursos (embora a qualquer momento eles possam ter arquivos diferentes abertos ou diferentes prioridades de agendamento). Nesse contexto, as matrizes de controle de acesso (em duas ou três dimensões) podem ser usadas para implementar mecanismos de proteção, bem como apenas modelá-los. Por exemplo, um banco com 50.000 funcionários e 300 aplicativos teria uma matriz de controle de acesso de 15 milhões de entradas, o que é inconvenientemente grande, e pode não apenas impor um problema de desempenho, mas também �car vulnerável a erros dos administradores. user Sistema operacional (Operating System) Programa de Contas (Accounts Program) Dados contábeis (Accounting Data) Trilha de auditoria (Audit Trail) Sam rwx rwx r r Alice rx x - - Accounts Program rx r rw w Bob rx r r r 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 25/33 Segurança do sistema operacional Unix No Unix (e sua popular variante Linux), os arquivos não têm acesso arbitrário (listas de controle), mas simplesmente atributos rwx, para o proprietário do recurso, o grupo e o mundo, sendo assim, esses atributos permitem que o arquivo seja lido, gravado e executado. A lista de controle de acesso como normalmente é exibido, possui um sinalizador para mostrar se o arquivo é um diretório; depois sinaliza r, w e x para o proprietário, grupo e mundo, respectivamente; então ele tem o nome do proprietário e o nome do grupo. No Unix, o programa que controla quando a máquina é inicializada (o sistema operacional kernel do sistema), é executado como supervisor e possui acesso irrestrito a toda a máquina. Todos os outros programas são executados como usuários e têm seu acesso mediado pelo supervisor. As decisões de acesso são tomadas com base no ID do usuário associado ao programa. No entanto, se esse valor for zero (raiz), a decisão de controle de acesso será "sim". Portanto, o root pode acessar qualquer arquivo, torna-se qualquer usuário ou qualquer outra coisa. Além do mais, existem certas coisas que somente o root pode saiba mais Saiba mais Acesse a documentação o�cial da Microsoft e veri�que sobre o controle de acesso no Windows, que é o processo de autorizar usuários, grupos e computadores a acessarem objetos na rede ou no computador. Além disso, no conteúdo indicado, será possível aprender sobre os principais conceitos que compõem o controle de acesso: as permissões, propriedade de objetos, herança de permissões, direitos de usuário e auditoria de objetos. Fonte: Elaborado pelo autor. ACESSAR https://docs.microsoft.com/pt-br/windows/security/identity-protection/access-control/access-control 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 26/33 fazer, como iniciar certos processos de comunicação. O ID do usuário raiz geralmente é disponibilizado ao administrador do sistema. Isso signi�ca que (com a maioria dos tipos de Unix) o administrador do sistema pode fazer qualquer coisa, por isso temos di�culdade em implementar uma trilha de auditoria como um arquivo que ele não pode modi�car. Uma maneira comum de proteger logs contra comprometimento de raiz é mantê-los em um local separado. As ACLs contêm apenas os nomes dos usuários, não dos programas; portanto, não há maneira simples de implementar triplos de acesso (usuário, programa, arquivo). Em vez disso, o Unix fornece um método indireto: os atributos do arquivo suid e sgid. O proprietário de um programa pode marcá-lo como suid. Isso permite que ele seja executado com o privilégio do seu proprietário, e não do privilégio do usuário que o invocou. As ACLs não são muito boas para expressar mudanças de estado. Gerenciar regras de acesso como estado, como controle duplo, torna-se difícil; alguém precisa fazer isso no nível do aplicativo ou usar suid / sgid. Além disso, é difícil rastrear os arquivos que um usuário pode abrir (acessar). A Unix ACL nomeia apenas um usuário. Versões mais antigas permitem que um processo retenha apenas um ID de grupo por vez e forçá-lo a usar um programa privilegiado para acessar outros grupos; sistemas Unix mais recentes colocam um processo em todos os grupos em que o usuário está. Isso ainda é muito menos expressivo do que se poderia gostar. Em teoria, os mecanismos ACL podem frequentemente serem usados para alcançar o efeito desejado. Segurança do Sistema Operacional Windows NT Outro sistema operacional importante, cuja proteção é amplamente baseada em listas de controle de acesso, é o Windows NT. A versão atual do NT (versão 5 ou Win2K) é bastante complexa, por isso é útil rastrear seus antecedentes. A proteção do NT4 é muito parecida com o Unix e parece inspirada, por isso é mais simples descrever as principais inovações. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1…27/33 Primeiramente, em vez de apenas ler, gravar e executar, existem atributos separados para as propriedades, como a alteração de permissões (e sua devida exclusão), o que signi�ca que uma delegação mais �exível pode ser suportada. Esses atributos se aplicam a grupos e usuários, e as permissões de grupo permitem obter o mesmo efeito que os programas sgid no Unix. Os usuários e recursos podem ser particionados em domínios com administradores distintos, e a con�ança pode ser herdada entre domínios em uma direção ou em ambas. Em uma grande empresa típica, você pode colocar todos os usuários em um domínio administrado pelo departamento pessoal, enquanto recursos como servidores e impressoras podem estar disponíveis em domínios sob controle departamental; estações de trabalho individuais podem até ser administradas por seus usuários. As coisas seriam organizadas para que os domínios de recursos departamentais con�assem no domínio do usuário, mas não vice-versa. O indivíduo que manipula as estações de trabalho, por sua vez, con�aria no departamento (mas não vice-versa) para que os usuários pudessem executar tarefas que exigem privilégios locais (a instalação de muitos pacotes de software requer esse acesso). Os administradores são ‘todo-poderosos’ (portanto, você não pode criar uma auditoria verdadeiramente resistente a violações das trilhas sem usar dispositivos de armazenamento de gravação única), mas o dano que eles podem causar pode ser limitado por organização adequada. A estrutura de dados usada para gerenciar tudo isso e ocultar os detalhes da ACL da interface do usuário é chamada de Registro. Problemas ao projetar uma arquitetura NT em organizações muito grandes incluem os problemas de nomeação, a forma como os domínios são escalonados e a restrição de que um usuário em outro domínio não pode ser um administrador (que pode causar interações complexas entre local e global). praticar 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 28/33 Vamos Praticar O SO deve controlar todos os dispositivos presentes na máquina: discos, placa de som, teclado, mouse, monitor, deve também gerenciar toda a memória, não permitindo que um programa utilize a área de memória destinada a outro e alocar os recursos necessários para a execução. O SO também deve prover serviços que possibilitam e facilitam (através de abstrações) o acesso ao hardware pelos aplicativos. Assim, se determinada aplicação deseja ler um arquivo, basta fazer uma chamada ao SO pedindo pela leitura do arquivo, não importando se o mesmo se encontra em um disco IDE ou SCSI, em um sistema de arquivo EXT2 ou FAT, é dever do SO gerenciar o acesso em baixo nível. PINTO, R. S. Uma plataforma para ensino e treinamento em desenvolvimento de sistemas operacionais. Dissertação (Mestrado - Programa de Pós-Graduação em Ciências de Computação e Matemática Computacional) - Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, São Carlos, 2012. Disponível em: https://teses.usp.br/teses/disponiveis/55/55134/tde-06122012- 105021/publico/Dissertacao.pdf. Acesso em: 21 jan. 2020. Em geral, nossa preocupação não é com um programa, mas com um domínio de proteção, que é um conjunto de processos ou threads que compartilham acesso aos mesmos recursos. Nesse contexto, assinale a alternativa que contém o formato do controle de acesso dos sistemas operacionais. a) Função de controle de acesso. b) Recurso de controle de acesso. c) Opção de controle de acesso. d) Validador de controle de acesso. e) Matrizes de controle de acesso (em duas ou três dimensões) https://teses.usp.br/teses/disponiveis/55/55134/tde-06122012-105021/publico/Dissertacao.pdf 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 29/33 indicações Material Complementar FILME Ela (Her) Ano: 2014 Comentário: O �lme apresenta diversas situações onde podemos relacionar com o contexto atual tecnológico e diversas visões futuristas. A maneira como o telefone inteligente e o fone de ouvido de Theodore (personagem principal da narrativa) funcionam é diferente do nosso, e logo �ca claro que a obra é uma espécie de �lme de �cção cientí�ca, ambientado em um futuro não muito distante, mas distintamente fantástico. A premissa futurista prepara o terreno para uma história de amor incomum: aquela em que Theo, ainda muito dani�cado e sensível pelo rompimento de seu casamento, se apaixona 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 30/33 pelo sistema operacional arti�cialmente inteligente de seu computador. É importante que você relacione o contexto abordado no �lme com o conteúdo que foi abordado ao longo da unidade. Para conhecer mais sobre o �lme, acesse o trailer disponível. T R A I L E R LIVRO Windows 10. Por Dentro do Sistema Operacional Adriana de Fátima Araújo Editora: Viena; Edição: 1ª (1 de janeiro de 2016) ISBN: 8537104787 Comentário: O livro aborda sobre o uso dos equipamentos (hardware) e a utilização de um sistema operacional, que é um programa que gerencia os recursos da máquina e fornece uma interface para o usuário. Diante desse cenário é apresentado o Windows 10 que foi apresentado com um sistema para todos os dispositivos: computadores, notebooks, tablets e smartphones, tendo como diferenciação apenas o tamanho de tela e o suporte à tela sensível ao toque. A leitura dessa obra irá apresentar as novidades da versão 10, a atualização e segurança do sistema, o gerenciamento de contas de usuário, a detecção e os reparos de erros de disco, dentre outros temas relevantes. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 31/33 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 32/33 conclusão Conclusão Ao longo desta unidade aprendemos sobre os mecanismos de proteção e segurança de computadores fornecidos por um sistema operacional que devem atender aos seguintes requisitos: Con�dencialidade, Integridade, Disponibilidade e Autenticidade. Sendo assim, �nalizamos o conteúdo, discutindo sobre as vulnerabilidades dos sistemas operacionais, e é amplamente reconhecido que o software livre de falhas é muito difícil de alcançar. Enquanto são realizados testes extensivos podemos isolar uma grande fração dos defeitos, porém diante desse contexto é impossível eliminar de forma completa. Uma densidade de defeitos variando de 3 a 6 falhas por mil linhas de código de software era comum no passado. Assim, inúmeras tentativas foram feitas pelos pesquisadores para estimar, de maneira quantitativa, o número de defeitos em uma versão especí�ca do software. referências Referências Bibliográ�cas ALHAZMI, O. H.; MALAIYA, Y. K.; RAY, I. Tech Report. Colorado: Computer Science Dept., Colorado State University, 2004. 27/02/2021 Ead.br https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_667474_1… 33/33 CERT COORDINATION CENTRE. CERT/CC Statistics 1988-2003. 2004. Disponível em: http://www.cert.org/stats/cert_stats.html. Acesso em: 21 jan. 2020. ICAT Metabase. 2003. Disponível em: http://icat.nist.gov/icat.cfm. Acesso em: 21 jan. 2020. KRUSL, I.; SPAFFORD, E.; TRIPUNITARA, M. Computer Vulnerability Analysis. [S.l.]: Department of Computer Sciences, Purdue University, 1998. MAYBURY, R.; NEEDHAM, R. Access Control. 2011. Disponível em: https://www.cl.cam.ac.uk/~rja14/Papers/SEv2-c04.pdf. Acesso em: 21 jan. 2020. PALMER, M. J. Guide to Operating Systems Security. [S.l.]: Ed. Thomson, 2004. SCHULTZ JR., E. E.; BROWN, D. S.; LONGSTAFF, T. A. Responding to Computer Security Incidents. Livermore, Califórnia: Lawrence LivermoreNational Laboratory, 1990. SILBERSCHATZ, P. B. G.; GAGNE, G. Fundamentos de Sistemas Operacionais. 8. ed. [S.l.]: LTC, 2010. TANENBAUM, A. S. Sistemas Operacionais Modernos. 3. ed. [S.l.]: Prentice-Hall, 2010. WANG, C.; WULF, W. Towards a Framework for Security Measurement. In: NICSS97 CONFERENCE PROCEEDINGS, 1997, [S.l.]. Proceedings [...]. [S.l.]: NICSS97, 1997, p. 522-533. http://www.cert.org/stats/cert_stats.html http://icat.nist.gov/icat.cfm https://www.cl.cam.ac.uk/~rja14/Papers/SEv2-c04.pdf
Compartilhar