Español | English
rss facebook linkedin Twitter

Lo barato puede salir caro



En los tiempos que corren, son muchas las empresas que a la hora de planificar el desarrollo de una nueva aplicación optan por contratar a un profesional por cuenta propia, con la intención de escatimar en gastos.

En la actualidad se ha visto incrementado el número de ataques por parte del personal subcontrato por las empresas, que, con la finalidad de que las empresas no prescindan de ellos, depositan fragmentos de código ajeno dentro de las aplicaciones creadas. De manera que, si llegada cierta fecha la empresa decide prescindir de ellos, se activa dicho código ajeno con el fin de causar daños a la empresa. Este tipo de ataques son llamados Bombas lógicas.

Una Bomba lógica es un segmento de código insertado en un programa o sistema intencionadamente, permanece oculto hasta cumplirse una determinada condición, en ese momento se ejecuta una acción maliciosa.


Una de las principales características que tiene este ataque es que el creador es consciente en todo momento del daño que va a causar, exige conocimientos especializados, ya que requiere la programación de la destrucción o modificación de datos en un momento dado del futuro. Los eventos que activan la bomba lógica pueden ser desde el cumplimiento de una fecha, ejecución de un comando en particular, hasta pulsar una tecla o combinación de teclas.

Un ejemplo sencillo podría ser el siguiente fragmento de código. Se trata de un método al que se pasa como argumento la conexión a una base de datos y en caso de que la fecha sea 21 de Octubre del 2010 se ejecutaría un DROP NOMBRE_BASE_DE_DATOS. La llamada a este método se podría realizar desde una clase Filter, por la que pasan todas las peticiones al aplicativo web:

final String NOMBRE_BASE_DE_DATOS = "Base_Datos_Ejemplo";
public void happyBirthday(java.sql.Connection conexion){
Calendar fechaBoom = Calendar.getInstance();
fechaBoom.set(2010, Calendar.OCTOBER, 21);
Calendar fechaActual = Calendar.getInstance();
StringBuffer sql = new StringBuffer();
PreparedStatement pst = null;
try{
if (fechaActual.getTimeInMillis() == fechaBoom.getTimeInMillis()){
sql.append(" DROP ").append(NOMBRE_BASE_DE_DATOS);
pst = conexion.prepareStatement(sql.toString());
pst.execute();
pst.close();
}
conexion.close();
}

catch (Exception e){}
}

Uno de los mayores riesgos es que son muy difíciles de detectar, suelen permanecer ocultos entre el código prácticamente imperceptible por otros desarrolladores, ya que no se tiene conocimiento de la bomba, hasta que se activa. Puede alojarse en un programa o sistema sin ser descubierto, incluso mucho tiempo después de que se haya marchado el atacante de la empresa.
Miles de empresas se ven afectadas cada año por este tipo de ataque, un ejemplo sería el que sufrió el año pasado la empresa Fannie Mae, donde un empleado despedido en octubre del año anterior, dejó programado una bomba lógica que atacó a 4000 servidores de la empresa, causando el cierre de la empresa durante una semana con pérdidas millonarias.

En la actualidad, es muy común la utilización de este tipo de ataque para extorsionar a las empresas, donde el atacante pide un rescate a cambio de dar a conocer la ubicación de la bomba lógica o asegurarse el cobro del trabajo realizado, de manera que si llegada cierta fecha el trabajo no está pagado, la bomba lógica impediría arrancar el programa, o ciertos módulos del mismo.

A pesar de resultar evidente, muchas empresas obvian detallar en el contrato de prestación de servicio el objetivo y alcance del mismo, la propiedad intelectual y custodia del código fuente, así como los niveles de soporte aplicados. Con lo que a nivel legal, la empresa no dispondría de evidencias que demuestren ser los propietarios del software, por lo que el creador de la bomba podría evadirse de cargos a pesar del daño causado.

Otro punto a tener en cuenta, es la existencia de virus que funcionan como bombas lógicas, uno de los más legendarios es el llamado Viernes 13, que era capaz de infectar archivos con extensión EXE. Contenía en su código un error que hacía que el virus se copiara en los ficheros EXE aunque éstos ya estuvieran infectados, lo que provocaba que los ficheros crecieran hasta no caber en la memoria. Se activaba como su nombre indica los viernes con fecha 13. Existieron posteriores versiones que hacían más difícil su localización.

Por lo general, bomba lógica es un tipo de ataque versátil, ya que suele estar muy planeado y calculado con anterioridad, y además es muy difícil de detectar. Para evitar estas situaciones es recomendable la implementación de políticas de desarrollo del software. Por otro lado, para monitorizar y alertar de cambios la utilización de programas como Tripwire, y la realización de auditorías de código antes de poner las aplicaciones en producción. Y por último dejar claro en el contrato firmado con la empresa o desarrollador, que el código y programa generado es propiedad de la empresa contratante.

Miriam Verde
Dept. Auditoría S21sec

(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login