TOP 25 errores más peligrosos en el desarrollo de software

CWE (Common Weakness Enumeration) y la SANS han publicado un estudio donde enumeran los 25 errores de programación mas peligrosos en el desarrollo de software para el año 2011, en la lista encontraremos errores que mucha gente toma como inofensivos pero que realmente abren una brecha de seguridad en sus aplicaciones. El TOP 25 errores más peligrosos en el software es: No filtrar propiamente las sentencias SQL (Inyección SQL) (Puntaje 93.8) (ID CWE-89) No filtrar las llamadas al sistema de forma adecuada (Inyección en comandos del SO) (Puntaje 83.3) (ID CWE-78) No chequear el tamaño de la memoria reservada a la hora de copiar datos (desbordamiento de memoria) (Puntaje 79.0) (ID CWE-120) No detectar la inyección de scripting (XSS) (Puntaje 77.7) (ID CWE-79) No autentificar en llamada a funciones críticas (Puntaje 76.9) (ID CWE-306) No autorización (Puntaje 76.8) (ID CWE-862) Usar credenciales estáticos en el código (Puntaje 75.0) (ID CWE-798) No cifrado de datos sensibles (Puntaje 75.0) (ID CWE-311) No restringir la subida de ficheros a ciertos formatos (Puntaje 74.0) (ID CWE-434) Confiar en una fuente de datos no confiable a la hora de tomar una decisión de seguridad (Puntaje 73.8) (ID CWE-807) Ejecución con privilegios innecesarios (Puntaje 73.1) (ID CWE-250) Cross-Site Request Forgery (CSRF) (Puntaje 70.1) (ID CWE-352) No limitar el acceso al sistema de ficheros a directorios restringidos (Puntaje 69.3) (ID CWE-22) Descarga de código sin chequear la integridad del mismo (Puntaje 68.5) (ID CWE-494) Autorización incorrecta (Puntaje 67.8) (ID CWE-863) Permitir la integración de funcionalidades de fuentes no confiables (Puntaje 66.0) (ID CWE-829) Asignación de permisos incorrecta a recursos críticos (Puntaje 65.5) (ID CWE-732) Uso de funciones potencialmente peligrosas (Puntaje 64.6) (ID CWE-676) User un algoritmo de cifrado que ha sido comprometido o roto (Puntaje 64.1) (ID CWE-327) Cálculo incorrecto del tamaño de memoria (Puntaje 62.4) (ID CWE-131) No restricción a un número de intentos fallidos de acceso (Puntaje 61.5) (ID CWE-307) Redirección URL a sitios no confiables (‘Open Redirect’) (Puntaje 61.1) (ID CWE-601) Formato de cadena no controlado (Puntaje 61.0) (ID CWE-134) Desbordamiento de enterios (Puntaje 60.3) (ID CWE-190) Aplicar una función hash sin usar la sal (Puntaje 59.9) (ID CWE-759) Si cometes por lo menos uno de estos errores en el desarrollo de tus aplicaciones, no dudes en hacer click en su respectivo ID, donde encontraras toda la información necesaria para entender mejor el problema y corregirlo. Puedes descargar todo el informe en PDF o verla online en la pagina oficial de la Common Weakness...

Leer Más

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. (Arquitecto) ¿En qué fase del ciclo de vida del software contemplan la seguridad? (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...

Leer Más

DLL Hijacking con Metasploit

Aunque no es algo nuevo, últimamente se habla mucho sobre DLL Hijacking o suplantación de librerías DLL, gracias al reciente fallo de los  sistemas Microsoft Windows que permite ejecutar código malicioso, colocando la dll a suplantar en la misma carpeta del programa ejecutable, descubierto hace poco por HD Moore y explicado a fondo en su articuloExploiting DLL Hijacking Flaws, también ha publicado un kit, para buscar aplicaciones que puedan ser vulnerables a este tipo de ataque DLLHijaAuditKit. Precisamente en esta ocasión les traigo un vídeo de Offensive Security, donde nos enseñan como aprovechar este fallo en Microsoft Office 2007 utilizando el Metasploit Framework. Microsoft ha publicado una solución temporal al fallo (catalogado como critico), pero la solución es que los desarrolladores empiecen a utilizar metodologías de desarrollo seguras, para evitar que sus aplicaciones sean vulnerables. [sam_ad...

Leer Más

Como ganar dinero con Software Libre

Desde hace años, el software libre para muchos estudiantes de ingeniería sistemas es una manera de aprender y comunicar, una pasión y una diversión. Una diversión que requiere mucho tiempo. Pasada la graduación, frente a la necesidad de ganarse la vida, muchos abandonan al desarrollo del software libre para ir a trabajar al “lado oscuro” del software privado de origen extranjero. En la Campus Party Colombia 2010 Patrick Aljord nos mostró como se puede ganar la vida sin dejar a lado sus ideales de libertad y su pasión para el software libre. Se mostrará como se puede ganar dinero a través del uso y desarrollo de software libre, más precisamente el desarrollo de aplicaciones web. Veremos como se puede cumplir usando herramientas libres, simples, poderosas y económicamente accesibles para todos. Se explicará como se puede lograr siendo empleado y también siendo emprendedor en un mundo en el cual la web se hace más y más insustituible y necesaria. Les dejo el vídeo de la presentación: Y las diapositivas de la...

Leer Más

Curso de Python dictado por Google

Debido a que el curso sobre desarrollo seguro de aplicaciones web dictado por Google, fué tan bien recibido, me puse en la tarea de buscar mas contenidos similares y encontré un excelente curso de 2 días para aprender Python dictado por Google a sus desarrolladores. El curso de  Python dictado por Google es totalmente gratuito y se enfocada en personas con un poco de experiencia en programación que quieran aprender Python. Las clase incluye materiales escritos, vídeos de conferencias, y un montón de ejercicios para practicar el código Python. Estos materiales se utilizan en Google para introducir Python a personas que acaban de experimentar un poco de programación. Los primeros ejercicios de trabajo en los conceptos básicos de Python como cadenas y listas, hasta llegar a los ejercicios posteriores que se trata de programas completos archivos de texto, los procesos y las conexiones http. La clase está dirigida para personas que tienen un poco de experiencia en programación en algún lenguaje, lo suficiente para saber lo que es una “variable” o un “if” . Más allá de eso, no es necesario ser un programador experto para usar este material. 1.1 Introducción las cadenas 1.2 Listas de  y ordenamiento 1.3 Manejo de archivos 2.1 Expresiones Regulares 2.2 Utilidades 2.3 Utilidades (urllib) 2.4 Conclusiones El material mencionado en los videos, lo puedes encontrar en la pagina oficial del Curso de Python dictado por Google. Tambien te puede interesar: Documentación de Python en Español Aprender Python (excelente sitio para aprender python en...

Leer Más

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES