¿Conocés #OAuth?

Resultado de imagen para oauth

Digamos que quieres usar una aplicación como Tweetgif para postear divertidas imágenes GIF animadas en tu cuenta de Twitter. Para lograrlo, es necesario darle a Tweetgif acceso a tu cuenta de Twitter, para poder obtener tu info y postear tweets en tu nombre. En los viejos tiempos, tenías que darle a una aplicación como Tweetgif tu nombre de usuario y contraseña de Twitter, para que pueda loggearse y acceder a los servicios. No solo tenías que confiar que usen esas credenciales sabiamente, sino que también debías mantenerlas protegidas de los hackers – lo que era un verdadero gran salto de fe. Es como darle las llaves de tu casa a un extraño y confiar que no hará copias para todos sus amigos y luego robar todas tus cosas.

OAuth evita este problema simplemente dándoles acceso a las cosas que quieras que accedan. En lugar de pedirte la contraseña, sucede lo siguiente: Read More

[Infografía]: +1100 casos de #Ransomware en #Android durante Enero

Todos nos hemos topado con la palabra ransomware alguna vez, ya que es algo que da que hablar constantemente. Para aquellos que no lo conocen, se trata de un tipo de malware que se encarga de secuestrar un dispositivo con un método característico: cifrando los archivos con una clave secreta. Una extorsión que obliga al usuario a pagar un rescate económico para desbloquearlo; habitualmente mediante una criptomoneda. Incluso pagando el rescate existen casos en los que no puede recuperarse la información, ya que o nunca llegan a proporcionar la clave una vez hecho el pago o esta es inservible.

A pesar de ello, no se le muestra suficiente atención en Android, siendo aun el ordenador de sobremesa o servidor el objetivo habitual, posiblemente por razones estrictamente achacables al retorno de inversión. En este breve estudio, veremos si deberíamos, o no, preocuparnos por este tipo de malware en dispositivos móviles. Y constataremos como se está consolidando como una plataforma lucrativa para los creadores de ransomware. Read More

#Stalkscan: Una web para relevar información de perfiles de #Facebook

Facebook es una red social que te permite conocer a miles de personas y mucha información acerca de todas ellas, sobretodo de aquellos que son tus amigos. Si quieres conocer datos de tus contactos correctamente clasificada existe una herramienta llamada Stalkscan, una web para espiar perfiles en Facebook.

Esta página web es parecida al buscador que lanzó Facebook hace algún tiempo llamado “Graph Search”, un buscador que permite a cualquiera realizar una búsqueda exhaustiva todo tipo de detalles de cualquiera de sus amigos en la red social.

Solo necesitas la URL del contacto

Para poder empezar a conocer información sobre alguno de tus amigos o contactos de forma más clasificada a través de Stalkscan tan solo necesitas conocer la URL de esa persona concreta ya que del resto se encargará el servicio. Read More

¿Qué necesitás saber sobre los permisos de apps en #Android?

Cuando se trata de malware, Android tiene un mecanismo de defensa muy bueno (el sistema de permisos de aplicaciones). Este sistema define una serie de acciones que una aplicación tiene permitidas (o no) para funcionar. Por defecto, todas las aplicaciones de Android funcionan en aislamiento de procesos (un entorno aislado). Si quieren acceder, editar o borrar información fuera de dicho aislamiento, necesitarán los permisos del sistema.

Los permisos se dividen en varias categorías, pero hablaremos solo de dos: normal y peligroso. Los permisos normales cubren acciones como el acceso a Internet, la creación de iconos, conexión Bluetooth, etc. Estos permisos se conceden por defecto y la aprobación del usuario no es necesaria.

Si una aplicación necesita uno de los permisos “peligrosos”, se requiere la confirmación del usuario. Entonces, ¿por qué se considera que algunos permisos son peligrosos? ¿De verdad son por naturaleza peligrosos? ¿En qué casos deberías permitirlos?

Permisos peligrosos

La categoría “peligrosa” incluye nueve grupos de permisos en los que las aplicaciones están, de algún modo, conectadas con la privacidad o seguridad del usuario. Cada grupo contiene varios permisos que una aplicación puede requerir.

Read More

#Ghostery: conociendo el rastro que dejamos en la web

