Auditoria informática de negocio basado en app y web

Auditoria informática

Auditoria informática de negocio basado en app y web

Como auditor CISA (Certified Information System Auditor) en este post quisiera explicar uno de mis últimos trabajos realizados en una empresa relacionada con el ámbito de distribución de comida rápida, donde tras realizar una app que saldrá al mercado me solicita una auditoria que le ayude a minimizar los riesgos de seguridad de información que le ayuden a demostrar a inversores y terceros que la aplicación o bien esta adecuadamente desarrollada, con buenas practicas del sector, así como realizaremos un plan de acción a un año para mejorar todo aquello que sea susceptible de no conformidad o mejora. Estamos ante una Auditoria informática de parte.

Auditoria informática

En relación con la necesidad de realizar, por un lado un Informe de evaluación de la solución  fundado en criterios técnicos que evalúe la adecuación de la solución a las buenas prácticas en seguridad de la información, desarrollo TIC y ciberseguridad, se ha realizado un Informe de adecuación a una solución Software as a Service donde se ha evaluado que se trata de una solución Software as a Service susceptible de comercialización y se ha propuesto una serie de recomendaciones para una mejor explotación comercial.

Entre ellas destacar:

  • Pruebas de adecuación a todos los dispositivos de acceso y niveles de accesibilidad descritos en la propuesta de proyecto.
  • Pruebas de seguridad e integridad: se definieron y ejecutaron pruebas que garantizaron un correcto control en el acceso al software, así como se analizó la vulnerabilidad del código ante ataques. Estas pruebas recogieron algunas de las siguientes posibilidades:
    • Pruebas de control de acceso, explotación de vulnerabilidades, SQL Injection, cross-site scripting, etc.
  • Criterios de digitalización certificada de la información que se gestiona.
  • Otras consideraciones relativas a buenas prácticas de seguridad e Ingeniería de Software.

Estamos ante una solución Cloud SaaS con los siguientes bloques:

  1. Dos portales para el proveedor y el Backoffice.
  2. Una capa API basada en AWS.
  3. Dos aplicaciones hibridas sobre XXXXXXXXX.

Constatamos que toda la comunicación con estos 5 bloques se realiza cifrada de extremo a extremo mediante un cifrado SSL apoyado de un token temporal de validación entre el front y las API de especial importancia en las APP.

Se utiliza Amazon como hosting con un Cloud Front (servidor) como Firewall de aplicaciones. La base de datos se sitúa en una tercera capa no relacional denominada dynamo DB como servicio, estando la información en json en texto plano.

En el caso de la APP debemos subrayar que cierta información se almacena en la app del cliente cuando este envía la petición al servidor, así como en el servidor, existiendo legalmente un contrato de mandato entre paciente y la App para que esta empresa pueda usar su tarjeta e información para la gestión de la aplicación.

El rider recibe una notificación de recogida y entrega, auto asignándoselo incluso antes que el cliente final haya pagado el encargo estando la tarjeta de crédito en la app utilizándose xxxxxxxx como pasarela de pago.

La validación se ha realizado mediante pruebas de Pentesting y hacking ético. Por un lado se utilizan técnicas de hacking ético externo donde el 100% del trabajo se realiza desde una red exterior, explorando en este casos portales web, servicios web expuestos en Internet, servidores de correo, servidores de nombre, firewall, etc.

Se han utilizado técnicas de White box ya que el cliente nos proporciona de forma detallada todos los datos de su infraestructura, mapas de red, etc.

Se ha analizado la arquitectura de servidores, redes y sistemas operativos utilizados, así como las APP y web asociadas al proyecto u hospedadas en los mismos servidores físicos y virtuales.

Se ha utilizado test de intrusión controlada contra los servicios expuestos desde Internet, con  intentos de descubrimiento de usuario y contraseña utilizando un sistema de fuerza bruta basado en diccionario, así como diferentes test:

  • Hacking ético basado en test de penetración.
  • Test de penetración basado en web Server Scan. Test Nikto.
  • Infraestructura Testing
    • TCP Port Scan.
    • UDP Port Scan.
    • SSL HeartBleed Scan.
    • SSL Poodle Scan.
    • SSL Drown Scan.
  • Test SQL Injection.
  • Test vulnerabilidades AppGuard

Necesidad de Digitalización certificada

En este caso se audito el escáner de ciertos documentos dentro del marco legal de digitalización certificada, evaluando la idoneidad de los procesos y recomendando algunas buenas prácticas para su mejora.

