Mostrando entradas con la etiqueta MacOS X. Mostrar todas las entradas
Mostrando entradas con la etiqueta MacOS X. Mostrar todas las entradas

martes, febrero 26, 2019

MacOS X Mojave: Intentando diagnosticar problemas con las WIFI

Hace unos días intenté conectar mi portátil, un Macbook Pro con la versión 10.14.3 ( OS X Mojave) a la wifi de un familiar. La cuestión, es que el Mac no se quería conectar. Curiosamente el resto de los ordenadores, incluyendo un antidiluviano iBook de 12" con 10.4 (Tiger) se conectaba sin problemas a la wifi en cuestión. ¿Qué problema tenía la última versión de OS X con todos las actualizaciones instaladas?

Sin saber muy bien qué camino seguir, utilicé la utilidad Wireless Diagnostics.app que se encuentra en el directorio /System/Library/CoreServices/Applications/ del sistema operativo. Ejecuté la utilidad y el menú ventana selecciono explorar (se puede tb abrior con la combinación de teclas option + command + 4. Esta es la captura de pantalla del resultado:

Llama la atención que el punto de acceso no tenga configurado el país y que eso pudiese estar causando algún problema con OS X. Como tenía un extensor WIFI a mano, lo conecté a dicha WIFI que no funcionaba - en este caso, si configuré el código país en el extensor- y el Mac a través de la wifi extendida se pudo conectar sin ningún problem,a. Aunque curiosamente, tengo en casa un router sin el código de país al que el Mac se conecta correctamente. Lo que no caí fue en comparar los algoritmos de cifrado que se estaba usando. Hay que tener en cuenta que según el país, la WIFI usa ciertos canales para comunicarse y con cierta potencia, por lo cual puede haber alguna incompatibilidad.

También se puede obtener desde la línea de comandos la información de las WIFIs que tenemos alrededor:

/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s

En la salida tabulada de este comando tenemos también el código del país con el que está configurado el punto de acceso y el tipo de cifrado que está utilizando. Esto nos puede servir para localizar posinbles problemas

miércoles, marzo 07, 2018

Cifrar un disco externo o un USB con MacOS X High Sierra

Supongamos que queremos cifrar un disco externo o un pincho USB por si se nos pierde nadie tenga acceso a los datos. Y el sistema operativo que estamos usando es MacOS X , en su última versión, High Sierra (10.13). Los pasos que hay que dar son los siguientes:

En primer lugar, un dispositivo que vaya a ser cifrado, debe de tener una tabla de particiones de tipo GUID Partition Table. Para que un dispositivo tenga esa tabla de particiones debe de borrarse y formatearse de acuerdo a este estándar de particiones. Esto se hace usando la Utilidad de discos. Lo ejecutamos , seleccionamos Mostrar todos los dispositivos en el menú de Visualización (si se pulsa comando-2) la vista cambia directamente. La utilidad de disco nos mostrará el siguiente menú:

En este caso se puede ver un disco, TDK LoR TF10 Media que va a ser el que vamos a cifrar. En este caso, al tener dicho disco un sistema de ficheros FAT, se puede ver el volumen y el disco. Procedemos a borrarlo y a crear una tabla de particiones de tipo GPT: Pulsamos boton derecho y elegimos borrar

La Utilidad de Discos desplegará un cuadro de diálogo donde debemos elegir el formato del sistema de ficheros, el nombre que le daremos al volumen y el tipo de tabla de particiones que se va a uar. La tabla de particiones debe ser Mapa de particiones GUID y el sistema de ficheros Mac OS Plus (con registro, encriptado) o APFS (encriptado) - bueno, cualquiera de los encriptados -. En el ejemplo, se ve que el volumen se va a llamar KEYS. Pulsamos en borrar para que el contenido se borre y se cree la nueva tabla de particiones. Como hemos elegido un sistema de ficheros encriptado, la Utilidad de Discos nos preguntará por la contraseña que se va usar para cifrar. Una vez introducida la contraseña, pulsamos en borrar y el sistema nos creará el sistema de ficheros encriptado

Si expulsamos el disco y lo volvemos a introducir, el sistema nos mostrará un cuadro de diálogo para que introduzcamos la contraseña del disco cifrado para poder acceder al mismo.

domingo, febrero 25, 2018

ssh-add en Mac OS X

El conjunto de programas OpenSSH incluye un agente, ssh-agent cuya misión es almacenar las claves privadas del usuario. A este agente puede preguntarle los comandos que necesiten acceso a las mismas para autentificarse con otros sistemas. El agente se controla con la ayuda del programa ssh-add. Llamamos al comando pasando como parámetro la ruta al fichero donde está la clave privada que queremos añadir al agente. En caso de que dicha clave esté protegida por una contraseña, el programa nos preguntará por la misma y la usará para poder acceder a la clave privada

Una particularidad que tiene el comando ssh-add en OS X es que se le ha añadido la opción de permitir almacenar las contraseñas de acceso a las claves privadas en el gestor de contraseña - keychain - que tiene Mac OS X. De esta manera, no es necesario estar desbloqueando las mismas usando las contraseñas cada vez que se desee añadir al agente, el sistema lo hará por tí

domingo, septiembre 03, 2017

Evitar la reutilización de procesos en MacOS X

A pesar de llevar más de diez años usando MacOS X, hay una cosa que no he descubierto hasta hace un par de días: Como ejecutar nuevos procesos de la misma aplicación. Si, cuando pulsas en el icono de la aplicación (por ejemplo, Terminal.app), si está ejecutándose, no crea una nueva, sino que reutilia la instancia anterior. Lo que no sabía es que con el comando open y las opciones -a y -n se lanza un proceso nuevo. Si además, queremos que este proceso no nos abra las ventanas viejas que pueda tener almacenadas, se usa -F.

Por ejemplo, si lanzamos desde el Dock una instancia de Safari y queremos querer otra nueva:

$ open -n -F -a "Safari.app"

Lo curioso es que esta sencilla orden me permite volver a usar los escritorios virtuales como lo hacía hace más de diez años en Linux usando fvwm, donde en cada uno de los escritorios ponía los procesos que me interesaban, especialmente xterm. En mi caso, lo que más me interesa es colocar en los escritorios ventanas del Terminal.app o del Safari.app. Pero claro, el sistema trata a todas las ventanas de un mismo proceso como una entidad única, con lo cual, si movía una venta a otro escritorio, me movía todas las del proceso. Sabiendo que con open puedo ejecutar nuevos procesos, mi problema queda solucionado y puedo volver a usar el sistema de escritorios virtuales como a mi me gusta.

jueves, agosto 24, 2017

Enredando con el cliente de Cisco Umbrella en OS X

Hace unos días me instalaron en la máquina Cisco Umbrella. Esta es una plataforma de seguridad en la nube que básicamente hace dos cosaS:

  • Modifica la configuración DNS de la máquina para que cualquier petición sea redirigida hacia los servidores de Cisco Umbrella y analizada si se permite o no.
  • Un tunel IPSEC - al menos en el caso del Mac - que manda por el mismo todo el tráfico hacia direcciones que considera problemáticas.

Puesto que me ha picado un poco la curiosidad, me he puesto a mirar un poco como está implementado. Empecemos por lo fácil. Si se tiene permisos de administrador, parar el Cisco Umbrella es tan fácil como esto:

launchctl unload "/Library/LaunchDaemons/com.opendns.osx.RoamingClientConfigUpdater.plist"

Aunque claro, tb me podéis decir - con razón que lo podéis desinstlar -, pero vamos, se trata de poder pararlo en un momento dado.

El mecanismo que utiliza es bastante pedreste para comprobar los nombres: Simplemente modifica el resolv.conf para que apunte a localhost donde estará escuchando el proceso dnscrypt-proxy que se encargará de rutar las peticiones DNS a la nube - Cisco recopilando información :) - y devolver la IP correcta o dirigirnos a una página donde se nos dice que no estamos autorizados a ir a esa dirección. Un ejemplo con lo más fácil de probar y que no está autorizado: Una de como Porn Hub:

