IYD17

Anuncio
Simulación de un ataque DOS en una red inalámbrica basada
la plataforma Arduino.
Canedo, Herrera Alejandro Pérez, Romo, García José Francisco, Valdés, Martínez
Gerardo Ramiro, Núñez, González Ana Marcela, Favela, Hernández Jesús Alonso,
Dra. Villalpando, Hernández Rafaela
Instituto Tecnológico y de Estudios Superiores de Monterrey
Paseo del Tecnológico 751. Colonia Ampliación La Rosita. Torreón, Coahuila,
México. C.P. 27250 Tel. (52/871) 729630000
alejandropcanedo@gmail.com
joseromogarcia@gmail.com
gerardo1088@hotmail.com
ana_230491@hotmail.com
jesus_0748@hotmail.com
rafaela.villalpando@itesm.mx
Resumen
Se presenta la implementación de
ataques en una red inalámbrica
implementada por medio de la
plataforma Arduino y utilizando la
tecncnología
de
Xbee
para
la
transmisión y recepción de datos. En
este trabajo se observará como un
atacante puede afectar toda una red, si
no se toman las medidas de seguridad
necesarias para proteger la información
o la integridad de la red.
Palabras clave: Xbee, ataque DOS,
Arduino e informatica.
1. Introducción
El presente proyecto trata sobre
la configuración y simulación de una red
implementada con la plataforma Arduino
UNO y antenas de radiofrecuencia.
Toda red informática esta expuesta a
ataques del interior y exterior. Existen
varios tipos de ataques contra una red.
Uno de los ataques es el conocido como
DOS. Un ataque DOS (Ataque de
Negación de Servicio) normalmente
provoca que se pierda la conectividad
en una red y como consecuencia sea
inaccesible para los usuarios.
Este
ataque es generado por medio de la
saturación de un puerto con un flujo de
información
que
provocará
una
sobrecarga en el servidor y no podrá
seguir procesando las solicitudes que le
lleguen. Es importante protegernos de
estos ataques. Existen algoritmos de
cifrado de datos. Estos algoritmos nos
ayudan a proteger nuestra información
de que pueda ser vista y usada con
fines maliciosos. Para el atacante será
imposible o casi imposible descifrar el
mensaje cifrado.
Con esto se desea aplicar los
conocimientos adquiridos durante el
proyecto para aplicaciones reales, para
resolver problemáticas que se puedan
presentar en el campo laboral. Es
importante recalcar
que la seguridad es una parte esencial
para la integridad de cualquier sistema
de información, ya que ésta es uno de
los activos mas importantes de la
empresa
hoy
en
día.
Tener
disponibilidad a la información correcta
es vital para la toma de decisiones
dentro de cualquier empresa.
2. Desarrollo
La red con la que se trabaja en
el proyecto consta de cuatro nodos. Dos
Arduinos
actúan como los nodos
destino. Los nodos destino mandan y
reciben paquetes hacia algún otro nodo
en la red. Otro Arduino tiene la función
de nodo servidor. El nodo se encarga de
reenviar los paquetes a su destinatario.
Con el fin de implementar la red,
se realizó la investigación acerca del
uso y funcionamiento de los módulos
“XBee” y “ArduinoXbeeShield¨, que son
módulos de comunicación inalámbrica
basadas en radio frecuencias (RF).
Para configurar el “Xbee” es
necesario conectarlo a la computadora
mediante un cable USB, así se podrá
comenzar a programar el “Xbee” de
manera
directa
y
revisar
constantemente si no existe la pérdida
de conexión o monitorear el programa.
Para la programación
fue
necesario
realizar un “bypass” al
Arduino, esto es, “saltar” el micro para
poder
realizar
la
programación
directamente al “Xbee” mediante el
“Xbee Shield”, así mismo se configuró el
ArduinoXbeeShield en modo USB. Para
poder configurar “Xbee” con la
computadora, se tuvo que instalar el
software X-CTU.
Se configuraron los “XBee” en modo
XB24, utilizando los siguientes datos,
AP=2,MY Address=1,3 (En el caso de
los dispositivos finales), 2 (Servidor),
PAN
ID=ABBA.
Estos
datos,
proporcionan dirección e identificador al
nodo. Para el manejo de la
programación de Xbee y Arduino se
utilizan diferentes librerías. Las librerías
utilizadas en el presente proyecto se
presentan en la Tabla N° 1.
Tabla.1 Librerías utilizadas para la
configuración del módulo Xbee.
Proceso
Función
Rx16Response Mensaje recibido por
el Xbee
Xbee
Clase utilizada para
enviar los mensajes.
Tx16Request
Mensaje que será
enviado al otro Xbee
En la figura N° 1, se presenta la
interface gráfica del X-CTU, donde es
posible configurar parámetros de
comunicación tales como número de
canal, tamaño de paquetes, etc.
de cifrado es por la técnica de
sustitución, en el que una letra en el
texto original es reemplazada por otra
letra que se encuentra un número fijo de
posiciones más adelante en el alfabeto.
Por ejemplo, con un desplazamiento de
cuatro, la A sería sustituida por la E
(situada cuatro lugares a la derecha de
la A), la B sería reemplazada por la F.
La transformación se puede
representar alineando dos alfabetos; el
alfabeto cifrado es un alfabeto normal
que está desplazado un número
determinado de posiciones hacia la
izquierda o la derecha.
Fig.1. Interface del Software X-CTU.
2.1 Ataque
El ataque seleccionado para
realizar en ésta ocasión fue un ataque
de negación de servicio (DOS), éste
consiste en hacer que un servicio no
esté disponible para algún usuario que
deba tenerlo. Para lograrlo, se hacen
peticiones de forma repetida al servidor,
de tal forma que el servidor no pueda
cumplir con todas al mismo tiempo y
termine por dejar de funcionar por un
periodo de tiempo que puede variar
desde horas hasta días. En nuestro
caso el DOS lo que hace es que un
Arduino empieza a mandar solicitudes y
el servidor por tratar de contestarlas
empieza a ignorar a los Arduinos que en
realidad se estaban comunicando, [1].
2.2 Cifrado
El cifrado Caesar [1], es de los
primeros métodos de cifrado conocido,
teniendo su primer uso en las guerras,
su creador fue Julio Caesar. Éste tipo
Para codificar un mensaje
simplemente se debe buscar cada letra
en el texto original y escribir la letra en
el texto codificado como se ilustra en la
figura N° 2. Para poder decodificar el
texto se debe hacer lo contrario,
desplazando el carácter cifrado.
Fig. 2. Ilustración del Cifrado Caesar.
Para éste tipo de cifrado la
codificación
también
se
puede
representar usando aritmética modular,
transformando las letras en números, de
acuerdo al esquema A = 0, B = 1,..., Z =
25. La codificación de la letra x con un
desplazamiento n puede ser descrita
matemáticamente como:
𝐸! 𝑥 = x + η mod 27
(1)
𝐷! 𝑥 = x − η mod 27
(2)
Donde En(x), es la función usada
para cifrar y Dn(x) la ecuación utilizada
para descifrar.
2.3 Diagrama del circuito
En la figura N° 3 a), b), c), se
presenta la interconexión llevada a cabo
para configurar la plataforma Arduino de
las formas antes descritas. Como se
puede observar, la implementación del
circuito resulta sencilla, la dificultad
radica tanto en la configuración
adecuada como en su programación.
c)
Fig. 3. a) Circuito utilizado para
Aduino UNO de los dispositivos
finales 1,2 y el atacante, b) Arduino
del dispositivo final con Xbee, c)
Arduino servidor con Xbee.
En la figura N° 4, se presenta una
fotografia de la implementacion real de
la red inalámbrica, como se puede
observar consta de una placa Arduino,
interconectada por medio del adaptador
XbeeShield al módulo de comunicación
Xbee.
a)
Fig. 4. Implementación real de la red.
b)
En la figura N° 5, se muestra el
algoritmo utilizado por los nodos finales.
Uno de los procesos importantes del
algoritmo es checar los paquetes. Este
proceso primero obtiene el paquete
procedente del Xbee del nodo servidor.
Después verifica que la longitud del
paquete sea mínimo de 4 bits. Si
cumple con la condicion el paquete
pasara a descifrarse y enviara un
mensaje al servidor de reconocimiento.
Esto como una medida de seguridad.
alguna petición de los dispositivos
finales. Si hay alguna petición espera a
que llegue el paquete, a continuación
empieza a correr el tiempo. En caso de
que el tiempo de espera se exceda, se
muestra una advertencia indicando que
el tiempo de espera se excedió. Por el
contrario, si el servidor recibió un
paquete de algún dispositivo final, lo
transmitira a su destinatario final. Al
transmitirlo, esperará una confirmación
del receptor del mensaje indicando que
fue transmitido el paquete con éxito.
Fig. 6. Algoritmo utilizado por el
servidor.
Fig. 5. Algoritmo utilizado por los
dispositivos finales.
3. Análisis de resultados
En la figura N° 6, se muestra el
algoritmo programado en el nodo
servidor.
El proceso que estará
corriendo continuamente en el servidor
se señala en la figura N° 6 con una
flecha. Primeramente revisa si tiene
Como se mencionó anteriormente
la red
cuenta con cuatro nodos
(Arduinos), donde uno de ellos realiza la
función de servidor, dos la función de
dispositivos finales y el último actúa
como atacante. Los cuatro nodos van
conectados por medio de su puerto USB
a una computadora, el servidor
comenzará a escuchar (detectar) y
esperar paquetes de los dispositivos
finales que se encuentran conectados
inalámbricamente a él. Para poder
mandar mensajes, ambos dispositivos
finales cuentan con un botón, el cual al
momento de presionarle, hace que el
Arduino transmita un mensaje al otro
Arduino, siendo el servidor un
intermediario para su comunicación que
empezarán a transmitir mensajes una
vez que sean presionados.
A continuación se resume el
proceso llevado a cabo para la
implementación
tanto
de
la
comunicación de los nodos en la red
como del ataque.
1. Configurar los cuatro Xbees en
modo XB24 para la comunicación
entre los nodos.
2. Conectar los primeros tres
Arduinos a una fuente de
alimentación.
4.Conclusiones
Es importante recalcar que la
seguridad es una parte esencial para la
integridad de cualquier sistema de
información, ya que esta es uno de los
activos más importantes de las
empresas hoy en día, pues es vital para
la toma de decisiones, es por esto que
es de suma importancia mantenerla
íntegra y disponible para cuando el
usuario la requiera.
Para implementar una mayor
seguridad de encriptación seria bueno
implementar un algoritmo asimétrico por
cada uno de los equipos como RSA.
Finalmente, deseamos recalcar
que el desempeño de la red puede
verse afectado por diferentes ataques y
que con esta investigación se busca
contribuir
a
lograr
una
mejor
comprensión de sus efectos y la
importancia de su detección.
Referencias
3. Oprimir el botón del arduino del
que desees enviar el mensaje.
4. Monitorear el puerto serial del
segundo Arduino para esperar el
mensaje recibido por parte del
primero y viceversa.
5. En caso de querer probar el
ataque, conectar el cuarto
Arduino
a
la
fuente
de
alimentación, presionar el botón,
éste comenzará a inundar la red
de peticiones y evitará que los
verdaderos dispositivos finales
manden mensajes.
[1] Stallings, W. (2003). “Cryptography
and Network Security: Principles and
Practice”, USA: Pearson Education.
[2] Shield, X. (2013). “Arduino”,
http://arduino.cc/en/Main/ArduinoXbeeS
hield
Descargar