lunes, 17 de octubre de 2016

Alerta de intruso y bloqueo con Framework Dinámica y Linux

En días recientes recibimos una alerta de varios intentos de login fallidos utilizando una cuenta administrativa, la cual solo puede ser utilizada por nuestra empresa. Un claro y primitivo (por suerte) intento de entrar a la fuerza que pudimos solventar rápidamente gracias a las alertas configurables del framework Dinámica y al firewall nativo de Linux, que permite bloquear IPs fácilmente.

Así sucedieron los hechos el 15/oct/2016, los datos asociados a la alerta son verdaderos.

Dinámica provee un mecanismo de uso opcional que permite notificar por email los intentos fallidos de login, apenas suceden.


Además ejecuta un SQL (configurable) para dejar un registro en la  base de datos con todos los datos asociados al intento de login, es parte de la infraestructura de auditoria del Framework.

En este caso recibimos varios mensajes seguidos, como este:

Este es un mensaje de alerta para informarle que ocurrió
un intento de login fallido. Estos son los detalles del evento:

* Fecha: 2016-10-15
* Hora: 09:52:39
* Aplicación: /deluxe
* Login: admin
* IP remota: 190.15.219.124
* Servidor: martincordova.com

Utilizando lacnic.net pudimos determinar el origen de esta IP, ubicada en Argentina.

Luego utilizando las facilidades del Administrador de Seguridad del framework Dinámica corrimos una consulta para ver si ya antes hemos tenido intentos de login fallidos usando la misma IP, esta es una consulta útil porque permite descubrir si estos logins fallidos fueron ejecutados con otra cuenta, indicando si un cliente o ex-cliente intentó abusar de nuestra credencial Admin.

Sin perder tiempo ingresamos al sistema operativo, en el caso de nuestro hosting en Michigan es un Linux dedicado, y ejecutamos este comando:

sudo iptables -A INPUT -s 190.15.219.124 -j DROP

Esto le indica al Firewall nativo de Linux que debe rechazar todo paquete que se origine desde la IP en cuestión, quedando en efecto bloqueado.

Es un caso sencillo, afortunadamente para nosotros, y combinando los mecanismos configurables de alerta y registro del framework Dinámica con el poder y la sencillez de Linux, detectamos al "hacker" y bloqueamos a tiempo. La alerta temprana es fundamental para poder tomar medidas a tiempo, y las trazas ayudan mucho en una auditoria para determinar el origen del ataque.

miércoles, 13 de julio de 2016

Actualización rápida de Tomcat 7

En esta breve entrada vamos a explicar cómo actualizar el Tomcat 7, la distro del Framework Dinámica en particular, cuando es liberada una nueva edición de Tomcat 7 por parte de Apache. El procedimiento es muy simple y supone una interrupción mínima de servicio, inevitable ya que es necesario actualizar los JARs básicos de Tomcat.

1) Descargue y descomprima la última versión de Tomcat 7, a la fecha es v7.0.70, no sobreescriba su instalación de producción, use una carpeta distinta pero en un disco accesible para el servidor a ser actualizado. Supongamos que lo pudo en el disco D; entonces su carpeta sería:

D:\apache-tomcat-7.0.70

2) Detenga el proceso Tomcat

3) Copie desde la instalación nueva D:\apache-tomcat-7.0.70\lib los JARs señalados en la imagen a continuación, al directorio /tomcat/lib de su servidor, reemplazar los archivos existentes.

Los JARs que no se copian son los que no necesita Dinámica, por ejemplo el compilador de JSP y lo relacionado con JSP se deja por fuera porque Dinámica no utiliza JSPs, tampoco requerimos Ant.

4) Reinicie el servicio o proceso Tomcat, utilice el URL de diagnóstico (/action/test) de alguna de sus WebApps escritas con Dinámica, debería ver la página de diagnóstico estándar del framework Dinámica, como aparece abajo, indicando la versión de Tomcat:


¡Eso es todo! ya su instalación de Tomcat está al día.

NOTA: este proceso es para actualizar Tomcat dentro de una misma línea de versión principal, Tomcat v7 en este caso. Se recomienda respaldar toda la carpeta /lib de su Tomcat antes de actualizarlo, como medida para hacer rápidamente un "rollback" del cambio si experimentara algún problema (improbable) con esta actualización.


miércoles, 4 de mayo de 2016

Actualizar configuración de husos horarios en Java 8

Recientemente en Venezuela hubo un ajuste del huso horario, en Java ya está disponible la actualización de TimeZone para reconfigurar una instalación de Java existente, para este ejemplo usaremos Java 8.

Los pasos son los siguientes:

Descargar el tool tzupdater.jar de Oracle, se descarga desde:
http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html

Luego se recomienda ejecutar desde consola DOS abierta como Admin local del equipo este comando:

"C:\Program Files\Java\jdk1.8.0_74\bin\java.exe" -jar tzupdater.jar -v -l http://www.iana.org/time-zones/repository/tzdata-latest.tar.gz

Claro está deberán utilizar su propia ruta de java.exe u omitirla si lo tienen instalado visible a nivel de sistema.

Al correr el update deberían ver mensajes como estos en la consola:
java.home: C:\Program Files\Java\jdk1.8.0_74\jre
java.vendor: Oracle Corporation
java.version: 1.8.0_74
Downloaded file to C:\Users\mcordova\AppData\Local\Temp\tz.tmp\tzdata.tar.gz
JRE tzdata version: tzdata2015g
tzupdater tool would update with tzdata version: tzdata2016d
Downloaded file to C:\Users\mcordova\AppData\Local\Temp\tz.tmp\sha512hash
Renaming C:\Program Files\Java\jdk1.8.0_74\jre\lib\tzdb.dat to C:\Program Files\
Java\jdk1.8.0_74\jre\lib\tzdb.dat.tzdata2015g
Renaming C:\Program Files\Java\jdk1.8.0_74\jre\lib\tzdb.dat.dynamic to C:\Program Files\Java\jdk1.8.0_74\jre\lib\tzdb.dat
Validating for : tzdata2016d
Validation complete
JRE updated to version : tzdata2016d

Con este procedimiento no necesitan esperar a una actualización de todo el JDK/JRE por parte de Oracle con el cambio correspondiente a su país.

El manual de tzupdater: http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html