Mostrando entradas con la etiqueta pentest. Mostrar todas las entradas
Mostrando entradas con la etiqueta pentest. Mostrar todas las entradas

Tres aspectos que debes cuidar cuando desarrollo de software debes abordar.

Aparte del diseño, código, lenguaje de programación, modelo de desarrollo, ciclo de vida y otros menesteres, estas son las tres cosas que debes tener en cuenta cuando desarrollas software y debes tener en cuenta la parte de seguridad. 

Al día de hoy, se hace completamente necesario que desarrolles software de forma segura y que entregues el aplicativo libre de vulnerabilidades, para esto debes tener en cuenta estos aspectos antes de entregar el producto final:

Análisis de vulnerabilidades en código fuente

Este es una de las cosas que debes tener en cuenta casi que desde el inicio del proyecto, los desarrolladores deben tener acceso a este servicio para ir probando su código a medida que avanzan en el desarrollo. Al finalizar la entrega del producto, deberás estregar el resultado final del análisis del código fuente para garantizar la seguridad del aplicativo.

Pruebas de carga y estrés 

Saber cuál es el punto de quiebre del aplicativo es sumamente importante, ya que con ello podrás tomar las acciones necesarias para evitar una no disponibilidad del servicio. Con las tecnologías actuales, el aprovisionamiento de nuevos nodos al vuelo es muy fácil de implementar para evitar del deterioro en la prestación de un servicio.

Pruebas de pentest

Debes evaluar el aplicativo en búsqueda de vulnerabilidades en el aplicativo en operación, algunas de ellas solo son posibles evaluarlas cuando el software es desplegado. 

Ten en cuenta que acá nos referimos solamente a lo que le concierne al aplicativo web, pero, es igualmente importante que evalúes la plataforma sobre la cual está alojada el servicio, ya que puedes tener un excelente aplicativo con todos los aspectos bien cuidados, montado sobre una plataforma descuidada lo cual dará como resultado un escenario catastrófico.

Existen muchos servicios adicionales que puedes tener en cuenta para proteger tu aplicativo, los cuales varían de acuerdo a tus necesidades y presupuesto, algunos de ellos son balanceadores de carga, dockers, WAF, honey pots, identificadores de tráfico válido, protectores de ataques DDOS entre otros. 

Si eres desarrollador, te recomiendo entregar el producto final con el resultado de las tres pruebas que te recomendé, esto será un plus para tu cliente y te diferenciara de tu competencia, y si eres el cliente, deberás incluir dentro de tus contratos el que se te entreguen los resultados de estas pruebas cuando recibas el aplicativo. Si no conoces del tema, te recomiendo una auditoría por un tercero.

Incluye siempre el componente de seguridad en todo desarrollo, con esto, estarás un poco más seguro. 


 



Cinco datos a tener en cuenta cuando vas a contratar pruebas de seguridad.

En este post aprenderás cinco datos que debes tener en cuenta cuando vas a contratar pruebas de seguridad informática.  

Dato #1: ¿Qué hacer?

Lo primero que debes definir es que clase de pruebas deseas contratar, para ello debes tener claro, para qué sirve cada una de ellas. Empecemos por la más básica:

  • Pruebas de análisis de vulnerabilidades: consiste en verificar si existen vulnerabilidades conocidas en los equipos que se van a realizar las pruebas. Son automatizadas y se requiere de un software comercial como Nessus Professional para realizar el trabajo. Costo bajo.
  • Hacking o pentest: Pruebas manuales realizadas por un consultor especializado en la plataforma que se va a probar. Debes verificar la experiencia de los consultores debido a que de ello depende la calidad de las pruebas. Costo alto.
Con esto, lo recomendado es que realices pruebas de vulnerabilidades a todos los equipos y pruebas de hacking o pentest a los equipos críticos. 

Dato #2: ¿A qué se le debe hacer?

Una vez definida que clase de pruebas quieres realizar debes definir a que le quieres hacer pruebas, debes tener contemplado: servidores, estaciones de trabajo, equipos de red, aplicaciones, bases de datos y servicios en la nube. 

Debes tener presente que un atacante podrá atacar a cualquier equipo conectado a la red y una vez comprometido este equipo desde allí podrá lanzar ataques a equipos internos con mayor facilidad.

