Uma API é um contrato entre quem chama e o que se chama. As formas mais comuns de abuso de API ocorrem quando o responsável pela chamada não respeita sua parte do contrato. Por exemplo, se um programa não chama chdir() após chamar chroot(), ele viola o contrato que especifica como alterar o diretório raiz ativo de forma segura. Outro bom exemplo de abuso de biblioteca é esperar que o elemento chamado retorne informações confiáveis de DNS ao responsável pela chamada. Nesse caso, o responsável pela chamada abusa a API do elemento chamado ao fazer certas suposições sobre seu comportamento (isto é, que o valor de retorno pode ser usado para fins de autenticação). A outra parte também pode violar o contrato entre quem chama e o que se chama. Por exemplo, se um programador definir SecureRandom como subclasse e retornar um valor não aleatório, o contrato será violado.
Often Misused: Privilege Management
root
causaram inúmeras catástrofes de segurança no Unix. É imperativo que você analise programas privilegiados cuidadosamente em busca de todos os tipos de problemas de segurança, mas é igualmente importante que esses programas privilegiados retornem a estado sem privilégios o mais rápido possível, a fim de limitar a quantidade de danos que uma vulnerabilidade despercebida pode ser capaz de causar.Funções de gerenciamento de privilégios podem comportar-se de maneiras menos do que óbvias e têm peculiaridades diferentes dependendo da plataforma. Essas inconsistências são particularmente evidentes quando você está fazendo a transição de um usuário não
root
para outro.Manipuladores de sinais e processos gerados são executados no privilégio do processo proprietário e, portanto, se um processo estiver em execução como
root
quando um sinal for acionado ou um subprocesso for executado, o manipulador de sinais ou subprocesso operará com privilégios de root. Um invasor pode ser capaz de aproveitar esses privilégios elevados para causar ainda mais danos.root
causaram inúmeros desastres de segurança de Unix. É imperativo que você revise atentamente os programas com privilégios em relação a todos os tipos de problemas de segurança. É igualmente importante que os programas com privilégios retornem a um estado sem privilégios o mais rápido possível para limitar os danos que uma vulnerabilidade não remediada pode causar.As funções de gestão de privilégios podem se comportar de formas pouco óbvias e possuem peculiaridades específicas em diferentes plataformas. Tais inconsistências são especialmente notáveis ao passar de um usuário não
root
a outro.Manipuladores de sinais e processos gerados são executados de acordo com o privilégio do processo principal. Assim, se um processo estiver sendo executado como
root
quando um sinal for disparado ou quando um subprocesso for executado, o manipulador de sinais ou o subprocesso operará com privilégios de root. Um invasor pode aproveitar esses privilégios elevados para causar ainda mais danos.root
causaram inúmeras catástrofes de segurança no Unix. É imperativo que você analise programas privilegiados cuidadosamente em busca de todos os tipos de problemas de segurança, mas é igualmente importante que esses programas privilegiados retornem a estado sem privilégios o mais rápido possível, a fim de limitar a quantidade de danos que uma vulnerabilidade despercebida pode ser capaz de causar.Funções de gerenciamento de privilégios podem comportar-se de maneiras menos do que óbvias e têm peculiaridades diferentes dependendo da plataforma. Essas inconsistências são particularmente evidentes quando você está fazendo a transição de um usuário não
root
para outro.Manipuladores de sinais e processos gerados são executados no privilégio do processo proprietário e, portanto, se um processo estiver em execução como
root
quando um sinal for acionado ou um subprocesso for executado, o manipulador de sinais ou subprocesso operará com privilégios de root. Um invasor pode ser capaz de aproveitar esses privilégios elevados para causar ainda mais danos.root
causaram inúmeras catástrofes de segurança no Unix. É imperativo que você analise programas privilegiados cuidadosamente em busca de todos os tipos de problemas de segurança, mas é igualmente importante que esses programas privilegiados retornem a estado sem privilégios o mais rápido possível, a fim de limitar a quantidade de danos que uma vulnerabilidade despercebida pode ser capaz de causar.Funções de gerenciamento de privilégios podem comportar-se de maneiras menos do que óbvias e têm peculiaridades diferentes dependendo da plataforma. Essas inconsistências são particularmente evidentes quando você está fazendo a transição de um usuário não
root
para outro.Manipuladores de sinais e processos gerados são executados no privilégio do processo proprietário e, portanto, se um processo estiver em execução como
root
quando um sinal for acionado ou um subprocesso for executado, o manipulador de sinais ou subprocesso operará com privilégios de root. Um invasor pode ser capaz de aproveitar esses privilégios elevados para causar ainda mais danos.