Atributos de Seguranca
Existem muitos atributos para seguranca que sao essenciais na programacao segura. Estes atributos sao confidencialidade, integridade, disponibilidade, autenticacao, autorizacao, contabilidade (auditoria) e anonimicidade. Algumas literaturas definem atributos adicionais, mas nada mais sao do que variacoes destas.
1. Confidencialidade
Confidencialidade e o mecanismo atraves do qual mantemos o significado das informacoes ou dados secretos. Em outras literaturas esta propriedade e' tambem conhecida como privacidade ou criptografia. No caso de seguranca de rede, confidencialidade e atingida pela alteracao do significado dos dados atraves de criptografia. Em programacao segura voce precisa garantir que o programa que voce escreve ira manter o dado em segredo. Em outras palavras, ninguem devera poder facilmente aplicar engenharia reversa na logica do programa e acessar os dados. Considerando a situacao onde voce como um programador escreve um software que sera usado por um banco. Havendo um bug de seguranca em seu programa, permitira que um hacker transfira milhoes de dolares do banco. Alem disso, como programador voce devera garantir que seu programa nao quebre, causando um DoS.
2. Integridade
Esta e' a propriedade atraves da qual voce pode detectar se sua mensagem ou dado foi corrompido ou adulterada. Isso e' muito util na deteccao de ataques ativos em seus dados. Para garantir a integridade voce gera informacoes adicionais para verificar a integridade da acao. Por exemplo, quando voce recebe algum dado de outro programa, voce verifica o valor do checksum do dado, ou a assinatura digital, para garantir que a integridade dos dados seja preservada.
3. Disponibilidade
Se o programa que voce escreve nao rodar quando ele for mais necessario, entao o proposito do programa nao foi atingido. Assumamos que voce tenha desenvolvido uma aplicacao App1 para Empresa1. Possuindo algum bug, uma das funcoes desta aplicacao entra em looping indefinidamente. Chega ao conhecimento deste bug a um competidor da Empresa1, possibilitando-o a gerar uma entrada de dados que explora este bug. Durante a hora de pico dos negocios, alguem explora este bug para fazer com que o programa entre em looping, resultando em aplicacoes ficando indisponiveis aproximadamente meia-hora. Este e um exemplo de bugs de seguranca relacionados a disponibilidade.
Disponibilidade e um atributo de seguranca onde e' necessario que o servico esteja disponivel em um periodo de adversidade. Qualquer ataque na disponibilidade e chamado de DoS (Denial of Service). No mundo interconectado de hoje, a escalabilidade de sistemas tambem pode ser categorizado como parte do desafio da disponibilidade. Existem muitos ataques que sao especialmente dirigidos para o aspecto da disponibilidade do servico. Programacao segura pode enderecar algums dos desafios da disponibilidade relacionados ao programa. Outros desafios da disponibilidade precisam ser enderecados atraves da seguranca do perimetro.
4. Autenticacao
Autenticacao e nao-repudiacao sao alguns propriedades que estao relacionados entre si. Autenticacao e' o processo atraves do qual validamos a identidade das partes envolvidas em uma transacao. Na nao-repudiacao nos identificamos que a identidade das partes nao possui duvidas. Assinatura digital pode alcancar a nao-repudiacao. A maioria das autenticacoes que voce ve ao redor sao autenticacoes ditas 'single-factor'. Entretanto, autenticacao multifatorial e' preferida em certas circunstancias. Vamos descrever o que e' isso mais adiante.
5. Autorizacao
Nesta propriedade, voce adiciona restricoes de uso a objetos com niveis de seguranca ou privilegios. A menos que o usuario seja membro de um grupo com certos privilegios, o usuario nao podera acessar determinados recursos. Isto pode ser considerado como nivel de confianca do usuario.
Este atributo tambem e' chamado de controle de acesso de baixa granularidade ou seguranca baseada no papel.
A industria de telecomunicacoes, operadoreas de telefonia movel ou fixa, provisiona diferentes servicos para seus assinantes. Concessao significa que servicos estao disponiveis para um dado assinante. Por exemplo, uma chamada pode ser originada enquanto que uma roaming pode ser barrada.
Concessao em telecomunicacoes e' equivalente ao atributo de autorizacao em seguranca ds computacao.
6. Contabilidade
Para qualquer servico, o provedor de servicos precisa ser pago. Auditoria e' o processo pelo qual o uso do servico e' medido. Baseado no uso, o provedor de servicos coleta as taxas do consumidor. Trilhas de auditoria e logs de transacoes em aplicacao pode ser considerada como parte da informacao da contabilidade; estes arquivos precisam estar seguros, evitando que adversarios deletem ou adultere-os. o nao-pagamento para uma chamada telefonica e' um risco de seguranca para funcoes de contabilidade para a operadora de telecomunicacoes.
De modo similar, acessando transacoes bancarias mas nao sendo registradas e' uma ameaca de seguranca para a aplicacao bancaria.
7. Anonimicidade
Anonimicidade e' outra propriedade de seguranca. A anonimicidade e' a propriedade atraves da qual o usuario permanece anonimo para o mundo externo. Por exemplo: em um sistema de votacao eletronica, o votante precisa permanecer anonimo para que ninguem possa saber em quem ele votou. Incluimos esta propriedade aqui para completar e enfatizar a propriedade de seguranca, mas nao trataremos da anonimicidade neste livro.
Trecho extraido do livro "Architecting Secure Software Systems".
sexta-feira, 26 de dezembro de 2008
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário