Informanet

28/8/08

7 amenazas principales de la piratería y cómo protegerse de las mismas

Bienvenidos(Welcome) Web-Site www.informanet1.com Director General: Erasmo Martínez Cano… Comentarios y sugerencias, Editor: Erasmo Martínez / Javier Tlatoa ( portal@informanet1.com ) ( erasmocano@gmail.com )

>>> TV

México, DF., Agosto 26, 2008.-Para garantizar ingresos por la venta de sus aplicaciones de software, los ISV (Vendedores Independientes de Software) deben implementar algún tipo de protección de software. El objetivo de cualquier solución es limitar el uso del software para cumplir con algunas condiciones específicas de la licencia. Esto se puede hacer por medio de tokens de hardware (también conocidos como dongles), licencias solamente software, o soluciones propias hechas en casa.

Las soluciones externas basadas en hardware, proporcionan el nivel más alto de seguridad disponible ahora en día. Desafortunadamente, los hackers son plagas persistentes que cuestan a los vendedores de software billones de dólares en pérdidas de ingresos a nivel mundial. Es de suma importancia asegurarse que la solución de hardware que ha sido seleccionada, así como la implementación, bloqueen los puntos de entrada comunes a los hackers. A continuación mencionaremos una variedad de técnicas más comunes utilizadas por los hackers, y los mejores contra ataques disponibles para proteger las aplicaciones contra la piratería:

Ataques Genéricos vs. Específicos

Los ataques a dongles de protección de software ocurren de dos maneras: Genéricos y específicos, en donde los ataques que se dan forma genérica, comprometen a los dongles sin que ninguna mejoría en la implementación pueda detenerlo, por lo consiguiente todas las aplicaciones protegidas por el dongle comprometido están en peligro.
Por otra parte, los ataques específicos bloquean solamente una implementación específica de dongle por una aplicación de software específica, y no representan un riesgo para otros vendedores de software que utilizan la misma llave de protección de software.

Encapsulamiento seguro

Los tokens de protección de software están integrados a las aplicaciones usando un tool kit de software. Para que el software pueda funcionar, el token debe estar conectado a la computadora o a la red del usuario. Las aplicaciones protedias verifican la presencia de la llave durante el tiempo de ejecución para asegurar que el uso del software está autorizado y los parámetros de licenciamiento sean cumplidos.

Para defendernos contra estos ataques, debemos defender la comunicación entre el token y la aplicación de software, ya que es generalmente el punto más vulnerable. Para asegurar dicha comunicación algunos tokens de hardware usan algoritmos de encriptación para crear un túnel seguro, a prueba de ataques, de extremo a extremo, el cual para ser creado primero se debe hacer un intercambio de llaves de encriptación, dicho proceso inicia cuando la aplicación genera una llave AES (Advanced Encription Standard), aleatoria. La generación de una nueva llave aleatoria para cada sesión, aumenta enormemente la seguridad. Es de particular importancia no utilizar una llave estática porque eso aumenta la vulnerabilidad de los ataques.

ProtectDrive es la solución más completa para disco duro, la cual encripta todo el disco duro de las computadoras portátiles, estaciones de trabajo, y servidores, así como los medios extraíbles del tipo de unidades Flash USB, con el propósito de proteger los datos en caso de robo o pérdida del dispositivo.

La información gubernamental sensible y personal almacenada en dispositivos como laptops y unidades Flash es a menudo un paradero desconocido y sin protección, lo que reflejaría una grave problemática si se comprometiera. Organismos gubernamentales y organizaciones de cualquier rubro que manejen datos sensibles- deberán considerar las derivaciones de datos, ya sea pérdida o robo, incluyendo pleitos, publicidad negativa, ingresos, y daño a la reputación. En algunos casos, puede ser un asunto de seguridad nacional, con vidas en peligro.

“La importancia de permitir a los gobiernos locales y de Estado ser parte de esta acción tan importante en cuanto a la encripción de datos no puede ser pasada por alta”, comento William F. Pelgrin, director de la coordinación de Infraestructura Critica y Seguridad en la Web (CSCIC, por sus siglas en Inglés). “Esta histórica relación de negocios es uno de los proyectos más importantes para mejorar nuestra postura de seguridad colectiva”.

Históricamente, la implementación de una protección adecuada ha sido lenta, debido en parte a la complejidad y altos costos en la entrega de aplicaciones tecnológicas. Al día de hoy, las agencias gubernamentales locales y estatales pueden tomar ventaja del programa Compra Inteligente SmartBUY de la U.S. General Service Administration (GSA) Blanket Program Agreement (BPA), Enterprise Software Initiative (ESI). Bajo este programa, las agencias locales y estatales pueden aprovechar el poder de compra del gobierno federal a efecto de recibir precios accesibles, descuentos especiales, ahorro de tiempo administrativo, y reducir papeleo, en sus esfuerzos por asegurar la información y cumplir con los mandatos reguladores.

La aplicación encapsula la llave AES usando una llave ECC pública (Elliptic Curve Criptography). A continuación, el driver transfiere la llave AES encapsulada al token. Una vez que el token la recibe, desencapsula la llave AES usando la llave privada ECC y el proceso de intercambio de llaves concluye. También se incrementa considerablemente la seguridad al almacenar la llave privada ECC en el token , en lugar de almacenarla en la aplicación. Es relativamente más fácil atacar una aplicación de software que un token, ya que la aplicación es ejecutada en una plataforma de hardware/OS bastante conocida para las que herramientas de otros fabricantes para ayudar en la depuración, y para revertir programas de ingeniería. No sucede lo mismo con el firmware ejecutado dentro del token.

Tosas las comunicaciones entre el driver y la llave están ahora protegidas usando la llave de encriptación que ha sido intercambiada. El proceso de intercambio de llave es una forma de criptografía de llave pública y resulta en la creación de una sesión basada en las llaves simétricas que protege la comunicación. El token y aplicación se comunican a través de un túnel seguro al cifrar y descifrar toda la comunicación usando la llave AES. Por cada sesión de comunicación subsecuente, se usa una nueva llave AES. El algoritmo AES fue adoptado por el Instituto Nacional de Estándares y Tecnología (Nacional Institute of Standards and Technology/NIST) en noviembre 2001 y es considerado matemáticamente improbable de violar. La Criptografía de Curva Elíptica (Elliptic Curve Criptography/ECC), es mucho más fuerte y matemáticamente imposible de violar.

Ataque 1. De fuerza Bruta.- Este atenta exhaustivamente cada combinación de seguridad hasta que el secreto que está siendo atacado es comprometido. Las llaves criptográficas son esenciales para la seguridad del dongle. Un ataque de este tipo exitoso pondrá en peligro todos los dongles de un vendedor de software en particular. No es un ataque genérico. Además el uso de contraseñas cortas en alguno de los APIs aumenta la debilidad contra este ataque.

Contra ataque.- La emulación del dispositivo se puede prevenir protegiendo el área de almacenamiento en el dispositivo de hardware, lo que hace virtualmente imposible de violar el dispositivo usando un ataque de fuerza bruta. Uno de los medios para proteger el área de almacenamiento es usar una llave AES de 128 bits, la cual es imposible de atacar usando fuerza bruta teniendo en cuenta el poder de la computación de hoy en día.

Ataque 2. Emulación del dispositivo.- La emulación del dispositivo ocurre cuando una pieza del software emula al dispositivo de hardware. Todos los secretos del dispositivo, como los valores de las llaves criptográficas, se ponen en el software emulador. El software emula el token, y se hace pasar como si fuera el token de hardware ante la aplicación, sabiendo que los valores de la llave permiten al software hacer las mismas operaciones que el token. La emulación de un dispositivo es un ataque genérico y utiliza la llave criptográfica obtenida por medio de un ataque de fuerza bruta para desbloquear y permitir el uso de la aplicación de software.

Contra ataque.- La emulación del dispositivo se puede prevenir protegiendo el área de almacenamiento en el dispositivo de hardware, lo que hace virtualmente imposible de violarlo usando un ataque de fuerza bruta. Uno de los medios para proteger el área de almacenamiento es usar una llave AES de 128 bits la cual es imposible de atacar usando fuerza bruta, teniendo en cuanta el poder de la computación de hoy en día.

Ataque 3. Grabación/Reproducción ó Playback.- Toda la información entre el token y la aplicación es grabada. Se crea una aplicación de software middleware por el hacker para simular las respuestas proporcionadas por el software.

Cuando este tipo se ataque sucede la aplicación ha sido comprometida. El fabricante debe rediseñar su implementación de protección para poder combatir este tipo de ataque. Este no es un ataque genérico, pero afecta todas las copias en las que el ataque ocurrió.

Contra ataque.- Los ataques de grabación/reproducción se pueden prevenir cifrando y alternando la comunicación entre la aplicación y el token. Una manera efectiva de prevenir estos ataques es usando una llave aleatoria de 128 bits para cifrar la comunicación entre la aplicación y el token. El uso de una llave estática, o de valores de código duro, resulta en vulnerabilidades contra el ataque de grabación/reproducción. Si un token usa llaves simétricas, es necesario dejar una copia de la llave en la aplicación para compartir el secreto. Cuando se cifra dentro de la aplicación, es necesario dejar la llave ahí. Mientras que con un encapsulamiento seguro, la llave privada se mantiene en el token y la llave pública en la aplicación.

Cuando la llave pública está alojada en la aplicación, si la clave fuera descompilada el hacker sólo tiene acceso a la llave pública, y no a la llave privada. El descubrir una llave pública no crea una vulnerabilidad en la seguridad. Sin embargo, si un token usa llaves basadas en simetría estática, la descompilación de la aplicación puede revelar el secreto para la comunicación. Este es un punto de entrada potencial para una infestación de hackers, ya que toda la comunicación puede ser entendida por el hacker.

Ataque 4.- Robo de secretos.- Ocurre cuando una contraseña de seguridad se obtiene ilegalmente, dando acceso no autorizado al dispositivo de hardware. Una vez que se obtiene acceso al dispositivo, los hackers pueden manipular la aplicación usando este mismo.

Contra ataque.- Las contraseñas para el dispositivo nunca deben ser comunicadas si no están cifradas. Los datos enviado al dongle siempre deben estar cifrados. Nunca envíe contraseñas o información secreta sin cifrar para protegerse efectivamente contra este ataque.

Sin embargo, aun si se usa un canal cifrado para proteger secretos, es importante que no utilice una llave estática. El uso de una llave estática resultará en un grado más alto de vulnerabilidad, permitiendo que la información en las llaves sea extraída.

Ataque 5. Dispositivo Compartido.- Se refiere al uso de múltiples PCs compartiendo el mismo dispositivo sin autorización. Un dispositivo se puede usar en varias computadoras en la misma red. Mientras que la aplicación no está en peligro, el fabricante de software no recibe los ingresos anticipados por el uso de múltiples copias de su aplicación. El uso de una llave estática para el crifrado, dará como resultado una susceptibilidad más alta a este tipo de ataque.

Hay dos escenarios potenciales bajo los cuales un dispositivo puede ser compartido:

1.Sesión VMWare: Múltiples sistemas operativos virtuales que son ejecutados en una plataforma de software. Al compartir una licencia en este entorno permite que múltiples aplicaciones sean ejecutadas concurrentemente en cada sesión VMWare (en lugar de una). En este escenario, cada sesión VMWare usa su propia instancia de driver para comunicarse con el dispositivo.

2. HUB para compartir USB: Un hub USB puede ser conectado a múltiples computadoras para compartir un solo dispositivo USB. En este caso, cada computadora que está conectada al hub USB piensa que tiene su propio dispositivo. Esto permite a múltiples computadoras ejecutar una aplicación aun cuando existe sólo una licencia.

Contra ataque.- Los fabricantes de software necesitan asegurarse de que la cantidad de computadoras o los drivers de dispositivos que tienen acceso al dispositivo, no exceda el número de licencias que han sido adquiridas por el cliente. El encapsulamiento seguro del dispositivo puede salvaguardar al token contra las computadoras y los dispositivos que intentan acceso.

Cada uso de la aplicación abrirá una instancia del driver. Sin embargo, dos o más instancias del driver no pueden comunicarse con el dongle a través de un túnel protegido. Un driver de dungle inteligente protegerá contra estos escenarios y solamente ejecutará el número de licencias permitidas por el dongle. La falta de un driver incrementará la vulnerabilidad a este tipo de ataques.

Ataque 6. Clonación de hardware.- La clonación de hardware ocurre cuando el token de hardware que autoriza la aplicación protegida es duplicado. Para duplicar la memoria del token de hardware, el hacker primero tiene que comprar los tokens del mismo fabricante usado por el ISV. El hacker clona los tokens al copiar el contenido de la memoria del token original.

Contra ataque.- Los vendedores de software pueden protegerse contra ataques de clonación verificando que la memoria del token esté cifrada. Una posible solución es cifrar la memoria con una llave AES de 128 bits exclusiva. Este proceso debe ser incluido automáticamente en la protección proveída por su dongle. Se deben cifrar los datos de los usuarios en la memoria del token a toda costa.

Ataque 7. Ataque al reloj.- Involucra retroceder el tiempo en el reloj del sistema para engañar a una licencia basada en tiempo. Usando esta técnica, una versión a prueba, disponible por tiempo limitado, puede usarse indefinidamente.

Contra ataque.- Un método para asegurar las versiones a prueba es ofrecer versiones limitadas o incompletas del software. Sin embargo, si usted quisiera crear licencias basadas en tiempo para ofrecer suscripciones de software, o versiones completas a prueba de tiempo limitado, los ataques al reloj son un riesgo que debe ser evaluado y combatido.

Otra opción para proteger licencias basadas en tiempo es construir un reloj de tiempo real dentro de una llave de hardware. El hacker tendría que abrir la llave para alterar el reloj pero en el proceso destruiría la llave completamente. Desafortunadamente, las llaves equipadas con reloj de tiempo real son más costosas y requieren una batería dentro de la misma, que eventualmente se desgastará.

Afortunadamente existen métodos más simples y más inteligentes para combatir los ataques al reloj sin incrementar costos. Si el token de hardware está equipado con la habilidad de verificar y almacenar el tiempo actual del sistema, los desarrolladores podrían usar esta información para prevenir estos ataques. Si el token detecta cualquier cambio significante en el tiempo del sistema, se puede programar la aplicación para que se inutilice o se ejecute de un modo limitado.

Esta solución le permitirá ofrecer opciones de licencias basadas en tiempo, y versiones a prueba de tiempo limitado. Es posible evitar el robo por uso indefinido de una versión a prueba de tiempo limitado, sin incurrir en gastos adicionales, y sin problemas de reloj de tiempo actual.

Conclusión

Además de seleccionar la tecnología de dongle más segura disponible, una implementación segura es vital. Para mejor práctica y guías específicas para asegurar el licenciamiento seguro de su software, sin importar su tecnología de licenciamiento.

Consulte el white paper o webinario “A Developer´s Guide to Software Protection: Applying Modern Coding Techniques to Securing Software”, http://www.safenet-inc.com/
www.safenet-inc.com/la

<<<regresar/home

0 comentarios: