antivirus
Óptima protección antivirus: Soluciones de seguridad en Internet de G Data para PC.

viernes, 5 de diciembre de 2014

Proteger OS X frente a ataques de ICMP redirect

Recientemente se ha sabido que a muchas plataformas, entre las que se encuentran Android, iOS y OS X, se les pueden hacer ataques Man In The Middle con mensajes ICMP Redirect. El riesgo mayor existe si nos conectamos en una red insegura (cafetería, aeropuerto, etc).

Para ver si tu sistema OS X es vulnerable, ejecuta en un terminal:
 sysctl net.inet.icmp.drop_redirect

Tu sistema será vulnerable si te devuelve:
 net.inet.icmp.drop_redirect: 0

Y no lo será si te devuelve otro valor, p.ej:
 net.inet.icmp.drop_redirect: 1

Para proteger el sistema de este ataque (ojo, esta configuración es temporal y válida para la sesión actual), ejecuta:
 sudo sysctl -w net.inet.icmp.drop_redirect=1

En la siguiente URL puedes encontrar más detalles y el método para establecer esta configuración de forma permanente:
 http://www.seguridadapple.com/2014/12/como-proteger-os-x-frente-ataques-de.html

miércoles, 3 de diciembre de 2014

Introducción a Git (chuletario básico)

Git es un sistema de control de versiones distribuido. Trabajamos en un repositorio local (no necesitamos red constantemente), y cuando queramos/podamos lo subimos al repositorio remoto.

Se maneja a base de comandos de terminal. Hay clientes gráficos, pero lo más eficiente es usar la línea de comandos.

Tareas básicas

Tras instalarlo, conviene configurar el nombre y correo que vamos a usar:
 git config --global user.name "Mi Nombre"
 git config --global user.email "miemail@gmail.com"
 git config --global color.ui true
 git config --global core.editor joe


Conviene luego configurar las claves ssh para enviarla al servidor remoto y así, al sincronizar hacia el repositorio remoto, no tendremos que estar escribiendo email y clave.

En cualquier momento podemos pedir ayuda:
 git help
 git help COMANDO
 
Para iniciar un repositorio, creamos un directorio, y para ponerlo bajo el control de git, entramos en él y allí ejecutamos:
 git init

También podemos añadir un repositorio remoto:
 git remote add origin URLREPOSITORIOREMOTO

Si existe un repositorio que queremos clonar (si trabajamos con github.com es lo habitual), haremos:
 git clone URLREPOSITORIOREMOTO

Una vez que tenemos el repositorio configurado, podemos añadir (o borrar, mover, etc) archivos al repositorio local:
 git add NOMBREFICHERO
 git rm NOMBREFICHERO
 git mv NOMBREFICHERO1 NUEVONOMBREFICH

Para comprobar el estado del repositorio ejecutamos:
 git status

Para ver los logs, viendo los cambios ordenados con fechas y con los comentarios, de lo que hemos hecho:
 git log
 git log --graph

Si queremos subir los cambios desde el repositorio local al repositorio remoto (a la rama por defecto), ejecutaremos:
 git commit -a -m "comentario sobre el cambio"
 git push
y en ese momento, los demás podrán obtener nuestros cambios.

Si alguien ha subido cambios al repositorio remoto, podemos descargarlos para integrarlos en nuestro repositorio local:
 git pull

Puede que mientras subimos nuestros cambios, alguien haya cambiado algo. En ese caso, ha habido un conflicto. Git nos informa detalladamente. Nos muestra los cambios que vienen del remoto y los que tenemos nosotros, los compara con un diff, y nos permite editar y ver cuáles nos quedamos. Entonces ya sí podremos hacer el pull.

Trabajando con ramas

En proyectos donde haya varios usuarios, lo normal (y recomandable) es trabajar sacando ramas (copia del proyecto en cierto momento para seguir trabajando en alguna parte del mismo).

Para crear rama, ejecutamos
 git branch NOMBREDELARAMACREADA

Si hay varias ramos, nos movemos a otra rama con:
 git checkout master    (ir a trabajar sobre la rama principal, master)
 git checkout NOMBREDELARAMACREADA    (ir a trabajar a la otra rama derivada)

Para consultar en qué rama estamos:
 git branch

Para borrar una rama:
 git branch -d NOMBREDELARAMACREADA

Si necesitamos mezclar (juntar) la rama derivada en la que hemos estado trabajando con aquella de la que la hicimos (su "madre"), haremos:
 git merge NOMBREDELARAMACREADA

Por supuesto, al mezclar pueden surgir conflictos. Nos mostrará las diferencias para que aceptemos cambios.

Recuperando versiones antiguas

Si por cualquier motivo necesitamos recuperar versiones más antiguas del repositorio, podemos forzar a volver a un estado anterior ejecutando:
 git reset ­­hard HASH_DEL_COMMIT_A_RECUPERAR

