Inspección de objetos internos de Git

Git es un sistema al que se le puede sacar más provecho si se conoce la interacción entre sus componentes. Más allá de eso, comprender la simplicidad de sus estructuras de datos permite que uno se sienta agusto y, especialmente, en control de la herramienta.

Esto lo mencioné en el tutorial de Git que presenté en la reunión de febrero 2013 del Grupo de Usuarios de GNU/Linux de Tijuana. En general todo salió muy bien. Lo único que me hubiera gustado poder mostrar en vivo es el contenido de un objeto, un blob de Git que está dentro de .git/objects.

Historial del repositorio de ejemplo.
Historial del repositorio de ejemplo.

Leer más

SSH inverso a través de un tercer servidor

Supón que tienes una máquina Linux con servidor SSH al que quieres llegar pero está detrás de un firewall o un NAT dinámico que no puedes modificar. Por otra parte, la máquina en la que estás también está detrás de un firewall, de modo que no puedes abrir puertos hacia adentro. Sin embargo, dispones de … Leer más

Invitación al Software Freedom Day (con audio streaming) y DevFestX, Tijuana 2012

Cómo resultan las cosas: pensábamos que nadie se iba a poner las pilas para organizar el SFD este año, y nuestro buen amigo Biker le entró al quite. Poco a poco se fueron sumando participantes, y ahora tendremos el Google DevFestX justo a un ladito de nosotros. Y para quienes no viven en Tijuana tenemos … Leer má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: MP3 sitio: http://opencharla.gultij.org/mp3/ Ogg sitio: http://opencharla.gultij.org/ogg/ También pueden suscribirse por su cliente de música por medio del feed RSS: MP3 feed RSS: http://opencharla.gultij.org/mp3/feed.xml Ogg feed RSS: … Leer más

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.

Leer más