Los CISO, una prioridad para la banca

Rubén García Ramiro    27 noviembre, 2019

Ninguna compañía de servicios financieros puede permitirse pasar por alto el riesgo constante al que están expuestas por parte de los ciberdelincuentes sus activos o los datos de sus clientes. La posibilidad de fraude es una constante. Recientemente -los ejemplos no escasean- se detectaba un nuevo troyano con capacidad de recoger información y enviar SMS, que amenazaba a ocho bancos españoles. Se trata de amenazas cada vez más elaboradas, que obligan a estar siempre alerta. Sobre todo a los CISO en banca.

El objetivo principal del CISO no es proteger la tecnología sino salvaguardar el negocio. Se trata, por ello, de un puesto que ha cobrado especial relevancia. El CISO en banca ha escalado peldaños en las estructuras organizativas a través de una mayor representación en la junta directiva y reporta directamente al CEO. Su capacidad para manejar presupuestos y tomar decisiones de forma independiente es imprescindible en la actualidad en una entidad financiera. Es una figura que está adquiriendo cada vez más poder en estos entornos para ayudar a mitigar los problemas de seguridad que pueden afectar al banco.

Las entidades financieras han sido históricamente el principal objetivo de atracos y robos. Todo evoluciona y en el lado oscuro también. Ahora la dificultad crece al tener que hacer frente a ciberdelincuentes cada vez más preparados. Cada uno de los clientes de la entidad es, además, un potencial flanco débil para la seguridad de la misma. Si esto lo sumamos a que el resultado de los ataques se traduce en cuantiosas cantidades, tenemos la justificación perfecta de porqué los CISO son una prioridad para la banca, además de por temas de reputación evidentes.

Normativa de obligado cumplimiento para el CISO en banca

Tienen, además, una responsabilidad cada vez mayor de cara a la aplicación de la abundante normativa existente. Y es que más allá del conocido RGPD, hay otras leyes de obligatorio cumplimento en torno a los servicios financieros:

Protección de infraestructuras criticas: La Ley 8/2011 de 28 de abril define una infraestructura crítica como “aquélla cuyo funcionamiento es indispensable para prestar servicios esenciales a la ciudadanía y que no puede ser sustituida por una solución alternativa”. Dicha ley establece la clasificación de los sectores estratégicos, siendo uno de ellos el financiero.

Directiva NIS: Para profundizar en la protección de los servicios esenciales nace la directiva (EU) 2016/1148 el 6 de julio de 2016, en la que se destacan ocho sectores esenciales objeto de protección, entre los que se incluyen la banca y las entidades de crédito.

PCI DSS (Payment Card Industry Data Security Standard): Es un estándar de seguridad que recoge los requerimientos que deben cumplir todas las empresas que aceptan, procesan o transmiten los datos de tarjetas de crédito o débito para proteger la información de las mismas.

SWIFT: La pertenencia a esta organización es una garantía, pues proporciona una red segura, cuya normativa debe cumplirse, que permite que más de 10.000 instituciones financieras de más de 200 países envíen y reciban información sobre transacciones financieras entre ellas.

Directiva PSD2: la nueva directiva (UE) 2015/2366 de 25 de noviembre de 2018 es la más reciente y, en lo que a medios de pago se refiere, desde el punto de vista de la regulación la mayor novedad es que incluye aspectos relevantes en cuanto a las medidas de seguridad que afectarán tanto a los prestadores de los servicios de pago, como a los nuevos negocios que puedan surgir al amparo de esta regulación.

Y el propio nombramiento obligatorio de un responsable de seguridad, un Director de Seguridad de la Información (CISO), que será responsable de implementar el programa de ciberseguridad para que su entidad cumpla con la normativa necesaria.

El DOC de Telefónica Empresas, aliado para la seguridad del negocio

El papel del CISO, como decía al comienzo, se está volviendo cada vez más importante para las empresas de servicios financieros, motivado principalmente por la importante carga de cumplimiento que deben adoptar y la “suculencia” de su negocio.

Por ello, son múltiples las entidades financieras que confían en el SOC de Telefónica Empresas, bajo el paragüas del DOC, para supervisar que dichos ataques no lleguen a materializarse. Esto incluye desde la supervisión de app fraudulentas, phishing o robo de credenciales, sin olvidar, claro está, los sistemas de prevención y detección (AntiDDoS, WAFaaS, IPSs, seguridad en endpoints, gestión de identidad y usuarios privilegiados…). Todo ello con el fin de ser el partner que necesita el CISO para poner a salvo el negocio.

Imagen: Freepik

Cómo aplicar a tu empresa la técnica de la cata de tomates

Ángel María Herrera    27 noviembre, 2019

Hace unos días mi amiga Véronique Gladstone me invitó a su molino, en Guadalajara, a una cata de tomates. Lo que en principio sonaba a una buena experiencia culinaria para disfrutar en familia, era un gran reto, ya que a mis hijos no les gustan los tomates…

Pero me parecía una buena oportunidad para que entendieran que hay otros sabores interesantes más allá de las chuches, y se convirtió en todo un descubrimiento de lo más gratificante y que sin duda es aplicable al ámbito empresarial.

Para empezar, el entorno natural en el que está enclavado el molino, cerca del río, forma un escenario idílico. Y ello, sumado a la amabilidad con la que nos atendieron Veronique y su marido, hizo que pasáramos un día inolvidable con algo tan peculiar como una cata de tomates. Y para hacerla todavía más interesante, lo que hizo fue crear toda una historia en torno a esta fruta. 

Motiva e implica a los demás

Para despertar la atención de los más pequeños, en lugar de ir directamente a la cata, los puso primero a trabajar con harina para hacer pan. Una buena forma de introducirlos en el mundo culinario con la manipulación de ingredientes y su participación activa en la elaboración de alimentos.

Luego, pasamos a la presentación de los tomates, expuestos sobre la mesa, en la que se cuidaron todos los detalles y la decoración. Hasta nos puso servilletas con aroma a tomate…

Consiguió crear el ambiente más adecuado, arrancando con una introducción paulatina que logró despertar el interés de grandes y pequeños, así como nuestra curiosidad y las ganas de saber más.

La cata es una clara muestra de que la forma en la que nos adentran en una materia, sea cual sea, es clave para que nos resulte atractiva desde el comienzo y mantenga la motivación constante.

Por tanto, es un punto que debes tener en cuenta si lo que quieres es integrar al equipo en tu proyecto, crear expectativas motivadoras, lograr la implicación y el compromiso.

«Storytelling»: cuenta una historia

El siguiente paso fue la narración. Como siempre he defendido, el ser humano está programado para escuchar historias y parece que Veronique lo sabe también, pues se acompañó de medios audiovisuales para contarnos algo sobre la historia del tomate, desde sus orígenes hasta algunas curiosidades, lo que mantuvo nuestra atención y curiosidad.

Nos habló de las diferentes variedades de tomate, sus distintos colores y sus sabores. También nos habló de cómo le surgió a ella la afición por el tomate, que nació en julio de 2012 comiendo un increíble tomate en casa de una amiga en Brihuega y se acrecentó tras visitar a un príncipe en su castillo, en Francia, ¡donde tenía más de 750 especies de tomate! Toda esta narración consiguió establecer una conexión emocional con ella, su historia y el producto que habíamos ido a conocer.

Cata de tomates aplicada al ámbito empresarial

Luego pasó a una actividad lúdica que también nos hizo disfrutar a todos. Nos ofreció una experiencia sorprendente, pidiéndonos que nos pusiéramos unos antifaces, tocáramos los tomates para olerlos, sentir su tacto y probarlos dándoles un bocado. Una nueva conexión a través de los sentidos. Al final de la cata, cada uno de nosotros encontramos la variedad de tomate que más nos agradaba (sí, los niños también), por un motivo u otro.  

Con toda esta historia, quiero recalcar la importancia de todo el proceso a la hora de presentar y dar a conocer tu producto.

Si Veronique hubiera venido a casa a ofrecernos sus tomates en una cesta, posiblemente no hubiera conseguido que todos los probáramos. Quizás los hubiera probado mi mujer, una apasionada de esta fruta, pero no habría conseguido llegar al resto.

Investiga los gustos de tus consumidores

Si no te dedicas a averiguar los gustos de tus consumidores, es más probable que el producto que les ofreces no les satisfaga.

Del mismo modo, si incrementas su interés desde una introducción progresiva, atractiva, entusiasta, que cuide los mínimos detalles y que demuestre tu implicación, no solo lograrás que el consumidor tenga mayor curiosidad por saber lo que ofreces, sino que podrás llegar a ofrecerle lo que más le gusta o necesita.

Consigue que te recomienden

Después de esa experiencia, todos en mi casa comemos tomate y además recomendamos que otros lo coman. Porque ese es otro punto muy importante: el poder de la recomendación, que se consigue con un cliente satisfecho.

La comunicación que generas con tus clientes comienza con la primera toma de contacto y se intensifica con la forma en la que los adentras en tu mundo, los involucras de forma paulatina, compartes tu interés y dedicación y te preocupas por sus gustos y necesidades.

Y puede ser una comunicación continua cuando consigues que se encadene a través de la recomendación, creando un flujo constante y productivo. 


5 características de una compañía data driven

Sebastián Molinetti    26 noviembre, 2019

El desarrollo digital y el auge de las soluciones de analítica han conducido a la sociedad a la interesante era de los datos, dando paso a un mercado en el que las compañías data driven se están convirtiendo en líderes indiscutibles de sus industrias al ser capaces de convertir enormes volúmenes de información en su activo más valioso.

Pero ¿qué es una compañía data driven y cuáles son sus características específicas?

Una compañía data driven es, en líneas generales, una empresa basada en la información, una en la que los datos son el epicentro de los procesos y de la toma de decisiones (data driven decisions). 

Sin duda, estas compañías tienen una gran ventaja competitiva frente a aquellos negocios que deciden en base a la intuición y la experiencia. De hecho, se estima que las organizaciones basadas en datos tienen 23 veces más probabilidades de adquirir clientes,  crecen a un promedio de más del 30% anual.

En ese sentido, el data driven decisions es la característica principal de este tipo de organizaciones. Pero hay muchas más que las identifican de forma inequívoca, según opiniones de los expertos

1. Ejecutivos creativos apasionados y curiosos

Las empresas data driven están dirigidas por ejecutivos creativos y de mente abierta, con la capacidad de innovar en procesos basados en datos y resultados. También gestionan la dirección de forma apasionada y con altas dosis de curiosidad, entendiendo que al profundizar en la data es posible obtener conocimiento útil para el negocio. 

Este tipo de ejecutivos interrumpen sustentan los procesos y la toma de decisiones de sus compañías en los datos. Algo muy diferente a la dirección basada en métricas, que es aquella que establece indicadores clave de desempeño y los rastrea periódicamente, pero sin innovar en lo absoluto porque no están en la búsqueda de tendencias que les permitan diferenciarse.

2. Democratización de datos

En las organizaciones de este tipo, los empleados tienen acceso amplio e instantáneo a la data que requieren para tomar decisiones propias de su cargo. 

3. Alfabetización de datos

Según previsiones del Foro Económico Mundial, para el año 2020 los analistas de datos tendrán una gran demanda en empresas de todo tipo y tamaño a nivel global, dando cuenta del crecimiento de la cultura de datos en el mundo empresarial. 

En ese sentido, las compañías data driven enfatizan en que todos los colaboradores cuenten con la capacidad de leer, analizar, procesar y discutir en base a datos. De ahí que capaciten sus colaboradores y establezcan políticas de reclutamiento y retención del talento especializado en la materia. De esa manera cierran brechas de habilidades y se aseguran de que todos sus flujos de trabajo se fundamenten en la información que captan a diario.

4. Automatización de la gestión de datos

Una empresa data driven cuenta con herramientas que tratan la información en tiempo real, automatizando la mayor parte de los procesos relacionados con su gestión. 

La automatización de esta tarea permite a las empresas captar, almacenar, procesar, analizar, consumir y aprovechar al máximo sus recursos de datos. De hecho, es imposible optimizar del todo los procesos comerciales basados en data si no se automatizan de manera integral las cargas de trabajo relacionadas con la gestión de datos.

5. Una cultura data driven 

