Introdução:
A capacidade de proteger redes, dispositivos e dados contra acessos não oficiais ou utilização ilícita é conhecida como cibersegurança. É também uma forma de garantir a confidencialidade, a integridade e a disponibilidade da informação. A segurança de aplicações é uma parte essencial da cibersegurança, pois protege os dados dentro da aplicação e impede que utilizadores não autorizados lhes acedam.
A segurança de aplicações concentra-se em identificar a funcionalidade e os métodos de utilização das aplicações, o fluxo de dados na aplicação, a lógica de negócio, as restrições de acesso e os problemas de autorização, de forma a proteger aplicações e protocolos. Seguir as Diretrizes de Desenvolvimento Seguro de Aplicações estabelecidas durante a fase de desenvolvimento da aplicação é uma parte importante da segurança de aplicações. Por exemplo, para garantir que as aplicações de negócio à medida não ficam expostas a malware, os programadores têm de adotar metodologias de desenvolvimento seguro de aplicações.
O que é a segurança de aplicações?
A conformidade de aplicações é a prática de gerar, combinar ou integrar e avaliar protocolos de segurança em aplicações para as proteger de ameaças como o acesso e a alteração ilícitos.
Porque é importante a segurança de aplicações?
Como hoje em dia as aplicações são geralmente acessíveis através de várias redes e ligadas à nuvem, estão muito mais suscetíveis a ameaças e comprometimentos de segurança. Encontrar e corrigir vulnerabilidades ajuda a minimizar a superfície de ataque global de uma organização, reduzindo os riscos de segurança.
As vulnerabilidades em software são frequentes. Mesmo as vulnerabilidades não críticas podem ser agregadas para uso em cadeias de ataque, ainda que nem todas sejam significativas. Reduzir o número de falhas e vulnerabilidades de segurança ajuda a mitigar o efeito total dos ataques.
É preferível adotar uma abordagem proativa à segurança de aplicações em vez de depender de soluções de segurança reativas. Os defensores proativos conseguem detetar e neutralizar ataques mais cedo, por vezes antes de qualquer dano ser causado.
À medida que as empresas migram mais dos seus dados, código e operações para a nuvem, o número de ataques a esses ativos tende certamente a aumentar. Esses ataques podem ser mitigados com a implementação de mecanismos de segurança de aplicações.[1]