Dato #3: ¿Desde dónde?

Ten en cuenta que más del 50% de los ataques son internos, por lo que debes verificar la seguridad tanto en equipos expuestos hacia Internet como a equipos que ofrezcan servicios internos, adicionalmente, si tienes servicios en la nube, también deberás verificar la seguridad, ya que estos servicios se comportan como un centro de datos alterno.  

Dato #4: ¿Cómo?

Existen dos tipos de análisis de vulnerabilidades, el primero de ellos es "pruebas con credenciales", te dice que vulnerabilidades tienes y como debes solucionarlas, el segundo es "pruebas sin credenciales" te da el punto de vista de las vulnerabilidades que puede ver un atacante que aún no las ha obtenido.  Te recomiendo realizar siempre análisis de vulnerabilidades con credenciales, esto te permitirá saber realmente el estado en que te encuentras. 

Dato #5: ¿Cuándo?

Esto corresponde a la frecuencia de las pruebas, te recomiendo en este caso el realizar análisis de vulnerabilidades de forma frecuente, mínimo una vez al mes y pruebas de hacking o pentest tres veces al año, obviamente si tienes una plataforma crítica, las pruebas se deberán hacer con más frecuencia. 

Datos adicionales: 

  • Solicita la hoja de vida de los consultores y verifica sus antecedentes. 
  • Define claramente el no permitir escanear/atacar equipos fuera de alcance. 
  • Tanto la empresa contratada como los consultores asignados, deberán contar con experiencia certificada, hardware y software licenciados. 
  • Incluye dentro de los entregables informes ejecutivo, informe técnico, plan de remediación y los reportes del software utilizado. 
Los lineamientos contenidos en este post son en general lo que debes tener en cuanta para contratar las pruebas de seguridad informática, ten en cuenta que debes hacer los ajustes necesarios de acuerdo con el sector de tu organización. 

El siguiente paso es que definas un "plan de pruebas de seguridad" donde realices este trabajo de forma periódica de tal forma que puedas llevar un histórico del comportamiento de la ciberseguridad en tu organización. 

Ponte en contacto conmigo si deseas mayor información acerca de este tema. 





Como determinar el alcance de unas pruebas de seguridad por primera vez.

El principal asunto cuando se desea verificar el estado de la seguridad de la organización por primera vez, es determinar el alcance del proyecto, es decir, elegir a que se le va a hacer pruebas y como se van a hacer.

Lo recomendado inicialmente es contratar una empresa especializada que ayude con esta labor. Antes de empezar algún proyecto, debe tener en cuenta que se deben firmar como mínimo estos tres documentos:

Acuerdo de confidencialidad: Protege la organización de la empresa contratada.

Autorización de trabajo: Se autoriza a la empresa para que ejecute las pruebas con un alcance y tiempo determinado.

Reglas de juego: Definir que esta autorizada y que no esta autorizada a realizar la empresa contratada, quien da las autorizaciones y permisos requeridos.

Antes de contratar una empresa, verifique que cuenta con lo siguiente: experiencia, software licenciado, personal capacitado, estar legalmente constituida y que pueda entregar pólizas de garantía.

A continuación se listarán las pruebas básicas para empezar:

  • Revisión de la arquitectura de la red de la organización: con esto verificará que el diseño de la red es el adecuado para proteger la información digital.

  • Análisis de vulnerabilidades a todos los equipos de la organización: Se necesita identificar vulnerabilidades en todos los equipos. Credenciales.

  • Pentest interno tipo caja negra (sin dar información): Es la forma más recomendada para verificar el punto de vista de un atacante.

  • Pentest caja gris para verificar la seguridad del core del negocio: Se requiere para revisar el estado de los equipos relacionados con la información crítica.

  • Pruebas de ingeniería social aleatorio: En este punto se evaluará si los empleados saben identificar un ataque.

  • Pruebas de verificación de controles: Aquí se evaluará si los equipos y software adquiridos está operando adecuadamente y haciendo el trabajo para el cual se compraron.

Las pruebas de análisis de vulnerabilidades se deben realizar con credenciales, las demás, depende del alcance que les quiera dar. La pruebas también pueden ser de tipo internas (cuando se realizan desde dentro de la organización, esto mide un atacante interno) o pueden ser externas (ver la posición de un atacante externo).