Aun cuando una organización cuente con las características anteriores y tecnología de punta, no se puede hablar de una empresa basada en datos hasta que haya un cambio en su mentalidad y cultura, algo indispensable en lo que respecta al nivel de democratización de los datos y en la valoración de éstos por parte de los directivos.

En una empresa con cultura data driven, los datos son transparentes, y todos los colaboradores los comprenden y conocen su importancia en el desarrollo de los procesos comerciales e industriales. Se preocupan por acceder a ellos y los emplean para mejorar los resultados. Siempre conscientes de cómo funciona el negocio y de la forma en que pueden impactar en los procesos de la organización. 

Para finalizar, cabe señalar que las compañías basadas en datos también se caracterizan por promover -aunque parezca obvio- una cultura tecnológica a nivel interno, entendiendo que la transformación digital es vital para el crecimiento de una empresa y su posicionamiento en el mercado.

Una vez claras las características de las organizaciones data driven, es importante realizar un análisis en tu negocio y ver cuáles de éstas ya están y pueden potenciarse, y cuáles habrá que trabajar desde cero. Después de todo, en un mercado tan dinámico como el actual, la analítica de datos se alza como un elemento de carácter estratégico para tomar ventaja por sobre la competencia.

Los programadores saludables desayunan cereales criptográficos todas las mañanas

Gonzalo Álvarez Marañón    26 noviembre, 2019

¿Cuál es la peor pesadilla de un programador? La criptografía.

Según los autores del estudio Why does cryptographic software fail?:

«Nuestro estudio cubre 269 vulnerabilidades criptográficas reportadas en la base de datos CVE desde enero de 2011 hasta mayo de 2014. Los resultados muestran que sólo el 17% de los errores se encuentran en bibliotecas criptográficas (que a menudo tienen consecuencias devastadoras), y el 83% restante son usos indebidos de bibliotecas criptográficas por parte de aplicaciones individuales. Observamos que la prevención de errores en diferentes partes de un sistema requiere técnicas diferentes, y que no existen técnicas efectivas para tratar ciertas clases de errores, como la generación de claves débiles.»

Por otro lado, ¿y si nos adentramos en el mundo Android? En An Empirical Study of Cryptographic Misuse in Android Applications los autores nos cuentan:

«Desarrollamos técnicas de análisis de programas para comprobar automáticamente los programas en el mercado de Google Play, y encontramos que 10.327 de las 11.748 aplicaciones que utilizan APIs criptográficas, 88% en total, cometen al menos un error.»

Lo que vienen a confirmar estos estudios es que rara vez la criptografía es el eslabón débil de la seguridad. La criptografía no solo existe en los libros de matemáticas. Ha de corporeizarse, para que la criptografía funcione, necesita estar escrita en software, integrada en un sistema de software más grande, administrada por un sistema operativo, ejecutada en hardware, conectada a una red y configurada y operada por los usuarios. Cada uno de estos pasos trae consigo dificultades y vulnerabilidades.

Son los fallos cometidos por los desarrolladores al implementar la criptografía los que abren la puerta al desastre. Este artículo recoge los errores más típicos que todo desarrollador debe evitar para crear aplicaciones criptográficamente sólidas.

Si reinventar la rueda ya es mala idea, en criptografía es el caos

Resulta edificante la lectura del artículo Great Crypto Failures, firmado por dos investigadores de Check Point Software Technologies, donde reseñan varios fallos épicos de implementaciones criptográficas en ransomware. Si quieren que su código sea ligero y único, los creadores de ransomware se enfrentan a la necesidad de escribir sus propias implementaciones de los algoritmos criptográficos como AES o RSA, en lugar de recurrir a bibliotecas criptográficas establecidas. Pero tú no compartes ninguna de sus restricciones, en lugar de escribir tu propia versión de un algoritmo, deberías recurrir a bibliotecas criptográficas creadas por expertos en criptografía que saben muy bien lo que se traen entre manos.

Muchos lenguajes de programación cuentan con una o varias APIs para criptografía. Por ejemplo, Java ofrece la Java Cryptographic Extensions (JCE), mientras que .NET proporciona las clases del espacio de nombres System.Security.Cryptography. Además de las primitivas criptográficas ofrecidas por los propios lenguajes de programación, existen bibliotecas criptográficas independientes, como OpenSSL, Bouncy Castle, o NaCl, entre las más populares y robustas.

Todas estas APIs criptográficas proporcionan servicios criptográficos como cifrado, generación de claves secretas, código de autenticación de mensajes, acuerdo de claves, gestión de certificados, firma digital, etc. ¡Bingo! Usas una biblioteca y ¡problema resuelto!

No tan rápido. En realidad, tus problemas no han hecho más que empezar. Es cierto que estas APIs están concebidas para permitir a los desarrolladores de aplicaciones aplicar fácilmente la criptografía. Aíslan al desarrollador de los arcanos detalles criptográficos necesarios para implementar los distintos algoritmos. Así, el programador se dedica a escribir su código y se olvida de los herméticos entresijos de la criptografía. La codificación de los algoritmos se delega en los proveedores de las APIs, los auténticos expertos, de manera que al desarrollador le basta con invocar a las funciones expuestas por las APIs. ¿Qué podría salir mal?

Ay, la criptografía es más difícil de lo que parece. Para confusión de desarrolladores, las APIs ofrecen una amplia variedad de algoritmos diferentes que, a su vez, admiten una multitud de modos y opciones de configuración. Además, cada proveedor puede admitir algoritmos adicionales o, peor aún, proporcionar diferentes valores predeterminados para la misma llamada a la API. Como resultado, los desarrolladores se enfrentan a la tarea de utilizar y orquestar correctamente todos estos componentes de la API, a menudo sin entender a fondo su funcionamiento.

Hmmmm. A mí ya me está llegando el aroma de una suculenta receta para el desastre.

Entren si se atreven en el túnel del terror criptográfico

Imagina que eres un programador de Android. Sí, eres el Rey de la Programación, pero nunca te enseñaron criptografía en la escuela. Un día, necesitas algo aparentemente tan trivial como cifrar una cadena de texto. ¿Cómo lo harías?

El primer paso consiste en consultar al oráculo de Google para ver si ya hay algo por ahí que puedas reutilizar. Después de todo, no necesitas más que cifrar una triste cadena de texto. En una reciente charla, Maximilian Blochberger, creador de la biblioteca criptográfica Tafelsalz, buscó en Google:

«Android encryption example«

Y este es el resultado que apareció en primer lugar y que a mí también me sigue apareciendo a día de hoy:

private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {

SecretKeySpec skeySpec = new SecretKeySpec(raw, ”AES”);
Cipher cipher = Cipher.getInstance(”AES”);
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
[…]
byte[] keyStart = ”this is a key”.getBytes();
KeyGenerator kgen = KeyGenerator.getInstance(”AES”);
SecureRandom sr = SecureRandom.getInstance(”SHA1PRNG”);
sr.setSeed(keyStart);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] key = skey.getEncoded();
byte[] encryptedData = encrypt(key,b);
byte[] decryptedData = decrypt(key,encryptedData);

Vamos a diseccionar el código anterior, línea por línea:

encrypt(byte[] raw, byte[] clear)

No se valida la longitud de la entrada ni de salida. Todos sabemos lo peligroso que resulta trabajar con buffers sin ningún tipo de validación. Entre otros problemas, pueden producirse desbordamientos, leer más allá del tamaño del array, y esos problemillas.

SecretKeySpec skeySpec = new SecretKeySpec(raw,
”AES”);

Un desarrollador no tiene por qué saber de criptografía. Él solo quiere cifrar una cadena de texto. ¿Con qué algoritmo? ¡Pues ni idea! Mientras sea seguro, le vale. Todas las bibliotecas ofrecen una gran variedad de algoritmos. ¿Son todos seguros? Tristemente, no. En un artículo previo listé los algoritmos que deben dejar de usarse. Si lo consultas, encontrarás a AES entre los seguros. Entonces, todo bien, ¿no?

Pues no, porque en JCE, “AES” es la abreviatura de “AES/ECB/PKCS5PADDING”, que significa que se utilizará AES en modo ECB de encadenamiento de bloques y con el algoritmo de relleno descrito en PKCS#5. Si te has leído el artículo sobre criptografía insegura, recordarás que el modo ECB es inseguro. Por desgracia, las propias bibliotecas criptográficas pueden no estar proporcionando opciones seguras por defecto o pueden proporcionar algoritmos obsoletos por cuestiones de compatibilidad con aplicaciones legadas.

SecureRandom sr = SecureRandom.getInstance(”SHA1PRNG”);

Se utiliza el algoritmo SHA1, hoy considerado inseguro.

byte[] keyStart = ”this is a key”.getBytes();

Inicializa la clave de cifrado con una contraseña leída de un parámetro estático. Es una idea mala, mala, mala. Tan mala, que a nadie que copie este código se le ocurrirá hacerlo así, ¿verdad? ¿O no tan verdad?

De hecho, todo el asunto de la derivación de la clave de cifrado AES a partir de una contraseña está mal hecho. Existen protocolos mucho más seguros, como PBKDF2.

byte[] encryptedData = encrypt(key,b);

Se cifran los datos de entrada con la clave recién generada. Si se cifran los mismos datos con la misma clave, se obtendrá el mismo resultado. ¡Falta diversificación! En un buen protocolo criptográfico, por muchas veces que cifres un mismo mensaje con la misma clave, siempre obtendrás un resultado distinto. Puede conseguirse gracias a añadir aleatoriedad cada vez, como un vector de inicialización aleatorio, o bien añadiendo un contador, como en el caso del modo CTR. Técnicamente, se busca que el cifrado posea la propiedad IND-CPA.

byte[] decryptedData = decrypt(key,encryptedData);

Y ya, para terminar, redoble de tambores…, el cifrado no está autenticado, por lo que se garantiza la confidencialidad, pero no la autenticidad. Por ejemplo, AES-GCM proporciona ambos atributos.

No está mal para un pequeño código de ejemplo que aparece en primer lugar en la página de resultados de Google cuando se busca Android encryption example. ¡Menudo ejemplo! No es de extrañar que el 88% de las apps de Android tuvieran errores criptográficos.

Pero los problemas no acaban aquí. Incluso si resuelves todos los inconvenientes que he señalado, empiezan tus problemas verdaderamente gordos. ¿De dónde leerá el código la contraseña del usuario? ¿Dónde guardará la clave de cifrado recién derivada? ¿Cómo se gestiona la clave en memoria durante el cifrado? ¿De qué manera se cifrará a su vez para que esté protegida? ¿Quién tiene acceso a esas claves? ¿Cuántas veces se reutilizan por el mismo usuario o para el mismo fin? ¿Por cuánto tiempo se almacenan? Si pueden salir del sistema, ¿cómo se protegen? Y una larga ristra de preguntas similares, que obtienen respuesta en lo que se conoce como gestión de claves, una disciplina complicada de la criptografía.

Así que, ¿qué puedes hacer?

Algunos mandamientos cuando uses cripto en tus programas

Seguir las siguientes reglas no te garantizará la seguridad total. Pero no seguirlas te conducirá al desastre.

1) Nunca te inventes algoritmos criptográficos. Usa los existentes considerados seguros.

En el artículo «La criptografía insegura que deberías dejar de usar» encontrarás un listado de algoritmos considerados hoy inseguros y cuáles usar en su lugar. Por fácil que parezca inventar un algoritmo criptográfico, ¡no lo es! Las raras veces en que se ha podido vulnerar un sistema por culpa de un algoritmo débil, la causa fue:

  • Se usó un algoritmo obsoleto.
  • Se usó un algoritmo cocinado en casa.

¡No lo hagas!

2) Nunca codifiques algoritmos criptográficos. Usa bibliotecas de confianza.

Hay tantos detalles sutiles, que si no has entendido perfectamente el funcionamiento del algoritmo y no usas bibliotecas de enteros grandes cuyo funcionamiento entiendas también perfectamente, lo más probable es que algo salga mal. Personas con más conocimiento ya se han pegado con esos detalles. ¡Aprovéchate! Utiliza una API criptográfica de confianza.

3) Entiende cómo funcionan todas las funciones y parámetros de la biblioteca criptográfica que elijas.             

