Resource management
O Que são Recursos?
Cada componente de um sistema é um recurso
São os componentes da plataforma, como arquivos, soquetes, bases de dados Aplicações da Memória e Binários Dados, com informação de configuração Conexões de rede e os dados transferidos
Um invasor pode usar de conhecimento e acessar recursos para comprometer a integridade do sistema.
Risco dos Recursos
Alguns recursos vão falhar e a aplicação precisa estar preparada quando isso acontecer.
Operação de alocação, e falhas de operação transacional Alguns recursos são escassos e o seu acesso deve ser minimizado Arquivos, redes, bancos de dados Alguns recursos são sensíveis e devem ser protegidos Senhas, memória, strings de conexão
Quais ameaças podem estar presentes ?
Tipos de Ameaças Exemplos Spoofing
Grava dados em um arquivo ou pipe pertencente a outro
Tampering
Repudiation Information disclosure Evita que parte de uma transação se complete
Evita auditoria, bloqueando o acesso aos registros Espiona tubos ou soquetes
Denial of service
Elevation of privilege
Recusar a entregar o controle de um recusrso critico
Executar código arbitrário
Valores de Retorno
Não verificar valores de retorno é a principal causa de bugs Falhas nas alocações de memória geralmente retornam NULL, o que não pode ser referenciado Alguns métodos de configuração do objeto falham, mas deixa o objeto em um estado aparentemente útil O uso continuo de um objeto pode não trazer problemas – até que os invasores achem um buraco.
Encontrando Erros
A maioria dos metodos do Win32 usa error como valor de retorno
Algumas vezes GetLastError() é o unico caminho para descobrir erros
A maioria dos métodos COM usam erros HRESULTs A maioria dos métodos. NET usam erros de exceções
Transações
Algumas vezes sistemas requerem sucessos através de uma séries de ações para completar
Por exemplo, uma transferencia bancária requer um debito bem sucedido de uma conta e