Week remix #01

hace 6 meses

Con este inauguramos un nuevo tipo de post, al que me gustaría dar continuidad semanalmente, para recopilar pequeñas cosas interesantes que hemos ido creando o encontrando que puede resultar de interés, pero que no alcanzan por si solas para crear una entrada de blog.

 

Vue i18n

Recientemente me he encontrado con la necesidad de obtener todas las cadenas traducibles de un proyecto. Estoy usando vue-i18n, que, para hacer una cadena traducible necesita llamarla a través de la función

$t('[CADENA A TRADUCIR]')

Pues una forma muy simple de extraer todas las cadenas es usar una expresión regular y grep 

grep -roh "\$t('\([^']*\)')" *

la expresión regular es mejorable: Tener en cuenta las cadenas que usen ", la posibilidad de que existan espacios entre el nombre de la función y el paréntesis y entre la cadenas y alguno de los paréntesis. pero es una buena aproximación de comienzo.

 

Drupal SA-CORE-2018-002

El pasado 28 de marzo, más conocido como el Drupalgeddon 2, se lanzó un parche para Drupal 6, 7 y 8 que "solucionaba" un grave error que permitía la ejecución remota de código debido a un mal filtrado de las variables POST y GET y de la cache de formularios. El 25 de abril, se volvió a lanzar un parche sobre el mismo bug que afinaba sobre casos concretos de exploit. A las pocas horas, los ciberdelincuentes ya están intentando explotar esta vulnerabilidad. 

Todos nuestros sitios estaban ya parcheados, y no eran susceptibles de hackeo pero los intentos de ataque suponen un trafico para los sitios que no aporta nada y que es interesante filtrar o eliminar. Para ello creamos y liberamos el módulo https://www.drupal.org/project/sa_core_2018_002 que bloquea las peticiones que contengan alguna cadena maliciosa. Este módulo no reemplaza a la actualización del core, pero ayuda a mitigar el trafico y la carga de CPU generada por estas peticiones.

Además si tu servidor usa apache2 y dispones de fail2ban, creamos un filtro, para poder banear todas las ips que están intentando llevar a cabo esos ataques.

apache-drupal.conf 

# Fail2Ban Apache pass filter
# This filter is for access.log, NOT for error.log
#
# Ban ip trying to explode Drupal SA-CORE-2018-002/004

[INCLUDES]
before = apache-common.conf

[Definition]
failregex = ^ -.*(23value|23default_value|element_parents=%%23|post_render).*$

ignoreregex =

# Author: Sergio Carracedo

Y te puedo asegurar que no son pocas las IPs que hemos baneado