Seguridad Informática, un reto para la Ingeniería del Software o una necesidad

Para este primer artículo quise tocar un tema que me llama mucho la atención y que es un gran reto para los Ingenieros de software y profesionales relacionados en este campo en cuál es la seguridad. Para esto quiero enfatizarme en el ciclo de vida del software el cual es utilizado por los ingenieros de software, arquitectos entre otros profesionales involucrados en la rama, pero que tan efectivo es la metodología usada por estos profesionales en los desarrollos de software que realizan, esto lo menciono porque la mayoría de profesionales en el campo del software nunca piensan en el tema de la seguridad sino en cumplir con su meta u objetivo a alcanzar, pero ¿que tan valido es este punto de vista? en esta época donde la seguridad a tomado mucha importancia para las empresas y personas consientes que saben que la información que manejan es de mayor importancia y no puede ser mostrada divulgada a todo el mundo. Con esto quiero recalcar que la seguridad es importante aplicarla al ciclo de vida del software para con el fin de tener calidad en los productos desarrollados y cumplir con los tres objetivos de la seguridad que son la integridad, confidencialidad y disponibilidad ya que en esta época la tecnología va creciendo donde y encontramos que la información que necesitan las personas ya es accesible desde internet, con esto quiero enfatizar que la seguridad debe ser aplicada en cada fase del ciclo de vida del software para no tener dificultades más adelante en el diseño, arquitectura, pruebas entre otros.

Después de tocar este tema de mayor importancia por los profesionales de seguridad hay dos preguntas que siempre les realizo a los arquitectos y gerentes de proyectos.

  1. (Arquitecto) ¿En qué fase del ciclo de vida del software contemplan la seguridad?
  2. (Gerentes de Proyectos) ¿En los cronogramas donde se estima el tiempo para pruebas de seguridad?

Para la primera pregunta la mayoría de arquitectos responde las pruebas son realizadas al final del desarrollo ya que en ese momento podemos detectar los bug y corregirlos, pues lastimosamente para estos arquitectos la respuesta es incorrecta ya que las pruebas de seguridad deben estar en cada fase del ciclo de vida del software ya que entre más temprano encontremos problemas de seguridad más rápido podemos abordarlas y tendremos menos costo.

La segunda pregunta es una de mis favoritas porque la mayoría de gerentes de proyectos se queda callados como si les estuviera haciendo una pregunta para medirlos que tanto saben, pero no es así, esta pregunta la realizo porque en ningún cronograma que allá visto en mi vida como ingeniero de software exponen un tema de pruebas de seguridad, ¿pero a qué se debe esto? Una de las razones es la falta de conciencia y la metodología de enseñanza que aplican las universidades donde nunca abordan este tema y que es de mayor importancia para todo el mundo no solo para los profesionales involucrados con las NTIC .

Después de haber Mencionado estos aspectos y en mi poca experiencia profesional como ingeniero de software recalco una de las mejores guías o estándares que me he encontrado en temas de seguridad y que debería utilizar todos los ingenieros de software y personas involucrados en estas ramas el cual es OWASP donde el punto vital de ellos es demostrar que la seguridad de la información y el software puede operar junto para poder tener un producto de software que tengan los más grandes estándares de calidad esto se obtiene realizando las pruebas de seguridad que se le debería realizar a todos nuestros productos donde esté involucrado el software.

Buenos para los que no conocen que es owasp le dare una breve introduccion sacada de internet la cual dice que OWASP es un proyecto de código abierto dedicado a determinar y combatir las causas que hacen que el software sea inseguro. .

La Fundación OWASP es un organismo sin ánimo de lucro que apoya y gestiona los proyectos e infraestructura de OWASP. La comunidad OWASP está formada por empresas, organizaciones educativas y particulares de todo mundo. Juntos constituyen una comunidad de seguridad informática que trabaja para crear artículos, metodologías, documentación, herramientas y tecnologías que se liberan y pueden ser usadas gratuitamente por cualquiera.
Por último y unos de mis favoritos es el Top 10 del 2010 que saca OWASP encontramos:

  1. Inyecciones: Vulnerabilidades de inyección de código, desde SQL hasta comandos del sistema.
  2. Cross-site Scripting: Una de las vulnerabilidades más extendidas y a la par subestimada.
  3. Gestión defectuosa de sesiones y autenticación: Comprende los errores y fallos en las funciones de gestión de sesiones y autenticación.
  4. Referencias directas a objetos inseguras: Errores al exponer partes privadas o internas de una aplicación sin control y accesibles públicamente.
  5. Cross-site Request Forgery.: Vulnerabilidad consistente en el desencadenamiento de acciones legitimas por parte un usuario autenticado, de manera inadvertida por este último y bajo el control de un atacante.
  6. Ausencia de, o mala, configuración de seguridad.: Más que un error en el código se trata de la falta o mala configuración de seguridad de todo el conjunto de elementos que comprende el despliegue de una aplicación web, desde la misma aplicación hasta la configuración del sistema operativo o el servidor web.
  7. Almacenamiento con cifrado inseguro: Referida a la ausencia o mal uso de los sistemas de cifrado en relación a los datos almacenados o manejados por la aplicación.
  8. Falta de restricciones en accesos por URL: Falta de validación en el procesamiento de URLs que podrían ser usadas para invocar recursos sin los derechos apropiados o páginas ocultas.
  9. Protección insuficiente de la capa de transporte: Relacionada con A7 pero orientada a la protección del tráfico de red. Elección de un cifrado débil o mala gestión de certificados.
  10. Datos de redirecciones y destinos no validados: Errores en el tratamiento de redirecciones y uso de datos no confiables como destino.

Bueno para finalizar quiero retar a los lectores que utilicen las métricas provistas por OWASP y categoricen en cuál de las 10 posiciones de vulnerabilidades se encuentran, y si su respuesta es ninguna le aconsejo que realice las pruebas con más detalle ya que los que estamos en el mundo de la seguridad y el software sabemos que un producto no es 100% seguro, como lo hacemos ver.

Pablo Andrés Garzón
Estudiante de Maestría en Dirección Estratégica en ingeniería de Software
Colombia

Subir