$nslookup 
> www.pornhub.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   www.pornhub.com
Address: 146.112.61.106
> 146.112.61.106
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
106.61.112.146.in-addr.arpa name = hit-adult.opendns.com.

Authoritative answers can be found from:
> 

Podéis ver de la salida anterior del nslookup, la respuesta que nos devuelve cuando se busca la dirección IP de un sitio de vídeos lúdico-festivoses una IP que apunta a una página de opendns (Cisco Umbrella) diciéndonos que no está permitido.

Pero, ¿Qué ocurre si cambiamos el servidor de DNS al que hacemos la consulta?. Por ejemplo, vamos a usar uno de los servidores de Google, 8.8.8.8

$ nslookup 
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> www.pornhub.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.pornhub.com canonical name = pornhub.com.
Name:   pornhub.com
Address: 31.192.120.36

Pues nos está devolviendo el valor correcto de la IP del sitio prohibido :)

Este tipo de artimiñas pueden hacerse por el sencillo motivo que Umbrella no intercepta las librerías encargadas de resolver nombres en el sistema, al menos en Mac OS X. Lo único que hace es cambiar los servidores DNS que utiliza el resolver por defecto, que como veis en este ejemplo es fácil de saltar. Hay infinidad de maneras de saltarse esta restricción como un usuario normal en una máquina Unix, ya que la mayaría de personas tienes accesso a un ssh y a un proxy socks. Por ejemplo, un servidor ssh al que se tenga acceso y usar la opción -D para SOCKS.

Cambiando de tema, lo que me ha llevado a mirar un poco como funciona Cisco Umbrella fue llevarme la sorpresa que de buenas a primeras, tenía una tabla de rutas con 54000 entradas que se enrutaban a través de un tunel IPSec que crea el propio Cisco Umbrella. Por ejemplo, en mi máquina ese tunel es utun0 y al ejecutar un netstat -rn me di cuenta que existían miles de entradas que iban a través de dicho túnel. Esto forma parte del mecanismo de protección de IP y es una manera bastante sencilla de saber cual es la base de datos de IP sospechosas que tiene Cisco: Todas las que están en la tabla de rutas redirigidas al túnel. Con un simple netstat -rn|grep utun0|awk '{print $1}' y voilà.

Se puede obtener los nombres de aquellas IP que tengan resolución inversa con un script similar a este, aunque estaríamos bombardeando el server de Google, así que casi mejor usar uno propio :)

netstat -rn |grep utun0|awk '{print $1;}'| while read ip;do nslookup "$ip" 8.8.4.4;sleep 1;done|grep "name = "

jueves, julio 13, 2017

MacOS X, alto uso de CPU de kernel_task y enlentecimiento del sistema

Llevo un tiempo con un fenómeno curioso en el Mac: De manera más o menos aleatoria, los ventiladores empiezan a funcionar a plena potencia, todo el ordenador se enlentece y el proceso kernel_task - el sistema operativo - está usando gran cantidad de tiempo de CPU. Incluso si se mira el sistema con el comando top se verá que el tiempo que pasa en el kernel del sistema es muy elevado. Una captura de pantalla del Monitor de Actividad se puede ver:

Tras muchas pruebas - incluyendo entre otras cosas: restear el SMC, quitar drivers, quitar procesos del arranque - me di cuenta que si quitaba el cable de carga y esperaba unos minutos, el sistema volvía a un estado normal y el porcentaje de uso de CPU por parte del sistema, caía a niveles normales. Si volvía a poner el cable, se empeza a calentar el sistema y en pasado un poco tiempo, aparecía el problema.

Por supuesto, con la batería totalmente cargada o con la temperatura de la oficina más baja, esto no ocurría. Tras buscar un poco por Internet, encontré la explicación: Cuando aumenta la temperatura del sistema, OS X comienza a generar interrupciones para que la CPU vaya más lenta y por tanto disipe menos calor .... llevándose por delante el rendimiento del sistema. La solución es refrigerar mejor el ordenador con una base.

domingo, enero 22, 2017

Crear usuarios en OS X desde la línea de comandos

Para añadir desde la línea de comandos un usuario en MacOS X es necesario usar el comando dscl - Directory Service command line utility -, cuya misión es interaccionar con el servicio de directorios de la máquina local o de una máquina remota.

Por ejemplo, para listar todos los usuarios que hay en la máquina se puede usar la siguiente orden que generará la salida que se muestra en el segundo bloque.

dscl . -list /Users
...
_amavisd
_appleevents
_appowner
_appserver
...

Si se quiere ver todos los atributos de los registros de usuario se puede ejecutar con las siguientes opciones y puede verse parte de la salida en el siguiente bloque:

dscl . -readall /Users
GeneratedUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000053
NFSHomeDirectory: /var/virusmails
Password: *
PrimaryGroupID: 83
RealName:
AMaViS Daemon
RecordName: _amavisd amavisd
RecordType: dsRecTypeStandard:Users
UniqueID: 83
UserShell: /usr/bin/false

Para añadir un usuario nuevo, será necesario crear un nuevo registro bajo /Users y añadir una serie de atributos que configuren la cuenta. Para proceder a esta creación y modificación de atributos, será necesario ejecutar el comando dscl desde una cuenta que tenga los privilegios adecuados. Si se quiere crear un usuario mldonkey, cuyo directorio $HOME sea /Users/mldonkey, con contraseña password1234, los pasos necesarios son:

