Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Buscador

Entradas Mensuales

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Foro de elhacker.net - Noticias

elhacker.NET en Facebook

Entradas populares

PostHeaderIcon Términos y conceptos de seguridad informática




Vocabulario básico para empezar a entender y comprender mejor las noticias de seguridad informática. Un repaso a un pequeño glosario de términos habituales en el mundillo.




CVE (Common Vulnerabilities and Exposures)

Es el "número" que se le asigna a una vulnerabiliad.

CVE® internacional poner a su alcance y libre de uso público, CVE es un diccionario de vulnerabilidades y exposiciones de seguridad de información de conocimiento público. Identificadores comunes de CVE permiten el intercambio de datos entre los productos de seguridad y proporcionan un punto de índice de referencia para la evaluación de la cobertura de las herramientas y servicios.

Formato:

  •  formato para las entradas CVE es: CVE-YYYY-NNNN (YYYY indica el año y NNNN el número de vulnerabilidad)

CVE-2015-ID

Es decir, Common Vulnerabilities and Exposures, siglas CVE, es una lista de información registrada sobre conocidas vulnerabilidades de seguridad, donde cada referencia tiene un número de identificación único.

 De esta forma provee una nomenclatura común para el conocimiento público de este tipo de problemas y así facilitar la compartición de datos sobre dichas vulnerabilidades.

PoC (Proof of Concept) - Prueba de Concepto


Una prueba de concepto o PoC (por sus siglas en inglés) es una implementación, a menudo resumida o incompleta, de un método o de una idea, realizada con el propósito de verificar que el concepto o teoría en cuestión es susceptible de ser explotada de una manera útil.

La PoC se considera habitualmente un paso importante en el proceso de crear un prototipo realmente operativo.

CTF (Capture The Flag)

"Capture the Flag" (Captura la bandera) o CTF, donde lo que se captura son ordenadores y servicios, o bien pruebas, según la modalidad a que se juegue: en los CTF de "Ataque y defensa", cada equipo tiene un servidor que debe defender, mientras conquista los del resto. Los CTF tipo 'Jeopardy', en cambio, consisten en un panel de pruebas relacionadas con el hacking.

Consiste en un montón de retos/pruebas/desafíos informáticos que hay que superar en equipo

En seguridad informática, el Capture the flag (CTF) es un concurso o reto (wargame) en el que los participantes luchan por obtener la máxima puntuación superando una serie de pruebas técnicas relacionadas con diferentes disciplinas dentro de la seguridad, como por ejemplo, ingeniería inversa, análisis de red y protocolos, criptoanálisis, seguridad web, etc.

En su versión original (celebrada en el congreso de seguridad Def Con) se juega por equipos. A cada uno de ellos se le asigna una máquina, o incluso una pequeña red, dentro de una red aislada donde se llevará a cabo el juego . La máquina suele ser una imagen vmware que corre un sistema operativo común, con una serie de servicios abiertos, normalmente creados para el evento, y en los que se han incluido (y escondido) diversas vulnerabilidades.

Cada equipo tiene una doble misión: por un lado atacar al resto de máquinas explotando las vulnerabilidades en los servicios y redes de sus contrincantes (robando una “bandera” de la máquina atacada o bien situando la suya propia en el servidor comprometido, como prueba del éxito obtenido) y por otro, defenderse del resto de participantes, que tratarán de hacer lo propio. A medida que avanza el juego el panel de puntuaciones (score-server) se va actualizando, en función del éxito parcial obtenido por cada equipo.

Otra modalidad que está muy extendida (se utiliza por ejemplo en las “quals” de Def Con) consiste simplemente en un panel repleto de pruebas de diferente dificultad (y que puntúan proporcionalmente a la misma) y que suelen estar ordenados según la temática. Las pruebas inicialmente se encuentran bloqueadas, sin poder acceder a estas, pero se van desbloqueando progresivamente conforme se va desarrollando el juego, normalmente a criterio del organizador, que tratará de animar lo más posible el evento, dar pistas para que los concursantes no se queden atascados, etc.

Ambas modalidades son muy divertidas y sobre todo, didácticas. Es la forma perfecta de demostrar tus habilidades y “aprender jugando”.

Hook

Técnicamente, una función de “Hook” es una función que puede ser insertada en el sistema de mensajes de aplicaciones de Windows de tal modo que a través de la misma poder procesar la información antes de ser procesada por otra aplicación.

Fuzzear (Fuzzing)

Script o programa que va probando (pruebas) combinaciones para conseguir que un programa falle (explotar vulnerabilidades) y obtener así posibles vectores de ataque.

Es una de las técnicas más utilizadas para la búsqueda de vulnerabilidades es el fuzzing. Consiste en probar, de forma más o menos inteligente, el comportamiento de una aplicación frente a unos datos generados específicamente para hacer que un programa falle, ya sea generando datos en una codificación diferente, enviando cadenas largas o probando a desbordar valores numéricos.

Una de las partes más importantes del fuzzing es la automatización y la instrumentalización. El analista busca generar una batería de pruebas que pueden tardar horas o días en realizarse, por lo que las aplicaciones o frameworks destinados a este tipo de trabajos, suelen incorporar monitores para detectar la caída de la aplicación que se esté probando. Además, permiten grabar la sesión y datos relativos a la caída, como volcado de memoria, captura de red o desensamblado de la función afectada.

Hash

Una función criptográfica hash- usualmente conocida como “hash”- es un algoritmo matemático que transforma cualquier bloque arbitrario de datos en una nueva serie de caracteres con una longitud fija. Independientemente de la longitud de los datos de entrada, el valor hash de salida tendrá siempre la misma longitud.



Los hash o funciones de resumen son algoritmos que consiguen crear a partir de una entrada (ya sea un texto, una contraseña o un archivo, por ejemplo) una salida alfanumérica de longitud normalmente fija que representa un resumen de toda la información que se le ha dado (es decir, a partir de los datos de la entrada crea una cadena que solo puede volverse a crear con esos mismos datos).

Estas funciones no tienen el mismo propósito que la criptografía simétrica y asimétrica, tiene varios cometidos, entre ellos está asegurar que no se ha modificado un archivo en una transmisión, hacer ilegible una contraseña o firmar digitalmente un documento.

Este sistema de criptografía usa algoritmos que aseguran que con la respuesta (o hash) nunca se podrá saber cuales han sido los datos insertados, lo que indica que es una función unidireccional. Sabiendo que se puede generar cualquier resumen a partir de cualquier dato nos podemos preguntar si se podrían repetir estos resúmenes (hash) y la respuesta es que teóricamente si, podría haber colisiones, ya que no es fácil tener una función hash perfecta (que consiga que no se repita la respuesta), pero esto no supone un problema, ya que si se consiguieran (con un buen algoritmo) dos hash iguales los contenidos serían totalmente distintos.

Formas de uso:


  • Asegurar la integridad de la información
  • Firma digital

Strings (cadena de texto)

Cadena / Cadena de caracteres: Es una consecución de caracteres de texto, dígitos numéricos, signos de puntuación, caracteres especiales o espacios en blanco consecutivos.

File Carving

El File Carving es el proceso de extracción de una serie de datos que se encuentran dentro de otro conjunto mayor de datos. Las técnicas de Data Carving son usadas frecuentemente en Análisis Forense cuando nos encontramos con porciones de datos pertenecientes al Sistema de Archivos que a primera vista no están usados pero que pueden tener sorpresas.

Existen varias técnicas dentro del File Carving, pero lo que debe de quedar claro es que NO se usan las estructuras/metadatos del Sistema de Archivos para recuperar datos. Esto es fundamental, ya que las técnicas "clásicas" de recuperación de ficheros usaban precisamente estos mecanismos que proveen los Sistemas de Archivos, por ejemplo las tablas de ficheros. Esto es así porque la mayoría de los Sistemas de Ficheros no tocan la localización física de los ficheros durante el borrado, sino que se limitan a marcarla como vacía para que se pueda grabar en esa posición. Después del borrado, la entrada en la tabla seguirá estando presente y seguramente el puntero a la dirección de memoria donde se encuentra también, de forma que el fichero podrá ser recuperado.

Así mismo, existen multitud de herramientas tanto software libre como software privativo que permiten realizar el proceso de «file carving» con mayor o menor efectividad y utilidad. A continuación, se describen algunas de ellas:


  • Foremost - http://foremost.sourceforge.net (se abre en nueva ventana) es una herramienta de código abierto desarrollada por la Oficina de Investigaciones Especiales de las Fuerzas Aéreas estadounidenses. Permite trabajar tanto con imágenes de dispositivos (dd, encase, etc.) como directamente sobre el dispositivo. Está orientada a la recuperación de información en entornos Linux. Presenta la limitación de que únicamente es capaz de procesar ficheros de hasta 2 GB.
  • Scalpel - https://github.com/sleuthkit/scalpel (se abre en nueva ventana) es una herramienta de código abierto, basada en Foremost, aunque mucho más eficiente, incluida en The Sleuth Kit. Está orientada a la recuperación de información tanto en entornos tanto Linux, OSX incluido, como Windows.
  • Forensic Toolkit (FTK) AccessData - http://accessdata.com/solutions/digital-forensics/forensic-toolkit-ftk?/solutions/digital-forensics/ftk (se abre en nueva ventana) es una suite muy completa para realizar análisis forenses. Una de las muchas funcionalidades que incorpora es la de «carving» avanzado que le permite especificar criterios de búsqueda como tamaño de archivo, tipo de datos y tamaño de pixel, para reducir la cantidad de datos irrelevantes extraídos.
  • X-Way Forensics (WinHex) - http://www.x-ways.net/forensics/ (se abre en nueva ventana) al igual que FTK es una suite completa para realizar análisis forenses. Su prestaciones de «carving» no son demasiado configurables, si bien si potentes.

 Direcciones (offset) y punteros (pointer)

En informática, un offset dentro de un array u otra estructura de datos es un entero que indica la distancia (desplazamiento) desde el inicio del objeto hasta un punto o elemento dado, presumiblemente dentro del mismo objeto. El concepto de distancia es solamente válido si todos los elementos del objeto son del mismo tamaño (típicamente dados en bytes o palabras).


  • Hexadecimal (hex): Es un sistema de numeración de base 16 que usa la rom, se escribe con números y las letras de la a a la efe. Para identificarlo se escribe "0x(número)" aunque en AM se escribe "$(número)". Fíjate bien que cantidades están en decimal y cuales en hexadecimal. Scripted al compilar convierte automaticamente las cifras decimales que escribas a hex.
  • Byte: Un byte son dos cifras hexadecimales, en la rom la información se escribe en bytes. Por ejemplo esto "0F 00 19 D1 16 08 09 04" es una serie de 8 byes y así se escribiría un messagebox en la rom.
  • Dirección: Para localizar donde se guardan los datos de la rom, todos sus bytes están numerados desde el 0x000000 hasta el 0xFFFFFF (en decimal 0-16777215). Por ejemplo si la serie anterior la compilamos en la dirección 0x123456 significa que el primer byte (0F) está ahí, el 2º (00) en 0x123457, el 3º (19) 0x123458 y así sucesivamente. Obviamente si compilas algo en una dirección ya ocupada sobreescribirás lo que ya hubiese.
  • Puntero: Los punteros son como la rom encuentra la información. Aunque para los humanos la serie anterior está en 0x123456 para la rom esto se escribe así: 56341208. ¿Porqué? Pues por una parte la rom permuta los bytes y además añade un prefijo.
  • Permutar: Cuano decimos permutar nos referimos concretamente a escribir una serie de bytes al revés y por parejas. Como ejemplo: 00 11 AB 23 > 23 AB 11 00. En la rom todas las referencias a otros datos se escriben así, por ejemplo las flags, las direcciones, los índices... todo.
  • Prefijo de un puntero : Para referirse a los datos de la rom se prefija 08 a las direcciones. Eso es porque cuando el juego se ejecuta, hay datos que no están escritos en la rom como tus medallas, tu nombre tu equipo... todos esos datos se guardan en la partida guardada y también se necesitan cargarse con punteros. 

 Overflow

 SEH overflow (también es un stack based overflow)

Shellcode

Encodear, opcodes,


Primero necesitamos saber el significado etimológico de shellcode.

Shell es como se le dice en ingles (ahora universal) a una terminal. Por lo tanto shellcode significa que es un codigo que nos crea una terminal para que la usemos.

Actualmente el termino shellcode no solo se refiere al código que nos permite crear una shell, sino que se extiende a codigos con mas funciones como pueden ser crear usuarios, matar/crear un determinado proceso, dar permisos a una carpeta, etc. Y tecnicamente... una shellcode es una porcion de codigo compilada para un determinado procesador que se ejecuta dentro de otro proceso previamente preparado para que la ejecute (ej: stack overflow).