Resultado de imagen para ghostery

Ghostery es un complemento para navegadores que nos ayuda a visualizar quién realiza un seguimiento de nuestra navegación por Internet.

DETECCIÓN

Ghostery ve las partes «invisibles» de la web. Detecta rastreadores, balizas web, píxeles especiales e indicadores incluidos en páginas web por Facebook, Google y más de 500 servicios de todo tipo, como redes publicitarias, agencias de datos de comportamiento y editores de contenidos: todas ellas empresas interesadas en la actividad de los usuarios.

APRENDIZAJE

Tras mostrar quién mueve los hilos, Ghostery también ofrece la posibilidad de obtener más información sobre cada una de las empresas que identifica, incluyendo enlaces a sus políticas de privacidad y opciones de autoexclusión.

CONTROL

Ghostery permite bloquear scripts, imágenes, objetos y documentos insertados en marcos procedentes de empresas en las que no confíe.

Read More

Análisis forense con #DEFTzero

DEFT es un sistema operativo Linux creado especialmente para profesionales y expertos de seguridad que necesiten un ecosistema para analizar datos, redes y dispositivos y poder recopilar de ellos la mayor cantidad de información posible. A diferencia de otras distribuciones similares, esta no se centra solo en analizar discos duros y memorias, sino que ofrece un análisis de lo más completo de todo tipo de sistemas, redes y dispositivos. Sin embargo, este es muy pesado ya que cuenta con un gran número de herramientas de todo tipo. Por ello, hace algunas horas, los responsables de esta distribución forense nos han sorprendido con un nuevo sistema operativo llamado DEFT Zero.

DEFT Zero es una versión mucho más ligera y reducida de DEFT diseñada, igual que su predecesora, para realizar análisis forenses de datos, redes y dispositivos. Esta nueva distribución funciona con tan solo 400 MB de memoria RAM y está basada en Lubuntu 14.04 LTS (lo que le garantiza un soporte extendido a largo plazo). Además, también es compatible con sistemas de 32 bits, 64 bits e incluso con sistemas UEFI. Además, este nuevo sistema es compatible con memorias del tipo NVM Express (NVMe) y eMMC.

Read More

Activá la verificación en dos pasos de #Whatsapp

Resultado de imagen para verificacion en dos pasos whatsapp

Verificación en dos pasos

La verificación en dos pasos es una función opcional que le añade aún más seguridad a tu cuenta. Cuando activas la verificación en dos pasos, cualquier intento de verificación de tu número de teléfono en WhatsApp debe ir acompañado de un código de seis dígitos que tú, y solo tú, habrás creado.

Para habilitar la verificación en dos pasos, abre WhatsApp > Ajustes > Cuenta > Verificación en dos pasos > Activar.

Cuando habilites esta función, opcionalmente podrás introducir tu dirección de correo electrónico. Esta dirección de correo nos permitirá enviarte un enlace con el que podrás desactivar la verificación en dos pasos, en caso de que olvides tu código de seis dígitos, y así proteger tu cuenta. Ten en cuenta que WhatsApp no verifica esta dirección de correo electrónico para confirmar su validez. Recomendamos que introduzcas una dirección de correo electrónico válida para que no se te niegue el acceso a tu cuenta si olvidas tu código.

 

Importante: Si recibes un correo electrónico para desactivar la función verificación en dos pasos, pero no lo solicitaste, no hagas clic en ese enlace. Puede que alguien esté intentando verificar tu número de teléfono en WhatsApp.

Si tienes activada la verificación en dos pasos, tendrán que pasar 7 días sin haber usado WhatsApp para que tu número se pueda verificar de nuevo. De esta manera, si olvidas tu código y no recibes un correo electrónico para desactivar la verificación en dos pasos, tendrás que esperar 7 días para volver a verificar tu número. Pasados esos 7 días, podrás verificar tu número sin necesidad de introducir el código, pero todos los mensajes que hayas recibido durante ese período se borrarán y no se podrán recuperar. Si han pasado 30 días desde que se usó WhatsApp por última vez, sin el código, y verificas tu número de nuevo, tu cuenta será eliminada pero podrás crear una nueva, verificar tu número y crear un nuevo código.

Importante: Para ayudarte a recordar tu código, WhatsApp te pedirá que introduzcas tu código regularmente. No hay forma de desactivar esta función a no ser que desactives por completo la función de verificación en dos pasos.

Read More

Recuperando la contraseña en #Linux usando #GRUB

como-recuperar-la-contrasena-de-linux-usando-grub

Para aquellos que utilizamos GNU Linux no es algo tan extraño haber pasado por esto: olvidamos la contraseña de nuestros usuarios de la distribución de Linux que usamos y no tenemos forma de recuperar el acceso., ¿o si? Descubre a continuación lo fácil que es recuperar la contraseña de Linux usando GRUB.

¿Qué es el GRUB de Linux?

GRand Unified Loader o GRUB es un cargador de arranque (bootloader). O lo que es lo mismo: el primer programa que se inicia durante el arranque de los sistemas operativos basados en Linux. Es responsable de cargar y transferir el control al kernel del sistema operativo (Ubuntu, en el caso de hoy). El kernel, en cambio, inicia el resto del sistema operativo.

GRUB2 es la versión actualmente actualizada, pasándose a llamar la anterior GRUB Legacy.

Básicamente, lo que haremos para poder restablecer la contraseña de Ubuntu -en nuestro caso- es arrancar el GRUB en modo Recovery o Recuperación.

Read More

Usando #python para técnicas de #GoogleHacking

Internet tiene una gran cantidad de información que de ser recuperada puede ser valiosa para la toma de decisiones. Una alternativa para lograrlo es el uso de herramientas libres como Python junto con técnicas como el Google Hacking. Herramientas como Terrier IR para análisis seguro de logs o metodologías como OSINT para recuperar información pública son algunos ejemplos del tipo de tareas que se pueden llegar a hacer con la recuperación y el análisis de la información. Implementar una herramienta que permita capturar información relevante puede ser tan sencillo como utilizar scripts en Python.

A continuación mencionamos algunos puntos que podrían tenerse en cuenta para implementar un sistema que permita recopilar  información pública para su posterior análisis. El proceso se puede dividir en tres sencillas etapas: la configuración de las APIs, la optimización de las búsquedas y el desarrollo del script.

Configurar APIs

Para lograr obtener una serie de búsquedas sin restricciones por parte de los servicios que se quieren consultar, es necesario utilizar las APIs. La mayoría de servicios web, incluyendo buscadores y redes sociales, cuentan con alguna API para permitir que los desarrolladores interactúen a través de sus aplicaciones con la información pública.

En el caso de Google, cuenta con el servicio OAuth 2.0 Client ID que a través de dos códigos de validación, permite que el usuario realice una serie limitada de consultas con el motor de búsqueda de Google, y esta información recuperarla para luego ser procesada.

Google Hacking

Ya en un post anterior se pudo de manifiesto como existe información crítica expuesta utilizando Google Hacking. Lo valioso en este caso es que utilizando este tipo de sintaxis se pueden llegar a refinar las búsquedas de tal forma que se puede encontrar información bastante específica.

Etiquetas como intitle, inurl, site ayudan a especificar que la búsqueda se enfoque en lugares claves de las páginas de web. Otras etiquetas como filetype puede ayudar a identificar archivos específicos tales como fotografías, videos, audios o cualquier otro tipo de archivo que se desee recuperar.

Scripts en Python

Basándonos en una conferencia dictada por la gente de VULNEX en una universidad en España, podemos construir scripts en Python que permiten recuperar información pública utilizando la API de Google. Para lograr esto se hace necesario el uso de algunas librerías específicas:

Librerias a importar

Estas librerías van a permitir manejar las páginas web y los parámetros de búsqueda. Además de permitir exportar los resultados de la búsqueda en un formato que pueda ser analizable posteriormente, en este caso JSON.

Luego se definen los parámetros de la búsqueda que se desee realizar. Es en este punto donde la sintaxis de Google Hacking puede resultar bastante útil.

Parámetros de búsqueda

Ya solamente resta organizar todos los parámetros siguiendo el formato que utiliza la API de Google para poder realizar la búsqueda. Además la información recuperada se puede organizar en una estructura JSON, la cual podría ser exportada a otra herramienta o utilizar otros paquetes de este mismo lenguaje para su análisis.

