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
                                                             D – Negação de
    Invasor nega serviço a um aplicativo                                         6    6    7     9     10         7,6
                                                                  serviço
    Elevação de privilégio, tirando vantagem do              E - Elevação de
                                                                                10    2    2     1     10         5
    processo de solicitação de serviço de clientes               privilégio
    Manipulação dos dados da folha de
                                                             T - Adulteração    10    5    5     10    10         8
    pagamento
    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                  I – Divulgação
                                                                                 8    10   7     10    10         9
    sobre a folha de pagamento                               não autorizada
    Spoofing do computador que executa o                       S – Roubo de
                                                                                10    2    2     8     10         6,4
    processo de solicitação do processo de cliente              identidade

                 Exemplo (árvore de ameaças)


                                                 Roubo de cookies
                                                  de autenticação
                                                Obter um cookie de
                                                 autenticação para
                                                falsificar identidade
                                                            ou
                                     e                                                e
Conexão não-criptografada
                                        Espionagem                 Cross-Site Scripting
Os cookies de autenticação                                                                          XSS Vulnerability
                                      Atacante usa um                Atacante possui
   navegam sobre uma                                                                            O aplicativo é vulnerável a
                                   sniffer para monitorar                meios e
    conexão HTTP não-                                                                                  ataques XSS
                                       o tráfego HTTP                conhecimentos
      criptografada

Notas sobre Segurança de Software

  • 1.
    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.
  • 2.
    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;
  • 3.
    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 D – Negação de Invasor nega serviço a um aplicativo 6 6 7 9 10 7,6 serviço Elevação de privilégio, tirando vantagem do E - Elevação de 10 2 2 1 10 5 processo de solicitação de serviço de clientes privilégio Manipulação dos dados da folha de T - Adulteração 10 5 5 10 10 8 pagamento 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 I – Divulgação 8 10 7 10 10 9 sobre a folha de pagamento não autorizada Spoofing do computador que executa o S – Roubo de 10 2 2 8 10 6,4 processo de solicitação do processo de cliente identidade Exemplo (árvore de ameaças) Roubo de cookies de autenticação Obter um cookie de autenticação para falsificar identidade ou e e Conexão não-criptografada Espionagem Cross-Site Scripting Os cookies de autenticação XSS Vulnerability Atacante usa um Atacante possui navegam sobre uma O aplicativo é vulnerável a sniffer para monitorar meios e conexão HTTP não- ataques XSS o tráfego HTTP conhecimentos criptografada