Cuando se produce un overflow en un programa, podemos sobreescribir EIP “Instruction Pointer” (entre otras cosas). Si sobreescribimos este registro con una dirección que contiene código propio, se ejecutará. Esto es, podemos ejecutar código con los permisos que tiene el programa ejecutado. ¿Qué pasa si el programa tiene el bit de suid activado? Lo dejo a vuestra imaginación. Encontrar este tipo de xploits es muy difícil hoy en dia, puesto que hay muchas herramientas de análisis de código que evitan que se produzcan tremendos errores de seguridad. Aun así, podemos encontrar o programar algo a medida simplemente para aumentar conocimientos, que es en lo que consiste la curiosidad (lo otro se llama ‘prensa rosa’).

Esteganografía

Según la Wikipedia: La esteganografía (del griego στεγανος (steganos):cubierto u oculto, y γραφος (graphos): escritura), trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos dentro de otros.

Por otro lado, el estegoanalisis es el estudio de la detección de mensajes ocultos usando esteganografía.

Por ejemplo el estudio de metadatos con herramientas como efixtool

Remote code execution (RCE)

El principal impacto que puede generar esta vulnerabilidad es la ejecución remota de código (RCE -Remote Code Execution-).

Una vulnerabilidad que nos deja ejecutar comandos de manera remota.

Payload

¿Carga útil?

Por ejemplo en un virus informático, el payload es la carga dañina de un virus, es decir, lo que estos son capaces de hacer al activarse.

Este término se refiere a los efectos destructivos, nocivos o molestos que cualquier virus puede producir cuando ya ha tenido lugar su infección, además de los efectos secundarios de dicha infección (cambios en la configuración del sistema, reenvío de e-mail, ejecución del virus en el arranque del sistema o de Windows, etc).

Un Payload, es un programa que acompaña a un exploit para realizar funciones especificas una vez el sistema objetivo es comprometido, la elección de un buen payload es una decisión muy importante a la hora de aprovechar y mantener el nivel de acceso obtenido en un sistema. En muchos sistemas existen firewalls, Antivirus y sistemas de detección de intrusos que pueden dificultar la actividad de algunos payloads, por este motivo se suelen utilizar encoders para intentar evadir cualquier AV o Firewall.


Malware o APT

Malware: Cualquier programa, documento o mensaje, susceptible de causar perjuicios a los usuarios de sistemas informáticos. MALicious softWARE.

Se habla mucho de los Advanced Persistent Threat (APT) en referencia a individuos o grupos con la capacidad, persistencia y efectividad para comprometer la seguridad de los sistemas informáticos de cualquier organización que se propongan.

Adware: Son aquellos programas que muestran publicidad utilizando cualquier tipo de medio, por ejemplo: ventanas emergentes, banners, cambios en la página de inicio o de búsqueda del navegador, etc. Puede instalarse con el consentimiento del usuario y su plena conciencia, pero en ocasiones no es así. Lo mismo ocurre con el conocimiento o falta del mismo acerca de sus funciones. 

Dropper: Es un fichero ejecutable que contiene varios tipos de virus en su interior.

ELF -ficheros- (Executable and Linking Format): Ficheros ejecutables (programas), propios del sistema operativo Unix/Linux.

Polimórfico / Polimorfismo: Es la técnica que utilizan algunos virus para cifrar (codificar) su firma de forma diferente en cada ocasión y además las instrucciones para realizar dicho cifrado.

Rootkit: Programa diseñado para ocultar objetos como procesos, archivos o entradas del Registro de Windows (incluyendo los propios normalmente). Este tipo de software no es malicioso en sí mismo, pero es utilizado por los piratas informáticos para esconder evidencias y utilidades en los sistemas previamente comprometidos. Existen ejemplares de malware que emplean rootkits con la finalidad de ocultar su presencia en el sistema en el que se instalan.

Vulnerabilidad

Según la RAE, la palabra vulnerable significa “que puede ser herido o recibir lesión, física o moralmente”. Cuando hablamos de personas vulnerables nos referimos a aquellas que son más frágiles y se las puede herir física o moralmente por tener condiciones sociales, culturales, políticas, etc. diferente de otras personas. También puede ser vulnerable por circunstancias de la vida –fallecimiento de un familiar, pérdida de trabajo…- que le hace estar más débil y finalmente por ser más frágiles que otros colectivos, como es el caso de los niños y ancianos. Resumiendo, es como si una persona tuviese un agujerito en su cuerpo a través del cual se le puede hacer daño con diferentes cosas.
Pues bien, cuando se dice que un sistema es vulnerable o un programa tiene una vulnerabilidad, significa que tienen un agujero que puede ser utilizado para colarse dentro de ellos. Éstos, generalmente están provocados por errores de programación y/o diseño, que permiten que un tercero meta por ellos programas que puedan realizar acciones maliciosas como infectar dispositivos, robar información privada, controlar dispositivos de forma remota, etc.