Recuperar y organizar la información

¿En qué aplicarlo en Seguridad Informática?

Si llevamos estas herramientas al campo de la seguridad informática, se puede empezar a pensar en varias posibilidades. Por ejemplo, para un profesional que esté interesado en encontrar información sobre vulnerabilidades en aplicaciones o dispositivos para realizar algún tipo de Penetration Test, puede acondicionar algún tipo de búsqueda que le permita reunir información de un mismo tema y tenerla disponible para su uso.

O por ejemplo para alguien que esté auditando la seguridad de una empresa, puede ser útil determinar cual es el nivel de exposición de la información de la empresa en Internet lo cual puede llegar a obtenerse fácilmente con este tipo de scripts.

Fuente: We Live Security

Prevenir ataques en los formularios

Saneamiento de Inputs: Qué es y cómo implementarlo

El saneamiento de inputs es una manera de validar formularios que excluye de los mismos cualquier carácter que podamos considerar peligroso para la web y/o la base de datos.

A fin de cuentas, cualquier formulario de una web es un potencial vector de ataque que un cibercriminal puede aprovechar para comprometer el sitio, bien forzando el cierre de ese input acompañado de una petición a la base de datos (un SQL injection), bien de cara a ejecutar javascript o diversos scripts maliciosos en futuros clientes (ataques cross-site scripting).

