miércoles, 9 de diciembre de 2015

3.5 Seguridad en aplicaciones



Un efecto secundario del crecimiento exponencial que ha tenido el Internet es la privacidad de información tanto personal como profesional. En Internet encontramos funcionando a tiendas en línea, negocios que mueven grandes cantidades de dinero, redes de los servicios que habilitan el comercio a nivel internacional así como sitios de redes sociales que contienen información muy delicada de la vida privada de sus miembros.

Mientras más se conecta el mundo, la necesidad de seguridad en los procedimientos usados para compartir la información se vuelve más importante. Desde muchos puntos de vista, podemos creer sin dudar que el punto más crítico de la seguridad del Internet, lo tienen las piezas que intervienen de forma directa con las masas de usuarios, los servidores web.

Respecto a los servidores web, es común escuchar sobre fallas en los sistemas de protección de los servidores más frecuentemente utilizados (Apache, IIS, etc.), o en los lenguajes de programación en los que son escritas las aplicaciones que son ejecutadas por estos servidores. Pero es un hecho, que la mayoría de los problemas detectados en servicios web no son provocados por fallas intrínsecas de ninguna de estas partes, ya que una gran cantidad de los problemas se generan por malos usos por parte de los programadores.

Ahora que sabemos que la mayoría de los problemas de seguridad en los sitios web se encuentran a nivel aplicación y que son el resultado de escritura defectuosa de código, debemos entender que programar aplicaciones web seguras no es una tarea fácil, ya que requiere por parte del programador, no únicamente mostrar atención en cumplir con el objetivo funcional básico de la aplicación, sino una concepción general de los riesgos que puede correr la información contenida, solicitada y recibida por el sistema. En la actualidad, aunque existen muchas publicaciones que permiten formar un criterio sobre el tema, no existen acuerdos básicos sobre lo que se debe o no se debe hacer, y lo que en algunas publicaciones se recomienda, en otras es atacado. Sin embargo, en lo sustancial sí existen algunas recomendaciones que son generales y serán las que describamos en este artículo.

Hablaremos de los problemas esenciales de seguridad que solemos encontrar en las aplicaciones PHP, además, daremos consejos para evitar cometer los mismos errores, si bien, la mayoría de los problemas (sino es que todos) revisados serán para código PHP, los mismos consejos suelen aplicar para otros lenguajes de tecnologías similares que por lo mismo enfrentan problemas parecidos y cuya solución es la misma, sólo con las variantes propias del lenguaje.





Las organizaciones confían cada vez más en las aplicaciones de software para poner en marcha las iniciativas de negocio más importantes. Como tal, la seguridad de las aplicaciones debe ser competencia principal de la estrategia de seguridad de la organización.
El equipo de investigación de IBM X-Force pone de manifiesto constantemente que un porcentaje significativo de las vulnerabilidades de la seguridad proceden de las aplicaciones móviles y web. Para abordar con eficacia los retos que presenta la seguridad de las aplicaciones, las organizaciones tienen que probar el software y las aplicaciones en todo el portfolio de soluciones. Y para reducir los costes en seguridad, las pruebas y verificaciones han de realizarse lo antes posible.
Nuestras soluciones de seguridad de aplicaciones permiten a su organización:
  • Mejorar la efectividad de los esfuerzos de gestión de programas de seguridad de aplicaciones
  • Evaluar las vulnerabilidades del código del software y de aplicaciones web o móviles.
  • Automatizar la correlación de los resultados de las pruebas de aplicaciones estáticas y dinámicas
  • Optimizar una única consola para gestionar las pruebas, los informes y las políticas de la aplicación.
  • Aprovechar al máximo las funcionalidades líderes del sector del equipo de investigación sobre seguridad de las aplicaciones, que incluyen:
  • Prueba estructural o de caja de cristal, un tipo de prueba interactiva de la seguridad de la aplicación (IAST).
La mayoría de las aplicaciones web son usadas como un conducto entre muchas fuentes de datos y el usuario, esto es, las aplicaciones web son usadas frecuentemente para interactuar con una base de datos.
Aunque el tema de la seguridad en las bases de datos merece un tratamiento diferente al de las aplicaciones web, se encuentran íntimamente relacionados.
Como hemos mencionado en secciones anteriores, toda entrada al sistema debe ser filtrada, y toda salida escapada. Lo mismo aplica cuando las entradas o salidas son de o hacia una base de datos.
Muchos programadores no dan importancia al filtrado de datos provenientes de una consulta a la base de datos, debido a que consideran a esta fuente como confiable. Aunque el riesgo a primera vista parecería menor, es una práctica recomendable no confiar en la seguridad de la base de datos e implementar la seguridad a fondo y con redundancia. Si algún dato malicioso pudiera haber sido inyectado a la base de datos, nuestra lógica de filtrado puede percatarse de ello, pero sólo si se ha implementado este mecanismo.



 

No hay comentarios:

Publicar un comentario