Article image
Raniely Araújo
Raniely Araújo22/03/2023 21:00
Compartilhe

Cibersegurança x Desenvolvimento de Software.

  • #Programação para Internet
  • #Segurança da informação

A cibersegurança é um tema cada vez mais relevante e discutido no Brasil, isso só foi possível devido ao aumento constante da digitalização. Pois junto com esse aumento, cria-se inúmeras vulnerabilidades cibernéticas. E os dados sobre ataques cibernéticos é alarmante, pois conforme o relatório da McAfee (2020), a economia global sofre um prejuízo de  mais de 1 trilhão de dólares devido aos crimes cibernéticos. Além disso, com base no Banco Mundial (2022), de 2019 a 2023, estima-se que o total de perda econômica para ataques cibernéticos será de 5.2 trilhões de dólares, sendo em torno de 10 milhões de prejuízo por mês.

No ponto de vista nacional as estatísticas também são preocupantes, de acordo com dados da empresa de segurança Kaspersky, o Brasil é o país que mais sofreu ataques cibernéticos na América Latina em 2020, com uma média de 1,1 bilhão de ataques por mês. Em outra pesquisa, realizada pela Fortinet em 2021, revelou que o Brasil é o quarto país no mundo com o maior número de tentativas de ataques de malware.

Esses crimes virtuais podem possuir distintas origens, mas de acordo com Holanda e Fernandes (2011), grande parte dos incidentes de segurança da informação tem como origem as vulnerabilidades presentes em softwares. 

A Trustwave (2017), em seu relatório de segurança publicado anualmente, apresentou dados alarmantes no que diz respeito à segurança das aplicações e ataques web 

para os anos de 2015 e 2016:

• 99,7% das aplicações web testadas apresentavam pelo menos uma vulnerabilidade.

• 77% das vulnerabilidades detectadas envolviam gerenciamento de sessão.

• 10% das vulnerabilidades foram classificadas como críticas ou de alto risco.

• 13% dos ataques realizados utilizaram Cross-Site Scripting (XSS).

• 11% das vulnerabilidades de redes detectadas estavam relacionadas a servidores de rede com protocolos SSL e TLS inseguros.

• O número médio de vulnerabilidades encontradas por aplicação é de 11 (onze) vulnerabilidades

Implementar mecanismos de segurança em um software a cada dia vem se tornando um desafio devido a complexidade de sistemas desenvolvidos, e a cada linha implementada pode expor uma nova vulnerabilidade. 

Em uma pesquisa realizada pela a OWASP, 2013, lista  as 10 mais críticos vulnerabilidades de segurança em aplicações web, que são: 

1) Injeção: as falhas de injeção, tais como injeção de SQL, de Sistema Operacional e de LDAP, ocorrem quando  dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta. Os dados manipulados pelo atacante podem iludir o interpretador para que este execute comandos indesejados ou 

permita o acesso a dados não autorizados.

2) Quebra de autenticação e gerenciamento de sessão: as funções da aplicação relacionadas com autenticação e gerenciamento de sessão geralmente são implementadas de forma incorreta, permitindo que os atacantes comprometam senhas, chaves e tokens de sessão ou, ainda, exploram outra falha da implementação para assumir a identidade de outros usuários.

3) Cross-Site Scripting (XSS): falhas XSS ocorrem sempre que uma aplicação recebe dados não confiáveis e os envia ao navegador sem validação ou filtro adequados. XSS permite aos atacantes executarem scripts no navegador da vítima que podem “sequestrar” sessões do usuário, desfigurar sites ou redirecionar o usuário para 

sites maliciosos.

4) Referência insegura e direta a objetos: uma referência insegura e direta a um objeto ocorre quando um programador expõe uma referência à implementação interna de um objeto, como um arquivo, diretório ou registro da base de dados. Sem a verificação do controle de acesso ou outra proteção, os atacantes podem manipular essas referências para acessar dados não autorizados

5) Configuração incorreta de segurança: uma boa segurança exige a definição de uma configuração segura e implementada na aplicação, frameworks, servidor de aplicação, servidor web, bancos de dados e plataforma. Todas essas configurações devem ser definidas, implementadas e mantidas, já que geralmente a configuração padrão é insegura. Adicionalmente, o software deve ser mantido atualizado.

6) Exposição de dados sensíveis: muitas aplicações web não protegem devidamente os dados sensíveis, tais como cartões de crédito, IDs fiscais e credenciais de autenticação. Os atacantes podem roubar ou modificar esses dados desprotegidos com o propósito de realizar fraudes de cartões de crédito, roubo de identidade ou outros crimes. Os dados 

sensíveis merecem proteção extra, como criptografia no armazenamento ou em trânsito, bem como precauções especiais quando trafegadas pelo navegador.

7) Falta de função para controle do nível de acesso: a maioria das aplicações web verifica os direitos de acesso em nível de função antes de tornar essa funcionalidade visível na interface do usuário. No entanto, as aplicações precisam executar as mesmas verificações de controle de acesso no servidor quando cada função é invocada. Se essas requisições não forem verificadas, os atacantes serão capazes de forjar as requisições, com o propósito de acessar a funcionalidade sem autorização adequada.

8) Cross-Site Request Forgery (CSRF): um ataque CSRF força a vítima que possui uma sessão ativa em um navegador a enviar uma requisição HTTP forjada, incluindo o cookie da sessão da vítima e qualquer outra informação de autenticação incluída na sessão, a uma aplicação web vulnerável. Essa falha permite ao atacante forçar o navegador da vítima a criar requisições que a aplicação vulnerável aceite como requisições legítimas realizadas pela vítima.

9) Utilização de componentes vulneráveis conhecidos: componentes tais como bibliotecas, frameworks e outros módulos de software quase sempre são executados com privilégios elevados. Se um componente vulnerável é explorado, um ataque pode causar sérias perdas de dados ou comprometer o servidor. As aplicações que utilizam componentes 

com vulnerabilidades conhecidas podem minar as suas defesas e permitir uma gama de possíveis ataques e impactos.

10) Redirecionamentos e encaminhamentos inválidos: aplicações web frequentemente redirecionam e encaminham usuários para outras páginas e sites e usam dados não confiáveis para determinar as páginas de destino. Sem uma validação adequada, os atacantes podem redirecionar as vítimas para sites de phishing ou malware ou usar encaminhamentos para acessar páginas não autorizadas.

Muitas são as metodologias de defesa para esses ataques, porém a equipe deve pensar em cada um dos riscos que está correndo para já implementar uma solução. 

Para uma companhia ou equipe de programação que busca alcançar a maturidade no processo de programação segura, é essencial implementar um modelo ou metodologia bem definida. É imprescindível que uma metodologia de desenvolvimento focada em segurança inclua os seguintes elementos.

  • Definição clara dos papéis e responsabilidades; 
  • Equipes de desenvolvimento com formação adequada em segurança no processo de desenvolvimento de aplicações; 
  • Implementação de ciclo de desenvolvimento de software seguro; 
  • Definição de padrões de programação segura; • Construção de bibliotecas reutilizáveis ou utilização de uma biblioteca de segurança; 
  • Verificação da efetividade dos controles de segurança; 
  • Definição de práticas para garantir a segurança quando há terceirização no desenvolvimento, com a inclusão dos requisitos de segurança e metodologias definidas.

Vale destacar que um dos métodos de desenvolvimento seguro mais conhecido é o SDL (Secure Development Lifecycle) da Microsoft, deixarei os detalhes desse modelo para um próximo artigo.

REFERÊNCIAS BIBLIOGRÁFICAS

HOLANDA, Maristela T.; FERNANDES, Jorge H. C. Segurança no desenvolvimento de aplicações. Gestão da Segurança da Informação e Comunicações. CEGSIC 2009-2011, 2011.Acessado em: 21 mar. 2023.

OWASP. OWASP TOP 10. (2013). Disponível em: https://www.owasp.org/index.php/ Category: OWASP Top Ten Project. Acessado em: 22 mar. 2023.

SANS. SANS 2009: The Top Cyber Security Risks. Disponível em: http://www.sans.org/top-cyber-security-risks/. Acessado em: 21 mar. 2023.

SOUZA, Rafael F. OWASP Top 10 2017 Release Candidate. (2017). Disponível em: https://cipher.com/ br/2017/04/16/owasp-top-10-2017-release-candidate/. Acessado em: 21 mar. 2023.

TRUSTWAVE. 2017 Trustwave Global Security Report. (2017). Disponível em: https://www.trustwave.com/ Resources/Global-Security-Report-Archive/. Acessado em: 21 mar. 2023.

Compartilhe
Comentários (1)
David Avelino
David Avelino - 24/03/2023 22:42

Muito bom o artigo, parabéens.