Patrones de diseño seguro, frameworks de seguridad en lenguajes

¿Qué es Patrones de diseño seguro, frameworks de seguridad en lenguajes?

La clave de para desarrollar software seguro es conocer las peculiaridades del lenguaje que se está utilizando, así como crear algoritmos seguros y utilizar componentes conocidos y verificados por la comunidad (tanto la que lo mantiene como la que hace uso del mismo).

En este caso podemos identificar el uso de lenguajes, frameworks, librerías, patrones de diseño, etc... Como los elementos en los que deben seguir guías de buenas prácticas.

 

Cheat Sheets de OWASP

El primer enlace que deberías visitar: https://cheatsheetseries.owasp.org/

ProjectLogoOfficial

Guías de Desarrollo Seguro

Guía de Desarrollo Seguro general de OWASP

Para consultarla puede consultar los siguientes enlaces:

Castellano (v2.0)

Inglés (2.0.1 y 3.0 beta)

Guías de Desarrollo Seguro

Guías de buenas prácticas

Tecnología

Recurso

Tecnología

Recurso

IoT

https://github.com/scriptingxss/owasp-fstm (Metodología)

https://www.incibe-cert.es/blog/iot-protocolos-comunicacion-ataques-y-recomendaciones

https://www.enisa.europa.eu/publications/good-practices-for-security-of-iot-1

https://www.enisa.europa.eu/publications/baseline-security-recommendations-for-iot

https://www.enisa.europa.eu/publications/towards-secure-convergence-of-cloud-and-iot

Cloud

https://www.ismsforum.es/ficheros/descargas/enisa-2009-0036-00-00-enes1330683644.pdf (castellano)

https://www.enisa.europa.eu/publications/cloud-computing-risk-assessment (Inglés)

Técnicas de Anonimización

https://www.enisa.europa.eu/publications/pseudonymisation-techniques-and-best-practices

Protección de datos (Móvil)

https://www.enisa.europa.eu/publications/privacy-and-data-protection-in-mobile-applications

Microservicios

https://owasp.org/www-pdf-archive/Microservice_Security.pdf

https://cheatsheetseries.owasp.org/cheatsheets/Microservices_based_Security_Arch_Doc_Cheat_Sheet.html

Docker

https://snyk.io/blog/10-docker-image-security-best-practices/

CMS Headless

Headless CMS

WordPress Headless

Wordpress Headless

API

https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html

https://securityaffairs.co/wordpress/104038/hacking/api-security.html

Web Service

https://cheatsheetseries.owasp.org/cheatsheets/Web_Service_Security_Cheat_Sheet.html

Frameworks

Normalmente todos los frameworks actuales contienen sus propios componentes para garantizar la seguridad. Siguiendo el principio "DRY"  (Don't Repeat Yourself, en castellano ¡No Te Repitas!)

Área

Framework

Aspecto a tratar

Recursos

Área

Framework

Aspecto a tratar

Recursos

Arquitectura

Spring STS (java)

 

 

Validación de Beans

https://cheatsheetseries.owasp.org/cheatsheets/Bean_Validation_Cheat_Sheet.html

Validaciones por anotaciones

https://onesaitplatform.atlassian.net/wiki/spaces/technologyDocEs/pages/3796213259

https://spring.io/guides/gs/validating-form-input/

https://github.com/spring-guides/gs-validating-form-input

Configuración básica

https://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity.html

https://owasp.org/www-community/OWASP_Validation_Regex_Repository

Listado de CVE por versión

https://snyk.io/vuln/maven:org.springframework:spring

https://snyk.io/vuln/maven:org.springframework.security%3Aspring-security-core

https://snyk.io/vuln/maven:org.springframework.security:spring-security-web

Recomendaciones generales de Seguridad

https://snyk.io/blog/spring-boot-security-best-practices/

https://spring.io/guides/gs/securing-web/

Validación en Formularios

https://spring.io/guides/gs/handling-form-submission/

https://spring.io/guides/gs/validating-form-input/

Hibernate (Database)

Buenas prácticas

https://owasp.org/www-community/Hibernate

https://thorben-janssen.com/hibernate-best-practices/

NodeJS

Recomendaciones generales de Seguridad

https://snyk.io/blog/ten-npm-security-best-practices/

Listado de CVE por versión

https://snyk.io/vuln/npm:npm

UX

Vue.JS

Recomendaciones generales de Seguridad

https://vuejs.org/v2/guide/security.html

Listado de CVE por versión

https://snyk.io/vuln/npm:vue

Wordpress

Recomendaciones generales de Seguridad

https://wordpress.org/support/category/security/

https://sucuri.net/guides/wordpress-security/

https://blog.sucuri.net/2019/05/wordpress-hacks-5-ways-to-protect-wordpress-from-hacking.html

https://www.wpbeginner.com/wordpress-security/

Listado de CVE por versión

https://onesaitplatform.atlassian.net/wiki/spaces/technologyDocEs/pages/3796213176

Patrones de Diseño (Seguros)

De todos es sabido que los patrones de diseño son estándares verificados y muy útiles para desarrollar en común software. En este caso hacemos mención a un punto que a veces no se abarca de manera correcta, como e la seguridad. Los patrones de diseño no solo deben ser efectivos en sus funciones sino que además deben garantizar que realizan esta función de la manera para las que fueron ideados y libres de vulnerabilidades.

Para ello te recomendamos la siguiente lectura:

PDF

Enlaces de interés

Tecnología

Tipo

Enlace

Descripción

Tecnología

Tipo

Enlace

Descripción

 

Memoria virtual

https://www.internalpointers.com/post/introduction-virtual-memory

Introducción a la arquitectura de la memoria virtual

Java

Recolector de basura

https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

Documentación del funcionamiento del recolector de basura de Java. El conocer como funciona puede ayudar a entender cómo se gestiona la memoria en términos de recursos.

Java (10+)

Inferencia de tipos de datos

https://snyk.io/blog/local-type-inference-java-cheat-sheet/

Buenas prácticas de creación y uso de las variables.

NodeJS

Gestión de versiones

https://github.com/nvm-sh/nvm

Este desarrollo permite tener varias instancias diferentes de npm, de manera que con un comando seleccionamos la versión que deseamos (también instalarla). De esta manera podemos probar que los proyectos funcionan con las versiones más recientes de NodeJS, lo cual es sumamente recomendable.

Puedes comprobar los CVE en este enlace.

Tomcat

Bastionado

https://wiki.owasp.org/index.php/Securing_tomcat

Eliminación de versiones en los mensajes de error.