sábado, 22 de marzo de 2025

Seguridad, Ciberseguridad y Desarrollo de software seguro


La seguridad seguridad informática se define como un conjunto de herramientas diseñadas para proteger los sistemas informáticos, las redes y los datos contra acceso no autorizados, ataques cibernéticos daños o posibles perdidas de información. Donde su principal objetivo es garantizar la confidencialidad, integridad y disponibilidad de la información.

Conceptos:


Confidencialidad:


Permite garantizar que la información solo puede estar disponibles para personas, sistemas o procesos autorizados. Como lo logramos, mediante controles de acceso, cifrado y políticas de seguridad con el fin de evitar las posibles filtraciones de datos.

Integridad:

Permite asegurar que los datos no seas alterados o manipulados de manera no autorizada, realizando la utilización de técnicas como firmas digitales, hash criptográficos, y los controles de acceso con el fin de validad la autenticidad de la información.

Disponibilidad:

Su objetivo es garantizar que los sistemas, redes y los datos estén accesibles cuando surja la necesidad de hacer uso por parte del usuario, con el fin de prevenir ataques y posteriormente se implementa medias como redundancia de servidores y copias de seguridad.


Autorización:

Realiza el proceso de verificar la identidad de los usuarios o los  sistemas, utilizando métodos como contraseña, autenticación biométrica, tarjetas inteligentes o autenticación multifactor con el fin de reforzar la seguridad.

Phishing:

Es uno de las técnicas utilizadas para engañar y obtener información confidencial, cuentas bancarias o contraseñas personales, como mediante correos electrónicos, sitios web falsificados.

Malware:

Se refiere a cualquier software malicioso diseñado para dañar o infiltrarse en sistemas informáticos. Incluye virus, gusanos, troyanos, ransomware y spyware, que pueden robar información o dañar dispositivos.


Criptografía:

Es el uso de técnicas matemáticas para cifrar y proteger la información. Se aplica en comunicaciones seguras, almacenamiento de datos y autenticación mediante protocolos como SSL/TLS, AES y RSA.

Respaldo y recuperación:

Estrategias para proteger datos ante fallos, ataques o desastres. Implican la realización periódica de copias de seguridad y la implementación de planes de recuperación ante desastres para minimizar el impacto de pérdidas de datos


CIBERSEGURIDAD



Es una de las necesidad a nivel mundial, ya que nos permite implementar buenas practicas y herramientas adecuadas donde se puedan prevenir ataques y proteger la información. Abarcando un ámbito mas amplio, incluyendo la protección de la infraestructura digitales, redes, aplicaciones y entre otras.

Confidencialidad:

Puede llegar a evitar que la información sea accesible para personas no autorizadas.

Integridad:

Permite proteger los datos contra las modificaciones no autorizadas

Disponibilidad:

Ejecuta asegurando que la información y los sistemas estén siempre accesible.


BASES TEORICAS DE DESARROLLO DE SOFTWARE



















El desarrollo de software es un proceso estructurado que involucra metodologías, principios y teorías fundamentales para la creación de programas y sistemas informáticos eficientes. Estas bases teóricas se apoyan en diversas disciplinas como la ingeniería de software, la informática y la gestión de proyectos.

Principios fundamentales del desarrollo del software


Ingeniería de software


La ingeniería de software es la disciplina que aplica principios científicos y matemáticos al diseño, desarrollo, implementación y mantenimiento de software. Su objetivo es garantizar calidad, escalabilidad y eficiencia en los productos de software.


Ciclo de vida del software

Las etapas por las que atraviesa un software desde su concepción hasta su retiro. Los modelos más utilizados incluyen:

  • Cascada (Waterfall): Secuencial y estructurado.

  • Desarrollo Ágil: Flexible e iterativo, con metodologías como Scrum y Kanban.

  • Modelo en Espiral: Basado en iteraciones con evaluación de riesgos.

  • Modelo V: Similar al cascada, pero con pruebas en cada fase.

Metodología de desarrollo de software


Desarrollo Ágil


Es un enfoque iterativo e incremental que permite adaptarse a cambios y mejorar continuamente el software. De acuerdo a las siguientes metodologías (Scrum, Kanban y Extreme Programming XP)

Herramientas y tecnologías en el desarrollo de software


