industry 4.0 y big data ¿quién está accediendo a tus datos?
TRANSCRIPT
Industry 4.0 y Big Data¿Quién está accediendo a tus datos?
– Pinceladas para una mirada más cercana –
Iñaki Garitano
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
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
Í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
Í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
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
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
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
Cloud providers– Un poco de color –
• Por decir algunos…• Amazon
• 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ónnos ofrecen
entre otras cosas
herramientas
propietarias las
cualesnos atan a una
única solución cloud
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
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
¿Cómo añado/incluyo seguridad?– Un poco de color –
22/11/2016 Iñaki Garitano - Librecon2016 15
Source: Cloud Security Alliance
¿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
Seguridad para el ecosistema Apache Hadoop– Un poco de color –
• Opciones1. 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
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
Í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
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
• …
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)
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)
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
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]
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 –
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
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
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
Í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
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
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
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
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
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
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
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
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”
Apache Ranger – Ejemplo– Aplicando gotelé –
• Desde la interfaz gráfica• Creamos un nuevo usuario “librecon”
22/11/2016 Iñaki Garitano - Librecon2016 38
Apache Ranger – Ejemplo– Aplicando gotelé –
• Desde la interfaz gráfica• Creamos un nuevo usuario “librecon”
22/11/2016 Iñaki Garitano - Librecon2016 39
Apache Ranger – Ejemplo– Aplicando gotelé –
• Desde la interfaz gráfica• Observamos la políticas de Hadoop
22/11/2016 Iñaki Garitano - Librecon2016 40
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
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
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
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
Í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
CP-ABE– Últimas pinceladas –
Ciphertext-Policy Attribute-Based Encryption
• Trabajo realizado por John Bethencourt (Carnegie Mellon University), AmitSahai (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
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
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
Eskerrik asko
Iñaki Garitano
Mondragon Unibertsitatea
22/11/2016 Iñaki Garitano - Librecon2016 49