Verifica TODO antes de republicar; tu palabra está en juego.

A ver, mi estimadísimo partidario ferviente de algún candidato (por todos los partidos, cada quien se pondrá el saco):

Me tiene harto, y habla muy mal de ti, cuando recompartes *cualquier* información, a favor de tu candidato o en contra del otro, *sin verificarla*. Ya has hecho varias republicaciones falsas.

¿Que Milenio va a ser multado por el IFE y lo publicaron en su propia cuenta de Twitter de Milenio? Como es en contra de EPN, ahí vas, a compartirlo. 🙁 ¿Tú crees que Milenio publicaría una nota así en su propio timeline de Twitter?

¿Que te llegó una imagen donde Döring le mienta la madre a los Twitteros? Como es en contra de JVM, ahí vas, a compartirla. 🙁 ¡Pero si Döring mismo tiene una cuenta bastante activa de Twitter! Y no pasó mucho tiempo cuando lo desmintió desde su propia cuenta.

¿Que te llegó una imagen donde Carlos Fuentes y Javier Sicilia hablan mal de AMLO? Como es en contra de AMLO, ahí vas, a compartirla. 🙁 Tanto la imagen de Carlos Fuentes como la de Javier Sicilia son frases que sólo se pueden aplicar en el contexto donde fueron dichas; y no de manera general. Sin más que una simple búsqueda por «Carlos Fuentes López Obrador» y «Javier Sicilia AMLO» en YouTube vas a encontrar entrevistas con ellos donde hablan bien de él en el contexto actual. Carlos Fuentes se manifiesta como un hombre de izquierda y Javier Sicilia se manifiesta a favor del voto nulo pero dice que el menos peor es AMLO y que espera que gane él.

¿Verificaste las fuentes? ¿Vinieron del seno de cada partido, del IFE…? No significa que no puedas compartir opiniones de alguien más, pero cuando claramente sean identificables como opiniones.

En los tres casos son imágenes manipuladas donde no se necesita ser ni muy inteligente ni muy sagaz para darse cuenta de ello. Cualquiera puede alterar una imagen hoy en día o tomar la foto de una persona, ponerle una leyenda y mandarlo. Cualquier persona puede tomar una frase conveniente y construir un panfleto con Photoshop.

Por gente como tú es que existen y seguirán existiendo los manipuladores de información, porque eres parte de su mercado. Lo malo es que ya no puedo confiar en lo que me mandas porque, a mi entender, no tienes juicio propio y eres parte de una masa fácilmente manipulable.

O peor aún, tal vez sí eres suficientemente inteligente y sí te das cuenta. En ese caso, tú mismo eres un manipulador de información. En cuyo caso, tus acciones contribuirán a seguir hundiendo a este país.

Lo poco o mucho que están logrando construir los candidatos y sus campañas, tú lo deshaces, haciendo ver a tu propio candidato como una opción manipuladora. ¿No entiendes que estamos hartos de eso? ¿No entiendes que torcerte en una manipulación es una invitación a desechar tus opiniones e ideas o a pensar que en realidad le vas a otro? Espero que lo comprendas y te des cuenta de que con eso, sólo estás facilitando que, a la larga, perdamos todos… incluído yo, incluído tú.

Piénsalo.

¿Ya lo pensaste? Vuélvelo a pensar. No es algo en lo que caerás en cuenta en unos minutos. Es una cuestión filosófica. Tardarás meses o hasta años, pero tengo la esperanza de que lo comprenderás.

OpenCharla, Ep 2×06: Cómputo Forense

Este episodio de OpenCharla estuvo de traje y esmóquin. Grabamos en el BitCenter, donde Hugo Montoya de Lock-Bit nos platicó sobre cómputo forense.

Para oirlo directamente desde la Web:

También pueden suscribirse por su cliente de música por medio del feed RSS:

O si están más familiarizados con alguna guía comercial:

Si gustan ayudar al podcast, la mejor forma en este momento es compartirlo en las redes sociales.

Y de paso visita la página del GUL Tijuana. 🙂

Actualización: También pueden seguir la cuenta de Twitter de OpenCharla y del Gultij. Y a mí también. 🙂

JavaScript debe desaparecer de la Web

script

En recientes días escribí un post sobre cómo hacer nuestra navegación más segura usando Opera (en inglés). El principio de operación es simple: deshabilitar JavaScript por defecto excepto para aquellos sitio en los que plenamente confío.

No fue capricho. En alguna ocasión mordí un anzuelo y, sin intención, mi PC participó en un ataque masivo contra Freenode. ¿Cómo ocurrió? Visité una página que tenía un código malicioso de JavaScript, el cual se ejecutó automáticamente (tal vez gracias a onMouseOver o a onLoad) y mandó spam a dicha red. Me bloquearon varias horas y tuve que contactar a los administradores para explicar el caso. Ellos lidian con este tipo de cosas todo el tiempo (¡señal!).

alvarezp-banned

