Segurança em Sistemas Operacionais - Informática | Tuco-Tuco
Aula de Informática (Sistemas Operacionais e ferramentas de escritório): Segurança em Sistemas Operacionais. Mecanismos de segurança, controle de acesso e proteção dos dados. Estude gratuitamente para concursos públicos e OAB no Tuco-Tuco.
Segurança em Sistemas Operacionais
A Importância da Segurança no Núcleo do Sistema
O sistema operacional é o software mais crítico de qualquer dispositivo computacional, pois gerencia todos os recursos de hardware e fornece serviços essenciais para as aplicações. Por essa razão, a segurança do sistema operacional é fundamental para proteger dados, processos e dispositivos contra acessos não autorizados, modificações indevidas, ataques maliciosos e falhas acidentais. Uma vulnerabilidade no SO pode comprometer toda a máquina, permitindo que um atacante assuma o controle, instale malwares, roube informações ou utilize o computador como parte de uma botnet.
Os principais objetivos de segurança em sistemas operacionais são os mesmos da segurança da informação em geral: confidencialidade (apenas usuários autorizados acessam dados), integridade (dados não são alterados indevidamente) e disponibilidade (recursos e serviços estão acessíveis quando necessários). A estes, soma-se a autenticidade (garantia de que usuários e processos são quem dizem ser) e o não-repúdio (impossibilidade de negar a autoria de uma ação).
Mecanismos de Controle de Acesso
O controle de acesso determina quem pode acessar quais recursos (arquivos, diretórios, dispositivos, processos) e com quais permissões (leitura, escrita, execução). Os principais modelos são:
2.1. DAC – Controle de Acesso Discricionário (Discretionary Access Control)
No modelo DAC, o proprietário de um recurso (geralmente quem o criou) tem a discrição de conceder ou revogar permissões a outros usuários. É o modelo padrão em sistemas como Windows (NTFS) e Linux/Unix (permissões tradicionais). Exemplo: um usuário pode dar permissão de leitura de um arquivo para outro usuário específico.
Implementações comuns:
Unix/Linux (permissões tradicionais): Para cada arquivo/diretório, há três conjuntos de permissões (leitura, escrita, execução) para três categorias: proprietário (owner), grupo (group) e outros (others). Exemplo: significa que o proprietário pode ler e escrever; o grupo e outros apenas leem.
Listas de Controle de Acesso (ACL): Estendem o modelo simples, permitindo definir permissões para usuários ou grupos específicos além do proprietário/grupo. Tanto Windows quanto Linux (com ) suportam ACLs.
2.2. MAC – Controle de Acesso Obrigatório (Mandatory Access Control)
No modelo MAC, o sistema operacional impõe uma política global de segurança que não pode ser alterada pelos usuários. As decisões de acesso são baseadas em rótulos de segurança associados a sujeitos (usuários, processos) e objetos (arquivos, dispositivos). Exemplos incluem sistemas utilizados em ambientes militares (níveis de classificação: público, secreto, ultrassecreto) e o SELinux (Security-Enhanced Linux) integrado ao kernel Linux.
O SELinux implementa uma política de controle de acesso baseada em tipos (TE – Type Enforcement). Cada processo tem um domínio (domain), cada arquivo tem um tipo (type), e regras definem quais domínios podem acessar quais tipos. Mesmo o usuário root pode ter ações restringidas pela política MAC, o que limita danos em caso de comprometimento de um processo.
2.3. RBAC – Controle de Acesso Baseado em Papéis (Role-Based Access Control)
No RBAC, as permissões são associadas a papéis (roles), e os usuários são atribuídos a papéis. Um papel pode representar uma função organizacional (gerente, analista, supervisor). O RBAC simplifica a administração quando há muitos usuários com necessidades semelhantes. Exemplos: sistemas de gestão empresarial, bancos de dados, e também pode ser implementado sobre DAC ou MAC.
Autenticação de Usuários
A autenticação verifica a identidade de um usuário antes de conceder acesso ao sistema. Os fatores de autenticação são classificados em:
Algo que você sabe: senha, PIN, resposta a pergunta secreta.
Algo que você tem: token físico (YubiKey), cartão inteligente, smartphone (código via SMS ou aplicativo autenticador).
Algo que você é: biometria (impressão digital, reconhecimento facial, íris, voz).
A autenticação de múltiplos fatores (MFA – Multi-Factor Authentication) combina dois ou mais fatores diferentes, aumentando drasticamente a segurança. Exemplo: senha (sabe) + código de 6 dígitos gerado por aplicativo (tem).
3.1. Gerenciamento de Senhas no SO
O sistema operacional armazena as senhas de forma segura, nunca em texto plano. Técnicas comuns:
Hashing com salt: A senha é combinada com um valor aleatório (salt) e então processada por uma função de hash criptográfico (SHA-256, bcrypt, Argon2). O hash resultante e o salt são armazenados. Ao autenticar, o sistema aplica a mesma função e compara os hashes.
Arquivos de senhas: No Linux, as senhas hasheadas ficam em (acessível apenas pelo root). No Windows, as senhas são armazenadas no SAM (Security Account Manager), um arquivo de registro protegido.
Políticas de senha: O SO pode impor requisitos como comprimento mínimo, complexidade (maiúsculas, minúsculas, números, símbolos), expiração periódica, histórico para evitar reutilização, e bloqueio após tentativas falhas.
Proteção contra Malwares e Código Malicioso
O sistema operacional emprega diversas defesas contra execução de código não autorizado:
4.1. Antivírus e Antimalware
Softwares que escaneiam arquivos e processos em busca de assinaturas conhecidas (método tradicional) ou comportamento suspeito (heurística, análise comportamental). Soluções modernas incluem aprendizado de máquina para detectar variantes novas. O Windows inclui o Microsoft Defender (antigo Windows Defender), que é um antivírus gratuito e integrado.
4.2. Prevenção de Execução de Dados (DEP – Data Execution Prevention)
A DEP marca regiões de memória como não executáveis, a menos que explicitamente contenham código. Impede que um ataque de buffer overflow execute código injetado na pilha ou no heap. No Windows, a DEP é configurável; no Linux, é implementada via NX bit (No-eXecute) da CPU, combinado com políticas como .
4.3. Address Space Layout Randomization (ASLR)
O ASLR randomiza as posições das áreas principais da memória do processo (base do executável, bibliotecas compartilhadas, pilha, heap) a cada execução. Dificulta ataques que precisam conhecer endereços específicos (como return-to-libc, ROP). Todos os sistemas operacionais modernos (Windows, Linux, macOS, Android, iOS) implementam ASLR.
4.4. Controle de Integridade e Verificação de Assinatura
Integridade de arquivos do sistema: O Windows possui o SFC (System File Checker) e o DISM; no Linux, pacotes podem ser verificados por hashes (ex.: no Debian/Ubuntu).
Assinatura digital de drivers: O Windows exige que drivers de modo kernel sejam assinados digitalmente por uma autoridade confiável (Microsoft), reduzindo a instalação de drivers maliciosos. No Linux, o Secure Boot também pode verificar assinaturas dos módulos do kernel.
Firewall e Filtragem de Rede
A maioria dos sistemas operacionais inclui um firewall de software (filtro de pacotes) que controla o tráfego de rede com base em regras (endereço IP, porta, protocolo). Exemplos:
Windows Firewall: Integrado ao Windows, pode bloquear ou permitir tráfego de entrada e saída por aplicativo ou por porta.
iptables/nftables no Linux: Ferramentas avançadas para configurar regras de filtragem, NAT e mascaramento. O é uma interface de alto nível.
pf no macOS e BSD: Packet filter de alto desempenho.
O firewall pode ser configurado para bloquear conexões não solicitadas (entrada) e permitir todas as saídas, ou restringir também saídas (ex.: impedir que um malware se comunique com seu servidor de comando).
Atualizações e Gerenciamento de Patches
As vulnerabilidades de segurança são descobertas continuamente. Os fabricantes de SO lançam atualizações (patches) para corrigi-las. A ausência de atualizações é uma das principais causas de comprometimento de sistemas.
Windows Update: Gerencia atualizações críticas, de segurança, opcionais e de drivers. Pode ser configurado para instalar automaticamente.
Linux: Gerenciadores de pacotes (, , , ) permitem atualizar todos os pacotes instalados. Distribuições como Ubuntu oferecem atualizações de segurança por anos.
macOS: Atualizações via App Store ou Preferências do Sistema.
Além de atualizações do SO, é essencial manter aplicativos e drivers atualizados.
Isolamento de Processos e Sandboxing
Processos devem ser isolados uns dos outros para que um processo malicioso ou comprometido não possa acessar dados de outros processos.
Espaços de endereço separados: Cada processo tem sua própria tabela de páginas; a CPU impede acesso a páginas de outros processos (proteção de memória via MMU).
Containers e namespaces (Linux): Namespaces isolam recursos (PID, rede, mount, UTS, IPC, usuário). Containers (Docker, LXC) usam namespaces e cgroups para criar ambientes isolados compartilhando o mesmo kernel.
Sandboxing de aplicações:
- Windows: Windows Sandbox (ambiente leve e descartável); aplicações da Windows Store rodam em containers AppContainer com privilégios reduzidos.
- macOS: Sandboxing via Seatbelt (sandbox.kext), usado pela App Store.
- Linux: Flatpak, Snap, Firejail, ou SELinux em modo de sandbox.
Criptografia de Dados no Sistema Operacional
O SO pode fornecer criptografia para proteger dados em repouso (armazenados) e em trânsito (rede).
8.1. Criptografia de Disco Completo (FDE – Full Disk Encryption)
Windows: BitLocker (disponível nas edições Pro e Enterprise). Criptografa toda a partição do sistema, exigindo uma chave de recuperação ou TPM (Trusted Platform Module) para desbloqueio.
Linux: LUKS (Linux Unified Key Setup) – padrão para criptografia de partições. Pode ser usado com .
macOS: FileVault 2 – criptografia de disco completa integrada.
A FDE protege contra acesso físico ao dispositivo (roubo do laptop), mas não protege contra ataques enquanto o sistema está ligado e desbloqueado.
8.2. Criptografia de Arquivos e Pastas
Windows: EFS (Encrypting File System) – criptografia por arquivo, baseada em certificado do usuário. Transparente para o usuário.
Linux: eCryptfs (empilhado), fscrypt (para ext4, f2fs). O Ubuntu oferece criptografia de diretório home opcional na instalação.
8.3. Criptografia de Comunicações
O SO não criptografa automaticamente o tráfego de rede, mas fornece APIs para aplicações usarem TLS/SSL. O próprio SO pode usar IPSec (políticas de segurança IP) para criptografar todo o tráfego entre duas máquinas.
Auditoria e Logging
Registrar eventos de segurança é essencial para detecção de incidentes, análises forenses e conformidade regulatória.
Windows: Event Viewer (Visualizador de Eventos) registra logons, alterações de políticas, falhas de acesso, criação de processos, etc. Categorias: Aplicativo, Sistema, Segurança.
Linux: syslog (geralmente ou ) coleta logs do kernel, serviços e autenticação (via PAM). Logs de autenticação ficam em (Debian/Ubuntu) ou (RHEL).
Auditoria específica: no Linux permite monitorar chamadas de sistema específicas, acessos a arquivos, alterações de configuração.
Logs devem ser protegidos contra alteração ou exclusão (escrita apenas em anexo, armazenamento remoto, assinatura digital).
Considerações Finais
A segurança de sistemas operacionais é uma disciplina ampla que abrange controle de acesso, autenticação, proteção contra malwares, firewall, atualizações, isolamento, criptografia e auditoria. Para concursos e vestibulares, o candidato deve conhecer os modelos de controle de acesso (DAC, MAC, RBAC), os mecanismos de autenticação (senhas, MFA, biometria), as técnicas de proteção de memória (DEP, ASLR), e as ferramentas comuns (firewall, antivírus, BitLocker/LUKS, SELinux/AppArmor). Questões podem apresentar cenários de violação de segurança e pedir a identificação da falha ou a solução adequada. O estudo prático (configurar permissões, ativar firewall, interpretar logs) consolida o entendimento teórico.
Exercícios:
Analise as alternativas abaixo e assinale aquela que apresenta corretamente os três princípios fundamentais de segurança em sistemas operacionais conforme apresentados na aula:
Considere o seguinte cenário: Em um sistema operacional, determinado arquivo foi configurado de modo que apenas seu proprietário pode modificá-lo, mas qualquer outro usuário pode apenas visualizá-lo. Qual mecanismo foi utilizado para garantir essa restrição?
Em relação à proteção contra malware e ao reforço da segurança no sistema operacional, assinale a alternativa correta de acordo com a aula:
Complete a frase: O modelo de controle de acesso _____, frequentemente implementado em sistemas de alta segurança como o SELinux, impõe políticas globais que não podem ser flexibilizadas pelos usuários comuns.
Complete a frase: A tecnologia de _____ é um recurso de hardware e software que impede a execução de código em regiões da memória RAM destinadas apenas ao armazenamento de dados, como o heap ou a pilha.
Complete a frase: O mecanismo de proteção que randomiza a localização de componentes vitais do sistema operacional na memória RAM a cada reinicialização é denominado _____.
Complete a frase: Para aumentar a segurança no armazenamento de senhas, o sistema operacional utiliza uma técnica que combina a senha do usuário com um valor aleatório único conhecido como _____.
Complete a frase: No ecossistema Windows, o recurso de segurança que provê criptografia de disco completa (FDE) para evitar que dados sejam lidos se o hardware for roubado é o _____.
Complete a frase: A técnica de _____ consiste em isolar uma aplicação em um ambiente restrito, garantindo que ela não possa acessar arquivos ou recursos sensíveis de outros processos ou do núcleo do sistema.
Complete a frase: Em sistemas Linux, o arquivo _____ é o local onde os hashes das senhas são armazenados com permissões de acesso restritas exclusivamente ao superusuário (root).
Complete a frase: O modelo de controle de acesso _____ permite que as permissões sejam atribuídas a funções de trabalho em uma organização, simplificando a gestão de privilégios para grandes grupos de usuários.
Complete a frase: A autenticação multifator (MFA) eleva a segurança ao exigir um segundo fator baseado em algo que o usuário _____, como um smartphone ou um token físico.
Complete a frase: No kernel Linux, a funcionalidade de _____ é a tecnologia base que permite isolar recursos como rede e árvore de processos, possibilitando a execução de containers seguros.