Saúde
Setor de inicialização
Texto da Wikipédia (pt), licença CC BY-SA. O BETARUBI mostra o verbete inteiro nesta página — a leitura não continua fora do site.

Um setor de inicialização (boot sector) é o setor de um dispositivo de armazenamento de dados persistente (por exemplo, disco rígido, disquete, disco óptico, etc.) que contém código de máquina para ser carregado na memória de acesso aleatório (RAM) e, em seguida, executado pelo firmware integrado de um sistema de computador (por exemplo, o BIOS).
Geralmente, o primeiro setor do disco rígido é o setor de inicialização, independentemente do tamanho do setor (512 ou 4096 bytes) e do tipo de particionamento (MBR ou GPT).
O objetivo de definir um setor específico como o setor de inicialização é a interoperabilidade entre o firmware e os vários sistemas operacionais.
O propósito do carregamento em cadeia (chain-loading), primeiro o firmware (por exemplo, o BIOS), depois o código no setor de inicialização e, em seguida, por exemplo, um sistema operacional, é a flexibilidade máxima.
O IBM PC e computadores compatíveis
Em uma máquina compatível com IBM PC, o BIOS seleciona um dispositivo de inicialização e, em seguida, copia o primeiro setor do dispositivo (que pode ser um MBR, VBR ou qualquer código executável) para a memória física no endereço de memória 0x7C00. Em outros sistemas, o processo pode ser bastante diferente.
Unified Extensible Firmware Interface (UEFI)
A UEFI não depende de setores de inicialização, mas, em vez disso, carrega o gerenciador de inicialização diretamente a partir de um arquivo de aplicativo EFI na partição de sistema EFI.[1] Além disso, a especificação UEFI contém o Secure Boot (Inicialização Segura), que exige que o código UEFI seja digitalmente assinado.
Danos ao setor de inicialização
Caso um setor de inicialização receba danos físicos, o disco rígido não será mais inicializável, a menos que seja usado com um BIOS personalizado que defina um setor não danificado como o setor de inicialização. No entanto, como o primeiro setor também contém dados relativos ao particionamento do disco rígido, o disco rígido se tornará totalmente inutilizável, exceto quando usado em conjunto com software personalizado.
Tabelas de partição
Um disco pode ser particionado em múltiplas partições e, em sistemas convencionais, espera-se que seja. Existem duas definições sobre como armazenar as informações relativas ao particionamento:
- Um master boot record (MBR) é o primeiro setor de um dispositivo de armazenamento de dados que foi particionado. O setor MBR pode conter código para localizar a partição ativa e invocar seu registro de inicialização de volume.
- Um volume boot record (VBR) é o primeiro setor de um dispositivo de armazenamento de dados que não foi particionado, ou o primeiro setor de uma partição individual em um dispositivo de armazenamento de dados que foi particionado. Ele pode conter código para carregar um sistema operacional (ou outro programa autônomo) instalado naquele dispositivo ou naquela partição.
A presença de um gerenciador de inicialização compatível com IBM PC para CPUs x86 no setor de inicialização é, por convenção, indicada por uma sequência hexadecimal de dois bytes 0x55 0xAA (chamada de assinatura do setor de inicialização) no final do setor de inicialização (deslocamentos 0x1FE e 0x1FF). Esta assinatura indica a presença de pelo menos um gerenciador de inicialização fictício (dummy) que é seguro para ser executado, mesmo que ele possa não ser capaz de carregar de fato um sistema operacional. Ela não indica um sistema de arquivos ou sistema operacional específico (ou mesmo a presença de um), embora algumas versões antigas do DOS 3 dependessem dela em seu processo para detectar mídias formatadas em FAT (versões mais recentes não o fazem). O código de inicialização para outras plataformas ou CPUs não deve usar esta assinatura, pois isso pode levar a um travamento quando o BIOS passar a execução para o setor de inicialização assumindo que ele contém código executável válido. No entanto, algumas mídias para outras plataformas contêm a assinatura erroneamente, tornando essa verificação não 100% confiável na prática.
A assinatura é verificada pela maioria dos BIOS de sistema desde (pelo menos) o IBM PC/AT (mas não pelo IBM PC original e algumas outras máquinas). Mais do que isso, ela também é verificada pela maioria dos gerenciadores de inicialização MBR antes de passar o controle para o setor de inicialização. Alguns BIOS (como o do IBM PC/AT) realizam a verificação apenas para discos fixos/removíveis, enquanto para disquetes e superdisquetes, basta começar com um byte maior ou igual a 06h e as primeiras nove palavras não conterem o mesmo valor para que o setor de inicialização seja aceito como válido, evitando assim o teste explícito de 0x55, 0xAA em disquetes. Como os setores de inicialização antigos (por exemplo, mídias muito antigas de CP/M-86 e DOS) às vezes não apresentam essa assinatura, apesar de poderem ser inicializados com sucesso, a verificação pode ser desativada em alguns ambientes. Se o BIOS ou o código MBR não detectar um setor de inicialização válido e, portanto, não puder passar a execução para o código do setor de inicialização, ele tentará o próximo dispositivo de inicialização da lista. Se todos falharem, ele normalmente exibirá uma mensagem de erro e invocará a INT 18h. Isso iniciará um software residente opcional em ROM (ROM BASIC), reiniciará o sistema via INT 19h após a confirmação do usuário ou fará com que o sistema interrompa o processo de inicialização até a próxima inicialização.
Os sistemas que não seguem o design descrito acima são:
- Os CD-ROMs geralmente têm sua própria estrutura de setores de inicialização; para sistemas compatíveis com IBM PC, isso está sujeito às especificações El Torito.
- Softwares do Commodore 128 em discos Commodore DOS, onde os dados na Trilha 1, Setor 0 começavam com um número mágico correspondente à string "CBM".[2]
- Os computadores de grande porte (mainframes) da IBM colocam uma pequena quantidade de código de inicialização na primeira e segunda trilhas do primeiro cilindro do disco, e o diretório raiz, chamado Volume Table of Contents, também está localizado na posição fixa da terceira trilha do primeiro cilindro do disco.
- Outros sistemas de PC (não compatíveis com IBM) podem ter formatos de setor de inicialização diferentes em seus dispositivos de disco.
Operação
Em máquinas compatíveis com IBM PC, o BIOS ignora a distinção entre VBRs e MBRs, bem como o particionamento. O firmware simplesmente carrega e executa o primeiro setor do dispositivo de armazenamento.[3] Se o dispositivo for um disquete ou uma unidade flash USB, esse setor será um VBR. Se o dispositivo for um disco rígido, será um MBR. É o código no MBR que geralmente compreende o particionamento do disco e, por sua vez, é responsável por carregar e executar o VBR de qualquer partição primária que esteja configurada para inicializar (a partição ativa). O VBR então carrega um gerenciador de inicialização de segundo estágio de outro local do disco.
Além disso, o que quer que esteja armazenado no primeiro setor de um disquete, dispositivo USB, disco rígido ou qualquer outro dispositivo de armazenamento inicializável, não é obrigado a carregar imediatamente nenhum código de inicialização para um SO. O BIOS apenas passa o controle para o que quer que exista ali, desde que o setor atenda à qualificação muito simples de ter a assinatura de registro de inicialização 0x55, 0xAA em seus dois últimos bytes. É por isso que é fácil substituir o código de inicialização usual encontrado em um MBR por gerenciadores mais complexos, até mesmo grandes gerenciadores de inicialização multifuncionais (programas armazenados em outro lugar do dispositivo que podem ser executados sem um sistema operacional), permitindo aos usuários uma série de escolhas sobre o que acontece a seguir. Com esse tipo de liberdade, abusos frequentemente ocorrem na forma de vírus de setor de inicialização.
Vírus de setor de inicialização
Como o código no setor de inicialização é executado automaticamente, os setores de inicialização historicamente têm sido um vetor de ataque comum para vírus de computador.
Para combater esse comportamento, o BIOS do sistema frequentemente inclui uma opção para impedir que softwares gravem no primeiro setor de quaisquer discos rígidos conectados; com isso, ele pode proteger o master boot record que contém a tabela de partição contra gravações acidentais, mas não os registros de inicialização de volume nas partições inicializáveis.[4] Dependendo do BIOS, as tentativas de gravar no setor protegido podem ser bloqueadas com ou sem a interação do usuário. A maioria dos BIOS, no entanto, exibirá uma mensagem pop-up dando ao usuário a chance de anular a configuração. A opção do BIOS é desativada por padrão porque a mensagem pode não ser exibida corretamente no modo gráfico e o bloqueio de acesso ao MBR pode causar problemas com programas de configuração do sistema operacional ou ferramentas de acesso, criptografia ou particionamento de disco, como o FDISK, que podem não ter sido escritos para estarem cientes dessa possibilidade, fazendo com que abortem de forma abrupta e possivelmente deixando o particionamento do disco em um estado inconsistente.[nb 1]
Como exemplo, o malware NotPetya tenta obter privilégios administrativos em um sistema operacional e, em seguida, tenta sobrescrever o setor de inicialização de um computador.[5][6] A CIA também desenvolveu um malware que tenta modificar o setor de inicialização para carregar drivers adicionais a serem usados por outros malwares.[7] Outro malware que sobrescreve o setor de inicialização é o MEMZ.
Ver também
- Master boot record (MBR)
- Volume boot record (VBR)
Nota
- ↑ Uma utilidade FDISK escrita para estar ciente dos recursos de proteção do setor de inicialização do BIOS é o FDISK R2.31 (e superior) do DR-DOS, que detectará esse cenário e exibirá mensagens interativas adicionais para guiar o usuário através dele. Em contraste com outras utilidades FDISK, o FDISK do DR-DOS não é apenas uma ferramenta de particionamento, mas também pode formatar partições recém-criadas como FAT12, FAT16 ou FAT32. Isso reduz o risco de formatar volumes errados acidentalmente.
Referências
- ↑ «UEFI - OSDev Wiki». wiki.osdev.org. Consultado em 26 de setembro de 2020
- ↑ Commodore 128 Programmer's Reference Guide. [S.l.]: Bantam Books. 1986. pp. 446–667. ISBN 0-553-34292-4
- ↑ Smith, Roderick W. (14 de abril de 2010). «Migrate to GRUB 2». Ibm.com. Consultado em 5 de março de 2013
- ↑ «Intel Desktop Boards BIOS Settings Dictionary» (PDF). Intel. Consultado em 1 de setembro de 2013
- ↑ «New Ransomware Variant "Nyetya" Compromises Systems Worldwide». blog.talosintelligence.com. 27 de junho de 2017. Consultado em 28 de maio de 2018
- ↑ «In an era of global malware attacks, what happens if there's no kill switch?». CIO Dive (em inglês). Consultado em 28 de maio de 2018
- ↑ «CIA Developed Windows Malware That Alters Boot Sector to Load More Malware». Information Security Newspaper (em inglês). 1 de setembro de 2017. Consultado em 28 de maio de 2018