# Crear el nuevo registro
sudo dscl . -create /Users/mldonkey
# Añadir el atributo que define el shell
sudo dscl . -create /Users/mldonkey UserShell /bin/bash
# Crear el atributo donde se guarda el nombre
sudo dscl . -create /Users/mldonkey RealName "Usuario par ejecutar mldonkey"
# Añadir el directorio $HOME
sudo dscl . -create /Users/mldonkey NFSHomeDirectory /Users/mldonkey

Ahora, nos falta dos atributos importantes: El UniqueID, el número que define el uid del usuario y el PrimaryGroupID , el número que identifica el grupo primario del usuario. Normalmente, usamos el grupo llamado staff, pero será necesario ver cual es su GroupID. Para ello con el siguiente comando nos devolverá el valor que se necesita:

dscl . -read /Groups/staff|grep PrimaryGroupID
PrimaryGroupID: 20

El un sistema de tipo Unix, el uid es único. Normalmente, OS X asigna los uid de usuarios normales a partir de 500, y este debe ser único. ¿Cómo se puede generar el siguiente libre?. Pues con esta orden:

dscl . -readall /Users|grep UniqueID |awk -v max=0 '{if($2>max){v=$2; max=$2}} END{print v+1 }'

Una vez que se tienen esos dos números, se añaden al registro los atributos, se establece la password, se crea el directorio raíz del usuario y se le ponen los permisos adecuados. Por ejemplo, en mi sistema el siguiente uid libre es el 507 y el PrimaryGroupID de staff es 20

# Añadir el uid
sudo dscl . -create /Users/mldonkey UniqueID 507
# Añadir el atributo con el grupo primario
sudo dscl . -create /Users/mldonkey PrimaryGroupID 20
# Establecer la password. Ni se te ocurra usar una como la de ejemplo
sudo dscl . -passwd /Users/mldonkey password1234
# Crear el directorio $HOME
sudo mkdir /Users/mldonkey
# Establecer permisos de usuario en el $HOME
sudo chown mldonkey /Users/mldonkey
# Establecer el grupo en el $HOME
sudo chgrp staff /Users/mldonkey
# Establecer los permisos
sudo chmod 755 /Users/mldonkey

Por último, decir que mejor hacer un script que se encargue de todo :)

miércoles, marzo 30, 2016

MacOS X "El Capitán" y problemas de Bluetooth

Hace un par de meses empecé a tener problemas con el Macbook del trabajo: En ciertas circunstancias, los auriculares bluetooth que utilizo y el Magic Trackpad no funcionaban bien. El ratón se movía a trompicones y los auriculares reproducían el sonido de manera entrecortada. Comencé a buscar información para ver si había casos similares y encontré varias referencias a problemas de bluetooth a partir de Yosemite, específicamente problemas en la reproducción de audio a través de dispositivos bluetooth.

La solución al problema que tenía la encontré en Troubleshooting OS X Bluetooth Issues: A partir de Yosemite, OS X incluye una nueva funcionalidad llamada Handoff que permite - a través de iCloud - comenzar una tarea en un dispositivo y pasarnos a otro continuando con la misma tarea: por ejemplo, empezar a escribir un correo en el iPhone y continuar en el Mac. Esto funciona si los dispositivos están en rango de bluetooth y ambos están usando la misma cuenta iCloud. Desactivando el Handoff en el Mac, se solucionaron los problemas de audio y de saltos del track pad. Para desactivar Handoff, abrimos Ajustes del Sistema, General y desmarcamos la casilla Permitir Handoff entre este Mac y sus dispositivos iCloud.

viernes, julio 23, 2010

Como crear un sistema HFS+ sensible a mayúsculas y minúsculas en MacOS X

El sistema de ficheros que usa por defecto la instalación de MacOS X, no es sensible a mayúsculas y minúsculas, es decir, que dentro de la jerarquía de ficheros el nombre Hola,HOLA o HoLa, hace referencia al mismo fichero. Debido al trabajo, me he encontrado que en el repositorio git que usamos, tenemos ficheros con el mismo nombre pero que sólo se diferencia en las mayúscula y minúsculas, con lo cual no puedo editarlos en el Mac. Para buscar una solución a este problema, he decido usar un fichero de imagen para almacenar todo el repositorio de git y que distinga ficheros en mayúsculas y minúsculas.

