Hacking ético

Vulnerabilidades

Vulnerabilidad es un defecto o un fallo que puede ser por programación, por diseño o por configuración.

Amenaza

Una posibilidad de violación de la seguridad, que existe cuando se da una circunstancia, capacidad, acción o evento que pudiera romper la seguridad y causar perjuicio. Es decir, una amenaza es un peligro posible que pudiera explotar una vulnerabilidad. (RFC 282).
Posible causa de un incidente no deseado, que puede resultar en daños a un sistema u organización.

Categorías de Amenazas

Red: Una red es conjuntos de dispositivos conectados por un canal de comunicación con el propósito de compartir información. Mediante este, la información viaja de un lado a otro, por lo cual un agente malicioso puede irrumpir en el mismo y robar datos sensibles.

Host: Se dirige a un sistema particular en el que reside información valiosa en el cual los atacantes intentan violar la seguridad.

Aplicación: Una aplicación puede ser vulnerable si no se toman las medidas de seguridad adecuadas durante el desarrollo, implementación y mantenimiento.

Ataque

Un asalto a la seguridad del sistema, derivado de una amenaza inteligente; es decir, un acto inteligente y deliberado (especialmente en el sentido de método o técnica) para eludir los servicios de seguridad y violar la política de seguridad de un sistema

Cualquier acción que comprometa la seguridad de la información de una organización.

Motivaciones de trás de un ataque:
-Robo y manipulación de información.
-Interrumpir la continuidad del negocio.
-Daño a la reputación.
-Tomar venganza.
-Propagación de creencias religiosas o políticas.

Tipos de Ataques

Ataques al sistema operativo: La búsqueda de fallas se realizará en lo concerniente al propio sistema base de todo el resto del software, de tal modo que, muchas veces, independientemente de lo que se encuentre por encima, se podrá explotar y tomar control del sistema en caso de que sea vulnerable.

Ataques a las aplicaciones: En este caso, la variedad es mayor. Existen miles y miles de piezas de software y programas de todo tipo y tamaño, disponibles en el mundo. Por supuesto, entre tantos millones de líneas de código, necesariamente se producen errores.
Las aplicaciones amplían la superficie de ataque de un sistema, por lo que se recomienda siempre evitar la instalación de aquellas que no se requieran, siguiendo el principio de seguridad que sugiere el minimalismo.

Ejemplos:
-Denegación de servicio.
-Inyección SQL.
-Directorio transversal.
-Cross-site scripting.

Errores en configuraciones: El caso de las configuraciones, ya sean del sistema operativo o de las aplicaciones, también constituye un punto sensible, dado que por más seguro que sea un software, una mala configuración puede derrumbar toda nuestra arquitectura de seguridad.

¿Qué es un Malware?

Término que describe a un archivo que pretende hacer algo dentro de una computadora, celular, Tablet… sin el consentimiento del usuario legítimo.
Existen familias de malware como son: Gusanos, Virus, Ransomware, Spam, Hoax, Scam entre otros.
Se les denomina “Familias” porque se generan a partir de un virus mutado, esto hace referencia a que es el mismo virus que se usó anteriormente pero con algunas modificaciones para complicar la detección por los antivirus. Virus: El principal funcionamiento de los virus, es crear un daño a la computadora infectada. La diferencia de estos a otras amenazas, es que la mayor parte de su código se origina en un archivo llamado huésped, de este modo, cada vez que el archivo es ejecutado, primero se ejecuta el archivo y en segunda parte se ejecuta el virus.
Worms: Los gusanos a diferencia de los virus, no necesitan un huésped para permanecer infectado la computadora, su método de ataque es por medio de la red, medios extraíbles, redes sociales, redes p2p, etc. Su objetivo es ir infectando computadoras a su paso, destruir, copiar, mover, o hasta filtrar información de las computadoras por donde pasa. Troyanos: Son programas maliciosos que proporcionan una conexión directa con la víctima, su principal objetivo es la sustracción de información. Ransomware: El Ransomware es un software malicioso que al infectar nuestro equipo le da al ciberdelincuente la capacidad de bloquear el PC desde una ubicación remota y encriptar nuestros archivos quitándonos el control de toda la información y datos almacenados.

