Exploración de seguridad para aplicaciones de escritorio

5

Nuestra empresa desarrolla aplicaciones de escritorio de Windows. Ofrecemos soluciones listas para usar, no desarrollo personalizado. Un nuevo cliente potencial desea agregar una sección a nuestro contrato estándar que requiere que usemos una herramienta de "Análisis de aplicaciones". Mencionan específicamente el AppScan de IBM. Sin embargo, esa herramienta parece ser para aplicaciones web, no para aplicaciones de escritorio.

Nuestras aplicaciones se desarrollan utilizando Delphi (desde Embarcadero, anteriormente Borland hace mucho tiempo). Somos una pequeña tienda de dos desarrolladores. Si bien puedo entender por qué un cliente querría algo como esto en un contrato, no estoy seguro de cómo puedo lograrlo.

¿Hay otras "herramientas estándar de la industria" como parece indicar el lenguaje de su contrato?

¿Se está convirtiendo esto en una práctica común entre los ISV?

¿Existen pautas para que los ISV cumplan con este tipo de requisitos de revisión de seguridad? Sé que hay una serie de sitios para prácticas de codificación seguras (verificar la entrada del usuario, los desbordamientos del búfer, la inyección de SQL, etc.) pero nunca he visto nada que discuta la preparación de una revisión de seguridad que convenciera a un usuario final de que el programador hizo su trabajo. trabajo correctamente.

Esto es lo que quieren agregar al contrato:

  

x.x Revisión y pruebas de seguridad del software. Un proceso de escaneo de seguridad.   Se realizará sobre los componentes de la aplicación para cada producción.   lanzamiento del Software licenciado por el Licenciatario de conformidad con este   Acuerdo previo a la puesta a disposición de un importante lanzamiento de tales.   componentes Dicho escaneo de seguridad será realizado por el Licenciante.   utilizando la herramienta de escaneo de aplicaciones de IBM AppScan o una alternativa,   Herramienta estándar de la industria ("Application Scanning"). El vendedor también   realizar pruebas de penetración manual ("Pruebas de penetración") para cada   lanzamiento importante de los productos principales. El vendedor llevará a cabo la aplicación   Escaneo en cada componente de la aplicación como se establece en el   Programar bajo el Acuerdo un mínimo de una (1) vez por año.   El proveedor proporcionará y revisará con el Licenciatario un informe del   Los resultados de la exploración y penetración de aplicaciones más recientes del proveedor   Pruebas para el software AgWare.

La aplicación en sí es una aplicación estándar de Windows. Puede conectarse a una base de datos de Access o una base de datos de SQL Server para su almacenamiento de datos. Los usuarios preocupados por la seguridad obviamente usarán SQL Server. No hay un nivel intermedio: me conecto directamente desde la aplicación al servidor SQL. La conexión se realiza mediante una conexión de confianza y todo el acceso a los datos se realiza a través de procedimientos almacenados.

Puedo entender cómo se ejecuta algún tipo de escáner de seguridad en la base de datos SQL. es decir, algo que verificaba que una tabla no se dejaba con acceso abierto. Es interesante que la base de datos no fue tratada en el contrato.

Probablemente pueda presionar el problema y decir que AppScan no se puede ejecutar en aplicaciones de escritorio y hacer que eliminen la sección del contrato. Verlo me hizo preguntarme si algún desarrollador de aplicaciones de escritorio está ejecutando algún tipo de escáner en su software.

    
pregunta Mark Elder 25.04.2013 - 22:04
fuente

3 respuestas

2

Los escáneres de aplicaciones web no son el único objetivo de la seguridad de las aplicaciones web y simplemente ejecutar una herramienta lista para usar no solucionará el problema de una aplicación insegura. Dicho esto, el impacto en la seguridad de una aplicación de escritorio depende en gran medida de lo que haga su aplicación. ¿Es un servidor? ¿Se comunica a través de una red? ¿Tiene una base de datos?

Ninguna aplicación disponible puede resolver este problema. Debe contratar a un analista de seguridad profesional para revisar esta aplicación y (lo más probable) probarla manualmente.

    
respondido por el rook 25.04.2013 - 22:57
fuente
2

Esto claramente se está escribiendo para promover una aplicación razonablemente probada. Tengo tres comentarios sobre esto:

  1. En primer lugar, deben tener su propio programa de escaneo interno (evaluación de vulnerabilidad) en el que proporcionarían un banco de pruebas para ejecutar su programa como parte de sus pruebas de aceptación. Un proveedor de software puede optar por tener y desarrollar su propio software, pero nunca se puede esperar que escale una "solución estándar" basada en el número "n" de contratos que solicitan "n" variaciones de programas, incluso el DoD lo reconoce. p>

  2. El aspecto de la explotación de este DEBERÍA llevarse a cabo en el entorno en el que se implementaría, de lo contrario no tiene una imagen de "explotación" razonable. El propósito del análisis de explotación es tomar las vulnerabilidades de un sistema y determinar sobre la explotación de lo que puede ser el dolor resultante (es decir, ver los efectos reales reales y el daño potencial). Lo que, por supuesto, solo se puede evaluar realmente en el escenario en el que se implementará.

  3. Este es un poco de pensamiento erróneo por parte de este cliente al creer que es en su mejor interés que el creador del software sea el probador del software. Esto sucede todo el tiempo en Q / A, pero nunca debe permitirse en seguridad con el propósito de una verdadera auditoría. Necesitan tener su propia gente, o incluso mejor una tercera parte imparcial (haga que se pongan en contacto conmigo :)) para realizar el análisis de vulnerabilidad y explotación.

respondido por el Tek Tengu 26.04.2013 - 02:13
fuente
0

Me especializo en seguridad de aplicaciones. En primer lugar, una aplicación casi nunca se va a probar en un entorno de producción. Normalmente, se validan las vulnerabilidades en un entorno de prueba en el que se implementa la aplicación, posterior al desarrollo.

Es probable que se pueda usar IBM AppScan para realizar pruebas contra una aplicación de escritorio, de la misma manera que se usaría para probar una aplicación web, siempre y cuando la aplicación de escritorio utilice HTTP o HTTPS. Para lograr esto, configure un proxy para escuchar en su dirección RFC 1918 no en su loopback, e implemente la aplicación de escritorio en una máquina virtual dedicada. Configure las opciones de Internet en Windows para que apunten a la dirección y el puerto al que está vinculado el proxy. Yo sugeriría Burp Suite sobre cualquier otra cosa.

Por lo general, la información para las personas que desean comenzar se puede encontrar en el sitio de OWASP. Un buen punto de partida sería la Guía de prueba de OWASP v4, pero si está buscando algo para indicar que una aplicación es segura por algún tipo de estándar, use el ASVS.

Idealmente, usted desea integrar las prácticas de seguridad en todas las fases de su SDLC y desarrollar un marco de trabajo separado de su SDLC real llamado Secure-SDLC. Un SDLC seguro tendrá prácticas de seguridad detalladas que deben integrarse en los esfuerzos del SDLC según sea necesario.

De lo contrario, podría hacer una prueba de la pluma previa a la implementación, pero cuesta más porque, inevitablemente, se recuperará en el SDLC para remediar las vulnerabilidades identificadas. PCI y quizás HIPPA especifican los requisitos asociados con la creación de prácticas de desarrollo seguras, así como la ejecución de pruebas automáticas o manuales contra una aplicación para identificar vulnerabilidades.

    
respondido por el Ryan Brown 16.06.2017 - 22:34
fuente

Lea otras preguntas en las etiquetas