No es el único tipo de problema de seguridad de JavaScript. Tampoco es el único ataque facilitado por JavaScript: como referencia les dejo XSS, X/CSRF, Clickjacking, Revestimiento de interfaz (UI redressing), fuga de datos personales, etc. No que requieran de este lenguaje, sino que con él son mucho más fáciles de implementar sin que el navegador pueda detectarlos.

Busqué formas de evitar llegar a esa conclusión; después de todo, la mayoría de los sitios Web usan JavaScript. ¿Es posible que el navegador sólo ejecute código bien intencionado? No. Una computadora es tonta. No puede distinguir código malicioso. Incluso existe una broma sobre el tema. ¿Cómo le hacen los antivirus? Se basan en firmas y bases de datos alimentadas por humanos y aún así a veces arrojan falsos positivos. Peor aún, también arrojan falsos negativos.

Sin embargo yo necesito una forma de confiar en mi PC. En el momento en que pierde mi confianza, no sé si está interceptando lo que tecleo o lo que transmito, o si las páginas que me muestra son ilegítimas, o si los programas está alterados de otro modo. No sé si mis passwords y datos de tarjetas de crédito están siendo transmitidos por la red a algún cibercriminal. Y no, no estoy exagerando. Desde el momento en que pierde mi confianza tengo que aplicarle un análisis forense, aunque, por lo general, sale más rápido reinstalar.

Sigue leyendo

When is a protocol a tunneling protocol?

This is a note on episode 102 of the fantastic-as-always Packet Pushers Podcast. Initially it was going to be destined for them and less than 140 characters long but I just couldn’t, so I started writing freely and all of this came up.

So, the whole episode is about analyzing if is MPLS tunneling. Maybe somebody asked the question or maybe there is some disagreement in the industry.

I found it very interesting (and fun, as usual) but after listening to the show it got me thinking: it’s the wrong question. It’s not if MPLS is tunneling, but if MPLS *can be used for* tunneling.

So before going deeper I also have to say that I have never implemented MPLS; I have labbed it but that’s about it. I don’t consider myself to have enough foundations or experience as these guys. I hope not to shoot myself in the foot. With that said…

Tunneling is an application of encapsulation. Transport, multiplexing and delivery are other applications of encapsulation. Protocols encapsulate their payload. I see Ethernet as layer 2 «delivery», IP as layer 3 «delivery» (or «transport» across multiple layer 2 domains), and 802.1Q as 1-factor multiplexing. I’m thinking TCP and UDP are 2-factor multiplexing.

I think we agree that IPv4 and IPv6 are network protocols, but you can create a tunnel with Hurricane Electric by setting the Protocol to 41 in IPv4, and without using GRE. The tunnel gets created by the way they are stacked and used.

So a valid question can be stated: am I setting up a tunnel when I start LDP and MPLS? So, from my point of view, the following are requirements for a tunnel to be made:

1. It is set up by or for a user outside of the domain of the transport network (even if the user is a network engineer in a data center). If I create a tunnel over the Internet, I’m the user outside of my ISP’s network. Note that I can tunnel over my own enterprise network; there is some interest in doing that and I’m the end user for that particular case. This takes away MPLS, but not MPLS VPN.

2. The tunnels created deliver the packet between two endpoints but neither of them are the final destination; or… well, technically yes, it can, but my point is that there is another endpoint higher in the OSI layers, even if it ends up being the same one. Once a packet gets delivered it gets decapsulated and further processed again for its delivery. Yes, Ethernet may fit here, but it doesn’t fit #1.

3. Two same or different delivery protocols with usually different address spaces are stacked onto each other. As such, there must be source and destination endpoint addresses endpoints in the encapsulated packet and in the lower-layer protocol. You may use the same address space, but most of the time it’s only a trick to get around some weird limitation. Oh, wait, just like tunnels! 😉

So, by how it works, no protocol is a tunneling protocol (well, except maybe IPSec in tunnel mode). It’s only by what it was designed for that can be called a «tunneling protocol».

Examples:
* ICMP is not a tunneling protocol but it can be used to create tunnels.
* Same for HTTP.
* It can be said that GRE is a tunneling protocol, but it doesn’t work by creating tunnels, but by encapsulating packets and making it easy to layer a protocol on top of another.

Was MPLS designed to do tunnels?

Best regards.

stats.gawk

$ cat bin/stats.gawk 
#!/usr/bin/gawk -f

{
	d = $1 ~ /^[0-9]/;
}

d && !f {
	M = $1;
	m = $1;
	f = 1;
}

d && $1 > M {
	M = $1;
}

d && $1 < m {
	m = $1;
}

d {
	c += 1;
	s += $1;
	ss += $1*$1;
}

END {
	OFS = "t";
	a = s/c;
	print "cnt,min,max,sum,avg,stdev:", c, m, M, s, a, sqrt(ss/c-a**2);
}

Ejemplo de uso:

$ ls -s1 | ./stats.gawk
cnt,min,max,sum,avg,stdev:	53	4	33064	78860	1487.92	6125.08