Curriculum
Bem-vindo/a à subunidade dedicada à proteção de terminais, um aspeto essencial para todas as Pequenas e Médias Empresas (PME) na atual era digital. Esta secção é dedicada à importância, conceitos básicos e princípios do desenvolvimento de software seguro. São explicados os conceitos de segurança de software, sublinhando as etapas básicas do processo de desenvolvimento de software seguro. Além disso, ao centrar-se nas competências necessárias para a prática do desenvolvimento de software seguro, os participantes serão incentivados a reduzir as vulnerabilidades de segurança e a criar software mais resistente às ameaças cibernéticas.
Trata-se de uma abordagem à criação de software informático que realça a importância de considerar a segurança em todas as fases do processo de desenvolvimento. É uma estratégia proativa e abrangente para evitar que as vulnerabilidades e ameaças à segurança afetem as aplicações de software. Eis um olhar mais aprofundado sobre o conceito:

Figura-1
(Fonte: https://integrio.net/blog/improving-software-security)
A segurança no SDLC é um aspeto fundamental, que exige atenção em todas as fases do desenvolvimento. A integração da segurança no SDLC garante que o software é concebido com uma forte defesa contra potenciais ciberameaças, que são cada vez mais sofisticadas e estão em constante mudança. Ao priorizar a segurança desde o início, os programadores podem identificar e atenuar as vulnerabilidades numa fase precoce, o que é muito mais económico do que resolver estes problemas depois de o software ter sido implementado. A deteção precoce não só poupa dinheiro, como também reduz a complexidade das correções e o risco de introdução de novos problemas durante a mesma.

Figura 2
(Fonte: https://softprodigy.com/secure-software-development-life-cycle-navigate-your-way-to-security/)
O desenvolvimento seguro é um aspeto essencial da engenharia de software moderna que se concentra na incorporação de princípios de segurança em todas as fases do SDLC. Ao seguir princípios de desenvolvimento seguro, as organizações podem produzir software resistente a ciberameaças, capaz de proteger os dados do utilizador e manter a funcionalidade mesmo quando está sob ataque. Eis alguns dos princípios fundamentais do desenvolvimento seguro:
-integração proativa da segurança: implica considerar os pressupostos de segurança durante a fase de conceção, escolher estruturas e bibliotecas seguras e assegurar que os requisitos de segurança são definidos juntamente com os requisitos funcionais;
-privilégio mínimo: o software deve funcionar com o nível mínimo de privilégios necessário para realizar as suas tarefas. Este princípio limita os danos potenciais que podem ocorrer se o software for comprometido. Aplica-se não só ao próprio software, mas também aos utilizadores e sistemas que interagem com ele;
-defesa em profundidade: nenhuma medida de segurança é infalível, pelo que a utilização de vários níveis de controlos de segurança (físicos, técnicos, administrativos) pode proporcionar redundância e reduzir o risco de um único ponto de falha;
-falha segura: quando o software encontra um erro, deve falhar de uma forma que não comprometa a segurança;
-segurança desde a conceção: a segurança deve ser uma parte integrante da conceção do software;
-testes de segurança regulares: devem ser um processo contínuo e não apenas um evento único antes da implementação;
-princípio da menor divulgação (POLK): estabelece que um sistema não deve expor mais informações ou funcionalidades do que as necessárias para o objetivo pretendido;
-predefinições seguras: as definições de configuração predefinidas do software devem ser seguras logo à partida, exigindo que os utilizadores optem por configurações menos seguras apenas se assim o desejarem;
-conceção aberta: a conceção do software deve estar aberta à análise de peritos, uma vez que a transparência pode conduzir a soluções de segurança mais robustas;
-validação e verificação de entradas: podem evitar ataques comuns, como injeção de SQL, XSS (cross-site scripting) e outros;
-gestão de patches: manter o software atualizado é crucial para a segurança. Deve ser implementado um processo para aplicar rapidamente patches e atualizações quando são descobertas vulnerabilidades;
-resposta e recuperação de incidentes: as organizações devem ter planos para responder a incidentes de segurança;
-formação e consciencialização: todos os intervenientes, incluindo os programadores, os testadores e os utilizadores finais, devem ser informados sobre a importância da segurança.

Figura-3
(Fonte: https://www.semanticscholar.org/paper/SECURE-SOFTWARE-DEVELOPMENT-FRAMEWORK-%3A-PRINCIPLES)
Not a member yet? Register now
Are you a member? Login now