Category: Tips

Consejos para no infectarte con Malware

Es una realidad, a día de hoy Internet está lleno de malware y cuando navegamos es posible que acabemos descargando y ejecutando este tipo de software.

El malware se define como software que tiene como objetivo infiltrase o dañar un sistema de información sin el consentimiento de su propietario. El término se refiere genéricamente a una variedad de software hostil, intrusivo o molesto.

A pesar de tener nuestro sistema actualizado, nuestro navegador actualizado y tener un antivirus protegiendo la última línea de batalla de los dos anteriores, habitualmente puedes llegar a tener infecciones por malware o simplemente tener un falso positivo, que se define como una detección erróneamente clasificada como malware.

Ante el primer caso, mi consejo es el siguiente: evitad la descarga de contenido procedente de enlaces que referencien a un javascript y no muestren la url final del archivo a descargar. Desconfiad de ellos, porque el script os devolverá el archivo a descargar, pero no sabréis de antemano nada sobre el archivo. Esta técnica se suele usar para proporcionar descargas de malware y variar el fichero (normalmente un archivo.zip) que pase desapercibido por el navegador y el antivirus. Esto no quiere decir que haya sistemas que usen un javascript para servir contenidos de manera legítima y benévola, pero por norma general desconfiad.

Para saber que hay un javascript tras un enlace, es tan fácil como hacer click derecho sobre el enlace y selecciona "Copiar dirección de enlace". Si lo copias en un editor de texto os aparecerá algo parecido a esto:

javascript:void(0);

En vez de algo como esto:

https://mascandobits.es/blog/wp-content/uploads/2015/10/mi_descarga.zip

Una forma mucho más preventiva de bloquear estos elementos, es usar programas como NoScript, que nos permite desactivar el código javascript de las webs que visitemos. En el blog de Víctor Goñi tenéis una somera introducción al uso de NoScript.

En el segundo caso de tener un posible falso positivo, yo recomiendo usar el sentido común (que a veces es el menos común de los sentidos 😉 ). Tu antivirus o navegador pueden detectarlo como potencial malware, pero está en nuestra mano descargarlo. En el caso del antivirus podemos desconectar momentáneamente el antivirus para poder descargarlo y en el caso del navegador siempre podremos forzar la descargar o recuperar el archivo. Alguno me dirá: ¡Estás loco hermano! Pues NO. Mientras no ejecutes el archivo o lo descomprimas, estaremos a salvo.

Malware-PC

Alguno a estas alturas estará pensando, cuál el motivo por el que a pesar de un posible falso positivo decido descargar el archivo. Una de las formas de percibir ingresos extra por las compañías que desarrollan los navegadores y los antivirus, es la de provocar falsos positivos en ciertos archivos para que funcione como medida disuasoria para su descarga. Terceras empresas suelen pagar a navegadores y antivirus para mostrar estos avisos, ya que la descarga de dichos archivos son contrarias a su negocio o le provocan directamente pérdidas económicas. Cracks, Keygens, Scene, Descifrado (Desencriptación) de Sistemas de Información, Herramientas de Ingeniería Inversa... son algunos de los muchos ejemplos en los que se puede dar falsos positivos pagados por empresas. Esto no quiere decir que dentro de estos grupos, haya software con malware, que los hay.

Especulaciones a un lado, tenemos nuestro archivo descargado. Para comprobar que no es malware, hay una prueba sencillísima, abre una nueva pestaña y vuelve a descargar el mismo ficheros sin ejecutarlo. Si el fichero se descargar con el mismo nombre (el segundo fichero tendrá el mismo nombre más "(1)"), es probable que no sea malware. No por ello bajaremos la guardia.

Una forma de clarificar la cosa es pedir una o varias opiniones más sobre el posible archivo cargado con malware. Para ello podemos acceder a Virus Total, dónde podremos pedir que varios motores de antivirus analicen el fichero y nos devuelvan el resultado.

Virus-Total-ESP

 

Caso práctico

Personalmente todo esto que os cuento lo puse en práctica al ir a descargar DVDshrink, un software que permite romper el cifrado de los DVDs comerciales para generar copias de seguridad. Al descargar la última versión del programa, tanto el navegador como el antivirus saltaron.

Inmediatamente comprobé que la descarga del archivo usaba un enlace con javascript. Tras descargarlo una segunda vez, el nombre del archivo cambiaba. Con lo que acudí a Virus Total en busca de respuestas.

malware-malicious-virus

El primer archivo arrojó el siguiente análisis:

Primer análsis (2016-05-08 09:10:57 UTC)

El segundo archivo lo analicé en otro día distinto y no me lo relacionó con el primero que subí:

Segundo análisis (2016-05-11 11:03:18 UTC)

Virus Total genera un SHA256 que identifica unívocamente al archivo, y en este caso no había relación con el primero que subí. Además de todo ello, los resultados variaban y para colmo había alrededor de un 50% de resultados que decían que no era malicioso y el otro 50% decían que sí lo era.

*Nota: Virus Total actualiza los resultados si se vuelve a subir por otros usuarios el mismo archivo

Esto me hizo desconfiar automáticamente. En mi caso basta que 10 de los 56 motores de los antivirus, me devuelvan infección para destruir el fichero sin pensármelo demasiado, si no sé exactamente lo que estoy manejando. El que haya entre 1 y 4 resultados de infección también puede ser que se trate de una infección nueva. En este caso el software ya lo conocía anteriormente y su última versión pone que es del 2014, sería algo raro que tras ese tiempo se tratase de una infección nueva, si hubiese entre 1 y 4 resultados de infección.

Recuerda también que entre los resultados ofrecidos por los distintos motores de los antivirus, puede haber falsos positivos o reportes de infecciones hechos desde la parte heurística de cada motor, que se encarga de detectar posibles amenazas que no estén catalogadas dentro de las bases de datos de cada antivirus.

Al final cada uno tomamos la decisión de ejecutar el archivo y como todo en la vida podemos equivocarnos, a pesar de haber contrastado las fuentes de información para generar una decisión en consecuencia informada y de calidad.

 

Obteniendo las imágenes originales de un documento Word .docx

Es posible que alguna vez os hayáis visto en la tesitura de tener un documento Word con formato .docx, en el que hay una serie de imágenes que nos interesa obtener. Alguno me dirá, para eso ya tengo solución, copio la imagen y la pego en el Paint (eso esta chupado!! 😉 ). Y tenéis toda la razón, pero existe otra forma mucho más sencilla que además nos dota de unas ventajas adicionales.

La forma de conseguir las imágenes que os voy a explicar, pasa por cambiar la extensión del documento de .docx a .zip, ya que el formato docx se trata de una estructura de compresión ZIP y se comporta como tal. Para ello lo primero es mostrar las extensiones, vais a "Opciones" --> "Cambiar opciones de carpeta y búsqueda" --> Pestaña "Ver" --> Desmarcar "Ocultar las extensiones de archivo para tipos de archivo conocidos". Con esto aparecerán todos nuestros archivos con el nombre más un punto y la extensión (que normalmente es entre 3 o 4 caracteres).

Antes de hacer nada con el documento, creamos una copia del mismo ya que vamos a manipularlo y de hacerlo mal podríamos corromperlo de manera irrecuperable. Por tanto, creamos una copia del documento y le cambiamos la extensión de .docx a .zip y nos aparecerá un aviso:

Cambiar_extension_Windows_alert

Le damos a "" y el documento pasará a considerarse por parte del sistema como un archivo comprimido ZIP. Ahora podremos abrirlo como fichero comprimido.

Las imágenes se encuentran en la ruta "word/media" y se trata de las imágenes originales, a pesar de que las hayamos escalado, recortado... y en general manipulado en el documento.

docx_structure

Desde la carpeta "media" podremos copiar de una vez todas las imágenes.

Si fuera el caso, también es posible modificar las imágenes siempre y cuando se respete el mismo nombre de cada imagen. Si volvemos a cambiar la extensión de .zip a .docx, el sistema volvería a interpretar el fichero como un documento Word.

Lo interesante de esto es la posibilidad de ver cómo está formado un documento Word .docx y en consecuencia poder generar nosotros mismos un documento Word .docx sin pasar por el programa oficial. A fin de cuentas se trata de un fichero empaquetado en ZIP, con una estructura que alberga los recursos media y ficheros XML que describen la forma del documento.

Este procedimiento descrito no funciona con los documentos Word con formato .doc

 

Eligiendo licencia Open Source

En mi trabajo actual, muy a menudo me encuentro con el dilema de tener que licenciar código. Este aspecto es importante, porque si tu código va a ser liberado públicamente como Software Libre en una plataforma como puede ser GitHub, es necesario que dediques unos minutos a pensar qué licencia poner y qué implicaciones tiene cada licencia. Además es muy recomendable que no subas ningún código sin explicitar el tipo de licencia a la que está sujeto, porque la ausencia de licencia y su publicación de manera pública en la red, implica que quien acceda a ese código "hará lo que quiera con él o por lo menos lo que legalmente pueda en su país".  Por defecto a un código sin licencia se le aplican las leyes en materia de Copyright del país, que además pueden variar en función de cada país. En caso de no incluir licencia, es aconsejable un aviso de Copyright con el año y el nombre del autor.

