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.
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:
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.
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:
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.
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.
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.
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.
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: