Rarezas y cosas que no sabías de JavaScript – Parte 2

Hace un tiempo os traje una publicación en la que os mostraba algunas cosas curiosas que tiene el lenguaje JavaScript. Lo puedes ver en este enlace: «Rarezas y cosas que no sabías de JavaScript«.

Expresiones regulares

Vamos a comenzar hablando de algunos secretos en las expresiones regulares. Este en concreto, apareció en la versión 1.3.

El uso que se le suele dar a la función «replace()» suele ser algo de este estilo: alert('10 13 21 48 52'.replace(/d+/g, '*')); //reemplaza todos los números por *. Se trata de una forma simple de usarlo, pero ¿qué pasaría si quisiéramos tener más control? ¿Qué pasaría si, por ejemplo, quisiéramos reemplazar solo los números menores de 20? Necesitamos saltar a una función de devolución de llamada para evaluar cada coincidencia.

alert('10 13 21 48 52'.replace(/d+/g, function(match) { return parseInt(match) 20 ? '*' : match;}));

Para cada coincidencia realizada, JavaScript llama a nuestra función y pasa la coincidencia a nuestro argumento de coincidencia. Luego, devolvemos el asterisco (si el número coincidente es inferior a 20) o la coincidencia misma (es decir, no debería realizarse ninguna coincidencia).

Otra función que es desconocida por mucha gente es la función «test()». Seguro que has usado expresiones regulares para buscar coincidencias en cadenas de texto. Y seguro que las funciones que has utilizado son «match» y «replace«, ya que solo con esas dos ya resuelves una gran parte de tus problemas. La función «test» funciona igual que «match» pero en lugar de devolver la coincidencia, devuelve true o false en caso de que el patrón coincida o no lo haga. Ejemplo: /w{3,}/.test('Hello') –> devuelve ‘true’.

Finalmente destacar la función «RegExp» que permite utilizar expresiones regulares de forma dinámica, es decir, permite pasar una variable que contenga la expresión regular, en lugar de tener que declararla con la forma corta (entre barras diagonales, como en el ejemplo anterior).

function findWord(word, string) { var instancesOfWord = string.match(new RegExp('b'+word+'b', 'ig')); alert(instancesOfWord);}findWord('car', 'Carl went to buy a car but had forgotten his credit card.');

Debido a que se especifican como cadenas, no mediante sintaxis de barra diagonal, podemos usar variables para crear el patrón. Sin embargo, esto también significa que debemos aplicar doble escape a cualquier carácter especial, como hicimos con el carácter de límite de palabra.

Misceláneas

Este problema no es exclusivo de JavaScript; de hecho, es una peculiaridad común en la informática que afecta a muchos lenguajes. La salida que obtienes al hacer esto 0.1 + 0.2 es 0.30000000000000004.

Esto está relacionado con lo que se conoce como la precisión de las máquinas. Cuando JavaScript intenta ejecutar la operación anterior, convierte los valores a sus equivalentes binarios.

Aquí es donde surge el problema: el valor 0.1 no es exactamente 0.1, sino una aproximación binaria cercana. En resumen, tan pronto como ingresas estos valores, ya están destinados a perder algo de precisión. Quizás esperabas dos decimales simples, pero lo que obtienes es el resultado de una aritmética binaria de punto flotante. Es como intentar traducir tu texto al ruso pero recibirlo en bielorruso: parecidos, pero no iguales.

Hay más aspectos técnicos aquí, pero son complejos y exceden el alcance de este artículo.

Las soluciones a este problema son un tema frecuente en los foros de desarrollo. La elección de una solución depende del tipo de cálculos que estés realizando. Aunque no entraremos en detalle sobre los pros y contras de cada método, las opciones comunes incluyen:

  1. Convertir a enteros y hacer los cálculos antes de volver a convertir a decimales.
  2. Modificar la lógica para permitir un rango de valores en lugar de un resultado exacto.

Es decir, en lugar de hacer:

var num1 = 0.1, num2 = 0.2, shouldEqual = 0.3;
alert(num1 + num2 == shouldEqual); // false

Podías hacer:

alert(num1 + num2 > shouldEqual - 0.001 && num1 + num2 < shouldEqual + 0.001); // true

En esencia, estás verificando si la suma de 0.1 + 0.2 es aproximadamente 0.3, dentro de un margen de error de 0.001 a cada lado. El inconveniente es que, para cálculos que requieren alta precisión, esta aproximación podría no ser adecuada.

Algo indefinido se puede definir

Vamos a terminar con un caso curioso y aparentemente inofensivo. Aunque undefined tiene un significado especial en JavaScript y se utiliza para determinar si una variable no está definida, sorprendentemente, no es una palabra reservada. Esto significa que puedes reasignarla, lo cual puede llevar a comportamientos inesperados. Por ejemplo:

var someVar;
alert(someVar == undefined); // evalúa como true

Hasta aquí todo parece normal. Sin embargo, considera lo siguiente:

undefined = "¡Ya no soy undefined!";
var someVar;
alert(someVar == undefined); // evalúa como false

Como ves, al reasignar undefined, cambias su significado, lo que puede causar errores difíciles de detectar. Para evitar problemas como este, es recomendable no modificar undefined y siempre mantener buenas prácticas de codificación. Además, puedes consultar la lista de palabras reservadas de JavaScript en Mozilla para futuras referencias.

Trucos de WhatsApp que casi Nadie Conoce

WhatsApp se ha convertido en una de las aplicaciones de mensajería más populares del mundo, utilizada por millones de personas para comunicarse a diario. Aunque la mayoría de nosotros utilizamos sus funciones básicas, WhatsApp ofrece una variedad de trucos y características ocultas que pueden mejorar tu experiencia de usuario. En este artículo, te presentamos algunos de los trucos más útiles y menos conocidos para convertirte en un experto de WhatsApp.

    • Para escribir en negrita: coloca un asterisco antes y después del mensaje: *texto*.
    • Para escribir en cursiva: coloca un guión bajo antes y después del texto: _texto_.
    • Para escribir texto tachado: coloca una tilde ~ antes y después de tu mensaje: ~texto~.
    • Crea tus propios Stickers
      1. Abre WhatsApp en el PC (o en la App)
      2. Presiona el botón de la cara sonriente de los emojis.
      3. Selecciona “Stickers” y luego pulsa el botón “+”.
      4. Elige la foto que quieres usar.
      5. Adapta el tamaño y confirma en el botón de arriba a la izquierda.
    • Previsualiza los mensajes de voz antes de enviarlos.
      1. Desliza hacia arriba en el icono del micrófono para bloquearlo en modo de grabación.
      2. Reproduce el mensaje para asegurarte de que dijiste lo que querías.
      3. Si es necesario, grábalo de nuevo antes de enviarlo.
    • Envía mensajes de voz para que solo se escuchen una vez.
      1. Desliza hacia arriba en el icono del micrófono para bloquearlo en modo de grabación.
      2. Pulsa el botón con el ‘1’ a la derecha del reproductor.
    • Protege tus chats con una contraseña mediante el bloqueo de chat.
      1. Presiona en el nombre del contacto o grupo.
      2. Desliza hacia abajo hasta encontrar “Restringir Chat” y actívalo.
      3. Dale a Continuar y confirma con tu huella dactilar o sistema de bloqueo configurado.
    • Accede a los chats que has restringido.
      1. En la sección “Chat”, desliza hacia arriba para mostrar más opciones.
      2. Selecciona “Chats restringidos”, solo accesible con tu huella o sistema de bloqueo.
    • Envía un mensaje sin guardar el contacto desde el móvil.
      1. Pulsa el botón de mensaje nuevo en la pantalla de “Chat”.
      2. Dale al botón de la lupa y escribe el número con el prefijo, pero sin el símbolo “+”.
    • Envía un mensaje sin guardar el contacto desde el PC.
      1. Abre cualquier navegador web.
      2. Ingresa la URL: https://api.whatsapp.com/send?phone=xxxxxxxxxx. Reemplaza las ‘x’ con el número de teléfono, sin el símbolo “+” del prefijo, y presiona “Ir al chat”.
    • Atajos de teclado en WhatsApp para PC.
      1. Pulsa “Configuración” abajo a la izquierda.
      2. Selecciona “Atajos” y visualiza la lista de atajos disponibles.
    • Usa emojis automáticamente en WhatsApp para PC.
      1. Pulsa “Configuración” abajo a la izquierda.
      2. Selecciona “General” y activa “Reemplazar texto con emojis”.
    • Añade múltiples cuentas en WhatsApp.
      1. Pulsa el icono de los tres puntos y accede a “Ajustes”.
      2. Ve a “Cuenta” y selecciona “Añadir cuenta”.
      3. Presiona “+ Añadir Cuenta” y sigue las instrucciones.
    • Usa la función «Deshacer eliminar para mí» en WhatsApp.
      1. Deja pulsado el mensaje que vas a eliminar.
      2. Si pulsas “Eliminar para mí” por error, clica en “Deshacer” que aparece abajo a la derecha.
    • Fija hasta 3 mensajes en un chat.
      1. Deja pulsado el mensaje que quieres fijar.
      2. Presiona los tres puntos arriba a la derecha y selecciona “Fijar”.
      3. Elige el tiempo de fijación: 24 horas, 7 días o 30 días.
    • Envía videos de alta calidad en WhatsApp.
      1. Presiona el clip para adjuntar archivos.
      2. Busca o graba el video.
      3. Pulsa en el botón “HD” que aparece arriba y selecciona la máxima calidad.

¡No dudes en compartir estos trucos con tus amigos y familiares para que todos puedan disfrutar de una mejor experiencia en WhatsApp!

Ingeniería Social (Parte 2)

El otro día, en el artítulo «El Eslabón más Débil: Ingeniería Social» os hablaba de la importancia de la Ingeniería Social en los ciberataques actuales y que el motivo de que fuera una técnica tan utilizada era que cada vez los sistemas son más complejos y difíciles de romper y por tanto, hay que buscar el eslabón más débil. Hoy vamos a explicar en más profundidad en qué consiste esta técnica.

Clasificación

Hay muchos métodos de ingeniería social, pero se pueden agrupan en:

  • Técnicas pasivas.
    • Observación.
  • Técnicas no presenciales.
    • Correo electrónico.
    • Teléfono.
    • Correo ordinario.
    • Fax.
  • Técnicas presenciales no agresivas.
    • Hablar con conocidos y otras personas.
    • Vigilancia.
    • Seguimiento.
    • Utilización de acreditaciones falsas para obtener información.
    • Técnicas de desinformación.
  • Técnicas presennciales agresivas.
    • Suplantación de indentidad.
    • Chantaje o extorsión.
    • Despersonalización (Drogas, alcohol…)
    • Presión psicológica.

De todos estos, la técnica más utilizada es la no presencial. Esta suele ser bastante efectivo y es más complicado que la identidad del atacante se vea comprometida. Es por esto que habitualmente nos pueden llegar mails que suelen tener uno de estos «formatos»:

  • Suplantación identidad de alguna gran entidad o empresa (Apple, Google…), servicio del estado (correos, hacienda, la policía…), banco o página web… de la cual se desee obtener información. La página fraudulenta podrá recopilar las credenciales de las víctimas así.
  • Incitar a abrir documentos o archivos infectados, ya sea por engaño haciéndolos pasar por documentos importantes, por información comprometida de la persona, publicidad engañosa…

Se podría decir que «En todas las empresas siempre hay un Jose y una Andrea que hacen clic a todo. Les llega un correo con vacaciones gratis al Caribe, clic; quieren hacerse fotos con alguien famoso, clic; les invitan a una gala para darles un premio, clic…»

Las personas son un mundo y los atacantes también, es por ello que la ingeniería social depende de cada atacante y de cada situación. En ciertas ocasiones con enviar un mensaje al administrador de segurida de la empresa solicitando la IP de un servidor FTP, la obtienes. Otras veces necesitas enviar un spam masivo a todos los empleados de la empresa confiando en que alguno haga click en un enlace. Y otras necesitarás solamente sentarte en el metro al lado de la víctima para ver la contraseña de su móvil cuando la introduzca. Como he dicho… la ingeniería social es un arte.

Al ser tan diversas las situaciones o métodos utilizados, no hay una solución perfecta. Y aunque se puede reducir al máximo el peligro, las personas siempre son susceptibles al engaño.

Es por ello que lo mejor que se puede hacer es tomar medidas para reducir estas técnicas y minimizar su impacto:

  • La mejor prevención contra las técnicas de ingeniería social es la concienciación sobre la seguridad.
  • Nunca compartas tus contraseñas, ya que nadie debería pedírtelas, y evita divulgar información de la empresa a personas externas.
  • Utiliza un servidor de correo interno para filtrar el spam y mantén separados los correos personales de los laborales.
  • Además, asegura que la descentralización en la empresa esté bien organizada, con segmentos claramente definidos para la transmisión de información hasta los ejecutivos.

La educación y la organización son esenciales para protegernos de estas amenazas.

Ejemplos

  • Un ejemplo clásico es dejar un USB «olvidado» en el suelo o en una mesa cercana a la persona que queremos atacar. Una persona sin conocimientos de informática probablemente lo conectará a su ordenador para ver su contenido. A partir de ahí, el USB puede contener software autoejecutable que realiza acciones en segundo plano, como el Rubber Ducky USB, que actúa como un teclado externo y ejecuta scripts como si el atacante estuviera frente al ordenador, o archivos infectados que la víctima podría abrir. La curiosidad humana es una poderosa herramienta para los atacantes.
  • Otro ejemplo es crear una copia de la web de un banco y un mail fraudulento alegando alguna actividad  extraña en la cuenta o algún cargo que se ha realizado. De esta forma el usuario entraría en nuestra web y ya tendríamos las contraseñas. En la primera imagen podéis ver una web falsa y en la segunda la original.

  • Al igual que con el banco se pueden copiar otras webs como la de Apple u otras. Hace unos años se suplantó a Correos para conseguir que los usuarios descargaran un documento que cifraba el disco duro (Ransomware).
  • La ingeniería social persona a persona es igual de peligrosa, ya sea por teléfono, chats o en persona. Hoy en día, internet ofrece una gran cantidad de información sobre cualquier individuo si se sabe dónde buscar. Con estos datos, un atacante puede asumir un rol convincente para engañar a alguien. Redes como LinkedIn pueden revelar información sobre el entorno laboral de una persona, mientras que Facebook puede proporcionar detalles sobre sus costumbres, aficiones y familiares.

Sobre este último caso Kevin Mitnick nos da un ejemplo muy claro de como poder conseguir información de una empresa. Lo hace en su libro El arte de la intrusión.

  1. Llamada 1: El atacante llama a la oficina central de una empresa haciéndose pasar por una agencia de prensa y solicita el nombre del director de marketing, el fax de la recepción y los nombres de algunas personas de otros departamentos.
  2. Llamada 2: El atacante llama de nuevo, fingiendo ser un empleado nuevo en la oficina. Utilizando los nombres obtenidos anteriormente, pide hablar con el director de marketing. Alegando problemas informáticos, solicita que se envíen los planes de marketing al fax de la oficina central, usando un nombre inventado. El director, confiando en la familiaridad del atacante con el personal, envía los documentos.
  3. Llamada 3: El atacante llama nuevamente a la oficina central, usando el nombre inventado, y afirma ser de una consultora externa. Explica que hubo un error y el fax con los planes de marketing fue enviado allí por accidente, pidiendo que se lo reenvíen. La recepcionista, reconociendo el nombre y el asunto del fax, lo envía sin problemas.
  4. Finalmente, el atacante recoge el fax con el plan de marketing de la compañía en una copistería cercana.

Espero que este artículo os haya servido de ayuda y conciencie sobre los peligros de la ingeniería social. En el siguiente hablaremos de algunas herramientas que se utilizan para realizar estos ataques.

Minientrada

Aprende Patrones de Diseño

Hoy os traigo una web, que en mi opinión, es la mejor forma de aprender patrones de diseño en distintos lenguajes como JS, PHP, Python o Java. Además, está en español.

La web es refactoring.guru y «te ayuda a descubrir todo lo que necesitas saber sobre la refactorización, los patrones de diseño, los principios SOLID y otros temas de la programación inteligente».

Antes de un Ataque hay que Buscar Información: Footprinting

Antes de llevar a cabo cualquier ataque cibernético, la primera y crucial etapa es la búsqueda de información del objetivo. Esta fase, implica reunir datos detallados sobre la organización o individuo objetivo para identificar posibles vulnerabilidades. A través de diversas técnicas de ingeniería social (de la que os hablé el otro día y os hablaré en futuros artículos: Enlace), análisis de redes y exploración de recursos públicos, los atacantes pueden descubrir puntos débiles que les permitan acceder a sistemas críticos.

Comprender esta etapa es esencial no solo para los cibercriminales, sino también para los profesionales de ciberseguridad, ya que les permite anticiparse a las amenazas y fortalecer las defensas. En este artículo, exploraremos las metodologías y herramientas empleadas en la recolección de información y cómo pueden ser contrarrestadas para proteger nuestros activos digitales.

El footprinting consiste en la búsqueda de información pública del objetivo, es decir, recoger toda la información útil que esté publicada en Internet, ya sea a propósito o por  desconocimiento.

Esta búsqueda de información no se considera delito, ya que esta información es pública y además la entidad no debería detectarlo. Se buscará cualquier dato que nos sea de utilidad para poder lanzar posteriormente un ataque.

Una vez elegido el objetivo, el primer paso es navegar por el sitio web de la organización y utilizar sus aplicaciones y servicios en busca de errores. Esto incluye buscar enlaces olvidados que no deberían estar allí, especialmente en sitios web muy grandes, y examinar las llamadas a la base de datos. Al realizar consultas con parámetros incorrectos, como referencias a tablas inexistentes o intentos de introducir datos en una tabla vinculada con claves ajenas, la base de datos puede mostrar errores que revelen nombres de campos y tablas. Estos datos sensibles pueden ser explotados para llevar a cabo una inyección SQL, abriendo una puerta a posibles ataques.

Hay un mecanismo que utilizan algunas páginas web para que los buscadores como Bing o Google no indexen ciertas páginas de un sitio web en sus bases de datos. Es el llamado robots.txt, el cual se encuentra en la URL:

www.nombredelapagina.com/robots.txt

Si visitamos esa dirección en algunos sitios web podremos encontrar también una gran fuente de información, ya que se suele utilizar para poner las direcciones de páginas de administración del sitio o zonas restringidas de la entidad.

Después deberemos descargarnos el código fuente del sitio web entero. Para ello usaremos la herramienta httrack en Windows o webhttrack para Linux o Mac OS X. Esta herramienta dispone tanto de modo de uso gráfico como en consola. Con ella podremos descargarnos todo el sitio web de una entidad: el código HTML de las páginas web, las imágenes, documentos y archivos que tenga e incluso todas las páginas a las que enlace.

La herramienta se debe usar con precaución, pues permite la descarga simultánea de muchos objetos (imágenes, documentos, páginas…) y puede llegar a saturar la red si se realizan muchas conexiones al mismo tiempo.

Cuando ya tenemos todo el código se puede buscar en él. Muchas veces los desarrolladores suelen dejar comentarios que nos pueden ser útiles. De hecho hay demasiadas ocasiones en las que hay nombres de usuario y contraseñas por defecto, cuentas de correo, nombres reales…

Como todos sabréis, el formato de un comentarioen HTML es:

<!- – comentario del código – ->

Por lo que se pueden realizar búsquedas de la siguientes formas:

cat *.html | grep contraseña
cat *.html | grep –A 3 “<\!”

La primera busca en todos los archivos si está la palabra contraseña y la segunda busca el inicio de un comentario y muestra las siguientes tres líneas (por si el comentario fuera demasiado largo).

Otro paso interesante es preguntar a los buscadores (Google, Bing…) por el dominio del que nos interesa obtener información. En muchas ocasiones las arañas (crawlers) que utilizan los buscadores para navegar por internet de forma autonoma e indexar páginas, indexan páginas que no deben o que nos muestran cierta información que es difícil de encontrar de forma manual.

Tenéis más información en la siguiente entrada Enlace

Los buscadores tienen una serie de palabras y carácteres reservados para especificar más las búsqueda. Y para encontrar búsquedas más avanzadas (los llamados Dorks de Google) es recomendable visitar el repositorio de la Google Hacking Database (GHDB), que se encuentra en la página: https://blog.miguelandrescaballero.es/dorks

En esa web se pueden encontrar diferentes búsquedas realizadas para encontrar vulnerabilidades, usuarios, archivos… hasta contraseñas. Muchas de las búsquedas están desactualizadas, pero a día de hoy aún siguen apareciendo nuevos resultados útiles.

 

Y para no alargar mucho más este tema, continuaremos hablando sobre esto en futuras entradas y os indicaremos algunas herramientas útiles que se pueden utilizar para agilizar la búsqueda de información.

Cómo podemos proteger Nuestro Servidor de Ataques de fuerza Bruta

Si tienes un servidor Linux, este artículo te interesa. Voy a explicar una forma muy simple para aumentar la seguridad del servidor y evitar que usuarios malintencionados puedan acceder a él o adivinar tus contraseñas.

Seguro que si sigues interesado en este tema es porque dispones de un servidor Linux y acertaría si digo que te conectas a él a través de SSH. Pues bien, voy a enseñarte a evitar que usen la fuerza bruta para descubrir tu contraseña de acceso.

Lo primero que tenemos que hacer es instalar fail2ban. En debian podemos usar este comando ‘apt install fail2ban‘.

Una vez hecho, configurarlo es muy sencillo, debemos crear un fichero que indique el servicio que queremos proteger y como queremos hacerlo. Vamos a editar el siguiente fichero ‘nano /etc/fail2ban/jail.local

Un ejemplo para SSH sería este

[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 10
findtime = 60

En este caso si se detecta que se intenta acceder más de 10 veces (maxretry) o varias veces en menos de 60 segundos (findtime) banea esa IP.

Una vez editado ese fichero es necesario reiniciar ‘sudo systemctl restart fail2ban‘. También puedes comprobar el estado de fail2ban con el siguiente comando ‘sudo systemctl status fail2ban‘.

Y para revisar que la configuración que has añadido está funcionando puedes hacerlo así: ‘sudo fail2ban-client status sshd‘.

También es posible que quieras desbloquear a un usuario, para ello debes utilizar el comando anterior para ver si realmente están dentro del listado de IPs baneadas y una vez encontrada, lanzar el siguiente comando ‘sudo fail2ban-client unban <IP-a-desbanear>‘.

También funciona para WordPress

Para ello tienes que crear un archivo en /etc/fail2ban/filter.d/wp-login.conf con el siguiente contenido:

[Definition]
failregex = <HOST> - - \[.*\] "POST /wp-login.php
ignoreregex =

Este filtro busca en los registros del servidor las instancias de intentos fallidos de POST a wp-login.php, que es el formulario de inicio de sesión de WordPress, y captura la dirección IP asociada con ese intento.

Después de crear el filtro, debes configurar una jaula en /etc/fail2ban/jail.local que lo utilice:

[wp-login]
enabled = true
filter = wp-login
action = iptables[name=WordPress, port=http, protocol=tcp]
logpath = /var/log/apache2/access.log
maxretry = 5
bantime = 3600

Esta configuración habilita la jaula wp-login, utiliza el filtro que acabas de crear, define una acción que actualiza iptables para bloquear las solicitudes, especifica la ubicación de los registros de acceso de Apache (ajusta según tu servidor web y configuración), establece un máximo de 5 intentos antes de bloquear la IP, y establece el tiempo de bloqueo en 3600 segundos (1 hora).

Dispones de más información en el siguiente enlace: Fail2Ban Info

El Eslabón más Débil: Ingeniería Social

Como ya hablamos en su momento, el usuario suele ser el eslabón más débil en un sistema. Hoy vamos a profundizar más sobre este tema para entender mejor cómo los cibercriminales engañan a los usuarios para conseguir acceso a los sistemas.

En seguridad informática se debe siempre intentar atacar al eslabón más débil, el usuario. Un alto porcentaje de la gente que utiliza ordenadores o dispositivos conectados a internet tiene escasos o nulos conocimientos de informática y desconoce el peligro de la información de internet. Por ello, los atacantes son capaces de utilizarlo en su beneficio.

Será más fácil engañar a una persona para que utilice un USB infectado, para que abra un correo o incluso para que nos facilite su contraseña haciéndonos pasar por un administrador del sistema, que intentar romper un algoritmo de cifrado o encontrar un hueco en el protocolo TLS.

La ingeniería social es el arte de engañar y manipular a las personas para que revelen información confidencial.

Esta forma de ataque, surge debido a que los cibercriminales buscan maximizar su beneficio. La seguridad de los sistemas informáticos actuales es muy alta, por lo que se busca la parte más débil.

Según uno de los mejores ingenieros sociales y hacker de los últimos tiempos, Kevin Mitnick, las claves de la ingeniería social son:

  1. Todos queremos ayudar.
  2. El primer movimiento es siempre de confianza hacia el otro.
  3. No nos gusta decir «No».
  4. A todos nos gusta que nos alaben.

La ingeniería social puede emplearse en cualquier etapa de un ataque, desde la búsqueda de vulnerabilidades, obteniendo información sobre la empresa mediante la persuasión de un empleado al hacerle creer que somos un periodista o un nuevo empleado; hasta el ataque en sí, logrando que alguien ejecute un archivo infectado haciéndonos pasar por una persona de confianza. Una de las técnicas de ingeniería social más comunes es el phishing.

El phishing es una técnica que consiste en suplantar una identidad para obtener información, normalmente credenciales de acceso como contraseñas y usuarios.

Vamos a ver un ejemplo

Enviar un correo a una persona haciéndonos pasar por un familiar que desea realizarle una transferencia y solicitando su número de tarjeta de crédito o varios datos personales. Si la persona carece de conocimientos de seguridad, probablemente revelará dicha información al atacante.

En la imagen siguiente, vemos cómo un atacante envía un correo haciéndose pasar por un banco, de modo que la víctima crea que está accediendo al sitio web real cuando, en realidad, está entregando sus credenciales al atacante.

Para no alargar mucho este artículo, os diré que hay varios métodos de ingeniería social, de los que hablaremos en siguientes entradas. Los podemos clasificar en:

  • Técnicas pasivas.
  • Técnicas no presenciales.
  • Técnicas presenciales no agresivas.
  • Técnicas presenciales agresivas.

 

La ingeniería social es una de las amenazas más insidiosas en el ámbito de la ciberseguridad, explotando la confianza y la manipulación psicológica para acceder a información confidencial. Es crucial estar siempre alerta y educarnos sobre estas tácticas para no caer en sus trampas. Recuerda, la mejor defensa es la prevención: verifica siempre la autenticidad de las solicitudes de información y nunca compartas tus datos personales sin confirmar la identidad del solicitante.

El Truco Definitivo de WhatsApp que no Conocías

Seguro que usas WhatsApp todos los días y seguro que hay muchas funciones que se han ido introduciendo poco a poco y que tú aún no conoces que tiene. Hoy te traigo una función muy útil si quieres guardar un secreto.

Hace un tiempo WhatsApp sacó una forma de bloquear ciertos chat. Era necesario utilizar la huella dactilar para desbloquearlos. Aunque no se pudiera ver su contenido, seguían saliendo en un apartado llamado «chat bloqueados». No obstante, existe una forma de evitar que alguien descubra que esos chats existe y todo ello protegido por un código secreto.

Así es como se ve cuando bloqueamos un chat:

Aunque es necesario la huella dactilar para ver su contenido, se ve claramente que algo está oculto.

Hay un ajuste que permite utilizar un código secreto para desbloquear chats y para ello tienes que habilitar esta opción: Dentro del listado de chat bloqueados pulsamos sobre los tres puntos de arriba a la derecha, después seleccionamos la opción de «ocultar chat bloqueados» y creamos un código secreto.

Tras activar Ocultar chats bloqueados vas a necesitar establecer un código secreto que puede ser cualquier texto que quieras, incluyendo emojis. Obviamente, la idea es que sea un texto que sólo se te ocurra a ti y no sea fácil de adivinar.

La idea es tan sencilla como que los chats bloqueados no se van a mostrar ya en la lista de chats, aunque se deslice hacia abajo. En su lugar, el único modo de ver tus chats secretos será buscar el código secreto en el buscador de WhatsApp. Al hacerlo, el resultado es la carpeta Chats bloqueados y desde ahí ya podrás acceder a esos chat bloqueados.

Gracias a esto los chats privados serán prácticamente invisibles.

Fuente: xatakandroid.com

OWASP TOP 10 – Vulnerabilidades Web más Importantes

Hoy os presento OWASP, el proyecto abierto de seguridad en aplicaciones Web. Una fundación sin ánimo de lucro dedicada a ayudar a las organizaciones con documentación, herramientas, vídeos, foros, etc.

Según explican ellos:

La fundación OWASP es una entidad sin fines de lucro para asegurar el éxito a largo plazo del proyecto. No está afiliada a ninguna compañía tecnológica, lo que les permite proveer información sobre seguridad en aplicaciones sin sesgos, práctica y efectiva.

Casi todos los asociados con OWASP son voluntarios, incluyendo la junta directiva de OWASP, líderes de capítulos, líderes y miembros de proyectos.

Apoyan la investigación innovadora sobre seguridad a través de becas e infraestructura.

Su proyecto más importante y en el que nos centraremos en este artículo es OWASP TOP 10, un informe que se actualiza cada 3 o 4 años con las 10 vulnerabilidades más importantes, es decir, con más riesgo. Desde la fundación recomiendan que todas las empresas incorporen ese informe en sus procesos para minimizar los riesgos de seguridad.

El último informe publicado es de 2021, aunque es posible que lo actualicen pronto. Lo puedes obtener aquí: OWASP Top 10:2021.

En el informe se pueden ver los cambios con respecto a la versión anterior. Y ver las subidas y bajadas de importancia de las vulnerabilidades más utilizadas.

En el informe de 2021 hay tres nuevas categorías con respecto al anterior (2017) y algunos cambios de nombre y alcance. Estos cambios son debidos a que se han centrado en la causa principal de la vulnerabilidad o riesgo en lugar del síntoma.

Nuevas categorías

A04:2021-Insecure Designe

El diseño inseguro es una categoría nueva enfocada en vulnerabilidades causadas por un mal diseño de la aplicación. Esta vulnerabilidad debe diferenciarse de otras, ya que puede haber un buen diseño con una implementación deficiente que cause diferentes vulnerabilidades.

Por ejemplo, las preguntas de seguridad para recuperar una contraseña (ciudad de nacimiento, nombre de la primera mascota, etc.) no aseguran suficientemente la identidad del usuario. Sin embargo, una vulnerabilidad que permite cambiar el correo de recuperación de una contraseña es un problema de implementación, no de diseño. Las CWE destacadas son CWE-522 (credenciales insuficientemente protegidas) y CWE-266 (incorrecta asignación de permisos).

A10:2021-Server Side Request Forgery (SSRF)

La falsificación de solicitudes del lado del servidor (SSRF) fue la categoría más votada en la encuesta a la comunidad. Similar a cómo el XSS tuvo su propia categoría, ahora el SSRF tiene la suya. Esta vulnerabilidad permite que el servidor haga una solicitud HTTP a un dominio o IP especificada por un atacante.

Esto puede permitir acceso a servicios internos, robo de datos sensibles, escalamiento de privilegios y ejecución remota de código. Esta categoría está descrita en la CWE-918 (Server-Side Request Forgery – SSRF).

Número 1 de la lista

A01:2021-Broken Access Control

La pérdida de control de acceso ha pasado de la quinta (5ª) posición a la primera (1ª) en el ranking debido a que es una de las categorías con mayor incidencia en las aplicaciones testeadas, con un 3,81%, y puede causar un impacto significativo.

Esta categoría se enfoca en garantizar que los usuarios no puedan realizar acciones fuera de sus funciones permitidas. Entre las CWE destacadas se encuentra la CWE-200, que aborda la exposición de información sensible a actores no autorizados.

Más información

Puedes obtener más información en su web owasp.org, donde explican cada una de las vulnerabilidades analizadas. Además podrás obtener más información sobre cómo se clasifican y los motivos de la organización en categorías, así como conocer el listado de fuentes de datos utilizados.

Como guardar una copia de seguridad del Registro de Windows

El Registro de Windows es un componente muy importante del sistema operativo Windows. Es donde se guardan todas las opciones y configuraciones. Es por eso que es importante tener precaución a la hora de realizar cambios en el registro. Si haces cambios incorrectos, esto podría provocar que Windows ya no se inicie, que se bloquee inesperadamente o que algunas aplicaciones ya no funcionen como deberían. Por lo tanto, siempre debes realizar una copia de seguridad del Registro de Windows antes de realizar cualquier cambio.

En este tutorial, explicaremos cómo realizar una copia de seguridad del registro de Windows de forma manual, para que puedas hacer cambios con mayor seguridad.

  1.  Para abrir el registro, lo más sencillo es pulsar la «tecla de windows + r» (nos abrirá el diálogo para ejecutar comandos), escribir «regedit» y hacer clic en Aceptar.
  2. Se te abrirá una ventana del control de cuentas de usuario o UAC que deberás aceptar.
  3. En este punto ya tendrás abierto el editor del registro. Ahora deberás irte a la esquina superior izquierda y pulsar en «Archivo» («File») y seleccionar la opcion «Exportar» («Export»).
  4. Después te pedirá guardar el archivo en la ruta que tu elijas. Lo mejor es utilizar un nombre que sea identificativo para futuras consultas, como por ejemplo «bckRegistro_20241231.reg» (AñoMesDía, así será más facil de ordenar por nombre).
  5. Pulsa sobre el botón de guardar y ya podrás ver la copia de seguridad en la ubicación escogida. Es recomendable tener este archivo también en una ubicación fuera del ordenador, como la nube o un USB.

En caso de necesitar recuperarla los pasos son los mismos, pero deberá seleccionar la opción «Importar» en lugar de «Exportar». También es posible hacer doble clic en el archivo que se ha creado y seguir las instrucciones.