Es conveniente ver qué cambios se hicieron en cierto "commit". Para ello, hacemos:
 git show HASH_DE_UN_COMMIT

Y si lo que queremos es recuperar o consultar el estado de un archivo en aquel commit, podemos hacer:
 git show HASH_DE_UN_COMMIT:ruta/a/un/archivo
 git show HASH_DE_UN_COMMIT:ruta/a/un/archivo > archivo_copia


Enlaces

 http://git-scm.com/book/es/v1
 http://www.psicobyte.com/descargas/ZenDeGit2.pdf
 http://www.psicobyte.com/descargas/0agit9.pdf
 http://www.alvaroremesal.net/blog-alvaroremesal/recuperar-archivos-antigos-con-git

lunes, 1 de diciembre de 2014

Evitar que Twitter recoja datos de las aplicaciones instaladas

Twitter ha activado (por defecto) en su aplicación móvil la opción para recoger información sobre qué aplicaciones hay instaladas en el teléfono. Esto podemos verlo como una invasión de la intimidad.

¿Se puede desactivar? Pues sí, y es relativamente sencillo:
  • Para desactivarlo en Android pulsa en el icono de los tres puntos en línea, entra en "Configuración" y elige la cuenta (si tienes configuradas varias). Ahora en "Otros", desactiva "Personalizar Twitter en función de mis aplicaciones".
  • Para desactivarlo en iOS debemos ir a la pestaña más a la derecha-abajo ("Cuenta"); ahora pulsa en el icono del engranaje. En "Configuración" entramos en la cuenta (si tenemos varias configuradas), y desplazando, en la sección "Privacidad", desactivar "Personalizar Twitter en función de mis aplicaciones".

viernes, 17 de octubre de 2014

Nueva vulnerabilidad: POODLE. Esta vez, el SSL de los navegadores

Es importante estar al tanto de las vulnerabilidades que pueden afectar a nuestros sistemas.

Recientemente se ha descubierto (o al menos se le está dando más importancia a) una que tiene que ver con el protocolo SSL de los navegadores.

En esta ocasión, la posible solución pasa por desactivar el SSL en el navegador que usemos y forzarlo a usar TLS en su lugar, que no está afectado por esta vulnerabilidad.

Todos los navegadores tienen un parámetro para configurarlo. En el siguiente artículo se explica detalladamente cómo hacerlo en los navegadores más comunes (Firefox, IE, Chrome):
"POODLE Disabling SSLv3 Support in Browsers"
https://zmap.io/sslv3/browsers.html#chrome-osx

viernes, 26 de septiembre de 2014

Arreglar en Ubuntu el exploit del bash "Shell Shock"

Todos los Linux, al igual que en otros sistemas derivados de Unix (OS X también, como comentamos en un post previo), están afectados por el exploit "Shell Shock". En todos los sistemas conviene actualizarlo a la versión siguiente que ya no sea vulnerable.

Nuestro sistema será vulnerable si al ejecutar lo siguiente en una ventana de terminal:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos muestra el mensaje:
vulnerable
this is a test


En ese caso, merece la pena que lo arreglemos.

Para ello tenemos que bajar los fuentes del bash, aplicarle un parche de seguridad, compilarlo, e instalarlo.

Para ello, debemos tener el gcc instalado en la máquina, lanzar un terminal y ejecutar las siguientes órdenes (directamente se puede hacer copy&paste sobre el terminal):

cd
mkdir src
cd src
 # descargamos los fuentes del bash
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
 # descargamos los parches
for i in $(seq -f "%03g" 0 25); do wget     http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
 # aplicamos los parches
for i in $(seq -f "%03g" 0 25);do patch -p0 < ../bash43-$i; done
 # compilamos e instalamos
./configure && make
sudo make install
 # limpiamos
cd ..
cd ..
rm -r src

Una vez actualizado, si volvemos a ejecutar el script:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos debería devolver el mensaje:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test


Y eso significará que nuestro sistema ya no es vulnerable al exploit  ;)

Arreglar en OS X el exploit del bash "Shell Shock"

Dado que el bash 3.2 (la versión que viene con OSX) es vulnerable al exploit llamado "Shell Shock" (CVE-2014-6271 y CVE-2014-7169), conviene actualizarlo a la versión siguiente (mientras Apple crea una actualización y se nos instala a través del App Store.

Nuestro sistema será vulnerable si al ejecutar lo siguiente en una ventana de terminal:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos muestra el mensaje:
vulnerable
this is a test


En ese caso, merece la pena que lo arreglemos.

Para ello tenemos que bajar los fuentes del bash desde la página de Apple, aplicarle un parche de seguridad, compilarlo, y sustituir los ejecutables del bash y sh en /bin

Para ello, debemos tener el XCode instalado en la máquina, lanzar un terminal y ejecutar las siguientes órdenes (directamente se puede hacer copy&paste sobre el terminal):

cd
mkdir bash-fix
cd bash-fix
curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
cd bash-92/bash-3.2
curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0    
cd ..

xcodebuild

sudo cp /bin/bash /bin/bash.old
sudo cp /bin/sh /bin/sh.old

build/Release/bash --version
build/Release/sh --version

sudo cp build/Release/bash /bin
sudo cp build/Release/sh /bin

sudo chmod a-x /bin/bash.old /bin/sh.old



Si ahora volvemos a ejecutar el script:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

nos debería devolver el mensaje:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test


Y eso significará que nuestro sistema ya no es vulnerable al exploit  ;)