Mi consejo es que no te la juegues y deja claro lo que se puede hacer o no con tu software, se use por quien se use, en el país que sea.

Si buscas por Internet verás numerosos artículos que hablan sobre los tipos de licencia e incluso presentan categorizaciones de las mismas a fin de ordenarlas para que al lector le resulte más fácil elegir la que realmente necesita. Una posible categorización es la que divide a las licencias en 3 grandes grupos que son Copyleft Fuertes, Copyleft Débiles y Permisivas, tal como se presenta en el Blog de Víctor Goñi, que además nos presenta las cuatro libertades para los usuarios definidas por Richard Stallman y la compatibilidad entre las licencias de los distintos grupos. También tenéis una buena referencia en Hypertextual. Yo por mi parte voy a intentar explicar de manera breve los distintos grupos y algunas de sus licencias más usadas y extendidas, tomando como base la referencia de Hypertextual.

mpl-apache-gpl

 


Copyleft Fuertes

Se denomina a una licencia como Copyleft Fuerte, cuando las obras derivadas de un programa no pueden ser enlazadas por programas que no sean libres. Esto no prohíbe la acción contraria; que un programa con Copyleft fuerte enlace a un programa privativo.

El objetivo del Copyleft fuerte es no dar ventajas a los desarrolladores de software privativo, ya que estos podrían usar los programas creados para indirectamente privar las libertades de los usuarios. De este modo, un programador que desarrolle un programa privativo no podrá usar el código de uno libre para facilitarse el trabajo.

Entre las licencias más comunes tenemos:

  • GNU General Public License (GPL) 3.0: Creada por la Free Software Foundation como parte del proyecto GNU, es una de las más populares y utilizadas en la comunidad. Exige la publicación del código fuente y que todos los trabajos derivados del original conserven la misma licencia GPL, no permite enlaces con módulos privativos (de código cerrado) y requiere que todos los cambios realizados a la versión original sean reflejados en el código fuente con sus respectivos autores. Además posee ventajas únicas respecto a otras licencias como protección contra la tivoización y protección contra las leyes de DRM. Los derechos de autor deben conservarse tanto en el código fuente como en los binarios.
  • GNU General Public License (GPL) 2.0: Es la versión previa a la GPL 3.0, también creada por la Free Software Foundation como parte del proyecto GNU. Tiene características similares a la versión 3.0 pero carece de protección contra la tivoización, protección contra las leyes de DRM y no considera software que se ejecuta a través de la red. La Free Software Foundation desaconseja su uso para proyectos nuevos, en su lugar recomienda la GPL 3.0.

Copyleft débiles

Se denomina a una licencia como Copyleft débil cuando las obras derivadas de un programa pueden ser enlazadas por programas que no sean libres.

El objetivo del Copyleft débil es que cuando haya ya alternativas gratuitas privativas del mismo programa, dejar que programas privativos usen el programa, para así facilitar la adopción de programas libres.

Entre las licencias más comunes tenemos:

  • GNU Lesser General Public License (LGPL) 3.0: Es una licencia con características y beneficios similares a la GPL 3.0, pero con la diferencia que permite enlazar módulos privativos al código, por eso se considera una licencia débil. La Free Software Foundation sólo la recomienda para circunstancias especiales y estrictamente necesarias.
  • Mozilla Public License (MPL) 2.0: Creada por Mozilla Foundation para publicar la mayoría de sus aplicaciones y utilizada por muchos otros programas en la actualidad. Es una licencia que busca un balance entre las licencias permisivas (como la BSD) y las copyleft fuertes (como la GPL). Exige la publicación del código fuente y que cualquier derivado o extensión sea publicado bajo la misma licencia MPL. Sin embargo considera términos en los cuales el código licenciado puede ser parte de una aplicación más grande y esa aplicación puede contener módulos licenciados bajo cualquier otro esquema, incluso privativo. En otras palabras, permite que módulos libres puedan convivir con módulos privativos. No requiere que los cambios realizados sean reflejados en el código fuente y los derechos de autor deben mantenerse tanto en el código fuente como en los binarios.
  • Eclipse Public License (EPL) 1.0: Es una licencia muy similar a la Mozilla Public License ya que busca un equilibrio entre licencias permisivas y fuertes, teniendo como objetivo principal hacerla atractiva para los ambientes de negocios. No requiere ningún seguimiento en los cambios y sólo exige la publicación del código fuente cuando las modificaciones se consideran un trabajo derivado y no una extensión o un módulo separado. Los trabajos derivados deben ser publicados siempre bajo la licencia EPL. Esta licencia es usada por la Eclipse Foundation y nace como reemplazo a la Common Public License.