Como funciona a segurança de aplicações?
Melhorar os procedimentos de segurança ao longo do ciclo de desenvolvimento de software e durante todo o ciclo de vida da aplicação são exemplos de medidas de segurança. Todas as operações de segurança de aplicações devem impedir que agentes maliciosos obtenham acesso não autorizado a sistemas, aplicações ou dados. O objetivo final da segurança de aplicações é impedir que os atacantes acedam, alterem ou eliminem dados sensíveis ou proprietários.
Qualquer passo executado para garantir a segurança de uma aplicação é designado contramedida ou controlo de segurança. De acordo com o Instituto Nacional de Normas e Tecnologia, "uma proteção ou contramedida recomendada para um sistema de informação ou uma organização para preservar a privacidade, a fiabilidade e a disponibilidade da sua informação e cumprir um conjunto de normas de segurança estabelecidas" (NIST).
Uma firewall de aplicações é um tipo de contramedida de software. Com base na aplicação instalada, as firewalls determinam como os ficheiros são executados e como os dados são geridos. A contramedida de hardware mais frequente são os routers. Impedem que o endereço de Protocolo de Internet (IP) de um computador individual fique imediatamente visível na internet.
As seguintes são mais algumas contramedidas:
- Barreiras padrão
- Programas de encriptação e desencriptação
- Software antivírus
- Aplicações de deteção e remoção de spyware
- Sistemas de autenticação que usam biometria
Quais são os tipos de segurança de aplicações?
A encriptação, a autenticação, o registo, a autorização e os testes de segurança de aplicações são exemplos de estruturas de segurança de aplicações. Os designers também podem usar código para atenuar falhas de segurança em aplicações.
Encriptação: Para proteger os seus dados sensíveis de pessoas não autorizadas. Os dados são encriptados para os manter a salvo de utilização não autorizada ou criminosa.
Autenticação: Refere-se aos mecanismos que os programadores de software usam num programa para garantir que apenas operadores legítimos têm acesso a ele. A confirmação verifica se o operador é quem diz ser. Isto pode ser feito pedindo ao utilizador um nome de utilizador e uma palavra-passe ao iniciar sessão numa aplicação. A autenticação combina aspetos como algo que sabe (uma palavra-passe), algo que é (a sua identidade) (uma impressão digital ou reconhecimento facial) e algo que tem (um dispositivo móvel).
Registo (logging): Se a segurança de uma aplicação for violada, o registo pode ajudar a controlar quem obteve acesso aos dados e como o fez. O percurso de quais partes do programa foram acedidas e por quem é guardado nos ficheiros de registo da aplicação.
Autorização: Depois de um operador ser verificado, pode-lhe ser concedida permissão para entrar e operar o programa. O sistema pode garantir que o colaborador tem autoridade para aceder ao programa associando a identidade do utilizador a uma lista de utilizadores aprovados. A autenticação tem de ocorrer antes da autorização para permitir que o programa compare nomes de utilizador e palavras-passe acabados de validar com a lista de utilizadores aprovados.
Testes de segurança de aplicações: os testes são um passo vital para garantir que todas estas políticas de segurança estão em vigor e a funcionar eficazmente.[2]
Quais são os controlos de segurança de aplicações?
Os controlos de segurança de aplicações são técnicas para melhorar a segurança do código compilado de um utilizador e reduzir a sua exposição a atacantes. Muitas destas opções têm a ver com a forma como o programa reage a entradas invulgares que um hacker poderia tentar explorar. Um programador pode criar código para uma aplicação que lhe dê mais controlo sobre a forma como as entradas inesperadas são tratadas. O fuzzing é um tipo de teste de segurança de aplicações em que os criadores examinam os resultados de valores ou entradas imprevistos para ver quais fazem o programa comportar-se de forma inesperada, revelando eventualmente uma falha de segurança.
Quais são as vantagens da segurança de aplicações?
- Reduz o perigo de ambas as ameaças potenciais.
- Promove a imagem da marca ao mostrar que se mantém fora das notícias negativas.
- Os dados dos consumidores são mantidos seguros e a fidelidade dos consumidores aumenta.
- Protege informações sensíveis contra fugas.
- Melhora a confiança de investidores e credores importantes.
- Loshin, P. application security. Disponível em: https://searchsoftwarequality.techtarget.com/definition/application-security.
- What is Application Security?; Disponível em: https://www.vmware.com/topics/glossary/content/application-security.html.
Vulnerabilidades comuns das aplicações
- Injeção (SQL, comandos): uma entrada não confiável altera o significado de uma consulta.
- Autenticação quebrada: palavras-passe fracas ou má gestão de sessões.
- Controlo de acesso quebrado: os utilizadores conseguem aceder a dados que não são seus.
- Cross-site scripting (XSS): scripts maliciosos executados no navegador de um visitante.
- Configuração de segurança incorreta e componentes desatualizados.
O OWASP Top 10 é a lista de referência dos riscos mais críticos das aplicações web.
Boas práticas
- Valide as entradas e use consultas parametrizadas.
- Faça hash correto das palavras-passe e ofereça autenticação multifator.
- Aplique controlo de acesso de privilégio mínimo no servidor, e não apenas na interface.
- Mantenha as bibliotecas e frameworks atualizadas.
- Teste: revisão de código, análise automatizada e testes de intrusão periódicos.
- Registe e monitorize.
Criamos aplicações web e móveis seguras com estas práticas desde a primeira linha de código.
More about application security
Want to go further with application security? These Netstech guides and services are a good next step:



