Notas sobre Segurança de Software
-
Upload
orlando-junior -
Category
Technology
-
view
1.587 -
download
3
description
Transcript of Notas sobre Segurança de Software
Orlando Junior Kurt1022[@]gmail.com
SEGURANÇA DE SOFTWARE Segurança da informação é a proteção da informação e sistemas de informação contra acesso, uso, divulgação, modificação, destruição e interrupção não autorizadas. Por que desenvolver com segurança?
75% dos ataques ocorrem por falhas na aplicação;
O custo de correção de vulnerabilidade é maior após a implantação;
“É presumida a culpa do patrão ou comitente pelo ato culposo do empregado ou preposto” (Súmula 341 - STF).
Necessidades da segurança
Reduzir riscos;
Reduzir fraudes;
Reduzir acessos indevidos. Objetivos da segurança da informação
Assegurar a continuidade dos negócios da empresa;
Minimizar perdas financeiras ocorridas por meio de acessos não autorizados;
Permitir o uso compartilhado da informação de maneira segura;
Manter a irrevogabilidade dos dados;
Preservar o patrimônio da empresa;
Manter a segurança do corpo funcional;
Detectar as causas e origens do problema, em caso deste; Os objetivos da segurança da informação só são conseguidos através de uma política de segurança consistente. Uma política de segurança é um documento formal das regras pelas quais é fornecido acesso aos recursos tecnológicos da empresa. Seu principal propósito é informar aos usuários as suas obrigações para a proteção da tecnologia da empresa e do acesso à informação. Custo total de propriedade (TCO) é o cálculo estimado projetado para consumidores e gerentes que avalia os custos direto e indireto relacionados à compra e à manutenção de equipamentos ou serviços de tecnologia da informação.
Um software de qualidade é um software seguro e confiável. Um software seguro é um produto que protege a confidencialidade, a integridade e a disponibilidade das informações do cliente e a integridade e a disponibilidade de recursos de processamento sob controle do proprietário do sistema ou do administrador.
Orlando Junior Kurt1022[@]gmail.com
Um software confiável é aquele que funciona corretamente conforme descrito em sua especificação. Tripé da Segurança
1. Confidencialidade é a proteção da informação contra acessos ou divulgação não autorizada. É assegurada pelos controles de acesso e operações individuais de cada usuário;
2. Integridade é a garantia da veracidade da informação, impossibilitando que a informação corrompida, seja por manipulação não autorizada ou acidental. É assegurada evitando-se a alteração ou o forjamento não detectado de mensagens;
3. Disponibilidade é a exposição segura da informação, garantindo que ela estará disponível ao usuário sempre que este necessitar. É assegurada pela proteção dos serviços prestados pelo sistema de forma que eles não sejam degradados ou se tornem indisponíveis sem autorização.
Autenticação é a garantia da correta identificação de quem acessa ou produz informação. Deve assegurar ao receptor que a mensagem é procedente da origem informada em seu conteúdo. Autorização é a capacidade de validar a permissão das operações que um usuário poderá executar no sistema. Não-repúdio é a capacidade de confirmar a autoria do emissor da mensagem de modo que ele não possa negar seu envio. Enquanto recursos de segurança são as tecnologias que provêm segurança ao software, recursos seguros diz respeito à correta utilização dessas tecnologias conforme o cenário e as necessidades do software.
Modelar ameaças permite sistematicamente identificar e mensurar as ameaças que são mais suscetíveis de afetar o sistema. Processo:
1. Identificar ativos; 2. Criar uma visão geral da arquitetura;
Orlando Junior Kurt1022[@]gmail.com
3. Decompor a aplicação; 4. Identificar as ameaças (STRIDE); 5. Documentar as ameaças; 6. Mensurar as ameaças (DREAD);
STRIDE (Como modelar as ameaças?)
S – Roubo de identidade (autenticação)
T – Adulteração de dados (integridade)
R – Repúdio (não-repúdio)
I – Divulgação não autorizada (confidencialidade)
D – Negação de Serviço (disponibilidade)
E – Elevação de privilégio (autorização) DREAD (Como medir as ameaças?)
D – Dano potencial: quão grande é o dano se a vulnerabilidade é explorada?
R – Reprodutibilidade: quão fácil é reproduzir o ataque?
E – Exploração: quão experiente o atacante precisa ser para explorar a falha?
A – Usuários afetados: quantos usuários são afetados?
D – Descoberta: quão fácil é encontrar a vulnerabilidade?
Exemplo (modelagem de ameaças)
Ameaça Classificação D R E A D Risco
Invasor nega serviço a um aplicativo D – Negação de
serviço 6 6 7 9 10 7,6
Elevação de privilégio, tirando vantagem do processo de solicitação de serviço de clientes
E - Elevação de privilégio
10 2 2 1 10 5
Manipulação dos dados da folha de pagamento
T - Adulteração 10 5 5 10 10 8
Invasor carrega páginas web e códigos falsos T – Adulteração 7 7 7 10 10 8,2
Usuário mal-intencionado visualiza dados sobre a folha de pagamento
I – Divulgação não autorizada
8 10 7 10 10 9
Spoofing do computador que executa o processo de solicitação do processo de cliente
S – Roubo de identidade
10 2 2 8 10 6,4
Exemplo (árvore de ameaças)
Roubo de cookies de autenticação
Obter um cookie de autenticação para
falsificar identidade
Conexão não-criptografada Os cookies de autenticação
navegam sobre uma conexão HTTP não-
criptografada
Espionagem Atacante usa um
sniffer para monitorar o tráfego HTTP
Cross-Site Scripting Atacante possui
meios e conhecimentos
XSS Vulnerability O aplicativo é vulnerável a
ataques XSS
e ou
e