Escalonamento de privilégios

A escalação de privilégios é o ato de explorar um erro, uma falha de projeto  ou um descuido na configuração em um sistema operacional ou software de aplicação para obter acesso elevado a recursos  que normalmente são protegidos de um aplicativo ou usuário. O resultado é que um aplicativo com mais privilégios do que o pretendido pelo desenvolvedor do aplicativo ou pelo administrador do sistema é capaz de executar ações que não são autorizadas.

Contexto

A maioria dos sistemas computadorizados é projetada para uso com várias contas de usuários, cada uma com habilidades conhecidas como privilégios. Privilégios comuns incluem visualizar e editar arquivos ou modificar arquivos do sistema.

A escalação de privilégios significa que os usuários recebem privilégios aos quais não têm direito. Esses privilégios podem ser usados para excluir arquivos, visualizar informações particulares ou instalar programas indesejados, como vírus. Geralmente ocorre quando um sistema tem uma falha que permite que a segurança seja contornada ou, alternativamente, tem suposições de projeto falho sobre como ele será usado. O escalonamento de privilégios ocorre de duas formas:

Vertical

Esse tipo de escalonamento de privilégios ocorre quando o usuário ou processo consegue obter um nível de acesso mais alto do que um administrador ou desenvolvedor de sistema pretendia, possivelmente executando operações no nível de núcleo.

Exemplos

Em alguns casos, um aplicativo de alto privilégio assume que seria fornecido apenas com a entrada correspondente à sua especificação de interface, portanto, não valida essa entrada. Então, um invasor pode explorar essa suposição, a fim de executar código que não é autorizado com os privilégios do aplicativo:

Desbloqueio

Na segurança computacional, o desbloqueio é definido como o ato de remover as limitações que um fornecedor tentou codificar em seu software ou serviços.Um exemplo comum é o uso de conjuntos de ferramentas para sair de um chroot ou bloqueio em sistemas operacionais do tipo UNIX ou ignorar o gerenciamento de direitos digitais (G.D.D.). No primeiro caso, permite que o usuário veja arquivos fora do sistema de arquivos que o administrador pretende disponibilizar para a aplicação ou usuário em questão. No contexto do gerenciamento de direitos digitais (G.D.D.), permite que o usuário execute código definido arbitrariamente em dispositivos com gerenciamento de direitos digitais (G.D.D.), bem como romper as restrições do tipo chroot. O termo se originou com a comunidade de desbloqueio do iPhone/iOS e também tem sido usado como um termo para "hackear" o PlayStation portátil (PSP); esses dispositivos foram repetidamente sujeitos a desbloqueios, permitindo a execução de código arbitrário, e algumas vezes tiveram esses desbloqueios desativados por atualizações do fornecedor.

Os sistemas iOS, incluindo o iPhone, o iPad e o iPod touch, estão sujeitos a esforços de desbloqueio do iOS desde que foram lançados e continuam com cada atualização de firmware. As ferramentas de desbloqueio do iOS incluem a opção de instalar interfaces de pacotes, como o Cydia e o Installer.app , alternativas de terceiros para a App Store, como forma de encontrar e instalar ajustes e binários do sistema. Para evitar o desbloqueio do iOS, a Apple fez a memória somente de leitura (M.S.L.) de inicialização  do dispositivo executar verificações de hash assinado e objeto binário grande (SHSH blob)  para impedir carregamentos (uploads) de núcleos personalizados e downgrades de software para firmwares anteriores (com jailbreak). Em um desbloqueio "sem amarras" ("untethered" jailbreak), o ambiente iBoot é alterado para executar uma exploração da memória somente de leitura (M.S.L.) de inicialização e permitir o envio de um carregador de inicialização de baixo nível corrigido ou hackear o núcleo para enviar o núcleo desbloqueado após a verificação SHSH.

Existe um método semelhante de desbloqueio para smartphones da plataforma S60 , onde utilitários como o HelloOX permitem a execução de código não assinado e acesso total aos arquivos do sistema ou firmware editado (semelhante ao firmware hackeado M33 usado para o PlayStation portátil) para contornar as restrições de código não assinado . Desde então, a Nokia emitiu atualizações para conter o jailbreak não autorizado, de maneira semelhante à da Apple.

No caso de consoles de jogos, o desbloqueio é frequentemente usado para executar jogos homebrew. Em 2011, a Sony, com a ajuda do escritório de advocacia Kilpatrick Stockton , processou George Hotz, de 21 anos, e associados do grupo fail0verflow por desbloquear o PlayStation 3 (veja Sony Computer Entertainment America, Inc. v. Hotz  e Jailbreak do PlayStation 3 ).

O desbloqueio também pode ocorrer em sistemas e softwares que usam modelos de inteligência artificial generativas, como o ChatGPT. Nos ataques de desbloqueio em sistemas de inteligência artificial, os usuários conseguem manipular o modelo para que se comporte de forma diferente do que foi programado, tornando possível revelar informações sobre como o modelo foi instruído e induzi-lo a responder de forma anômala ou prejudicial.

Android

Os telefones Android podem ser oficialmente "rootados" passando pelo processo controlado pelos fabricantes, usando uma exploração para obter o root ou substituir o ambiente de recuperação original pelo ambiente de recuperação personalizado. Os fabricantes permitem o rooting por meio de um processo que eles controlam, enquanto alguns permitem que o telefone seja "rootado" simplesmente pressionando combinações de teclas específicas no momento da inicialização ou por outros métodos autoadministrados. O uso de um método de fabricante quase sempre redefine o dispositivo de fábrica, tornando o root inútil para as pessoas que desejam visualizar os dados, e também anula a garantia permanentemente, mesmo que o dispositivo seja "desrootado" e "reflashado". As explorações de software geralmente visam um processo de nível root que é acessível ao usuário, usando uma exploração específica para o núcleo do telefone ou usando uma exploração conhecida do Android que foi corrigida em versões mais recentes; não atualizando o telefone ou fazendo o downgrade intencional da versão.

Estratégias de mitigação

Sistemas operacionais e usuários podem usar as seguintes estratégias para reduzir o risco de escalonamento de privilégios:

Uma pesquisa recente mostrou o que pode efetivamente fornecer proteção contra ataques de escalonamento de privilégios. Isso inclui a proposta do observador adicional do núcleo, que evita especificamente ataques focados em vulnerabilidades do sistema operacional. A pesquisa mostra que o observador adicional do núcleo é de fato eficaz contra ataques de escalada de privilégios.

Horizontal

A escalação de privilégios horizontal ocorre quando um aplicativo permite que o invasor obtenha acesso a recursos  que normalmente seriam protegidos de um aplicativo ou usuário. O resultado é que o aplicativo executa ações com o mesmo usuário, mas com contexto de segurança diferente do pretendido pelo desenvolvedor do aplicativo ou pelo administrador do sistema. Esta é efetivamente uma forma limitada de escalonamento de privilégios (especificamente, a suposição não autorizada da capacidade de se passar por outros usuários). Em comparação com a escalação vertical de privilégios, a horizontal não requer atualização do privilégio das contas. Ela muitas vezes depende de falhas no sistema.

Exemplos

Esse problema ocorre frequentemente em aplicativos da web. Considere o exemplo a seguir:

Essa atividade maliciosa pode ser possível devido a fraquezas ou vulnerabilidades comuns de aplicativos da web.

Possíveis vulnerabilidades de aplicativos da web ou situações que podem levar a essa condição incluem:

Ver também

Notas

  1. a b c d do inglês bug
  2. a b c d e f g h i j k do inglês kernel
  3. do inglês all users
  4. do inglês core dump
  5. do inglês dump
  6. do inglês root
  7. a b c d e do inglês jailbreak
  8. do inglês jail
  9. a b c do inglês D.R.M. – digital rights management
  10. do inglês front-end
  11. a b do inglês R.O.M. – read-only memory
  12. do inglês bootloader
  13. a b do inglês exploit
  14. do inglês S.Id. – security identifier
  15. do inglês M.A.C. – mandatory access controls
  16. a b do inglês A.K.O. – additional kernel observer

Referências

  1. Taimur Asad (27 de novembro de 2010). «Apple Acknowledges iOS 4.1 Security Flaw. Will Fix it in November with iOS 4.2» (em inglês). RedmondPie 
  2. «Definition of jailbreak» . www.merriam-webster.com (em inglês). Consultado em 24 de dezembro de 2022 
  3. Cyrus Peikari; Anton Chuvakin (2004). Security warrior: Know your enemy Registo grátis requerido (em inglês). : "O'Reilly media, Inc.". p. 304. ISBN 978-0-596-55239-8 
  4. James Quintana Pearce (27 de setembro de 2007), Apple's Disagreement with Orange, IPhone hackers (em inglês), paidContent.org, consultado em 25 de novembro de 2011, arquivado do original em 29 de julho de 2012 
  5. «Reports: Next iPhone update will break third-party apps, bust unlocks» . Computerworld em v1.1.3 (em inglês). Arquivado do original em 4 de janeiro de 2008 
  6. Phat^Trance (16 de fevereiro de 2010). «HelloOX 1.02 - The easiest way to hack all 3rd,fp1,fp2,5800» . dailymobile.se (em inglês). Consultado em 30 de agosto de 2016. Arquivado do original em 3 de março de 2009 
  7. «HelloOX 1.03: one step hack for Symbian S60 3rd ed. phones, and for Nokia 5800 XpressMusic too» (em inglês). Cópia arquivada em 13 de fevereiro de 2008 
  8. «Bypass Symbian signed & install unsigned SISX/J2ME Midlets on Nokia S60 v3 with full system permissions» (em inglês) 
  9. «What is Jailbreaking in A.I. models like ChatGPT?» (em inglês) 
  10. «ChatGPT's 'jailbreak' tries to make the A.I. break its own rules, or die» (em inglês) 
  11. «A Microsoft minimiza a ameaça de saturação de buffer e cria aplicativos confiáveis» (em inglês). Microsoft. Setembro de 2005. Consultado em 4 de agosto de 2008 
  12. Smalley, Stephen. «Laying a secure foundation for mobile devices» (PDF) (em inglês). Consultado em 7 de março de 2014. Arquivado do original (PDF) em 28 de agosto de 2017 
  13. Yamauchi, Toshihiro; Akao, Yohe; Yoshitani, Ryota; Nakamura, Yuichi; Hashimoto, Masaki (agosto de 2021). «Additional kernel observer: privilege escalation attack prevention mechanism focusing on system call privilege changes» . International Journal of Information security (em inglês). 20 (4): 461–473. ISSN 1615-5262. doi:10.1007/s10207-020-00514-7 
  14. Diogenes, Yuri (2019). Cybersecurity - Attack and defense strategies (em inglês) 2ª ed. 304 páginas. ISBN 978-1-83882-779-3. OCLC 1139764053