02 noviembre 2010

Revisando la seguridad de OpenX

OpenX es un software servidor de publicidad open source muy popular, que brinda una interfaz para la gestión de banners y un sistema de "tracking" para la confección de estadísticas. El producto es muy versátil y permite armar campañas y mostrar tanto banners propios así como de terceros; como por ejemplo Google AdSense o su sistema propio, OpenX Market.
La wikipedia señala que el sistema cuenta con más de 50,000 usuarios que entregan más de 300 mil millones de avisos por mes; así como también que el sistema es usado por el 5% de los top 10,000 sitios con más tráfico del mundo.

Pero así como es un producto excelente, también es blanco de ataques frecuentes, por lo tanto no esta mal hacer una rápido chequeo para verificar la seguridad de nuestra sistema. En una de las instalaciones que mantengo, hoy hice lo siguiente:
  1. Revisé la estructura de archivos y directorios y verificar los permisos sobre los mismos.
  2. Me logueé en el phpMyAdmin y ejecuté un par de consultas para ver si estaba todo en orden:

    SELECT bannerid, append, prepend FROM banners WHERE append != '' OR prepend != '';

    
SELECT zoneid, append, prepend FROM zones WHERE append != '' OR prepend != '';


    SELECT u.user_id, u.contact_name, u.email_address, u.username FROM users AS u, account_user_assoc AS aua WHERE u.user_id=aua.user_id AND aua.account_id = (SELECT value FROM application_variable WHERE name='admin_account_id');

    Las dos primeras sirven para buscar si fue insertado código malicioso en las tablas que almacenan los banners y las zonas donde se muestran estos. La última sirve para buscar cuáles son los usuarios que tienen permisos de administrador.
  3. Por último, es conveniente revisar los archivos .php en búsqueda de expresiones "eval" y el uso de base64_decode, que generalmente son los mecanismos que se utilizan para realizar ataques a estos sistemas; especialmente en las carpetas de plugins e imágenes.
Este resumen no resuelve ningún problema, pero identifica probables ataques, en cuyo caso habrá que tomar medidas al respecto. Hasta la próxima!