Los pasos de Cyber Kill Chain mejoran la visibilidad de un ataque y enriquecen la comprensión de un analista de las tácticas, técnicas y procedimientos de un adversario
Reconocimiento: Conocer y aprender del objetivo utilizando diversas técnicas.
Creación del arma: Desarrollo o adecuación del código al medio sobre el que se buscará la infección.
Entrega: La transmisión del código malicioso a través de algún medio como email, web, usb, etc.
Explotación: Aprovechamiento de alguna vulnerabilidad en el software o hardware o error humano para ejecutar el software malicioso.
Instalación: El software malicioso se asegura de poder ejecutarse de forma permanente en el equipo infectado.
Comandos & Control (C2): El código malicioso se comunica a una sede central, proporcionando a los atacantes acceso remoto.
Exfiltración: En este punto se lleva a cabo el robo de información o el verdadero objetivo del ataque.

Fases del Hacking

1. Reconocimiento
Se busca obtener la mayor cantidad de información del objetivo.

2. Escaneo
Se escanea la red, con base a la información obtenida.

3. Obtener Acceso
Se vulnera el sistema.

4. Mantener Acceso
Se trata de retener la posesión del atacado.

5. Encubrimiento del Ataque
Se intenta prolongar el acceso del sistema sin ser detectado, eliminando evidencia del hackeo.

Etical Hacking

Qué es la ética

Conjunto de normas que son impuestas a una sociedad.

Qué es Hacking

Se refiere a la explotación de sistemas vulnerables. Obtener acceso a un sistema de forma inapropiada y no autorizado.

Principales Motivos:

- Robo de información y/o servicios críticos.
- Emoción y Desafío intelectual.
- Curiosidad y Experimento.
- Ganancia Financiera.
- Prestigio y Poder.
- Reconocimiento de los compañeros.
- Venganza

Tipos de Hacker

Black Hat, White Hat, Gray Hat, Script Kiddies (utilizan herramientas de otros profesionales), Hacktivist (se asocia a la política, vulnerar páginas que no van con sus ideologías)

Obteniendo información de fuentes abiertas. Google Hacking y Osint Framework

Google dorks

Son una serie de sentencias que se pueden escribir en el navegador y nos devuelven información. - Intitle o Allintitle
- inurl o allinurl
- Intext
- site
- filetype

Ejemplos

Buscar si existen ciertas palabras en una URL: inurl: index.php?id=
Buscar solo en determinadas páginas: site: github.com <Nombre Usuario>

Pentesting

También conocido como prueba de seguridad es un método para evaluar la seguridad de los sistemas de información y redes.
Se realiza a través de la simulación de ataques con el fin de encontrar vulnerabilidades.
El fin es documentar todas las vulnerabilidades que se hallaron y plantear una solución.

Qué no es pentesting?

Auditoría de seguridad

Verificar que las normas y leyes establecidas se estén cumpliendo.

Evaluación de Vulnerabilidades

Hallar las vulnerabilidades solamente, sin necesidad de tomar una acción hacia estas y ponderar si son de alto o bajo riesgo.

Diferentes Pentesting

Diferentes pentestings: Seguridad en la red, seguridad en las aplicaciones, seguridad física y la ingenieria social, la cual va enfocada a los usuarios.

Los tipos de pentesting son:

Black-Box: Permite simular una prueba como se hace en el mundo real, como lo hacen los verdaderos atacantes. Solo se conoce el nombre de la empresa.
White-Box: El personal de TI o el personal de la empresa dará acceso a toda la información
Grey-Box: Combinación de la black-box y la white-box ya que algunas empresas no pueden brindar toda la información

Formas de ralizar un pentesting

Pruebas anunciadas: Se cuenta con la total cooperación y conocimiento del personal de TI.
Pruebas no anunciadas: Son un intento de comprometer el sistema en la red del cliente sin conocimiento del personal de seguridad de TI.