Ni la mejor biblioteca servirá de nada si no sabes usarla. Necesitarás tomar decisiones como:

  • El tipo de encadenamiento de bloques: nunca uses ECB. Usa otros modos con vectores de inicialización aleatorios y distintos cada vez.
  • La longitud de la clave: 128 bits o más para algoritmos de cifrado simétrico, 3072 bits o más para RSA y 256 bits o más para ECC.
  • Utilizar o no salts: desde luego, y que sean aleatorios y distintos en cada llamada.
  • Qué tipo de padding utilizar.
  • Etc.

Existen multitud de bibliotecas. Algunas, como OpenSSL, son muy crípticas y cuesta usarlas incluso a quienes comprenden la criptografía. Dan acceso a primitivas criptográficas de bajo nivel, por lo que para hacer tareas complejas, como por ejemplo autenticar y cifrar un mensaje, es necesario invocar a cerca de una docena de funciones. ¡Cuántas oportunidades para cometer algún error!

Por este motivo, criptógrafos benévolos que aman a la Humanidad se han esforzado en crear bibliotecas intuitivas y fáciles de usar, con funciones del nivel más alto posible. En lugar de exponer funciones básicas, estas bibliotecas dan acceso a tareas, como por ejemplo “autenticar y cifrar un mensaje” o “firmar un documento”. Es la propia API la que se encarga de los detalles farragosos implicados en las tareas.

Algunas bibliotecas a considerar creadas con esta filosofía son NaCl, Tafelsalz o Libsodium. Su objetivo es que te resulte casi imposible cometer errores de seguridad al usarlas.

4) Gestiona tus claves.

Utiliza claves generadas aleatoriamente. No uses semillas estáticas ni fácilmente adivinables, como la hora. Necesitas funciones criptográficamente seguras. No te preocupes, tu API las tendrá. Y recuerda: la función random()no sirve.

No uses contraseñas como claves. Usa funciones de derivación de claves a partir de contraseñas. No sufras, tu API las tendrá.

Nunca uses claves constantes.

Si usas criptografía asimétrica:

  • No copies las claves privadas, ni las almacenes en claro, ni las escribas (hard-code) en tus programas.
  • Evita usar la misma clave pública para operaciones diferentes: cifrado, autenticación, firma, etc.

La mala programación vuelve insegura la mejor criptogrfía

Por muy a prueba de fallos que esté diseñada una biblioteca criptográfica, tendrás que comprender, aunque sea superficialmente, lo que estás haciendo. La realidad es que muchos desarrolladores carecen de una comprensión formal de la aplicación de la criptografía en su software, a pesar de que son expertos en el desarrollo de software en sí mismo. A ver, no necesitas convertirte en un Caballero Criptógrafo de la Orden de la Cifra, pero tampoco te hará daño leer algún buen tutorial sobre criptografía o hacerte algún curso online de calidad. Y si quieres poner a prueba tus conocimientos sobre criptografía desarrollando código, atrévete con los Cryptopals challenges.

¡Desayuna tus cereales criptográficos todas las mañanas!

¿Puede Hacienda entrar en tu domicilio para inspeccionar tus archivos?

David Ballester    26 noviembre, 2019

El pasado mes de mayo la Agencia Tributaria envió unas comunicaciones a pymes y autónomos de nuestro país, en las que el Departamento de Gestión de Hacienda explicaba -con carácter informativo- que desde 2016 tienen a su disposición información sobre las entradas y salidas totales de todas las cuentas bancarias de los contribuyentes, tanto de personas físicas como de entidades.

De esta forma y con estos datos, Hacienda habría llevado a cabo un análisis estadístico referente a las ratios económicas y sectoriales de los obligados tributarios de ciertos sectores económicos.

Y se avisaba a las pymes y autónomos de que dichos datos podrían ser considerados como indicios de un posible fraude fiscal.

Esta situación provocó en los autónomos una gran alarma y ha tenido consecuencias judiciales.

En concreto, el mes pasado y relacionado con estos argumentos de Hacienda, se ha emitido una importante sentencia del Tribunal Supremo, que merece la pena analizar.

Se trata de un recurso presentado por una Sociedad Limitada (S.L.), que desarrolla su actividad en el sector hostelero, sobre una sentencia del Tribunal Superior de Justicia de Andalucía, en la que la empresa mencionada recurre, porque considera que en la actuación de Hacienda se infringen varios preceptos legales, entre ellos y el más importante, el de la inviolabilidad del domicilio (Artículo 18.2 de la Constitución Española).

La posición de Hacienda

La situación es que Hacienda, como resultado de un análisis básico de las principales magnitudes económico-tributarias de la S.L., y de acuerdo con los datos consignados en sus declaraciones del Impuesto sobre Sociedades, detectó un perfil de alto riesgo tributario.

Hacienda se basa en lo siguiente para afirmarlo:

  • Los bajos resultados declarados en su actividad económica.
  • La rentabilidad que la empresa obtiene por cada euro invertido en compras se mide por el ratio cifra de negocios / aprovisionamientos. En el caso de la S.L., con sus datos declarados, resulta que la media de esta rentabilidad durante el periodo temporal citado es bastante baja si la comparamos con la declarada a nivel nacional.
  • Por tanto, el margen comercial declarado es bastante inferior al declarado por las empresas del sector, lo que induce a pensar que el obligado tributario puede haber estado ocultando ventas efectivamente realizadas.
  • Los bajos ingresos en efectivo efectuados en cuentas bancarias. En el sector de la restauración los cobros en efectivo son numerosos, siendo particulares los principales clientes de este tipo de empresas.
  • El hecho de que la mayor parte de sus ventas se realicen a particulares que no declaran en el modelo 347 facilita la ocultación de parte de las mismas, puesto que la Administración Tributaria no dispone de la información facilitada de forma sistemática por terceros (clientes o proveedores), para poder contrastarla con la declarada.
  • De los datos obtenidos de la S.L., las imposiciones en efectivo realizadas en el periodo analizado en relación con la cifra de negocios alcanzan una  cantidad sensiblemente inferior a la media nacional. Por tanto, el obligado tributario parece haber optado por no ingresar en bancos la mayor parte del efectivo obtenido en sus ventas, con lla dificultad que ello supone para comprobar los ingresos realmente obtenidos.

