Memória e proteção runtime

sexta-feira, 09 de março de 2012

Gerenciamento e proteção de memória é um dos grandes trunfos do sistema operacional da Apple. Essa função é executada pelo núcleo Unix, tornando o sistema estável e seguro. Hoje abordaremos recursos relacionados a memória e execução dos aplicativos.

Memórias RAM da Kingston

Preemptive multitasking dá ao OS X a habilidade de balancear recursos computacionais evitando que processos utilizem toda a capacidade do sistema. Isso permite rodar dezenas de processos sem tornar significantemente lentos os aplicativos dos usuários.

Como a memória do hardware é finita, é comum os sistemas gravarem em disco informações de memória (swap). No OS X Lion, essa área de informação gravada em disco pode ser protegida utilizando um recurso chamado FileVault 2, que será abordado profundamente em um futuro artigo.

Protected memory é similar à forma como o sistema de arquivos impede que os usuários tenham acesso a itens que não possuem acesso. Os processos também são mantidos em uma área separada e segura na memória do sistema. Este gerencia toda a alocação de memória para os processos e eles não estão autorizados a interferirem em espaços de memória reservados para outros processos.

O sistema OS X, rodando em um chip de 64 bits, tem suporte a proteção de memória e executável. Isso previne determinados tipos de ataques, nos quais programas maliciosos exploram métodos de alocação de memória ou de execução, forçando que o processador execute códigos arbitrários da área de memória de um outro processo. Em conjunto com o sistema operacional, a arquitetura permite que o OS X evite ataques elaborados, tais como os seguintes recursos de proteção: no-execute stack, no-execute data e no-execute heap. No-execute stack está disponível para aplicativos de 32 e 64 bits. Para processadores 64 bits, o OS X oferece proteção contra code execution em ambas áreas: heap e stack data.

O OS X também possui Randomização de Biblioteca, mudando posições de memória para os processos do sistema operacional cada vez que o computador é iniciado. Desta forma, atacantes não podem utilizar processos-chave do sistema rodando em posições de memória conhecidas.

Sandboxing é outra camada de proteção que restringe quais os tipos de atividades e recursos um aplicativo pode executar, assunto já abordado com detalhes em outro artigo desta série.

Não podemos dizer que o sistema operacional da Apple está livre de ameaças e falhas de segurança, entretanto as camadas de segurança existentes restringem o número de vulnerabilidades. Costumo dizer que, se ainda não existe um vírus poderoso e bem elaborado escrito para Mac, não é porque os crackers desconsideram os Macs por terem uma fatia menor do mercado de computadores — e sim porque o sistema possui camadas de proteção dificultando ações de malwares. Qual o cracker não gostaria de ter o nome no “Hall da Fama” como sendo primeiro expert a criar um vírus para os sistemas da Apple?

Publicado em: https://macmagazine.uol.com.br/post/2012/03/09/seguranca-no-mundo-apple-memoria-e-protecao-runtime/

Conteúdos recentes

Memória e proteção runtime

por Renato Ribeiro Tempo para ler: 3 min
Share This