Fases de un pentesting

Pre-ataque: Hacer la planeación, definir los objetivos, los limitantes y la preparación del ataque.
Ataque: Lleva a cabo el pre-ataque.
Post-taque: Generar el reporte del resultado del ataque. Con un reporte técnico y uno no técnico. Eliminar los scripts o archivos que se hayan subido para atacar y si es posible realizan una restauración a como se encontraba el sistema antes de la prueba de seguridad.

Escaneo de redes

El escaneo de red se refiere a un conjunto de procedimientos utilizados para identificar el host, los puertos y los servicios en una red.
Objetivos
- Descubrir equipos activos, direcciones IP y puertos abiertos.
- Descubrir el sistema operativo, su arquitectura y los servicios que ofrece.
- Descubrir vulnerabilidades en los equipos activos.

Tipos de escaneos

Escaneo de puertos: Tiene el objetivo de descubrir puerto abiertos. Además de verificar los servicios que corren dentro de un objetivo enviando una secuencia de mensajes para conectar y analizar los puertos TCP y UDP.
Escaneo de red: Enumera las direcciones IP. Además, es un procedimiento para identificar un host activo en una red, ya sea para atacarlos o para evaluar la seguridad o la red.
Escaneo de vulnerabilidades: Permite realizar un conjunto de pruebas sobre un sistema o red para encontrar debilidades y/o fallos de seguridad de estos.

Estándares y Aspectos Legales

PCI Es un estandar para las organizaciones que manejan información de tarjetas de débito, crédito, prepago, monederos electrónicos, ATM y POS.
HIPAA También conocida como la ley de portabilidady responsabilidad de seguros de salud.
DMCA Define la prohibición legal contra la elusión de las medidas de protección tecnológica aplicada por los propietarios para proteger su trabajo. (Copyright, derechos de autor).
La serie 27000 de ISO Es un conjunto de normas asociadas a los sistemas de gestión de la seguridad de la información (SGSI).

Contratos, Reglas de compromisos, Cláusula de no competencia y Acuerdo de confidencialidad

Definición 1:
Los convenios que producen o transfieren las obligaciones y derechos, toman el nombre de contratos, el cual para su existencia se requiere de:
- Consentimiento de las partes.
- Objeto que pueda ser materia del contrato.

Definición 2:
Hay que recordar que un contrato establece las bases de trabajo, disponibilidad y entregas que tenemos entre las organizaciones y los proveedores de servicios.
¿Qué son los contratos informáticos?
Permiten transmitir derechos de propiedad o de uso sobre bienes como equipos (hardware) o programas (software) y sobre todo los referentes a la prestación de servicios sobre este tipo de bienes.

Los contratos informáticos pueden dividirse en múltiples categorías, como:
- Contratos relativos al hardware: Se establecen los elementos físicos de un equipo electrónico y la modalidad en las cuales se van a adquirir (compra/venta o arrendamiento).
- Contratos de licencia de software: Son aquellos en los cuales una persona u organización tiene los derechos sobre un software como autor y concede a un licenciatario la autorización de poder utilizarlo.
- Contratos de desarrollo de una página web: En este contrato se especifica por el cual una persona solicita a otra el diseño, desarrollo y mantenimiento de un sitio web.
- Contratos de mantenimiento: Es aquel que busca que tanto el hardware como el software de manera individual o conjunta, se mantengan en las condiciones óptimas para poder seguir operando, evitando la existencia de fallos o bien resolver aquellos errores que ya están presentes en el funcionamiento de los equipos electrónicos.
- Contratos para realizar un Pentesting
Es aquel que tiene como objeto permitir a un agente externo especializado realizar una serie de análisis durante un periodo cierto con el propósito de evaluar el cumplimiento de los derechos y obligaciones contraídos al haber comprado o arrendado algún software y/o hardware.
Este tipo de contratos deben incluir todas las cláusulas necesarias, así como establecer los derechos y responsabilidades de las partes involucradas en el proceso.
Una recomendación es que el contrato sea redactado por un abogado, pero debe estar firmado por la persona que realizar la prueba pertinente y sobre todo la organización. Por lo general un contrato bien elaborado debe considerar estos puntos:
- Cláusula de no divulgación: La organización redacta esta cláusula para salvaguardar su información confidencial.
- Objetivos del Pentesting: En esta sección del contrato se establecen las razones para realizar la prueba de penetración, los objetivos y el alcance de la prueba.
- Cuotas y calendario de proyectos: Se establecen las opciones de pago y precios del servicio Pentesting, así como el calendario de actividades a realizar.
- Información sensible: En este apartado se incluye información relacionada con los activos de la organización, el desarrollo de aplicaciones, los parámetros de seguridad de la red u otra información confidencial que requiera el equipo que realizara las pruebas.
-Información confidencial: Esta información incluye secretos comerciales, red, sistema telefónico, datos del cliente, materiales comerciales. Esta información se proporciona al prestador del servicio de manera confidencial, con la condición de esta no se divulgue a una tercera persona, compañía, a menos que se mencione en la autorización por escrito de la parte que confía.
- Cláusula de indemnización: Mediante esta cláusula se protege al prestador del servicio de cualquier problema legal o financiero, en caso de que el Pentesting resulte en una pérdida o daños a los activos de la organización.
- Informes y responsabilidades: Las pautas del contrato establecen la metodología para permitir los procedimientos de prueba e informe y el período de tiempo para la tarea asignada.

Reglas de compromiso: Las reglas de compromiso por sus siglas en ingles ROE (Rules of engagement) es el permiso formal para realizar un Pentesting. Proporcionan ciertos derechos y restricciones al equipo de pentesting para realizar la prueba, y ayudan a los evaluadores a superar las restricciones legales, federales y relacionadas con las políticas para utilizar diferentes herramientas y técnicas de pruebas de penetración.

¿Qué debe contener un ROE? - Establecer el contacto por parte del equipo de pentesting, la organización y otros involucrados como administradores de sistemas o red.
- Direcciones IP/rangos que serán analizados.
- Redes y equipos que estarán restringidos.
- Una lista de las técnicas (DoS, Ingeniería social) y herramientas permitidas (Sniffers).
- Fecha y hora en que se realizará la prueba.
- Identificar el periodo de duración y culminación de la prueba.
- La dirección IP del equipo que utilizará el pentester, para diferenciar los ataques de prueba a uno real.

Cláusula de no competencia:*
Si la compañía que nos contrata solicita que no se brinde el mismo servicio a su competencia, se hará uso de esta cláusula, en la cual debe quedar claramente quienes son los competidores directos y el tiempo que se aplicarán estas restricciones.

Casos típicos de ataques

Tipos de Análisis

Análisis Estático de Malware: También conocido como análisis de código, con el propósito de revisar el código binario sin ejecutarlo.
Análisis Dinámico de Malware: Implica ejecutar el malware para conocer la manera en que interactúa con el sistema.

Ataque Denegación de Servicio

Impedir que un recurso de una aplicación sea accedido de forma correcta a los usuarios, que trate de consumir los recursos de red, de disco duro o de memoria RAM, para no mostrar el servicio o hacerlo un poco mas lento

Ingeniería Social

Consiste en manipular a una persona a través de técnicas psicológicas y habilidades sociales para cumplir una meta en específico. Por ejemplo obtener una contraseña.
Algunas técnicas son:
Phishing: Se encarga del robo de la información o la suplantación de la identidad, por ejemplo redirigiéndonos a páginas desconocidas similares a las originales, donde podemos colocar nuestros datos de autenticación.
Dumpster Diving: Buscar información en la basura, para tal vez encontrar algún dato importante.
Baiting: A través de memorias USB o dispositivos extraibles almacenar virus o malware para que alguna persona que la use sea afectada.
Shoulder Surfing: Personas espiando cuando estamos accediendo con nuestras credenciales en algún dispositivo.