La utilidad que nos permite comunicarnos con el framework encargado de gestionar las imágenes de discos en MacOS X es hdituil. El sistema de ficheros que queremos crear queremos que sea el estándar de MacOS X, HFS+, que sea sensible a mayúsculas y minúsculas (case sensitive), que use la tabla de particiones estándar de los Mac en Intel con Snow Leopard y que el fichero y vaya creciendo conforme se vaya añadiendo información hasta el límite que nos interese.

La opción que usaremos del hdiutil será create. Podemos ver toda la ayuda de la opción de la siguiente manera:

hdiutil create -help

Con todas las opciones anteriores, el comando que hay que introducir en el terminal para crear un fichero con las propiedades anteriores es la siguiente (todo en la misma línea):

hdiutil create -fs "Case-sensitive HFS+" -layout "GPTSPUD" -type SPARSE -megabytes 8000 -volname "git.image" git.image

Las opciones que se han pasado a hdiutil create son las siguientes:

  • -fs "Case-sensitive HFS+": El tipo de sistemas de ficheros que se creará dentro del fichero de imagen será HFS+ y los nombres de ficheros y directorios será sensible a mayúsculas y minúsculas.
  • -layout "GPTSPUD": Tipo de tabla de particiones. En este caso, indica que usa el sistema de particiones de Apple con una sola entrada y que genera un UUID para la misma. Este es el tipo de particiones que utiliza los Mac con procesador Intel. En el caso de usar un procesador con PowerPC se puede usar SPUD como tipo de partición.
  • -type SPARSE: Con esto indicamos que el no queremos que se reserve todo el espacio que va a tener la imagen. Ahorramos espacio, pero puede producir fragmentación en el fichero,haciendo más lento el acceso a los datos.
  • -megabytes 8000: Tamaño en megabytes que tendrá la imagen.
  • -volname "git.image": Etiqueta de volumen del nuevo sistema de ficheros. Nos aparecerá en el Finder como un disco con dicho nombre - siempre que no exista otro con el mismo nombre montado con anterioridad -.
  • git.image. Este es el prefijo del nombre de fichero que nos va a crear. Como hemos usado la opción -type SPARSE, el nombre del fichero que nos creará será git.image.sparse.

Ahora se puede ir uno al Finder y montar la imagen haciendo doble click sobre la misma. También es posible montarla desde la línea de comando con la siguiente orden:

swordcoast:Documents terron$ hdiutil attach git.image.sparseimage 
/dev/disk2                  GUID_partition_scheme                  
/dev/disk2s1              EFI                                    
/dev/disk2s2              Apple_HFS                              /Volumes/git.image

Con la orden mount desde la ventana de terminal podemos verificar que está correctamente montada la imagen:

