Acadêmicos: Luís Fernando Martins Nagata Gustavo Rezende Vinícius Rezende Santos Pilhas de Dispositivos Drivers no Windows Vista podem fazer todo trabalho sozinho; Uma requisição pode passar por uma seqüência de drivers, cada um fazendo uma parte do trabalho; O uso de drivers empilhados é para separar o gerenciamento do barramento do trabalho funcional do controle real do dispositivo; Os drivers de filtro executam algumas transformações nas operações à medida que o IRP atravessa a pilha de dispositivos; Pilhas de Dispositivos Drivers de dispositivos do modo núcleo é um problema grave para a estabilidade e confiabilidade do Windows. A maior parte de falhas no núcleo do Windows se deve a erros dos drivers de dispositivos; O sistema de arquivos NT do Windows Windows vista dá suporte a vários sistemas de arquivos entre eles estão o FAT-16, FAT32 e NTFS; O FAT-16 foi usado no antigo MS-DOS, que utilizava endereço de 16 bits. Já o FAT-32 utiliza endereços de 32 bits. O NTFS foi desenvolvido especifico para o NT. Começou no Windows XP e aumentou a segurança e funcionalidade e usa endereços de disco de 64 bits; Conceitos Fundamentais Nomes de arquivos individuais no NTFS são limitados em 255 caracteres e os nomes dos arquivos estão em Unicode; O NTFS dá suporte a letras maiúsculas e minúsculas.; Um arquivo NTFS não é apenas uma seqüência linear de bytes como no FAT32 e do UNIX.; Implementação do sistema de Arquivos NTFS O NTFS é um sistema de arquivos muito sofisticado e complexo e foi desenvolvido especificamente para o NT ; O NTFS é um recurso único entre os componentes do sistema operacional, visto que a maior parte do seu projeto foi desenvolvido a bordo de um barco; Estrutura do sistema de arquivos Cada volume do NTFS contém arquivos, mapa de bits, diretórios e outras estruturas de dados; É organizado como uma seqüência linear de blocos e possui um tamanho determinado para cada volume; A maioria dos discos NTFS usa blocos de 4KB; A principal estrutura de dados de cada volume é a MFT (Master file table); É uma seqüência linear de registros com tamanho fixo de 1 KB e cada registro da MFT descreve somente um arquivo ou um diretório; O registro contém atributos do arquivo onde seus blocos estão localizados. Dependendo do tamanho do registro algumas vezes será necessário usar dois ou mais registros da MFT para abrigar a lista de todos os blocos. Sendo assim o primeiro registro chamado de registrobase aponta para os outros registros da MFT. Estrutura do sistema de arquivos Os primeiros 16 registros da MFT são reservados para os arquivos de metadados. O NTFS define 13 atributos que podem aparecer nos registros da MFT e cada cabeçalho indica o atributo e informa o tamanho e a localização do campo de valor junto com as diversas flags e outras informações. Se o valor do atributo for longo poderá ser alocado em um bloco de disco separado sendo chamado de atributo não residente. A lista de atributos é necessária para o caso de atributos não caberem no registro da MFT, ou seja, ele indica onde encontrar os registros de extensão. Um arquivo NTFS possui um ou mais fluxos de dados a ele associado. Para cada fluxo, o seu nome, se houver, fica no cabeçalho desse atributo. Logo após o cabeçalho está uma lista de endereços de disco indicando quais blocos o fluxo contém ou o próprio fluxo, para fluxo de somente algumas centenas de bytes. Quando o fluxo de dados real fica no registro da MFT, usa-se o termo arquivo imediato. ALOCAÇÃO DE ARMAZENAMENTO Os blocos em um arquivo são descritos por uma seqüência de registros, e cada um descreve a seqüência de blocos lógicos contíguos. Para um fluxo sem espaço vazio, haverá somente um desses registros. Os arquivos com um espaço vazio é chamado de arquivo esparso. Cada registro começa com um cabeçalho informando o deslocamento do primeiro bloco dentro do fluxo. Depois vem o deslocamento do primeiro bloco não coberto pelo registro. Cada cabeçalho de registro é seguido por um ou mais pares, cada um indicando um endereço de disco e um tamanho. O endereço de disco é o deslocamento do bloco de disco desde o inicio de sua partição, e o tamanho é o número de blocos na série. ALOCAÇÃO DE ARMAZENAMENTO ALOCAÇÃO DE ARMAZENAMENTO No NTFS, é possível rotular um arquivo ou um diretório como um ponto de reanalise e associar um bloco de dados a ele. Quando um arquivo ou diretório for encontrado durante a analise de seu nome, a operação falha e o bloco de dados são devolvidos ao gerenciador de objetos. Este pode interpretar os dados como representação de caminho alternativo e atualizar a cadeia de caracteres para interpretar e tentar novamente a operação de E/S. Esse mecanismo serve para suportar tanto as ligações simbólicas quanto os sistemas de arquivos por montagem, redirecionando a busca para uma parte diferente da hierarquia de diretórios ou até mesmo para uma partição diferente. Os pontos de reanalise também são utilizados para etiquetar arquivos individuais para drivers de filtro do sistema de arquivos. COMPRESSÃO DE ARQUIVOS O NTFS suporta compressão transparente de arquivos. Um arquivo pode ser criado de modo comprimido, ou seja, o NTFS tenta comprimir automaticamente os blocos quando eles são escritos e descomprimi-los automaticamente quando são lidos. Os processos que lêem ou escrevem nem ficam sabendo que está havendo compressão e descompressão. COMPRESSÃO DE ARQUIVOS USO DE DIÁRIO O NTFS suporta dois tipos de mecanismos para detectar mudanças em arquivos ou diretórios em um volume. O primeiro deles é uma operação de E/S chamada NtNotifyChangeDirectoryFile e o outro mecanismo é o diário de modificações do NTFS. CRIPTOGRAFIA DE ARQUIVO O Windows resolve esses problemas com a criptografia arquivos. O modo normal de usar a criptografia no Windows é marcando certos diretórios como criptografados, além disso, novos arquivos movidos ou criados neste diretório também são criptografados. O processo de criptografar e decriptar em si não são feitos pelo NTFS, mas por um driver chamado de EFS (encryption file system – sistema de criptografia de arquivos). Existe ainda uma facilidade de codificação no Vista, que se chama BitLocker. SEGURANÇA NO WINDOWS VISTA Embora o Windows Vista não tenha sido especificadamente projetado para o cumprimento das determinações C2, ele herda várias das propriedades de segurança do NT. SEGURANÇA NO WINDOWS VISTA Principais características: 1- autenticação segura; 2- controle de acesso discricionário; 3- controle de acesso privilegiado; 4- proteção de espaço de endereçamento por processo; 5- novas páginas devem ser zeradas antes de serem mapeadas; 6- auditoria de segurança; SEGURANÇA NO WINDOWS VISTA Conceitos Fundamentais SID(security – identificador de segurança); ACL (lista de controle de acesso); DACL(lista de controle de acesse discricionário); ACES(elementos de controle de acesso); SACL(lista de controle de acesso ao sistema); SEGURANÇA NO WINDOWS VISTA Chamadas API de segurança InitializeSecurityDescriptor; LookupAccountSid; InitializeAcl; SEGURANÇA NO WINDOWS VISTA Implementação de segurança UAC(controle de conta do usuário);