Por todo ello, según Hacienda, resulta aconsejable requerir autorización judicial para que la Inspección pueda entrar en el domicilio de la S.L., con el fin de acceder a sus archivos físicos e informáticos, ya que los indicios anteriores pueden implicar:

  • Que exista una contabilidad distinta a la reflejada en las declaraciones mercantiles y fiscales.
  • Que haya ventas no declaradas.
  • Que sea necesario el inicio de las actuaciones de investigación y comprobación mediante el requerimiento de los registros oficiales, cuya comunicación de entrada podría provocar la destrucción u ocultación de la posible doble contabilidad y de sus soportes documentales.

¿Qué dice la Ley General Tributaria?

En esta situación, la Ley General Tributaria señala que, cuando en los procedimientos de aplicación de los tributos sea necesario entrar en el domicilio de un obligado tributario o efectuar registros en el mismo, la Administración tributaria deberá obtener el consentimiento de aquel o la oportuna autorización judicial, lo que en principio no sucede en este caso.

El tribunal señala que este caso suscita cuestiones de interés general y presenta, por tanto, interés objetivo para la formación de la jurisprudencia, y que conviene evaluar la legitimidad de la medida de intervención adoptada judicialmente, en tanto afecta a un derecho fundamental.

Y acuerda que, aceptando el recurso de la S.L. en los términos mencionados, sea el propio Tribunal Supremo el que estudie:

  • El grado.
  • Requisitos.
  • Condiciones.
  • Alcance.
  • Justificación de la autorización judicial de entrada y registro en domicilio o sede social, constitucionalmente protegido, de una empresa por Hacienda, de forma que dicha autorización de entrada sea necesaria y proporcionada.
  • Y si de los datos obtenidos por Hacienda sobre ventas, margen comercial media del sector, ingresos en efectivo, puede inferirse la existencia de un presunto fraude fiscal.

Dada la importancia de esta cuestión para las pymes y autónomos, tendremos que estar pendientes de cuál será el sentido de la sentencia que a este respecto dicte el tribunal en los próximos meses.

Las matemáticas del Machine Learning: Redes Neuronales (Parte I)

Fran Ramírez    26 noviembre, 2019

Continuamos con nuestra serie que tiene como objetivo explicar la base de las matemáticas que se utilizan en el aprendizaje de máquina o Machine Learning de la manera más sencilla y directa posible. Al final del artículo podrás encontrar todos los enlaces al resto de esta mini serie de artículos.

Una vez que ya estamos familiarizados con el concepto de Machine Learning, el siguiente paso es distinguir los tres tipos de algoritmos de aprendizaje automático que existen: supervisado, no supervisado y por refuerzo.

En el aprendizaje supervisado, la máquina aprende mediante ejemplos. De este modo, el usuario proporciona al algoritmo de aprendizaje automático un conjunto de datos conocidos que incluye las entradas y salidas deseadas, y el algoritmo debe encontrar un método para determinar cómo llegar a esas entradas y salidas.

Por el contrario en el no supervisado el algoritmo de aprendizaje automático estudia los datos proporcionados por nosotros para identificar patrones y encontrar una serie de correlaciones y relaciones.

En este enlace puedes encontrar una explicación más en profundidad de ambos tipos de aprendizaje.

El aprendizaje por refuerzo se basa en un aprendizaje autónomo una vez establecidas las normas mediante prueba y error, es decir, nosotros definimos las reglas del juego y la máquina experimenta las diferentes posibilidades, aprendiendo de cada error que comete o de cada respuesta obtenida. En este enlace puedes encontrar más información así como una aplicación práctica orientada a videojuegos 😉

Los siete tipos de algoritmos más comunes o más populares de Machine Learning son:

  1. Algoritmo de regresión.
  2. Algoritmo de red neuronal.
  3. Algoritmo de agrupación.
  4. Algoritmo de árbol de decisión.
  5. Algoritmo de Bayesiano
  6. Algoritmo de reducción de dimensión.
  7. Algoritmo de aprendizaje profundo.

Durante los siguientes artículos hablaremos acerca del algoritmo de red neuronal, su historia, desarrollo hasta nuestros días y una breve explicación de las matemáticas presentes en las redes neuronales.

¿Qué es una red neuronal?

Primero de todo cuando hablamos de una red neuronal, lo que nos viene a la cabeza es la imagen de una neurona del cerebro, de esas que hemos visto en algún libro o en algún reportaje, una masa redonda, con un núcleo y unas ramificaciones. En el cerebro tenemos miles de millones de neuronas, todas ellas forman una red neuronal, y sabemos que la información se transmite mediante la sinapsis. Pues bien, una red neuronal artificial es algo similar, un conjunto de redes neuronales que tienen como objetivo resolver problemas difíciles de resolver mediante algoritmos convencionales. Dentro de dicho conjunto, en cada una de ellas podemos distinguir una entrada de señal, un nodo y una salida o respuesta hacía otra neurona artificial. 

Dependiendo del número de neuronas, nuestra red puede ser más o menos simple o profunda. La sinapsis entre neuronas, la transmisión de información, o el valor de salida de la neurona anterior se multiplica por un valor peso. Estos pesos en los enlaces pueden incrementar o inhibir el estado de activación de las siguientes neuronas. Del mismo modo, a la salida de la neurona, puede existir, un filtro, una función limitadora o umbral, que modifica el valor resultado o impone un límite que se debe sobrepasar para poder proseguir a otra neurona. Esta función se conoce como función de activación, la cual hablaremos en otro momento. Para el ajuste de dichos pesos hablaremos acerca del entrenamiento de la red neuronal, utilizando diversos métodos, como son descenso de gradientebackpropagation.

¿Cómo funciona una neurona?

Las señales de entrada, la información que recibe nuestra neuronal artificial, son variables independientes. Los n-valores de entrada son multiplicados por sus respectivos pesos, es decir en la sinopsis el vector entrada  es multiplicado por el vector peso , dando como resultado una combinación lineal de las entradas y los pesos, algo que denominamos función de ponderación.

Fórmula que representa la sinopsis de una neurona artificial