domingo, 17 de agosto de 2014

Extraer páginas de un PDF (OS X)

Hay ocasiones en que nos interesa una o varias páginas concretas de un PDF.

Usando Preview podemos extraerlas creando un PDF nuevo con esas páginas, o varios PDFs independientes (uno por página, p.ej).

Una forma de hacerlo es seleccionar en la barra lateral de miniaturas las páginas que queremos, pulsar la combinación de teclas ⌘-C (o Editar -> Copiar). Quedarán en el portapapeles.

Ahora pulsamos ⌘-N (o Archivo > Nuevo a partir del portapapeles) y nos crea el archivo nuevo.

Otra forma más sencilla aún es arrastrar las páginas desde la barra lateral de miniaturas hasta una ventana del Finder. Nos creará un PDF con esa/s página/s.

sábado, 3 de mayo de 2014

¡Por fin Firefox en OS-X aprovecha el espacio de la barra de título de la ventana!

No sólo que ahora tenga una interfaz más moderna y bonita. Creo que lo más importante es que ahora es más rápido, y la zona de la ventana que anteriormente sólo mostraba los tres botones y el nombre de la ventana (ver la primera imagen) ahora se aprovecha para las pestañas (ver la segunda imagen).

Podemos bajar la última versión de: http://www.mozilla.org/es-ES/firefox/new/

lunes, 31 de marzo de 2014

Arreglar un extraño error de LaTeX relacionado con el lenguaje

En versiones modernas de LaTeX, el uso del lenguaje "spanish" del paquete "babel" puede producir errores de compilación en proyectos que antes sí compilaban bien. El que me ha salido a mí es:

! Argument of \language@active@arg~ has an extra }.

La solución que he encontrado es modificar los parámetros del paquete:

\usepackage[spanish,es-noshorthands]{babel}


martes, 4 de marzo de 2014

Búsqueda inversa de imágenes con Google Images

Habitualmente usamos Google Images para buscar imágenes según unas palabras claves.

Sin embargo, podemos usar este servicio para buscar en qué páginas se ha publicado cierta imagen que tengamos.

Para ello debemos entrar en https://images.google.com/ y pulsar sobre el dibujito de la cámara de fotos que hay en la caja de búsqueda. Ahora podremos seleccionar un archivo que tengamos en nuestro ordenador o bien indicar la URL hasta una imagen. Tras aceptar cualquiera de las opciones, nos mostrará los enlaces a las páginas donde se aparece la imagen.

jueves, 30 de enero de 2014

Convertir un conjunto de imágenes en un solo PDF

Es una tarea que se puede realizar de muchas formas. La más trabajosa pero más inmediata es usar un editor de textos para crear un documento en el que iremos insertando una imagen por página. Esto puede ser inviable para una cantidad grande de imágenes.

Sin embargo, disponemos de herramientas que lo pueden automatizar:

Si usamos OS X, la misma herramienta "Vista previa" (Preview) nos permite hacerlo. Para ello, seleccionamos todas las imágenes en el Finder y le damos a abrir con Vista Previa. Una vez las tenemos en la ventana, podemos reordenarlas arrastrándolas para ponerlas en el orden adecuado. Ahora vamos al menú de Archivo, a la opción Imprimir, y en el cuadro de diálogo de impresión, pulsamos en "PDF" (abajo a la izquierda), y a la opción "Guardar como PDF".

Si usamos Linux, disponemos de una herramienta "mágica" que nos va a facilitar la conversión de cualquier tipo de imagen: ImageMagick.

Para instalarla, sólo tenemos que ejecutar:
sudo apt-get install imagemagick

Y ahora ya podemos ir al directorio donde están las imágenes y ejecutar:
convert *.jpg archivo.pdf

Si el archivo PDF sale demasiado grande, puede que necesites especificarle la compresión:
convert *.jpg -compress zip archivo.pdf

Por último, si usamos Windows, podemos instalarnos el ImageMagick o buscar alguna aplicación que mediante una interfaz gráfica nos permita la conversión. Como ejemplo, cabe destacar la aplicación "JPEG to PDF":
http://compulsivecode.com/jpegtopdf.html