Exploit

Es una técnica o un programa que aprovecha un fallo o hueco de seguridad -una vunerabilidad- existente en un determinado protocolo de comunicaciones, sistema operativo, o herramienta informática.

Bug: Este término se emplea para indicar un fallo o error en un programa informático. Cuando uno de ellos tiene errores, se dice que tiene bugs.

Cómo ya sabéis que es una vulnerabilidad, ahora entenderéis lo que es un exploit: es un programa creado específicamente para aprovechar una vulnerabilidad del sistema o programa.
¿Te imaginas que pasaría si alguien descubre un fallo de diseño en la cerradura de la puerta de un modelo de coche, de tal forma que se pudiese abrir fácilmente sin la llave específica? Está claro, si no se soluciona el problema rápidamente y, además, no se ponen medidas de protección alternativas, estamos expuestos a que cualquiera pueda abrir nuestro coche con una llave diseñada específicamente para explotar ese fallo.

Un exploit es un programa que explota una o varias vulnerabilidades en un software determinado, frecuentemente es utilizado para ganar acceso a un sistema y tener un nivel de control sobre él.

Backdoor / Puerta trasera: Se trata de un programa que se introduce en el ordenador y establece una puerta trasera a través de la cual es posible controlar el sistema afectado, sin conocimiento por parte del usuario.

0-day

Esta es una vulnerabilidad que, por ser muy reciente, no aprovecha en su totalidad todas las ventajas que podría proporcionar. En este ámbito, la prueba de concepto se utiliza como demostración de que una aplicación o servicio puede ser vulnerable.

Puede parecernos poco problemático el hecho de que se conozca una vulnerabilidad, porque lo normal, es que el fabricante desarrolle una solución lo antes posible para evitar males mayores.
Sin embargo, ¿qué pasa si alguien encuentra una vulnerabilidad en un programa o sistema y no se lo cuenta a nadie? Se puede dar el caso, de hecho es bastante común, que ni el fabricante ni los usuarios sean conocedores del problema... Estaríamos ante un fallo muy grave ya que un atacante podría explotar dicha vulnerabilidad sin que el usuario fuese consciente de que es vulnerable. A esta situación es a lo que se conoce como un 0-day (sólo “una persona” (o muy pocas) sabe que la cerradura tiene ese problema).

Vector de ataque

Ya sabemos que es posible aprovecharse de fallos de seguridad detectados en sistemas y aplicaciones para intentar “colarse” dentro de ellos, pero ¿cómo lo hacen? Pues obviamente utilizando algún método/mecanismo/vía que te permita hacerlo.
Dependiendo de qué tipo sea la vulnerabilidad detectada, los ciberdelincuentes utilizarán un método u otro: enviando correos con un adjunto que al ejecutarlo podría descargar un virus en el ordenador, con un enlace que al hacer clic en él redirige al usuario a un sitio malicioso que descarga aplicaciones maliciosas en el dispositivo, descargando ciertos plugin, códec u otras herramientas creyendo que realizan unas funciones cuando en realidad hacen otras, etc.

Parche o actualización de seguridad

Después de todos los elementos mencionados anteriormente, tenemos lo que se conoce como parches de seguridad, que son básicamente actualizaciones, que entre otros problemas corrigen los fallos de seguridad detectados y que impiden que se sigan explotando las vulnerabilidades. Digamos que después de la tormenta llega la calma, una vez que se haya publicado un parche de seguridad y el usuario haya actualizado sus programas y aplicaciones, los problemas desaparecen… hasta que se haga público una nueva vulnerabilidad. Ya os iréis dando cuenta, ¡los “malos” nunca descansan!
Si has terminado de leer este artículo, ya no te sonará a chino estos conceptos cuando los encontréis escritos en algún artículo o escuchéis a alguien utilizarlos en alguna conversación, y además, habréis dado un paso más para ampliar vuestra cultura de la ciberseguridad. ¡Enhorabuena!







Fuentes:
https://www.osi.es/es/actualidad/blog/2015/07/31/los-5-conceptos-de-seguridad-que-debes-conocer-si-o-si
http://www.pandasecurity.com/spain/homeusers/security-info/glossary/

1 comentarios :

Jhon Cordoba dijo...

Genial, excelente contenido .Muchas gracias. :)

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.