Existen muchas maneras de validar un formulario.

  • Las nativas de los campos de un formulario: Las propias definiciones de inputs en HTML5 ofrecen validaciones que pueden ser interesantes para separar el grano (los usuarios) de la paja (ataques y/o spam). También, por cierto, tendríamos maneras de hacer esto mismo mediante javascript, PHP (if(empty($_POST[“nombre”]…)) o incluso CSS (input:required:valide….).
 <input type="email"> //pedirá al usuario una cadena de caracteres que tiene que tener sí o sí el formato loquesea@loquesea.loquesea
 <input type="password"> //todo lo que el usuario escriba en este input se mostrará por pantalla mediante asteriscos (*).
 <input type="text" required> //este campo es obligatorio rellenarlo para poder enviar el formulario...
 <input type="text" pattern="^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$" name="email" required/> //esta sería una manera de exigir que el contenido que el usuario incluya en el input tenga formato email, es decir, loquesea@loquesea.loquesea
  • Escape de caracteres: Sin embargo, de forma nativa no tenemos manera de controlar que, por ejemplo, cuando el usuario vaya a escribir contenido en un input, no incluya caracteres que el sistema reconoce como funcionales (como por ejemplo las dobles comillas o la comilla simple, que quizás sirva para cerrar el propio input), y esto le permita acceder a partes de la web privadas o a contenido de la base de datos. En estos casos se recurre a funciones que permiten sanear el contenido de un input o bien antes de enviarlo o bien justo antes de ejecutarlo en el servidor. Algunos ejemplos serían:
 $input1 = "coche"; //el usuario escribió "coche"
 $input2 = "'or '1'=1"; //el usuario escribió"'or '1'=1"
 select pass from usuarios where usuario=$input1; //devolvería en SQL la contraseña del usuario "coche", si es que existe
 select pass from usuarios where usuario=$input2; //devolvería en SQL la contraseña de cada usuario, ya que 1=1 siempre se cumple
 $peticion = mysqli_real_escape_string($link, $input2); //escapamos el contenido de $input2
 select pass from usuarios where usuario=$input2; //devolvería en SQL la contraseña del usuario "'or '1'=1", que seguramente no exista

Y lo mismo puede hacerse con htmlspecialchars (EN) o escapeshellarg (EN). Incluso mediante los propios filtros de PHP (EN).

En mi caso hago uso del plugin NinjaFirewall para WordPress (EN) que, entre otras cosas, permite de forma automática sanear cualquier petición GET y/o POST que se haga en la página.

Honeypots de formularios: Qué son y cómo implementarlos

Aledaño al problema de los XSS y los SQL injection está la proliferación de bots cuyo único cometido es buscar formularios en webs para publicar enlaces hacia páginas fraudulentas (viagra, malvertising y demás compañía). Y puede llegar a ser un verdadero problema, ya que además de gastar recursos del servidor (son peticiones automatizadas que ocupan ancho de banda), pueden llenar la web de contenido inapropiado y causar verdaderos dolores de muelas a los administradores del sitio.

Afortunadamente, hecha la ley hecha la trampa, y basta entender cómo se desarrollan este tipo de bots y qué es lo que buscan en un formulario para encontrar maneras de engañarlos y hacerles creer que o bien no existe tal formulario, o bien han publicado con éxito lo que querían publicar.

A estas técnicas se las llama honeypots, que en este caso están dirigidas al mundo de los formularios, pero que en la práctica competen a cualquier herramienta cuyo cometido sea engañar a los cibercriminales (la creación por ejemplo de ordenadores supuestamente vulnerables en una red corporativa para localizar ataques antes de que afecten al resto de la organización sería otro aplicativo de los honeypots, solo que enfocado a la seguridad de redes).

Y de nuevo, tenemos mil y un maneras de aplicarlos:

  • Captchas y listas negras: aunque no sean honeypots al uso, lo cierto es que la obligatoriedad de completar un captcha o el llevar en cuenta una lista negra de IPs con actividades curiosas (es normal que un bot intente realizar varias peticiones al mismo tiempo ahí donde un usuario normal claramente no puede) permite evitar la mayoría de spam en formularios web. En el primer caso, a cambio de molestar al usuario (que debe completar un dichoso captcha), y en el segundo, generalmente haciendo uso de servicios de terceros que son los encargados, en base a todas las páginas donde están instalados, de mantener actualizada la lista. En WordPress a mi me gusta especialmente Anti-spam (EN), que (ojo) solo funciona con los formularios de contacto, pero que elimina prácticamente todo el ruido que podría salpicarnos.
  • Honeypots de cliente: La idea pasaría por incluir inputs ocultos al usuario que, de ser completados, no enviasen al servidor la petición. Eso se consigue creando un input de tipo hidden (o bien un input cuyo CSS diga que no debe ser mostrado por pantalla) y cuya petición de envío esté condicionada a que ese input siga vacío. Cosa que ocurrirá con todos los usuarios que lo completen, y que no se cumplirá en el caso de los bots, que necesitan cumplimentar todos los campos para evitar dejarse alguno que sea obligatorio.
 <form action="submit.php" onsubmit="return validateMyForm();" method="post">
    <input type="email" name="email"> //el input verdadero
    <input type="text" id="input-totalmente-falso" style="display: none"> //el input falso que no se mostrará por pantalla
    <input type="submit" value="Submit">
 </form>

 type="text/javascript"> //creamos la función validateMyForm
    function validateMyForm() {
        if(!document.getElementById("input-totalmente-falso").value) {
            return true;
        } //si no existe nada de contenido en el input falso, entonces se envía
        else {
            return false;
       } //si existe, entonces es que es un bot quien intenta completarlo, por lo que no hacemos nada
   }
 
  • Honeypots de servidor: Tienen la ventaja de funcionar aún cuando JavaScript no está habilitado (puede que el bot esté operando en algún entorno más controlado), y la parte mala es que, como todo de cara al servidor, cada petición consume proceso. El procedimiento, no obstante, es semejante al anterior, creando un input falso, pero la validación la hacemos una vez llega la petición al servidor (si el input está vacío, se realiza exitosamente; si no, no). Esto puede hacerse directamente en el SQL o en el PHP.
 <?php
    if(!$input-totalmente-falso){
       mail("pepito@email.com","Nuevo contacto en la web",$cuerpo-del-email);
    }
 ?>

En otros casos lo que creamos son inputs ocultos con un código específico, de manera que si al llegar al servidor ese string ha cambiado, podemos estar seguros de que estamos ante una petición fail.

 <input type="hidden" id="input-de-control" value="0324655847"/>

 <?php
    if($input-de-control!="0324655847"){}
    else{
       mail("pepito@email.com","Nuevo contacto en la web",$cuerpo-del-email);
    }
 ?>

Existen, como decía, múltiples estrategias para controlar el spam que llega a nuestros servidores. Y como todo, hay que buscar el punto medio en el que lo reduzcamos a la mínima expresión sin molestar en demasía al usuario.

Fuente: PabloYglesias