swordcoast:Documents terron$ mount
/dev/disk0s2 on / (hfs, NFS exported, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
/dev/disk2s2 on /Volumes/git.image (hfs, local, nodev, nosuid, noowners, mounted by terron)
swordcoast:Documents terron$

Por último a mi me interesa que esta imagen esté siempre montada cuando utilizo una ventana de Terminal. La manera más sencilla de hacer esto, si se usa la shell bash en el terminal es añadir al fichero $HOME/.profile las siguientes líneas:

if [ !  -d /Volumes/git.image ]; then
        hdiutil attach /Users/terron/Documents/git.image.sparseimage
fi

Mejoras a futuro

Quizás de la parte que estoy más descontento es en la manera que se monta la imagen almacenada en /Users/terron/Documents a través del .profile no me convence. He estado buscando información para ver si el automount podría proporcionarme una interfaz cómoda para montar las imágenes, pero no he encontrado información suficiente. También tengo pendiente en publicar algunas notas del uso de hdiutil para manejar las imágenes de discos en MacOS X.


Technorati Tags:

miércoles, noviembre 18, 2009

Cambiar el nombre del sistema en Mac OS X

Ayer, mientras configuraba el Macbook me vino a la cabeza un detalle. ¿Cómo se cambia el hostname, el nombre de la máquina en Mac OS X?. Viniendo del mundo de la línea de comandos y de los scripts en el /etc, no sabía en que parte de la interfaz gráfica se cambia dicho parámetro. Tras buscar un poco y leer una nota técnica de Apple, para cambiar el nombre del sistema, hay que abrir las Preferencias del sistema, y pulsamos sobre el icono de Compartir, y ahí tenemos la opción Nombre de ordenador, donde pulsamos editar e introducimos el nombre del sistema que se desee. Cerramos la ventana de preferencias y se habrá realizado el cambio. Puede comprobarse ejecutando la orden hostname desde una ventana de terminal. A continuación una captura de pantalla del panel de preferencias desde donde se cambia:

Panel de Compartir, MacOS X 10.5 Leopard

Desde la línea de comandos se puede hacer también con la siguiente orden:

scutil --set HostName baldurgate.local
Esta última orden debe de ejecutarse como administrador del sistema (a través de la orden sudo)

Technorati Tags:

jueves, octubre 29, 2009

Abrir ficheros seguros en Safari

Safari, el navegador de MacOS X, tiene un mecanismo que permite abrir ciertos tipos de ficheros de manera segura, sin preguntar al usuario si desea abrirlo o no. Fundamentalmente son archivos PDF, imágenes o archivos de música, que el Safari automáticamente muestra o interpreta sus contenidos. Esto se puede configurar a través de una opción en las preferencias: Si abrimos el cuadro de diálogo de configuración, y se pulse sobre el botón General:

Diálogo de configuración de Safari

Abrir archivos "seguros" al descargarlos

Si está seleccionada esta opción, Safari abrirá automáticamente los archivos que el considera seguro. Ahora, ¿Cómo se puede añadir otros tipos de ficheros?. Por ejemplo, si deseamos que se abran archivos de Word (.doc) o de Excel (.xls) de manera automática. ¿Cuál es el mecanismo que tiene Safari?.

Para ello, es necesario crear un fichero Property List, situado en el en el directorio ~/Library/Preferences, llamado com.apple.DownloadAssessment.plist. Este fichero es XML, y puede ser editado, con un editor de texto de manera sencilla. Así, por ejemplo, si queremos que los ficheros de Word (.doc) y Excel (.xls) que nos bajemos automáticamente se lance el Word y el Excel de manera automática, habría que crear el fichero com.apple.DownloadAssessment.plist, con el siguiente contenido

<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com-PropertyList-1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>LSRiskCategorySafe</key>
<dict>
<key>LSRiskCategoryExtensions</key>
<array>
<string>doc</string>
<string>xls</string>
</array>
</dict>
</dict>
</plist>

Si se tiene instalado las herramientas de desarrollo, este fichero se puede crear con ayuda del programa Property List Editor.app,que está en /Developer/Applications/Utilities

Implicaciones de seguridad

Hay que comentar las implicaciones y los riesgos de seguridad que implica hacer que el Safari abra automáticamente cierto tipos de ficheros. Por tres motivos.
  1. Si existe algún problema en el Safari que identifique de manera errónea un tipo de fichero, se puede ejecutar código disfrazado como un fichero inocuo. Hemos visto varios fallos graves de seguridad en Windows, donde el usuario cree que está abriendo un fichero de un tipo determinado e inocuo, pero realmente, está abriendo un fichero ejecutable que contiene un virus que infecta al ordenador.
  2. El programa que abra los ficheros puede tener problemas de seguridad (por ejemplo, supongamos que un visor de fotos o un reproductor mp3 que usar Safari, es vulnerable a la hora de interpretar un fichero de imágenes o un mp3 especialmente preparado). En este caso, el Safari podría estar lanzando un programa vulnerable de manera automática.
  3. No he probado si una mala configuración del Safari en este aspecto, puede lanzar automáticamente programas maliciosos servidos por un servidor web cuya seguridad esté comprometida.

Propiedades que se pueden modificar

  • LSRiskCategorySafe: Todos los tipos de fichero que estén en esta clave de la plist, se considerarán seguros y se abrirán automáticamente.
  • LSRiskCategoryNeutral: Todos los tipos de fichero que estén en esta clave de la plist, se considerarán seguros, pero no se abrirán automáticamente.
  • LSRiskCategoryUnsafeExecutable: Todos los archivos ejecutables pertenecen a esta categoría, son considerados no seguros por definición.
  • LSRiskCategoryMayContainUnsafeExecutable: Cubre todos los archivos contenedores, como los archivos de disco (dmg,iso), que podrían contener contenido peligroso.
Estas preferencias, almacenadas en el fichero ~/Library/Preference/com.apple.DownloadAssessment.plist, afectan tanto al comportamiento de Safari como de Mail, así que hay que tener cuidado a la hora de modificarlos por las consecuencias de seguridad que tiene.

No sólo se puede usar extensiones de fichero, sino también se puede usar tipos MIME que los identifican.

Referencias

  1. How to automatically open .torrent and other files in Safari.
  2. Changing the system’s default settings for html files (safe)
  3. Modifying Safari Safe File

Technorati Tags: ,