Licencias Permisivas

Una licencia de software libre permisiva, también conocida como minimalista o liberal, es una licencia de software libre flexible respecto a la distribución, de modo que el software pueda ser redistribuido como software libre o software propietario, siendo libre la licencia original del autor.

La característica peculiar de estas licencias se debe a que no poseen copyleft, ya que el trabajo derivado no tiene por qué mantenerse con el mismo régimen de derechos de autor que el original. Esto maximiza la libertad para quien recibe el software y quiere desarrollar algo derivado, permitiéndole elegir entre el amplio abanico de licencias existentes. No obstante, desde el punto de vista de los usuarios, esto se puede considerar como una restricción a su libertad, en el sentido de que el software propietario siempre restringe las libertades de los usuarios del mismo y las licencias permisivas, abren esta posibilidad.

Entre las licencias más comunes tenemos:

  • Apache 2.0: Es la licencia creada en principio por la Apache Software Foundation para publicar los paquetes del proyecto Apache, sin embargo en la actualidad es usada para muchos otros proyectos. Se considera una licencia permisiva porque no requiere que los trabajos derivados sean publicados bajo la misma licencia y tampoco exige la liberación del código fuente. Los cambios a la versión original deben reflejarse en un archivo en el código fuente y pueden ser publicados usando cualquier otra licencia. Lo más importante de esta licencia es que los derechos de autor deben conservarse tanto en el código fuente como en los binarios.
  • MIT: Es una licencia perfecta si lo que quieres es llegar al mayor número de desarrolladores y no te importa en dónde o cómo puede ser usado tu código. No se considera una licencia para software libre pues no garantiza la libertad de la aplicación, lo único que exige es que los derechos de autor sean incluidos en todas las copias o posibles porciones del software. Recibe su nombre debido a que fue la licencia usada por el Instituto de Tecnología de Massachusetts (MIT en inglés) para publicar la versión original del sistema de ventanas X.
  • BSD 2-Clause: Conocida también como licencia BSD Simplificada o licencia FreeBSD, es otra licencia permisiva o no copyleft que solamente exige que los derechos de autor y las resignaciones de garantía sean incluidas en todas las distribuciones del software, bien sea en forma de código o en binario. Al igual que la licencia MIT, es ideal si no te interesa lo que la gente pueda hacer con el código de tu aplicación y quieres llegar a un mayor número de desarrolladores.

 

He presentado los 3 grupos de licencias Open Source y las licencias más comunes dentro de cada grupo, pero seguramente estés pensando: "Ufffffff, necesito algo más práctico y ágil para de un golpe de vista poder seleccionar mi licencia...".  Por ello os facilito la siguiente referencia, en la que mediante tablas  e muestran los permisos, las condiciones y las limitaciones de cada licencia:

http://choosealicense.com

Espero que este artículo os haya ayudado a comprender las licencias más comunes y a elegir, en consecuencia de manera más rápida, la que necesitéis para vuestro software.

 

Cuando Windows 10 decide por ti

Llevo ya unas semanas usando Windows 10 y salvando ciertas desavenencias de retrocompatibilidad que voy pudiendo parchear, en general funciona bastante bien. Lo que no estoy tan contento es con la política de actualizaciones de Windows 10.

Todos hemos tenido siempre la sombra de que nuestros equipos a veces parecían más de Microsoft que nuestros. Con la llegada del nuevo sistema operativo y su gratuidad para su actualización (incluso en el caso de versiones del sistema no legítimas), me hace pensar que el negocio de Microsoft está pasando de ser la venta de servicios y software, a ser nosotros, los usuarios el producto. Lo siento chicos, pero nada en esta vida es gratis, en algún lado está el precio y su correspondiente pago no necesariamente monetario. En el caso de que haya una empresa por detrás ten claro que si algo te lo dan gratis, el producto eres TÚ. Por otro lado, es lógico que Microsoft haga este movimiento, a fin de cuentas a uno de sus rivales más fuertes (Google), le ha ido bien usando este planteamiento. Es lógico que Windows quiera probar con esta estrategia para mantener y mejorar su nicho de mercado, y dicho de paso quitarse la fragmentación de sistemas operativos a los que tiene que dar soporte (recordemos el caso de la longevidad en uso de Windows XP).

