Algunos nmeros
36% por ciento del software que se utiliza en el
mundo es ilegal.
Tasas de piratera disminuyeron en 37 pases pero
aumentaron en 34 pases
Perdidas por piratera se incrementaron por 29
billones de dolares a 33 billones de dolares
En 2004 mundo invirti ms de 59 billones en
software de PC
ms que los 51 millones en 2003
pero 90 millones se encuentra actualmente instalado
Lmina 4
Clasificaciones de Piratera de
Software
Lmina 5
Lmina 6
Qu es la ingeniera inversa?
Metodologa para analizar el diseo de un
dispositivo o sistema, ya sea para estudiar el
diseo o como un pre-requisito para un
rediseo.
Beneficios
desarrollar un enfoque sistemtico para pensar
sobre el diseo de ingeniera de dispositivos y
sistemas
adquirir un banco de datos de soluciones
mecnicas
Lmina 7
Tipos de ataques
Piratera
software
Ingeniera
inversa
maliciosa
Software
Tampering
Tomado sin permiso de: Watermarking, Tamper-Proofing, and Obfuscation Tools for Software Protection, Christian S. Collberg
Lmina 9
shareware u honorware
usuarios envian un donativo a los autores
mencionados al principio del programa
nags screen
wracker
programas shareware o freeware
wares
intercambio programas comerciales
pirateados
Lmina 10
Una madrecita
Aprendiendo a
Hackear.
Un primer ejemplo
Lmina 11
Lmina 12
Estegano que?
Area similar a la de criptologa.
Viene del griego stegos (ocultar).
Conjunto de tcnicas que nos
permiten ocultar o camuflar
cualquier tipo de datos, dentro de
informacin considerada como
vlida.
La informacin puede esconderse de
cualquier forma
diferentes mtodos se han ido
desarrollando
Lmina 13
Tintas invisibles
naturales: jugo limn, leche, orina, sal de
amoniaco
qumica: alumbre y vinagre, traspasar
cscara huevo duro
den
d
i
H
Lmina 16
io n
t
a
rm
o
f
n
I
Lmina 17
El proceso esteganografico
Llave de encripcin
u otras llaves
Medio
portador
Algoritmo
incrusta/extrae
Esteganograma
o stego objet
Informacin
a ocultar
PROTOCOLO
Lmina 18
Herramientas esteganogrficas
Lmina 20
EZStego
Gif-It-Up v1.0
Gifshuffle
Hide and Seek
JPEG-JSTEG
MandelSteg and
GIFExtract
MP3Stego
Nicetext
OutGuess
Pretty Good Envelope
Publimark
Stealth
Snow
Steganos
Steghide
Stegodos
Stegonosaurus
StegonoWav
Stools
wbStego (Werner Bailer)
WhiteNoise Storm
Fuente: http://www.petitcolas.net/fabien/steganography/stego_soft.html
Watermarking no siempre
necesita estar oculto
Tipos
invisible
visible
Lmina 21
Marca de agua
Marca de agua
Dr. Roberto Gmez C.
Esteganografia vs Watermarking
Watermarking
Requerimientos
Privado
++++
++++
+++++
+++++
+++++
++++
++++
++
++
++++
++++
++++
++++
++
+++
++
Steganografa
++++
Invisibilidad perceptual
Especificacin
Pblico
Necesario: ++++ Importante +++ Deseable ++ til + Innecesario o irrelevante Dr. Roberto Gmez C.
Software watermarking
Objetivo
proporcionar de una marca de agua al software
{
int gonads, strife;
{
int gonads, strife;
gonads = 1;
strife = 1;
printf (weeeeee);
printf (weeeeee);
gonads = 1;
strife = 1;
Lmina 26
if() goto a
if() goto d
if() goto d
if() goto b
Pros y contras
Ventajas
fcil de implementar
Desventajas
fcil de romper
Lmina 27
Marcas Dinmicas
El usuario ejecuta el programa con un
conjunto especfico de entradas, despus de
los cuales el programa llega a un estado que
representa la marca
Tipos de marcas
marca del easter egg
estructuras de datos
trazado de ejecucin
Lmina 28
Easter egg
Parte de cdigo que es
activada dada una entrada
inusual a la aplicacin.
Caracterstica esencial del
easter egg: lleva a cabo alguna
accin que es inmediatamente
perceptible por el usuario
i.e. desplegar el mensaje oculto
Por ejemplo:
entrar al URL about:mozilla en
Netscape 4.0 provocar que una
imagen aparezca
Lmina 29
Op1
Input1
OpN
InputN
8048100:
8048105:
8048107:
8048109:
Lmina 31
85
7e
83
74
8b
a3
80
b8
85
74
83
db
29
7d
23
45
40
38
08
bc 08 08
00
test
jle
cmpl
je
mov
mov
cmpb
%ebx,%ebx
0x8048100
$0x0,0x8(%ebp)
0x8048105
0x8(%ebp),%eax
%eax,0x808bc40
$0x0,(%eax)
00 00 00 00
c0
0c
c4 f4
mov
test
je
add
$0x0,%eax
%eax,%eax
0x8048115
$0xfffffff4,%esp
08 00
Tomado sin permiso de: Software Watermarking: Models and Dynamic Embeddings, C, Collberg & C Thomborson
Lmina 32
Observaciones
Marcas de agua:
diferenciar un original de una copia
Proteccin piratera
no solo me interesa diferenciar entre el original y
la copia
me interesa que no se pueda copiar
Lmina 33
Tipos de proteccin
Sistemas de proteccin por tiempo
Sistemas de proteccin, CD Checks
comprobacin del CD original
Tipos de proteccin
Sistemas de proteccin mediante desactivacin de
funciones
Sistemas de generacin mediante generacin de
nmeros de serie
Serial Hardcoded
Generacin basada en Name introducido
Generacin con base en ID
Generacin de Serial Encriptado
Validacin de registro
Validacin de Keyfiles
Lmina 35
Herramientas bsicas
Editor hexadecimal
Winhex, Hex Workshop, Ultraedit, Hacker's View
Des-ensamblador
IDA, WDasm, Sourcer 7,
Descompresor
Deshrink, PeUNLOCK,
Depurador
Debug, Soft-Ice (El ms usado), TR, dbg,
Analizador de archivos
File Monitor
Dumpeadores de memoria
UserModeProcessDumper, Memory Dumper Pro
Lmina 37
Lmina 38
A lo retro
Prediccin
Por referencia a una cadena conocida
Por bsqueda de cadenas
Por bsqueda de una secuencia de cdigos
de operacin
A lo retro
Depurar el programa hacia atrs
Dejar que el sistema de proteccin se active y parar
la ejecucin justo despus
cuando el software avise con un mensaje de error
Lmina 39
Prediccin
Cuando se sospecha que una determinada funcin
est siendo usada para el funcionamiento del
sistema proteccin
Se pone un breakpoint en la funcin sospechosa
Cuando se llega a este punto se contina depurando
hasta llegar al punto clave
Muy usado cuando se quiere buscar la funcin que
pinta un banner o una pantalla nag de inicio, o
cuando se conoce el sistema de proteccin que esta
usando el enemigo
Lmina 40
Dndole la vuelta
se almacena la fecha de instalacin en algn lugar
sistema debe comprobar la fecha actual y hacer los
clculos correspondiente
Lmina 44
Ejemplos nag
Lmina 47
Proteccin de CDs
Proteccin pasiva
diferencias entre la forma en que los tocadores de CD
leen discos y la forma en que las computadoras leen
discos
insertar algo en el disco de tal forma que las
computadoras se confundan sin afectar a los tocadores
Proteccin activa
permite computadora lee todos los archivos del CD
instala software que afecta todos intentos de lectura del
disco
p.e. XCP (eXtended Copy Protection) y MediaMax
Lmina 48
Lmina 50
Lo malo
Software diseado para resistir deteccin y borrado
se cargar sin des-instalador
Lo peor
los des-instaladores no borran el ActiveX, sino que lo
dejan en la computadora del usuario
Lmina 53
Mochilas ms usadas
Sentinel Pro de Rainbow Technologies
HASP de Alladinn Systems
Lmina 54
Ejemplos mochilas
Lmina 55
Cmo funciona?
Software a proteger se comunica con la mochila a
travs de rutinas que proporciona el fabricante.
La proteccin depende de la habilidad del
programador de implementar la proteccin
Sugerencias
Mandar llamar a la mochila en varios lugares del
programa
Mandar llamar a la mochila en intervalos de tiempo en el
programa
Encriptar la llamada a la mochila
Obtener la huella del cdigo que lleva a cabo la mochila
Lmina 56
Lmina 60
c=%
d=@
e=!
f=*
Conclusiones
La ingeniera inversa no solo tiene su aplicacin en
el lado obscuro de la fuerza
Posible aplicarlos para entender como funcionan
virus computacionales y gusanos
desarrollar vacunas y protecciones
Referencias
Seguridad en software, Profesor X, Revista
Conthackto, No 2, noviembre/diciembre 2005
Digital Rigthts Management, Spyware and
Security, E.W. Felten and J. A. Halderman, IEEE
Security & Privacy, Vol.4 No. 1, January/February
2006
Electronic Frontier Foundations Sony BMG
Settlement FAQ
www.ef.org/IP/DRM/Sony-BMG/settlement_faq.php
Referencias
Information Hiding, Steganography and
Watermarking N. Johnson, Z Duric and S Jajodia,
Kluder Academic Publishers, 2001
Disappearing Cryptography, Peter Wayner, Ed.
Morgan Kaufmann; 2da. edicin, 2002
Cracking sin secretos, Ataque y defensa de
software, J. Zemnek, Ed. Alfaomega, 2005
Hacker Disassembling Uncovered, K. Kaspersky,
Ed. Alist, 2003
Reversing, Secrets of Reverse Engineering, Eldad
Eilam, Ed. Wiley Publishing, 2005
Lmina 63