A continuación, se aplicará una función activación:

Fórmula de aplicación de la función de activación

Y por último dicho resultado se propaga a la salida. Dicho valor puede ser la nueva entrada de una neurona, formando así las redes neuronales, o bien puede ser el resultado final, nuestra variable respuesta. Las respuestas obtenidas pueden ser una variable continua como el precio de un objeto, una respuesta binaria (0,1) (Sí, No) si una persona padece algún tipo de enfermedad o no, o puede ser una respuesta categórica que nos sirva para clasificar por ejemplo.

A continuación podemos observar mediante un gráfico el comportamiento de una neurona artificial.

Esquema de un percepción o neurona artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n
Figura 1. Esquema de un percepción o neurona artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n

Funciones de activación. 

Una función de activación es una función que transmite la información generada por la combinación lineal de los pesos y las entradas, es decir son la manera de transmitir la información por las conexiones de salida. La información puede transmitirse sin modificaciones, estaríamos hablando de una función identidad, o bien que no transmita la información. Como lo que queremos es que la red sea capaz de resolver problemas cada vez más complejos, las funciones de activación generalmente harán que los modelos sean no lineales. Entre las funciones de activación más conocidas o más usadas se encuentran:

  • Función Escalón, (similar a la función binaria.)
Fórmula de la función escalón
  • Función Sigmoidal.
Fórmula de la función sigmoidal
  • Función Rectificadora (ReLU).
Fórmula de la función rectificadora
  • Función Tangente Hiperbólica.
Fórmula de la función tangente hiperbólica
  • Funciones de Base Radial. (Gausianas, multicuadráticas, multicuadráticas inversas…)

Resumen

La red neuronal la podemos definir como un grafo, una capa de entradas que reciben la señal de entrada, la envían mediante estímulos a la siguiente capa oculta, la cual se encarga de procesar la información y transmitirla a la siguiente capa, así hasta que llegamos a la última capa, la capa de salida, la que nos transmite la respuesta.

Representación de una red neuronal artificial
Figura 2. Red neuronal artificial. Fuente:
https://es.wikipedia.org/wiki/Perceptr%C3%B3n_multicapa

En los siguientes artículos hablaremos acerca de la “evolución” de las redes neuronales y de las diferentes funciones de activación, así como de sus características. 

Si quieres repasar desde el principio estos conceptos de matemáticas aplicadas al Machine Learning, no dudes en echar un vistazo a nuestra serie completa:

Escrito para LUCA por Fran Fenoll (@ffenoll16), Fran Ramírez (@cyberhadesblog y @cybercaronte) y Enrique Blanco (@eblanco_h) ambos del equipo de Ideas Locas CDO de Telefónica.

Emilio Gayo: “No te puedes llevar al mundo digital tus viejas historias analógicas, hay que hacer una simplificación”

Manuel Carballo    26 noviembre, 2019

Aprovechando la participación de Emilio Gayo, presidente de Telefónica España, en la mesa redonda “Los CEO ante la transformación digital de la industria” del III Congreso de Industria Conectada 4.0, tuvimos ocasión de charlar con él.

En el siguiente vídeo da algunas claves para que las compañías puedan realizar con éxito su transformación digital. Emilio Gayo explica también el valor diferencial que aporta Telefónica Empresas como partner tecnológico de la industria y se refiere a la importancia de la experiencia de Telefónica con su propia transformación digital.

¡No os lo perdáis!

Creación y edición del vídeo: Manuel Carballo y Fernando Rodríguez

Imagen: Chris Potter

¿Qué es Kanban y cuál es el mejor software para utilizarlo?

Juan Carlos Estévez    25 noviembre, 2019

Sin importar el área en que se desarrolle la empresa, aumentar la productividad es la clave para posicionarse como un líder en el mercado, algo para lo que es determinante establecer un flujo de trabajo que permita optimizar los tiempos y cumplir con los objetivos dentro de determinados plazos. 

La mejor metodología para esto es Kanban y, a continuación, te contamos de qué se trata.

¿Qué es el Kanban y para qué sirve?

Antes de explicar su funcionalidad, es necesario explicar qué es Kanban. Diseñada por Toyota a finales de 1940, se trata de un sistema de tarjetas ordenadas en un tablero, las cuales representan una tarea por cumplir, asignando responsables, recursos necesarios y tiempo necesario para completarla, entre otros datos.

El objetivo es optimizar los tiempos de trabajo, aumentar la eficiencia y productividad del equipo encargado del proyecto, elementos que derivan en el éxito de cualquier empresa. 

¿Cómo utilizar Kanban?

El secreto para saber cómo utilizar Kanban es definir el número de tareas a realizar, establecer quién se encargará de ellas y en cuánto tiempo lo hará. Los pasos o etapas se añaden en el tablero, de esta forma se establece el flujo de trabajo que permite un seguimiento continuo.

Esta metodología ofrece dos grandes ventajas:

  • Apoyo visual de las etapas del proyecto: basta con mirar el tablero para saber el estado de cada tarea.
  • Permite realizar modificaciones sobre la marcha: así, es posible optimizar los flujos de trabajo para cambiar la prioridad de alguna tarea.

¿Cómo organizar un equipo con Kanban?

Definido qué es Kanban y sus objetivos, es necesario detallar los elementos que permiten aplicar esta metodología: se requiere de un tablero visible y tarjetas.

¿Qué es un tablero Kanban?

En el tablero Kanban se añaden distintas columnas que señalan las etapas que atravesará cada tarea hasta estar lista. Gracias a estas columnas, es posible clasificar el flujo de trabajo en etapas, como “Por hacer”, “En progreso” y “Completado”. Desde luego, estas etapas son adaptables a los requerimientos de cada negocio. 

El tablero también considera un número de tarjetas limitadas para cada etapa, o WIP (Work In Progress). Esto evita que se acumulen demasiadas tareas en la misma fase. 

¿Qué es una tarjeta Kanban?

Las tarjetas son el punto clave en la metodología Kanban. Cada tarjeta representa un ítem, una tarea que debe ser completada. 

