Industry 4.0 y Big Data. ¿Quién está accediendo a tus datos? - LibreCon 2016
1. Industry 4.0 y Big Data
¿Quién está accediendo a tus datos?
– Pinceladas para una mirada más cercana –
Iñaki Garitano
2. Presentación
• Iñaki Garitano
• Grupo Telematika de Mondragon Unibertsitatea
• Nos dedicamos
• Seguridad informática
• Sobre todo relacionado con el mundo industrial
• Análisis de datos
Iñaki Garitano - Librecon2016 222/11/2016
3. Presentación
• Grupo Telematika – participantes en este trabajo
Iñaki Garitano - Librecon2016 322/11/2016
Iñaki Arenaza
@iarenaza
Urko Zurutuza
@urkovain
Aitor Osa
Larrabe
Oier Saizar
Ugarte
Varios estudiantes del
grado de Informática
4. Índice
1. Un poco de color
• Introducción, desde Industry 4.0 a Big Data
2. Pasando el rodillo
• Apache Hadoop y Transparent Data Encryption
3. Aplicando gotelé
• Apache Ranger, HDFS
4. Últimas pinceladas
• CP-ABE
Iñaki Garitano - Librecon2016 422/11/2016
5. Índice
1. Un poco de color
• Introducción, desde Industry 4.0 a Big Data
2. Pasando el rodillo
• Apache Hadoop y Transparent Data Encryption
3. Aplicando gotelé
• Apache Ranger, HDFS
4. Últimas pinceladas
• CP-ABE
Iñaki Garitano - Librecon2016 522/11/2016
6. Industry 4.0
– Un poco de color –
• Simplificando
22/11/2016 Iñaki Garitano - Librecon2016 6
Adquisición
de datos
Almacenamiento
Procesamiento
Generación
de valor
Extracción de
conocimiento
Sensores
PLCs
Equipos de adquisición
Infraestructuras
Cloud
Tecnologías Big Data
7. Industry 4.0
– Un poco de color –
• Simplificando
22/11/2016 Iñaki Garitano - Librecon2016 7
8. Philip Zimmermann – Creador de Pretty Good Privacy –
– Un poco de color –
“La criptografía actual es lo suficientemente segura
como para unos cuantos años. El vector de ataque
no está en las comunicaciones, sino en los
dispositivos finales.”
Fuente: CPU Magazine
Iñaki Garitano - Librecon2016 822/11/2016
9. Adi Shamir – Co-inventor del algoritmos RSA –
– Un poco de color –
“Cryptography is typically bypassed, not penetrated”
• Ideas principales
• Descifrar las comunicaciones no es interesante
• Se “inyecta” malware en los dispositivos para abrir
puertas traseras
Fuente: https://en.wikipedia.org/wiki/File:Adi_Shamir_at_TU_Darmstadt_(2013).jpg
Iñaki Garitano - Librecon2016 922/11/2016
10. Industry 4.0
– Un poco de color –
• Simplificando
22/11/2016 Iñaki Garitano - Librecon2016 10
11. Cloud providers
– Un poco de color –
• Por decir algunos…
• Amazon
• Google
• Microsoft
• Rackspace
• DigitalOcean
• OVH
• …
22/11/2016 Iñaki Garitano - Librecon2016 11
Source: https://en.wikipedia.org/wiki/Category:Cloud_computing_providers
nos facilitan la
implementación de
nuestra solución
nos ofrecen
entre otras cosas
herramientas
propietarias las
cuales
nos atan a una
única solución cloud
12. En el caso de este trabajo…
– Un poco de color –
• Se está utilizando
• una nube privada y
• tecnologías Open Source como
• Apache Flume
• Apache Hadoop
• Apache Hbase
• Apache Hive
• Apache Kafka
• Apache Pig
• Apache Spark
• Apache Sqoop
• Apache Storm
• …
22/11/2016 Iñaki Garitano - Librecon2016 12
Apache License, Version 2.0
13. Apache License, Version 2.0
– Un poco de color –
• Entre otras cosas permite
• La distribución de código modificado bajo otra licencia
• El uso, modificación, distribución y venta de software bajo esta licencia
para usos personales o comerciales
• Es compatible con la licencia GPLv3
• El resultado se distribuirá con licencia GPLv3
• Respecto a la licencia MIT
• Se tienen que listar todas las modificaciones realizadas
• Restricciones a la hora de nombrar un nuevo “producto”
22/11/2016 Iñaki Garitano - Librecon2016 13
16. ¿Cómo añado/incluyo seguridad?
– Un poco de color –
22/11/2016 Iñaki Garitano - Librecon2016 16
Source: Cloud Security Alliance
TDE
Apache Hadoop
Apache Ranger
17. Seguridad para el ecosistema Apache Hadoop
– Un poco de color –
• Opciones
1. Activar mecanismos de seguridad de cada componente
• Transparent Data Encryption (TDE)
• Kerberos
• TLS entre nodos
• …
2. Añadir componentes específicos para la seguridad
• Apache Ranger
• Apache Knox
• Apache Sentry
• RecordService
• …
22/11/2016 Iñaki Garitano - Librecon2016 17
18. Distribuciones
– Un poco de color –
• Existen varias distribuciones las cuales impulsan distintas
soluciones de seguridad
• Cloudera
• Apache Sentry
• RecordService
• Hortonworks
• Apache Ranger
• Apache Knox
• MapR
• …
22/11/2016 Iñaki Garitano - Librecon2016 18
19. Índice
1. Un poco de color
• Introducción, desde Industry 4.0 a Big Data
2. Pasando el rodillo
• Apache Hadoop y Transparent Data Encryption
3. Aplicando gotelé
• Apache Ranger, HDFS
4. Últimas pinceladas
• CP-ABE
Iñaki Garitano - Librecon2016 1922/11/2016
20. Apache Hadoop – Seguridad
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 20
• Apache Hadoop puede
• Trabajar en “modo seguro”
• Por defecto no está configurado en “modo seguro”
• “modo seguro” implica
• Autenticación mediante Kerberos tanto los usuarios, como los servicios y acceso web
• Confidencialidad de los datos mediante cifrado durante la transmisión (TLS)
• Emplear ACLs para controlar el acceso a los servicios
• Utilizar Transparent Data Encryption (TDE)
• Aislar la ejecución para los contenedores de YARN
• …
21. Apache Hadoop – TDE
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 21
• Transparent Data Encryption
• Características:
• Permite almacenar los datos cifrados en disco
• Transparente para el usuario y las aplicaciones
• HDFS no tiene acceso a los datos descifrados
• At-rest encryption (mientras los datos se almacenan en el disco)
• In-transit encryption (mientras los datos se envían por la red)
22. Apache Hadoop – TDE
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 22
• Transparent Data Encryption
• Funcionamiento:
• encryption zone
• Directorio donde todo lo que se escribe se cifra y todo lo que se lee se descifra
• Cada encryption zone dispone de una clave
• encryption zone key
• Cada archivo dentro de un encryption zone dispone de una clave
• data encryption key (DEK)
• HDFS solo utiliza las claves de cifrado de los datos, cifrados
• encrypted data encryption key (EDEK)
• Las claves se gestionan a través de Hadoop Key Management Server (KMS)
23. Apache Hadoop – TDE
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 23
EZ
Encryption Zone
EZK
Encryption Zone Key
DEK
Data Encryption Key
EDEK
Encrypted DEK
IV
Initialization Vector
24. Apache Hadoop – TDE – Ejemplo
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 24
• Como usuario “normal” creamos una nueva clave
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop key create
librecon2016key
• librecon2016key has been successfully created with options
Options{cipher='AES/CTR/NoPadding', bitLength=128, description='null',
attributes=null}.
• KMSClientProvider[http://localhost:16000/kms/v1/] has been updated.
• hduser@Librecon2016:~$ hadoop key list -metadata
• Listing keys for KeyProvider: KMSClientProvider[http://localhost:16000/kms/v1/]
• librecon2016key : cipher: AES/CTR/NoPadding, length: 128, description: null, created:
Mon Nov 21 21:19:07 CET 2016, version: 1, attributes: [key.acl.name=librecon2016key]
25. 22/11/2016 Iñaki Garitano - Librecon2016 25
• Como super-usuario creamos una carpeta para el usuario “normal”
• hduser@Librecon2016:~$ hadoop fs -mkdir /user/user
• hduser@Librecon2016:~$ hadoop fs -chown user:user /user/user
• Como usuario “normal” creamos dos carpetas: (1) EncryptionZone y (2)
NoEncryptionZone
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop fs -mkdir -p
/user/user/EncryptionZone
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop fs -mkdir -p
/user/user/NoEncryptionZone
Apache Hadoop – TDE – Ejemplo
– Pasando el rodillo –
26. Apache Hadoop – TDE – Ejemplo
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 26
• Como super-usuario creamos una nueva zona de cifrado
• hduser@Librecon2016:~$ hdfs crypto -createZone -keyName librecon2016key -path
/user/user/EncryptionZone
• Added encryption zone /user/user/EncryptionZone
• hduser@Librecon2016:~$ hdfs crypto -listZones
• /user/user/EncryptionZone librecon2016key
27. Apache Hadoop – TDE – Ejemplo
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 27
• Como usuario “normal” creamos un archivo “file.txt” y lo copiamos a las dos carpetas: (1)
EncryptionZone y (2) NoEncryptionZone
• hduser@Librecon2016:~$ echo "TDE test @Librecon2016" > file.txt
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop fs -put file.txt
/user/user/EncryptionZone
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop fs -put file.txt
/user/user/NoEncryptionZone
28. Apache Hadoop – TDE – Ejemplo
– Pasando el rodillo –
22/11/2016 Iñaki Garitano - Librecon2016 28
• Tanto como usuario “normal” como super-usuario comprobamos si podemos leer el
archivo
• hduser@Librecon2016:~$ sudo -u user /usr/local/hadoop/bin/hadoop fs -cat
/user/user/EncryptionZone/file.txt
• TDE test @Librecon2016
• hduser@Librecon2016:~$ hadoop fs -cat /.reserved/raw/user/user/EncryptionZone/file.txt
• 39A�,�M@�j��>@
• hduser@Librecon2016:~$ hadoop fs -cat
/.reserved/raw/user/user/NoEncryptionZone/file.txt
• TDE test @Librecon2016
29. Índice
1. Un poco de color
• Introducción, desde Industry 4.0 a Big Data
2. Pasando el rodillo
• Apache Hadoop y Transparent Data Encryption
3. Aplicando gotelé
• Apache Ranger, HDFS
4. Últimas pinceladas
• CP-ABE
Iñaki Garitano - Librecon2016 2922/11/2016
30. Apache Ranger
– Aplicando gotelé –
• Framework que permite centralizar la administración de la
seguridad mediante el uso de un interfaz centralizada o un API
REST
• Ofrece autorización de grano fino mediante diferentes métodos
de autorización
22/11/2016 Iñaki Garitano - Librecon2016 30
31. Apache Ranger – Arquitectura
– Aplicando gotelé –
22/11/2016 Iñaki Garitano - Librecon2016 31
• Apache Ranger
• Se compone de:
• Key Management Server
• Policy Server
• Audit Server
• Diversos agentes para cada uno de los
componentes
• Ofrece:
• Un portal de administración
• Un API Rest
• Permite
• Generar logs en
• Log4j
• Base de datos
32. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Vamos a ver con un ejemplo sencillo como podemos utilizar
Apache Ranger
• Arrancamos Ranger
• hduser@Librecon2016:~$ sudo mkdir -p /var/run/ranger
• hduser@Librecon2016:~$ sudo chown ranger:ranger /var/run/ranger/
• hduser@Librecon2016:~$ sudo su ranger
• ranger@Librecon2016:/home/hduser$ ranger-admin start
• ranger@Librecon2016:/home/hduser$ exit
• Creamos la carpeta de usuario de “librecon”
• hduser@Librecon2016:~$ hadoop fs -mkdir /user/librecon
22/11/2016 Iñaki Garitano - Librecon2016 32
33. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Un paseo por la interfaz gráfica
• Miramos la interfaz de Apache Hadoop
22/11/2016 Iñaki Garitano - Librecon2016 33
Nos fijamos en los permisos, propietario y grupo de la carpeta
34. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Un paseo por la interfaz gráfica
• Miramos la interfaz de Apache Hadoop
22/11/2016 Iñaki Garitano - Librecon2016 34
Vemos que de momento la carpeta /user/librecon está vacia
35. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Un paseo por la interfaz gráfica
• Pasamos a mirar Apache Ranger
22/11/2016 Iñaki Garitano - Librecon2016 35
36. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Un paseo por la interfaz gráfica
• Pasamos a mirar Apache Ranger – los servicios
22/11/2016 Iñaki Garitano - Librecon2016 36
37. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Un paseo por la interfaz gráfica
• Pasamos a mirar Apache Ranger – usuarios
22/11/2016 Iñaki Garitano - Librecon2016 37
De momento no existe ningún usuario “librecon”
38. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Desde la interfaz gráfica
• Creamos un nuevo usuario “librecon”
22/11/2016 Iñaki Garitano - Librecon2016 38
39. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Desde la interfaz gráfica
• Creamos un nuevo usuario “librecon”
22/11/2016 Iñaki Garitano - Librecon2016 39
40. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Desde la interfaz gráfica
• Observamos la políticas de Hadoop
22/11/2016 Iñaki Garitano - Librecon2016 40
41. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Creamos un archivo y lo intentamos copiar sobre Hadoop mediante el
usuario librecon
• librecon@Librecon2016:~$ echo "ranger test @librecon2016" > test.txt
• librecon@Librecon2016:~$ cat test.txt
• ranger test @ librecon2016
• librecon@Librecon2016:~$ hadoop fs -put test.txt
• put: Permission denied: user=librecon, access=WRITE,
inode="/user/librecon/test.txt._COPYING_":hduser:supergroup:drwxr-xr-x
22/11/2016 Iñaki Garitano - Librecon2016 41
42. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Desde la interfaz gráfica
• Creamos una política para el usuario “librecon”
22/11/2016 Iñaki Garitano - Librecon2016 42
43. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Lo intentamos copiar otra vez sobre Hadoop mediante el usuario
“librecon”
• librecon@Librecon2016:~$ hadoop fs -put test.txt
• Comprobamos los permisos y que lo podemos leer
• librecon@Librecon2016:~$ hadoop fs -ls test.txt
• -rw-r--r-- 1 librecon supergroup 27 2016-11-21 15:32 test.txt
• librecon@Librecon2016:~$ hadoop fs -cat test.txt
• ranger test @librecon2016
22/11/2016 Iñaki Garitano - Librecon2016 43
44. Apache Ranger – Ejemplo
– Aplicando gotelé –
• Desde la interfaz gráfica de Apache Hadoop
• Comprobamos la existencia del archivo
22/11/2016 Iñaki Garitano - Librecon2016 44
Nos fijamos en los permisos, propietario y grupo del archivo
45. Índice
1. Un poco de color
• Introducción, desde Industry 4.0 a Big Data
2. Pasando el rodillo
• Apache Hadoop y Transparent Data Encryption
3. Aplicando gotelé
• Apache Ranger, HDFS
4. Últimas pinceladas
• CP-ABE
Iñaki Garitano - Librecon2016 4522/11/2016
46. CP-ABE
– Últimas pinceladas –
Ciphertext-Policy Attribute-Based Encryption
• Trabajo realizado por John Bethencourt (Carnegie Mellon University), Amit
Sahai (UCLA) y Brent Waters (SRI International)
• Es un sistema de control de acceso cifrado donde las claves privadas de
los usuarios se especifican en base a atributos
• Así mismo, los usuarios capaces de descifrar se especifican en base a
atributos
• Este sistema es capaz de aguantar ataques de conspiración, collusion,
donde un atacante obtenga más de una clave privada
22/11/2016 Iñaki Garitano - Librecon2016 46
47. CP-ABE & Apache Ranger
– Últimas pinceladas –
• Actualmente, estamos diseñando y modificando
Apache Ranger con el fin de utilizar CP-ABE
como sistema de control de acceso
• El sistema permitirá definir atributos
• A los usuarios se les podrá asignar uno o varios
atributos
Partes donde se está actuando
22/11/2016 Iñaki Garitano - Librecon2016 47
48. CP-ABE – Bibliografía
– Últimas pinceladas –
• Para más información:
• http://ieeexplore.ieee.org/document/4223236/
• Software disponible en:
• http://hms.isi.jhu.edu/acsc/cpabe/
22/11/2016 Iñaki Garitano - Librecon2016 48