Existen diferentes leguajes de programación XP (Java, C#, Python, JavaScript, HTML, CSS, Swift, Kotlin, SQL, NoSQL - Relacionales (SQL) – PostgreSQL, MySQL, SQL Server.)

Calidad y seguridad en el desarrollo de software


Las pruebas son esenciales para detectar errores antes del despliegue, donde se integran las pruebas de software y las pruebas de seguridad en el desarrollo del software.

Amenazas, riesgos y vulnerabilidad en el desarrollo de software




El desarrollo de software conlleva riesgos que pueden comprometer la seguridad, integridad y funcionalidad de una aplicación. Es fundamental conocer las amenazas más comunes, los riesgos asociados y las vulnerabilidades que pueden ser explotadas por atacantes.

Ataques de inyección


Los atacantes inyectan código malicioso en una aplicación para manipular bases de datos o ejecutar comandos no autorizados.
Ejemplo: Inyección SQL (SQL Injection), inyección de comandos.
Impacto: Robo de datos, acceso no autorizado.
Mitigación: Uso de consultas parametrizadas y validación de entradas.

Cross-Site Request Forgery (CSRF)


Engaña a un usuario autenticado para realizar acciones no deseadas en una aplicación web.

  • Un atacante envía un enlace malicioso que ejecuta una transferencia de dinero sin el consentimiento del usuario.

  • Manipulación de cuentas, cambios de configuración sin autorización.

  • Uso de tokens CSRF y validaciones en el servidor.


Malware y Ransomware


Software malicioso diseñado para dañar sistemas o robar información
Ejemplo: Ransomware que cifra los datos y exige un pago para su recuperación.
Impacto: Pérdida de datos, interrupción de operaciones.
Mitigación: Uso de antivirus, copias de seguridad y segmentación de redes.

Pérdida de Control de Accesos


Fallas en la autenticación y autorización pueden permitir accesos indebidos
Ejemplo: Un usuario con permisos básicos accede a información de administrador.
Impacto: Filtración de datos, manipulación de sistemas.
Mitigación: Implementación de principios de mínimos privilegios y autenticación multifactor (MFA


Riesgos asociados:





             Aplicaciones o softwares en los que la seguridad se haya visto
                           comprometida o amenazada



 Caso Facebook (2019) – Exposición de Contraseñas en Texto Plano


Facebook reveló que almacenó millones de contraseñas de usuarios en texto plano dentro de sus sistemas internos, lo que permitió que empleados de la empresa accedieran a ellas sin restricciones.

Causa de la vulnerabilidad
  • No se implementó el cifrado de contraseñas en bases de datos internas.

  • Prácticas inadecuadas de seguridad en el desarrollo y almacenamiento de datos sensibles.

Consecuencias    

Más de 600 millones de contraseñas expuestas de usuarios de Facebook e Instagram.
Riesgo de filtración y uso indebido de credenciales.
Daño a la reputación de Facebook y pérdida de confianza de los usuarios.

Lección aprendida: Es fundamental cifrar todas las credenciales almacenadas y aplicar buenas prácticas de seguridad en la gestión de datos sensibles.


Caso Uber (2016) – Robo de Datos de Usuarios y Conductores


Dos hackers accedieron a una base de datos privada de Uber a través de credenciales almacenadas en un repositorio público de GitHub.

Causa de la vulnerabilidad

  • Uber guardó credenciales de acceso a su base de datos en un repositorio GitHub público.

  • Los atacantes utilizaron esas credenciales para acceder a datos de los usuarios.

. 57 millones de registros comprometidos, incluidos nombres, correos electrónicos y números de teléfono de usuarios y conductores

Uber pagó $100,000 a los atacantes para que eliminaran la información y guardaran silencio.

Multas por ocultar la brecha de seguridad y falta de transparencia.

Lección aprendida: Nunca almacenar credenciales en repositorios públicos y usar herramientas como GitHub Secrets o Vault para proteger información sensible.

REFLEXION


En la era digital, la seguridad en el desarrollo de software es un pilar fundamental para garantizar la confidencialidad, integridad y disponibilidad de la información. No solo protege a las empresas de ataques cibernéticos, sino que también salvaguarda la privacidad de millones de usuarios que confían en aplicaciones y plataformas para realizar transacciones, almacenar datos personales y comunicarse.


El desarrollo de software no puede verse únicamente desde una perspectiva técnica o comercial. La seguridad debe ser un principio fundamental, no un complemento opcional. Garantizar la privacidad de los usuarios no solo fortalece la confianza en los sistemas digitales, sino que también contribuye a una sociedad más segura y justa.

Seguridad, Ciberseguridad y Desarrollo de software seguro

La seguridad seguridad informática se define como un conjunto de herramientas diseñadas para proteger los sistemas informáticos, las redes y...