Independientemente  del modelo de comercialización que elija Microsoft para sus productos, el equipo sobre el que instalo su sistema operativo es mio (y tengo una factura que lo demuestra 😉 ). Este comentario viene a que el pasado día, tras una actualización de Windows 10 de estas que se te instalan al inicio y te realizan varios reinicios, Windows 10 decidió que cierto software que ya estaba instalado no era compatible e incluso podría causar daños, y lo desinstaló de manera unilateral. ¿Quéeeeeeeeeeeee?...

What-MrBean-Meme

¿Ni preguntar ni nada? Yo creo que se puede sugerir, pero no imponer hacer nada. Además si vas a desinstalarme algo, qué menos que dejar un fichero de registro de lo que se ha desinstalado, en vez de un fugaz mensaje a modo de pop-up que apenas llegas a ver el nombre de la lista de programas desinstalados. Al clickar el pop-up te lleva a esta web:

http://windows.microsoft.com/en-us/windows-10/incompatible-app-windows-10

Un información que dista mucho de ser valiosa y ni llega al estatus de útil. ¡¡No dice nada!!

Lo bueno de todo esto, es que lo que dice haber desinstalado, realmente no lo ha desinstalado. Cierto es que no está en "Programas y características", pero no borra los archivos del programa, sólo quita los accesos y borra la entrada de "Programas y características" . Si vas a la carpeta del programa y ejecutas el programa aún funcionará. Es decir, nos está dejando basura porque el programa sigue ocupando espacio, pero oficialmente el sistema no dice tenerlo instalado. ¡Algo muy chapucero! ¿no?

En mi caso el programa que desinstaló fue Speccy, un programa para auditar el hardware de tu equipo y el estado del mismo. Para todos los programas que tengo instalados suelo tener guardado el instalador dentro de una carpeta en donde se instala. Con ánimo de ver si realmente Windows me había tomado el pelo, vuelvo a instalar exactamente la misma versión del programa que me había desinstalado.

Mi sorpresa fue que funcionaba perfecto. Ningún problema, ni incompatibilidad, funcionaba bien. De todo esto lo que más me preocupa y me enfada es:

  1. Windows 10 no sugirió la desinstalación del programa, lo desinstaló unitalteralmente.
  2. Windows 10 desinstaló una aplicación que funcionaba perfectamente tras su reinstalación tras la actualización.
  3. Windows 10 no borró los archivos del programa desinstalado, dejando basura.

En su lanzamiento Windows 10 fue bastante criticado por la obligatoriedad de sus actualizaciones, y a día de hoy no parece haber cambiado mucho la cosa. No existe una forma simple como en versiones anteriores del sistema para desactivar las actualizaciones. Si accedemos desde el menú de inicio a "Configuración" --> "Actualización y seguridad" --> "Windows Update":

Windows10_Windows-Update

Veremos que apenas tenemos opciones de configuración. Hacemos click en "Opciones Avanzadas" para acceder a algunas opciones más.

Windows10_Windows-Update_Opciones-avanzadas

No hay ninguna opción para desactivar las actualizaciones, ni mucho menos para seleccionar cuáles instalar y no instalar.

No obstante existe la posibilidad de desactivarlas desde el Editor de Políticas de Grupo, si no estás conforme con la política de actualizaciones de Windows 10. Si tienes una versión Windows 10 Home necesitarás descargarlo desde el siguiente enlace, ya que la versión Home no lo incluye:

Descargar Group Policy (gpedit.msc)

Una vez descargado, ejecuta el instalador "setup.exe" y una vez instalado copia el archivo "gpedit.msc" de la carpeta "C:\Windows\SysWOW64" a la carpeta "C:\Windows\System32".

Para ejecutarlo escribimos en la barra de inicio "gpedit.msc" y lo seleccionamos. Os aparecerá la siguiente ventana:

Windows10_Group_Policy

Seleccionamos "Configuración de Equipo" --> "Plantillas Administrativas" --> "Componentes de Windows" --> "Windows Update".  En el panel de la derecha seleccionamos "Configurar Actualizaciones Automáticas" y seleccionamos "Deshabilitado".

Windows10_Group_Policy2

Hacemos click en "Aplicar" y luego en "Aceptar" y tendremos desactivadas las actualizaciones en Windows 10.

Si has tenido algún problema en la instalación del Editor de Políticas de Grupo, visita la siguiente dirección :

https://www.itechtics.com/enable-gpedit-windows-10-home/

El método de instalación del Editor de Políticas de Grupo sirve también para versiones  Home de Windows 7 y Windows 8. El instalador sólo se encuentra en inglés.

En resumen Windows 10 viene con una imposición de actualización continua del sistema, durante las cuales Windows se reserva el derecho de desinstalar cualquier aplicación que considere oportuna de manera unilateral sin consultar al usuario.