Buscar
Cerrar este cuadro de búsqueda.

Oleada de «desfiguraciones» a sitios con ojs

OpenJournalSystems es un sistema de manejo de contenidos y publicaciones desarrollado por Public Knowledge Project que permite a sus usuarios publicar revistas, artículos, etc. Este sistema es bastante popular en las universidades del planeta pues su código es libre.

Desde hace unas fechas hacia acá están existiendo reportes de que los sitios web que alojan ojs han sido desfigurados, o hackeados como gustan llamar algunos. El atacante realiza las siguientes acciones:

  1. El atacante busca sistemas ojs en la red.
  2. Se crea un usuario en ojs (como si fuera alguien que va a publicar algún artículo). El sistema acepta, lógicamente, esta inscripción
  3. Sube entonces una foto de perfil para su cuenta. Esta foto es una imagen que dice algo así como «este sitio ha sido hackeado…»
  4. Avisa entonces a sitios web de seguridad de que el sitio ha sido desfigurado.

Es lógico y normal que al verse una imagen que dice «este sitio ha sido hackeado por …» genera bastante preocupación y hasta puede indicar que el sitio ha sido desfigurado. Sin embargo: de ser este el caso, no es síntoma de desfiguración sino que el usuario tiene esa imagen.Lógicamente, mucho se puede hacer para evitar que esto ocurra. Por ejemplo: impedir que se acceda directamente a las imágenes de perfil o sacar el directorio de archivos (files_dir) fuera del document_root.

Actualización al 20180222: Los atacantes están aprovechando una falla en la configuración de muchos sitios con ojs que consiste en que los técnicos que realizan la instalación configuran el directorio: files_dir dentro del directorio donde está el sitio web. Por ejemplo:

  • Supongamos que el sitio web está en /var/www/html/
  • El técnico configura en config.inc.php el parámetro files_dir para que esté en /var/www/html/files/
  • El atacante entonces procede a crearse una cuenta y subir un archivo .phtml (o php, etc) y luego va a la URL: http://launiversidad.edu.ec/files/archivo.phtml y lo ejecuta. Este archivo realiza una serie de acciones para insertar contenido malicioso en el sitio.

Sugerencias para evitar que el sitio pueda ser desfigurado:

  1. Actualizar a la última versión de ojs, ya sea la 3 o la 2, ambas tienen actualizaciones recientes. Deben aplicarse todos los parches de la versión. Pueden verse las últimas versiones y los últimos parches en: https://pkp.sfu.ca/ojs/ojs_download/
  2. Sacar el directorio de archivos fuera, por ejemplo: si nuestro sitio está en /var/www/html/ poner los archivos en /var/www/ para que el atacante no los pueda ejecutar.
  3. Activar captcha en config.inc.php incluso captcha para enviar comentarios. Esto evitará desfiguraciones automáticas (no evitará las desfiguraciones manuales pero es un paso de avance
  4. Recibir notificaciones automáticas de nuevos registros de usuarios
  5. Si es una revista, sugerimos deshabilitar el registro de nuevos usuarios, pues en las revistas no es necesario que se creen nuevos usuarios automáticamente. Para ello seleccionamos «Users and Roles» -> «Site Access Options» la opción Sólo el gestor de la revista puede registrar a todos los usuarios.

Actualización al 2020-05

Existe un plugin de pago que permite moderar a los usuarios que se registran. De forma tal que el administrador del sitio debe aprobar el registro de nuevos usuarios. Esto impide que un atacante pueda en un sólo paso registrarse, subir una imagen inadecuada y anunciar que ha «hackeado» el sitio.

El plugin se llama «OJS 3.x User Registration Approval Plugin
Release Date: 8/15/2018» y puede ser encontrado en: https://openjournalsystems.com/ojs-new-products/

Actualización al 2020-07

En los servidores apache se puede prohibir el acceso directo a imágenes, de esta forma el atacante no puede publicar la imagen como parte de su campaña.

Si nuestro sitio se llama «revista.miuniversidad.edu.ec» y nuestro DocumentRoot está en /var/www/html, haríamos esto:

1- Editamos /etc/httpd/conf/httpd.conf y en el Directory /var/www/html y activamos el allowoverride:

AllowOverride All

2- Reiniciamos o recargamos httpd:

systemctl reload httpd

3- Dentro del directorio public/site/images creamos un .htaccess: vi /var/www/html/public/site/images/.htaccess que diga:

RewriteEngine on
RewriteCond %{HTTP_REFERER} «!sitio.miuniversidad.edu.ec» [NC]
RewriteRule \.(gif|jp?g|png|bmp)$ – [F]


Actualizacion al 2021-04

Para los usuarios que utilicen nginx, debe editarse el sitio virtual y, más abajo de «servername» agregar lo siguiente:

location ~* \.(jpg|jpeg|gif|png)$ {
valid_referers sitio.miuniversidad.edu.ec;
if ($invalid_referer) {
return 403;
}
}

Estas sugerencias han sido obtenidas de:

PKP: https://pkp.sfu.ca/2017/04/12/regarding-recent-ojs-defacement-attacks/

OpenJournalSystems: https://openjournalsystems.com/open-journal-systems-ojs-hacking-epidemic-solutions/

Webinars

¿Te perdiste el en vivo? ¡Míralo ahora!

Síguenos
Suscríbete

Recibe nuestro boletín para mantenerte actualizado