Por lo general, los resultados de las pruebas se entregan en tres documentos:

  • Informe ejecutivo: documento para personal no técnico que requiere entender cuál fue el resultado de las pruebas. Debe contener conclusiones y recomendaciones.

  • Informe técnico: documento para personal técnico que se va a encargar del cierre de las vulnerabilidades halladas. Esto no es el reporte de las herramienta, esto corresponde a la verificación de los resultados por parte de un especialista en seguridad.

  • Plan de remediación: documento técnico con priorización de cierre de vulnerabilidades.

  • Reporte de salida de las herramientas utilizadas: son los datos en crudo entregados por las herramientas utilizadas.

Recuerde que esta clase de pruebas se deben de realizar periódicamente para lo cual lo recomendado es realizar un contrato anual con ejecución mensual de análisis de vulnerabilidades, las demás pruebas, para ejecución de una o dos veces por año, claro esta que esto depende de cada organización. 







Menú de pruebas de seguridad informática

Existe una gran variedad de pruebas de seguridad informática empezando con la más básica que es el análisis de vulnerabilidades hasta llegar a la auditoría de cumplimiento la cual es el aseguramiento máximo de una plataforma de ciberseguridad.
Estos son las principales tipos de pruebas de ciberseguridad:
  • Análisis de vulnerabilidades: Es una tarea  automatizada por medio de la cual se verifica si las vulnerabilidades reportadas a nivel mundial se encuentran presentes en los equipos que se están analizando. 
  • Pentest o hacking ético: procedimiento formal que tiene como objetivo descubrir vulnerabilidades de seguridad, riesgos de fallas y un entorno poco confiable. Puede verse como un intento exitoso pero no dañino de penetrar en un sistema de información específico.
    • Caja negra: Sin información solo el objetivo de las pruebas.
    • Caja gris: Información parcial como los equipos a los cuales se les va a hacer pruebas.
    • Caja blanca: Información completa para poder determinar las vulnerabilidades con conocimiento del objetivo.
  • Hardening o aseguramiento de equipos: Aseguramiento de equipos de acuerdo con las mejores prácticas de la industria, alguna normatividad o línea base de la organización. 
  • Auditoria de seguridad informática: Comparar algo que existe contra algo que debería existir ya sea una normatividad, mejores prácticas o línea base previamente establecida. 
  • Análisis de vulnerabilidades en código fuente: Búsqueda de vulnerabilidades en código fuente desarrollado. Esta clase de pruebas es propia de las organizaciones que desarrolla software para uso interno o de terceros.
  • Pruebas de ingeniería social: Esta clase de pruebas se pueden definir como “el arte de hackear al ser humano”, es decir, hallar vulnerabilidad en las personas. Esto se puede corregir mediante las capacitaciones empresariales. 
  • Red Team: Equipo dedicado a la ejecución permanente de ataques de pentest controlados. Es utilizado en grandes organizaciones que cuentas con los recursos necesarios para esta clase de pruebas.  
  • Pruebas de estrés: Pruebas orientadas a determinar cuál es el punto máximo de stress que puede resistir un aplicativo o un servicio. Pueden ser con equipos reales (más costoso) o con equipos simulados. 
  • Pruebas de efectividad de controles: Estas pruebas corresponden a la evaluación de los controles existentes. 
  • Pruebas de recuperación de desastres: Si la organización cuenta con un pla de recuperación de desastres, este se debe probar para verificar que realmente funciona. Lo recomendado es que se haga dos veces al año.
  • Pruebas de atención (detección) de incidentes: Estas pruebas permiten determinar si los usuarios finales están en la capacidad de detectar y reportar un incidente de ciberseguridad. 
  • Prueba de concepto (PoC): Corresponde a una prueba mínima o parcial de un servicio o producto que se desea adquirir o poner en producción. 
La aplicación de cada una de estos tipos de pruebas depende de cada organización. Recuerde que la superficie de ataque se expande con cada componente tecnológico presente en cada proceso.
La frecuencia con la que aplique las pruebas incidirá directamente en el tiempo medio de detección de vulnerabilidades, el cual corresponde al tiempo que se demora su organización en detectar una vulnerabilidad. A mayor tiempo, mayor riesgo.