Inicia en la columna de pedidos, pasa a “Por hacer” y se desplaza en el flujo de trabajo a medida que el equipo avanza en su realización. Gracias a las tarjetas, es posible visualizar el volumen de trabajo y los ítems atrasados. A partir de esto se realizan ajustes para culminar las tareas prioritarias. 

Kanban es aplicable a cualquier empresa. Permite optimizar el tiempo al máximo al establecer metas reales y transparentes, asignando al personal idóneo para su realización y estableciendo niveles de importancia para cada proyecto. 

Mejores software para implementar Kanban

Tras esta detallada explicación sobre qué es el Kanban y para qué sirve, es momento de recomendar los mejores software para utilizarlo: 

1. Trello

Es el software para Kanban más conocido. Ya hemos definido qué es una tarjeta Kanban y un tablero, elementos que Trello presenta de forma dinámica y sencilla. 

La plataforma posee modalidades pagas y gratuitas. Incluye tableros ilimitados con variados colores para identificar las tareas fácilmente, además de posibilidad de añadir miembros, asignar dueños para cada ítem y conectar con otras plataformas. 

2. Zoho Projects

Se trata de uno de los mejores software para Kanban disponibles en el mercado. Es recomendable para equipos conformados por más de diez miembros, sus funcionalidades van desde lo colaborativo hasta la identificación de hitos, permitiendo una visión macro y micro de los proyectos.

3. Kanbanize 

Saber cómo utilizar Kanban es crucial para incrementar la eficiencia, y en Kanbanize encontramos una herramienta tan eficiente como intuitiva.

Se trata de un software que, además de las funcionalidades básicas de esta metodología, incorpora informes inteligentes (con mapas de calor) para un mejor seguimiento de las tareas. Además, establece límites para las tarjetas que cada colaborador puede añadir en una columna, agilizando las entregas. 

4. Breeze

Este software permite gestionar el presupuesto y realizar seguimiento de los gastos, además de reflejar los proyectos. Su diseño es sencillo y admite la participación de varios miembros.

5. Monday

Monday ofrece la alternativa de modificar la forma en que se desea ver la información de los proyectos. Incluye el método Kanban, al cual le añade la posibilidad de automatizar algunas acciones, añadir fechas y conectar con otras plataformas.

La metodología Kanban es ideal para organizar las tareas en tu empresa y, entendiendo la importancia de la digitalización en la actualidad, conocer algunos de los principales software en la materia te permitirá agilizar la organización de tareas y facilitar su seguimiento.

Un empleado veterano de Google explica cómo será la evolución del buscador en la próxima década

Carlos Rebato    25 noviembre, 2019

Para muchos, Google es sinónimo de internet. Tanto, que cuesta entender la evolución del buscador y hacer memoria para recordar cómo lo usábamos hace ahora justo una década, en 2009. Lo más probable, sin embargo, es que fuese a través de un PC, y no un móvil, con un navegador de escritorio y en una web radicalmente diferente a la que tenemos hoy en día. ¿Cómo será Google en 2029? Un empleado veterano que lleva 14 años en la compañía ha dado algunas claves.

Su vaticinio para la evolución del buscador, según recoge Business Insider, puede resumirse bien en una palabra: contexto. Hasta ahora, muchos de los cambios en la pasada década tiene que ver con cómo se muestra la información. Es decir, de una simple lista de páginas y links hemos llegado hasta lo que se conoce como resultado cero de Google: si buscas el tiempo en alguna localidad concreta o la edad de un actor famoso verás como el buscador te la muestra directamente, sin necesidad de tener que abrir ninguna página.

Resultado cero Google
Un ejemplo de resultado cero de Google al buscar la edad de Isabel II de Inglaterra

De cara a los próximos 10 años, con el machine learning y la inteligencia artificial como base, la idea es que la evolución de Google permita entender el contexto de la búsqueda, qué quiere decir exactamente el usuario, para mostrar resultados cada vez más relevantes.

La evolución de Google: del cómo al contexto

Pongamos, por ejemplo que buscas «Puedes recoger medicamentos por alguien en una farmacia?» en Google. En esa frase, el «por alguien» es la parte esencial que define la particularidad de la búsqueda, no estás buscando cómo recoger medicamentos en una farmacia, sino si es posible recoger medicamentos por otra persona utilizando su receta, por ejemplo.

Google BERT
La búsqueda, con el antes y el después tras la implementación de BERT en el algoritmo de Google

Hasta hace poco, Google habría encontrado esa pregunta confusa y habría mostrado resultados no del todo precisos. Sin embargo, como ellos mismos explican en su blog oficial, desde la última actualización del buscador conocida como BERT (Bidirectional Encoder Representations from Transformers, Representaciones de Codificadores Bidireccionales de Transformadores en español), este es capaz de entender mucho mejor el contexto, qué parte de la búsqueda es clave y orientar los resultados de manera acorde.

La idea es que de cara a los próximos años la evolución de Google llegue todavía más lejos en ese aspecto, entendiendo no sólo qué buscamos y cómo se representa, sino el contexto en el que lo hacemos. Si tenemos en cuenta que la longitud media de búsqueda es de solo dos palabras, adivinar qué quiere buscar exactamente el usuario será un proceso complejo, en el que la inteligencia artificial y el machine learning serán tecnologías clave. Para implementar BERT, de hecho, este primer paso en el futuro de Google, la compañía ha tenido que utilizar por primera vez TPUs (Tensor Processor Units, Unidades de Procesamiento Tensorial en español) en la nube con los últimos avances en machine learning.

Imagen de cabecera: Reza Rostampisheh

ElevenPaths Radio – 1×12 Entrevista a Juan Sotomayor

ElevenPaths    25 noviembre, 2019

Presentamos una nueva edición de ElevenPaths Radio, las entrevistas a los principales actores del panorama actual de la ciberseguridad. En el capítulo de hoy, hablamos con Juan Sotomayor, Jefe del Departamento de Delitos Telemáticos de la Guardia Civil, de la perspectiva de la seguridad desde el punto de vista de las fuerzas del Estado del cibercrimen, de cómo combatirlo y de la diferencia entre el cibercrimen y los delitos tradicionales adaptados a los nuevos medios.

Entrevista a Juan Sotomayor

Disfruta de nuestros podcast en tu plataforma favorita

Capítulos de ElevenPaths Radio