stringtranslate.com

Auditoría de código

Una auditoría de código de software es un análisis integral del código fuente en un proyecto de programación con la intención de descubrir errores, violaciones de seguridad o violaciones de las convenciones de programación. Es una parte integral del paradigma de programación defensiva , que intenta reducir los errores antes de que se lance el software. El código fuente C y C++ es el código más común que se audita, ya que muchos lenguajes de nivel superior, como Python, tienen menos funciones potencialmente vulnerables (por ejemplo, funciones que no verifican los límites) [ cita necesaria ] .

Pautas

Al auditar software, cada componente crítico debe auditarse por separado y junto con todo el programa. Es una buena idea buscar primero las vulnerabilidades de alto riesgo y trabajar hasta las vulnerabilidades de bajo riesgo. Las vulnerabilidades entre alto y bajo riesgo generalmente existen dependiendo de la situación y de cómo se utiliza el código fuente en cuestión. Las pruebas de penetración de aplicaciones intentan identificar vulnerabilidades en el software lanzando tantas técnicas de ataque conocidas como sea posible en posibles puntos de acceso en un intento de desactivar la aplicación. [1] Este es un método de auditoría común y se puede utilizar para descubrir si existen vulnerabilidades específicas, pero no dónde se encuentran en el código fuente. Algunos afirman que los métodos de auditoría de fin de ciclo tienden a abrumar a los desarrolladores y, en última instancia, dejan al equipo con una larga lista de problemas conocidos, pero pocas mejoras reales; en estos casos, se recomienda como alternativa un enfoque de auditoría en línea.

Vulnerabilidades de alto riesgo

Pueden existir algunas vulnerabilidades comunes de alto riesgo debido al uso de:

Vulnerabilidades de bajo riesgo

La siguiente es una lista de vulnerabilidades de bajo riesgo que se deben encontrar al auditar el código, pero que no producen una situación de alto riesgo.

Herramientas

Las herramientas de auditoría de código fuente generalmente buscan vulnerabilidades comunes y solo funcionan para lenguajes de programación específicos . Estas herramientas automatizadas podrían utilizarse para ahorrar tiempo, pero no deberían utilizarse para realizar una auditoría en profundidad. Se recomienda aplicar dichas herramientas como parte de un enfoque basado en políticas. [3]

Dependencia de los requisitos

Si se establece en un umbral bajo, la mayoría de las herramientas de auditoría de software detectan muchas vulnerabilidades, especialmente si el código no ha sido auditado antes. Sin embargo, la importancia real de estas alertas también depende de cómo se utiliza la aplicación. La biblioteca que puede estar vinculada con el código malicioso (y debe ser inmune a él) tiene requisitos muy estrictos, como la clonación de todas las estructuras de datos devueltas, ya que se esperan intentos intencionales de dañar el sistema. El programa que solo puede estar expuesto a entradas maliciosas (como el servidor web) primero debe preocuparse por esta entrada (desbordamientos de búfer, inyección de SQL, etc.). Es posible que tales ataques nunca ocurran para el programa que solo es utilizado internamente por usuarios autorizados en una infraestructura protegida.

Ver también

Referencias

  1. ^ "Auditoría de código fuente: preguntas frecuentes". Archivado desde el original el 10 de febrero de 2009 . Consultado el 12 de febrero de 2008 .
  2. ^ abc "Pautas para la auditoría del código fuente C". Archivado desde el original el 28 de marzo de 2008 . Consultado el 12 de febrero de 2008 .
  3. ^ "El análisis estático al final del SDLC no funciona Archivado el 15 de octubre de 2010 en Wayback Machine " por Wayne Ariola, SearchSoftwareQuality.com, 22 de septiembre de 2008