Se entiende por digitalización certificada el proceso tecnológico que permite, mediante la aplicación de técnicas foto eléctricas o de escáner, convertir la imagen contenida en un documento en papel en una imagen digital codificada conforme a alguno de los formatos estándares de uso común y con un nivel de resolución que sean admitidos por la entidad evaluadora. Como regla general tomamos la exigida por la Agencia Estatal de Administración Tributaria basada en 200 PPP

Este enfoque aumentaría la seguridad que la transmisión, realizada bajo autenticación basada en token y por canal seguro, garantizaría la confidencialidad e integridad de la información transmitida, pudiendo detectar cualquier alteración o sustitución en la cadena de custodia de la prueba en el ciclo de vida de la información.

Recomendamos el siguiente proceso:

  1. El usuario dispone de un documento electrónico, en nuestro caso una imagen de la tarjeta sanitaria, y de un certificado que pertenece al proveedor del software.
  2. La aplicación o dispositivo digital utilizados para la firma realiza un resumen del documento. El resumen de un documento de gran tamaño puede llegar a ser tan solo de unas líneas. Este resumen es único y cualquier modificación del documento implica también una modificación del resumen.
  3. La aplicación utiliza la clave contenida en el certificado para codificar el resumen.
  4. La aplicación crea otro documento electrónico que contiene ese resumen codificado. Este nuevo documento es la firma electrónica.

El resultado de todo este proceso es un documento electrónico obtenido a partir del documento original y de las claves del firmante, attached o detached, la imagen o metadatos + la firma electrónica.

Es necesario reseñar, que la firma generada de esta forma, depende unívocamente de tres variables:

1)           Datos a firmar

2)           Certificado usado

3)           Fecha y hora de la firma. (Timestamp)

Por lo tanto, firmas sucesivas sobre los mismo datos y mediante el mismo certificado, efectuadas en diferente fecha/hora, serían totalmente diferentes, aunque ambas válidas.

A partir de este momento el uso de esta imagen estaría asegurando que las comprobaciones de la firma en cada uso de la misma nos garantizarían la calidad y fiabilidad de la evidencia digital.

Como se ha analizado inicialmente todas las tablas están almacenadas en un sistema basado xxxxxxxx. Es importante subrayar que están cifradas (default) en el lado del servidor con la CMK (clave maestra de cliente) propiedad de AWS. Ni el número de tarjeta de crédito ni la imagen de la tarjeta se almacenan en el servidor de manera constante, únicamente se almacenan y se recuperan en el inicio de sesión.

Otras consideraciones que se auditaron:

  • Gestión del código numérico de la tarjeta
  • Políticas de retención de la información.
  • Tipo de servicios contratados en Amazon y sus características.
  • Tipo de cifrado entre las app y servidor.
  • Resolución mínima, formato y calidad de la imagen que se recoge por cada SO (Android, IOS)
  • Marca de tiempo en imagen y metadatos. XMP.
  • Permisos y medidas de seguridad desde la captura hasta el almacenamiento, edición de metadatos, consulta.
  • Políticas de Backups y gestión de copias de seguridad.
  • Log de acciones y trazabilidad
  • Control de la veracidad de la información
  • Diagrama de pago y sus medidas
  • Controles de seguridad web. Firewall, DMZ o filtrado por IP.
  • Procedimiento de instalación.
  • Código fuente comprobación de imagen no alterada, borrada o sustituida.
  • Código fuente comprobación de registro de datos de factura no alterada.
  • Código fuente recomendable de preprocesado de imagen.
  • Código fuente de la firma que pertenece a una EC reconocida y que el certificado no ha caducado.
  • Código firma imagen.
  • Políticas de contraseñas.
  • Uso de doble autenticación
  • Sistema de prevención o detección de ataque por fuerza bruta.
  • Políticas de actualización de software
  • Otros…

Finalizando todo el proceso de auditoria en un documento con recomendaciones y un plan de acción a un año.

Conclusión

Cuando una empresa considera la necesidad de lanzar un negocio digital, el desarrollo de la web y de la app (soluciones clásicas) debe de ir acompañadas de una serie de medidas que garanticen a clientes, proveedores, inversores, etc. la seguridad y las buenas prácticas en el proyecto. Realmente al ver todo lo expuesto anteriormente un profesional se da cuenta rápidamente que la puesta en el mercado de un negocio B2C y B2B digital basado en app y web conlleva más que dos amigos haciendo una app y de lo contrario muchos de estos proyectos acaban en un fracaso o en un contencioso legal.

Luis Vilanova Blanco. Auditor informático CISA.

911277300

luis@luisvilanova.es