• No se han encontrado resultados

Diseño y desarrollo de herramientas de ciberinteligencia competitiva en el ámbito de la empresa

N/A
N/A
Protected

Academic year: 2020

Share "Diseño y desarrollo de herramientas de ciberinteligencia competitiva en el ámbito de la empresa"

Copied!
112
0
0

Texto completo

(1)DISEÑO Y DESARROLLO DE HERRAMIENTAS DE CIBERINTELIGENCIA COMPETITIVA EN EL ÁMBITO DE LA EMPRESA. TRABAJO DE FIN DE GRADO PARA LA OBTENCIÓN DEL TÍTULO DE GRADO EN INGENIERÍA EN TECNOLOGÍAS INDUSTRIALES. AUTOR: TITULACIÓN: TUTOR: FECHA:. ÁNGEL VERGARA GARCÍA GRADO EN TECNOLOGÍAS INDUSTRIALES ÁNGEL GARCÍA BELTRÁN SEPTIEMBRE DE 2019.

(2) 2. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(3) Herramientas de Ciberinteligencia Competitiva. AGRADECIMIENTOS A mi tutor Ángel García Beltrán, por su dedicación y disponibilidad en todo momento, lo cual ha sido de gran ayuda para acelerar y facilitar la realización de este TFG. A Tarlogic Security, empresa de Ciberseguridad, Ciberinteligencia y Red Team, y en particular a Lucía González, del departamento de Recursos Humanos, por brindarme la oportunidad de colaborar con dicha empresa, donde he sido acogido con los brazos abiertos para la compleción de este proyecto y se han volcado de lleno en el mismo. En especial, me gustaría hacer mención de Javier Rodríguez, Director de Ciberinteligencia, por su continuo seguimiento y disponibilidad pese a las demandantes circunstancias laborales, a Raúl Sampedro, Pentester, por su enorme ayuda en el campo de la programación y el manejo de datos, y a Gonzalo José Carracedo Carballal, del departamento de Innovación, por su rol en lo relacionado con el seguimiento de Objetivos del presente proyecto. Por último, pero no menos importante, subrayo también la notable ayuda en mi formación del resto del equipo de Ciberinteligencia, formado, entre otros, por Judith Vega, Jesús M. Pérez y Mariano Ortiz. A mi familia y amigos más cercanos, por su apoyo incondicional no solo en el presente TFG, sino en el transcurso de la totalidad de la carrera.. Ángel Vergara García. 3.

(4) 4. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(5) Herramientas de Ciberinteligencia Competitiva. RESUMEN DEL PROYECTO El mundo actual está totalmente vinculado y dirigido por la información, encontrándose además el volumen de información disponible en un nivel de crecimiento desproporcionado debido a la presente era digital. A modo de ejemplo, según Marketing Digital [1], en 2018 y cada 60 segundos en el mundo se envían 473.400 mensajes en Twitter, se publican 2.083.333 mensajes en Snapchat, Skype registra 176.220 llamadas y Google ofrece 3.877.140 consultas en Internet. Así, desde hace años se ha buscado como darle uso o sacar un beneficio determinado a toda esta información, dando lugar a lo que se conoce como inteligencia. Hoy en día, debido al potencial del mundo virtual y las fuentes de información abiertas (OSINT), es normal referirse a dicha inteligencia como ciberinteligencia. De hecho, es notable la importancia que gobiernos o empresas otorgan a esta disciplina, al ser cada vez más común la incorporación de un departamento dedicado a este fin, o encontrar numerosas noticias en medios de comunicación mostrando las cuantiosas inversiones que estas entidades dedican a la consecución de inteligencia. Sin embargo, se pueden distinguir diversos tipos de inteligencia según los fines buscados. Esto se debe a que la explotación de fuentes de información puede ser con vistas a campañas publicitarias, fines médicos, fines sociales, etc. El presente proyecto se centra en la inteligencia destinada a la competitividad empresarial y económica para lograr ‘vencer’ a la competencia, y a esta rama se la citará como inteligencia competitiva y se hablará de ella a lo largo de la memoria. Otra forma de clasificar la inteligencia en tipos es según la fuente que se utilice para su obtención. Así, aparecen diversas designaciones como la ya mencionada OSINT, SIGINT (por sus siglas en inglés Signal Intelligence), COMINT (por sus siglas en inglés Communications Intelligence), etc. Sin embargo, en todas ellas habitualmente existe un problema. Este problema deriva del enorme volumen de información disponible actualmente, y radica en cómo se puede gestionar dicha información de una manera temporalmente viable. En otras palabras, es evidente que al navegar por la web se pueden encontrar numerosas páginas con información relevante, o buscando a un usuario en alguna red social se puede ver manualmente quienes son sus contactos, pero la realización de esta labor supone un gasto temporal demasiado grande, con lo que ha surgido la necesidad de automatizar dichos procesos. Esto es primordial debido a que el principal factor que da valor real a una información es su obtención en un determinado plazo temporal. Así, han aparecido diversas herramientas que buscan solucionar este inconveniente, como puede ser el software Maltego, del cual se habla en profundidad en la memoria del presente proyecto. Dicha herramienta es un claro ejemplo de la explotación de las mencionadas fuentes abiertas (OSINT), y es muy utilizada por los departamentos de ciberinteligencia de diversos sectores. No obstante, esta herramienta tiene un enfoque muy genérico, pues permite un acercamiento muy superficial a Objetivos, como la obtención de sus redes sociales, cuentas de correo electrónico o teléfonos móviles. Indudablemente, la obtención de información de este tipo es relevante en una Ángel Vergara García. 5.

(6) RESUMEN DEL PROYECTO. investigación, pero no deja de ser un punto intermedio y no una conclusión de valor para el sujeto investigador. Previo a continuar con la presente investigación, conviene definir qué se entiende por Objetivo, siendo en este caso una persona de especial interés dada su posición en la organización, o su posible influencia sobre la misma. En este proyecto, se ha buscado un enfoque algo más específico, centrado en el análisis de una compañía u organización para la extracción de determinados Objetivos. Es evidente que, en la actualidad, la forma más fácil y directa de acceder a la vida de un Objetivo es a través de las redes sociales o aplicaciones de mensajería instantánea, con lo que éste ha sido el punto de partida. Así, se ha empleado la red social Twitter y la aplicación de mensajería instantánea WhatsApp para analizar de manera exhaustiva al Objetivo en cuestión, y se han desarrollado módulos para la automatización de la búsqueda de información en las mismas. La investigación consta de cuatro bloques. El primer bloque se inicia, una vez definida la compañía y sector de interés, con el uso de Maltego. En el presente proyecto, se ha investigado a la empresa multinacional Atos, y en particular, el contrato masivo en el que participa basado en la tecnología que rodea el sistema de información de los Juegos Olímpicos. La elección de esta compañía radica en mostrar la verdadera potencia de las herramientas desarrolladas o empleadas, al tratarse de una enorme empresa, con decenas de miles de empleados, y a priori podría parecer complicado reducir dicha estructura a unos pocos Objetivos de interés. Así, se ha empleado inicialmente información de la propia página web de la compañía, con la que se ha deducido un esquema inicial de personas de interés ligadas al proyecto en cuestión. Adicionalmente, se han investigado las redes sociales encontradas para los mencionados Objetivos, extrayendo no solo vínculos laborales actuales, sino también relaciones laborales pasadas, coincidencias de varios Objetivos en determinados centros académicos, etc. Estas relaciones de ámbitos extralaborales que aparentemente se pueden interpretar como de escaso valor, pueden ser determinantes como se ha visto en varios de los casos reales detallados en la memoria. Una vez completado el grafo con todos los Objetivos y las relaciones extraídas mediante fuentes OSINT, Maltego facilita notablemente su análisis al proporcionar herramientas de visualización que permiten la extracción de nodos u Objetivos especialmente interesantes por su elevado número de relaciones. Tras la mencionada extracción, se ha logrado la reducción de una multinacional con decenas de miles de empleados a una lista muy reducida de Objetivos de gran valor para su posterior estudio. De hecho, en el caso tratado, se lograron extraer 7 Objetivos a investigar a partir de los 120.000 empleados con los que cuenta Atos. Es en este momento cuando entra en juego la herramienta desarrollada que supone el grueso de trabajo de este TFG, y que constituye los otros tres bloques de la investigación.. 6. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(7) Herramientas de Ciberinteligencia Competitiva. El segundo bloque, basado en Twitter, utiliza el acceso facilitado por la red social para desarrolladores, con diversas funciones de autenticación de credenciales para permitir ese acceso. Tras lo anterior, se han desarrollado diversos módulos en el lenguaje de programación Python que se encargan de extraer la totalidad de la red de contactos de un Objetivo introducido, o, en otras palabras, extraer de cada Objetivo sus seguidores, sus seguidos, los seguidos y seguidores de los seguidores, y seguidos y seguidores de los seguidos. En la memoria se detalla el mencionado desarrollo, así como las diversas limitaciones encontradas y las alternativas llevadas a cabo para superarlas. Estas limitaciones son debidas a los límites de extracción de información impuestos por los desarrolladores de la red social Twitter, que delimitaban temporalmente el uso de la API (Application Programming Interface) en su versión gratuita. Así, ha sido necesario incluir retrasos intencionados en la ejecución del código para superar esas restricciones. En adición, se han creado otros módulos para facilitar el análisis de una cuenta particular para extraer información de interés: 1) El primer módulo extrae información ligada a la cuenta especificada, y genera un grafo que muestra en una escala temporal los picos de actividad de la cuenta, a partir de los likes recibidos. 2) El segundo módulo profundiza en la extracción de información, mostrando también los últimos tweets de la cuenta indicada, enmarcándolos temporalmente y asociándolos al dispositivo empleado para su publicación. 3) El tercer módulo muestra la actividad en tiempo real asociada a las palabras clave indicadas por el usuario. Ahora bien, tras la ejecución del módulo se han obtenido inmensas listas con miles y miles de ID de usuarios que, por sí solas, son de interés prácticamente nulo. Así se subraya de nuevo lo ya mencionado al inicio del resumen en cuanto a que la exclusiva obtención de información no aporta valor alguno, sino que es su posterior análisis e investigación lo que genera inteligencia. De esta manera, se llega al tercer bloque, también desarrollado en Python, que tiene como propósito plasmar esa red de contactos almacenada en listas de difícil interpretación en Neo4j, un software para el tratamiento de datos mediante grafos. Así, se generan los grafos con esas redes de contactos para cada Objetivo, y con las denominadas Cypher queries o consultas, se pueden extraer conclusiones de interés. Algunos ejemplos de las mismas son: averiguar el nodo con mayor número de relaciones, encontrar el camino más corto entre dos nodos de interés, etc. De hecho, en el caso tratado, se logró extraer una cuenta adicional a las ya obtenidas mediante Maltego, y con los módulos vistos en el segundo bloque se pudo identificar al sujeto vinculado a ese ID. Por tanto, la utilidad de los dos bloques anteriores radica en obtener Objetivos adicionales a los ya encontrados en el primer bloque mediante Maltego, ya que estos Objetivos adicionales pueden ser sujetos externos a la compañía, pero relacionados con la misma luego su interés puede ser notable. Finalmente, la investigación conduce al cuarto bloque, el estudio de la actividad en WhatsApp de los Objetivos extraídos en los tres primeros bloques. Para ello, la empresa colaboradora Tarlogic Security cuenta con un tracker de WhatsApp que monitoriza la Ángel Vergara García. 7.

(8) RESUMEN DEL PROYECTO. actividad de los sujetos cuyos números se introducen en la herramienta. A partir de este tracker, se ha desarrollado un módulo en Python para optimizar la búsqueda de información relevante. Cabe preguntarse cuál podría ser el interés de conocer los intervalos de conexiones o desconexiones de un determinado sujeto, y la realidad es que cuenta con una infinidad de aplicaciones. Algunas de las mismas son: deducción de un posible viaje del Objetivo al notar un periodo grande de desconexión seguido de un cambio en el huso horario de actividad, identificación de usuarios en contacto a partir de la coincidencia de franjas de conexión pudiendo deberse a llamadas vía WhatsApp, etc. Cabe destacar que este último módulo no se ha aplicado en el caso práctico realizado hacia la empresa Atos, puesto que no hay un fin claro en torno al cual centrar la investigación de esa compañía, debido a que el fin de la investigación de Atos era mostrar un posible manejo de las herramientas propuestas en el presente TFG. Sin embargo, para reflejar el verdadero valor de ese último módulo, se han incluido varios casos reales en los que se ha visto inmersa la empresa colaboradora Tarlogic Security, y en los que ha sido vital el uso de la herramienta analizada en el cuarto módulo para su resolución. De hecho, los diferentes casos incluidos muestran diversas posibles aplicaciones de este módulo. Para concluir la aplicación práctica y los casos reales analizados, se han detallado los principales impactos potenciales de este TFG y de su utilización empresarial. Para ello, se han analizado dichos impactos en cuatro ámbitos: ético y profesional, económico, social y medioambiental. Adicionalmente, se debe subrayar el cumplimiento en la totalidad del desarrollo del presente proyecto de la normativa vigente en relación a la Protección de Datos Personales y Garantía de Derechos Digitales [2] y al Reglamento General de Protección de Datos [3], reglamento europeo que entró en vigor en mayo de 2016 y es aplicable desde el 25 de mayo de 2018, momento en que derogó la directiva 94/46/CE. De hecho, el artículo segundo de este último reglamento, en relación con el ámbito de aplicación material del tratamiento de datos, indica expresamente la exclusión de este proyecto de la aplicación de la normativa. En cambio, el uso comercial de este TFG sí se encontraría dentro del ámbito del RGPD, convirtiéndose el aspecto legal en un impacto relevante a considerar. Palabras clave: Inteligencia, Ciberinteligencia, Inteligencia competitiva, Inteligencia empresarial, Inteligencia económica, OSINT, Red Social, Twitter, WhatsApp, Python, tracker, grafo, Maltego, Neo4j, ID, seguidores, seguidos, Objetivo. Códigos UNESCO: Tabla 1. Códigos UNESCO.. Código UNESCO Campo asociado 120323 Lenguajes de Programación 120312 Bancos de Datos 120903 Análisis de Datos 630201 Recogida de Datos de Campo 630204 Métodos de Investigación Social. 8. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(9) Herramientas de Ciberinteligencia Competitiva. ÍNDICE DE CONTENIDO 1.. INTRODUCCIÓN ................................................................................................ 11 1.1.. MARCO DEL PROYECTO ........................................................................ 16. 1.2.. MOTIVACIÓN ............................................................................................. 17. 1.3.. ESTRUCTURA DE LA MEMORIA .......................................................... 18. 2.. METAS DEL PROYECTO ................................................................................. 19. 3.. METODOLOGÍA................................................................................................. 20 3.1.. OBTENCIÓN DEL OBJETIVO ................................................................. 21. 3.2.. APLICACIÓN PARA TWITTER ............................................................... 28 3.2.1 3.2.2 3.2.3 3.2.4. 3.3.. EL SOFTWARE NEO4J............................................................................... 46. 3.4.. APLICACIÓN PARA WHATSAPP ............................................................ 53 3.4.1 3.4.2 3.4.3. 4.. Requisitos de la aplicación ................................................................................ 28 Bases del desarrollo........................................................................................... 30 Obtención de red del Objetivo .......................................................................... 30 Otros módulos desarrollados ............................................................................. 40. Descripción técnica ........................................................................................... 53 Módulos adicionales.......................................................................................... 56 Caso ejemplo ..................................................................................................... 60. RESULTADOS ..................................................................................................... 64 4.1.. RESULTADOS EN CASO PRÁCTICO .................................................... 64 4.1.1 4.1.2 4.1.3. Introducción al caso práctico ............................................................................ 64 Maltego en caso práctico................................................................................... 67 Aplicación Twitter en caso práctico .................................................................. 75. 4.1.3.1 4.1.3.2 4.1.3.3 4.1.3.4. 4.1.4. Neo4J en caso práctico ...................................................................................... 83. 4.1.4.1 4.1.4.2. 4.1.5. 4.2.. Objetivo 1 ............................................................................................................. 83 Objetivo 2 ............................................................................................................. 86. Resultados y líneas futuras ................................................................................ 88. ANÁLISIS DE CASOS REALES ............................................................... 89 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5. 4.3.. Objetivo 1 ............................................................................................................. 76 Objetivo 2 ............................................................................................................. 78 Objetivo 3 ............................................................................................................. 80 Objetivo 4 ............................................................................................................. 81. Caso 1................................................................................................................ 89 Caso 2................................................................................................................ 89 Caso 3................................................................................................................ 90 Caso 4................................................................................................................ 91 Caso 5................................................................................................................ 91. VALORACIÓN DE IMPACTOS ............................................................... 92 4.3.1. Responsabilidad Social ..................................................................................... 92. 4.3.1.1 Contexto del proyecto .......................................................................................... 92 4.3.1.1.1. Ámbito Legislativo .......................................................................................... 93 4.3.1.2 Principales impactos ............................................................................................. 93. Ángel Vergara García. 9.

(10) ÍNDICE DE CONTENIDO 4.3.1.2.1. 4.3.1.2.2. 4.3.1.2.3. 4.3.1.2.4.. 5.. Impacto Ético y Profesional ............................................................................ 94 Impacto Económico ......................................................................................... 95 Impacto Social ................................................................................................. 95 Impacto Medioambiental ................................................................................. 95. CONCLUSIONES Y LÍNEAS DE FUTURO DESARROLLO ....................... 96 5.1.. CONCLUSIONES ........................................................................................ 96. 5.2.. LINEAS DE FUTURO DESARROLLO .................................................... 97. 6.. REFERENCIAS ................................................................................................... 98. 7.. PLANIFICACIÓN TEMPORAL ..................................................................... 102. 8.. 9.. 7.1.. ESTRUCTURA DE DESCOMPOSICIÓN DEL PROYECTO ............. 103. 7.2.. DIAGRAMA DE GANTT.......................................................................... 104. PRESUPUESTO ................................................................................................. 105 8.1.. MATERIAL INFORMÁTICO ................................................................. 105. 8.2.. INFRAESTRUCTURA .............................................................................. 106. 8.3.. MANO DE OBRA ...................................................................................... 107. 8.4.. TOTALES ................................................................................................... 107. ÍNDICE DE FIGURAS ...................................................................................... 108. 10. ÍNDICE DE TABLAS ........................................................................................ 111 11. ACRÓNIMOS ..................................................................................................... 112. 10. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(11) Herramientas de Ciberinteligencia Competitiva. 1.. INTRODUCCIÓN. A continuación, se llevará a cabo un análisis de la presente era de la información, y el surgimiento de ese tan relevante concepto, la inteligencia. La información supone una inmensa fuente de poder, y en la era digital actual, esta afirmación cobra mucho más protagonismo. Sin embargo, la magnitud de la esfera de datos digital es complicada de asimilar, así como de predecir su futura evolución. De hecho, las predicciones llevadas a cabo pocos años atrás por numerosos expertos en la materia distan mucho de las predicciones que se efectúan hoy en día. Esto se plasma en los diversos artículos e informes que se citan a continuación. El artículo del diario El Mundo [4] titulado “¿Cuántos datos se crean al día en Internet?” de febrero de 2011, expone que en agosto de 2010, el por aquel entonces director ejecutivo de Google Eric Schmidt afirmó que la humanidad había creado hasta 2003 una cantidad de 5 exabytes de información. Además añadió que, en 2011, esa cifra se generaría cada dos días. Gordon Moore [5], cofundador de Intel y autor de la Ley de Moore, se percató de que los datos mencionados no eran correctos. Así lo demostró un informe [6] de 2010 de IDC, por sus siglas en inglés International Data Corporation, llamado The Digital Universe Decade – Are You Ready? en el que se obtenía un dato algo inferior al doble del estimado por Schmidt, tal y como refleja la Figura 1.. Figura 1. The Digital Universe 2009-2020. Fuente: [6]. En cambio, atendiendo a fuentes más recientes, se muestran datos muy superiores a los estimados en 2011. Dichas fuentes son, por ejemplo, el libro blanco de IDC [7], patrocinado por la empresa centrada en la innovación del almacenamiento, uso y compartición de datos Seagate, titulado Data Age 2025 The Digitization of the World from Edge to Core. La Figura 2, proveniente de este informe, escrito en noviembre de 2018 ilustra que la esfera de datos global crecerá de 33 zettabytes en 2018 a 175 zettabytes en 2025, estimaciones que, en efecto, son muy superiores a los 35 zettabytes predichos por el informe elaborado por la misma compañía en 2010. Dichas estimaciones vienen. Ángel Vergara García. 11.

(12) INTRODUCCIÓN. reflejadas en la Figura 2. Para cuantificar lo visto con anterioridad, un zettabyte equivale a 1.000 exabytes, que equivalen a 1.000.000.000.000 gigabytes.. Figura 2. Crecimiento anual de la esfera de datos global. Fuente: [7]. En adición con lo anterior, la multinacional Cisco Systems, dedicada a la fabricación, venta, mantenimiento y consultoría de equipos de telecomunicaciones, plasma en la Figura 3 y la Tabla 2 la evolución del tráfico IP global como parte de un informe [8] realizado en febrero de 2019, llegando a una tasa de crecimiento anual compuesto (compound annual growth rate por sus siglas en inglés CAGR) del 26%.. Figura 3. Tráfico IP global anual. Fuente: [8] Tabla 2. Trafico IP global varios años. Fuente: [8]. 12. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(13) Herramientas de Ciberinteligencia Competitiva. Una vez vistas las estimaciones actuales sobre el actual tamaño de la esfera de datos digital, y su posible tamaño futuro, así como su disparidad frente a las estimaciones llevadas a cabo pocos años atrás, cabe preguntarse si dichas estimaciones actuales son realmente fiables o si, en cambio, la futura magnitud de la información disponible online volverá a superar con creces a las estimaciones de los actuales expertos en la materia. Adicionalmente, se hace hincapié en cómo esta magnitud de datos se ve reflejada en las redes sociales, que supondrán una parte considerable del presente proyecto. De hecho, según Marketing Digital [1], en 2018 y cada 60 segundos en el mundo se envían 473.400 mensajes en Twitter, se publican 2.083.333 mensajes en Snapchat, Skype registra 176.220 llamadas y Google ofrece 3.877.140 búsquedas en Internet. En definitiva, la información de la que se dispone en la actualidad es masiva, pero información no implica conocimiento, pues pese a tener semejante cantidad de datos al alcance de la mano, es elemental contar con las herramientas para extraer utilidad de ellos. Es aquí cuando aparece el concepto de inteligencia. La inteligencia consiste en la recolección, evaluación, análisis e interpretación de la información disponible con el fin de transformarla en conocimiento útil para la toma de decisiones con el menor nivel de incertidumbre posible, o para modificar decisiones tomadas con anterioridad. En este ámbito, destaca la figura de Sherman Kent [9], conocido comúnmente como el padre de la inteligencia. Este profesor de historia en la universidad estadounidense de Yale, con amplia experiencia en el campo militar debida a su participación en la Segunda Guerra Mundial y a sus 17 años de servicio en la C.I.A., introdujo el Ciclo de Inteligencia. Se entiende por Ciclo de Inteligencia la secuencia mediante la cual se lleva a cabo esta obtención y tratamiento de la información y su posterior puesta a disposición de los usuarios. Consta de 4 fases [10], tal y como refleja la Figura 4.. Figura 4. Ciclo de Inteligencia. Fuente: [53]. Ángel Vergara García. 13.

(14) INTRODUCCIÓN. 1. Dirección: se establecen las necesidades de inteligencia, diseñando un plan para su obtención y estableciendo tanto los medios como su coordinación, mando y control. 2. Obtención: se efectúa la explotación de las fuentes de información y su entrega al equipo destinado a la elaboración de la misma. 3. Análisis y elaboración: se produce la transformación de la información en inteligencia, mediante un análisis exhaustivo de lo recopilado en la segunda fase evaluando su exactitud, fiabilidad y pertinencia, y su posterior integración con la inteligencia disponible e interpretación del conjunto. 4. Difusión: se distribuye la inteligencia de manera segura. Una vez abordado el concepto de inteligencia, se entiende la ciberinteligencia como la aplicación de la inteligencia en el ciberespacio. La enorme extensión del ciberespacio, así como de otras posibles fuentes de información, lleva a la distinción de diversas disciplinas de recolección de inteligencia. A continuación, se describen algunas de las más relevantes: a. Open Source Intelligence: por sus siglas en inglés, OSINT, hace referencia al conocimiento y explotación de fuentes de acceso público para generar inteligencia. b. Signals Intelligence: por sus siglas en inglés, SIGINT, obtiene información mediante la interceptación de señales. En este tipo de señales se distinguen varias versiones, pasando a hablar de Inteligencia de Comunicaciones o por sus siglas en inglés, COMINT, Communications Intelligence, o señales electrónicas no usadas directamente en comunicaciones, en lo que sería la Inteligencia Electrónica o por sus siglas en inglés, ELINT, Electronic Intelligence. También es posible una combinación de las dos anteriores. c. Human Intelligence: por sus siglas en inglés, HUMINT, consiste en el análisis de las interacciones entre seres humanos. Otras formas actuales de inteligencia son: MASINT (Measurement and Signature Intelligence), IMINT (Image Intelligence), GEOINT (Geospacial Intelligence), etc. La relevancia de la inteligencia se refleja en diversos campos, como se verá a continuación con algunos ejemplos de inversiones multimillonarias orientadas a la inteligencia llevadas a cabo por determinados gobiernos. Un ejemplo lo recoge el diario Aviation International News en su artículo [11] “France Launches New Sigint Aircraft Program” de marzo de 2018, en el cual anuncia la adquisición al fabricante de aeronaves civiles y militares Dassault Aviation, de 3 aviones Epicure Falcon como los mostrados en la Figura 5, para la interceptación de señales (SIGINT) y de comunicaciones (COMINT).. 14. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(15) Herramientas de Ciberinteligencia Competitiva. Figura 5. Dassault Epicure Falcon. Fuente: [54]. Otro ejemplo, en este caso de Measurement and Signature Intelligence (MASINT) es el Boeing WS-135 Constant Phoenix de la Figura 6, avión derivado del Boeing C-135 y empleado por la Fuerza Aérea de los Estados Unidos para recolectar muestras de cara a detectar e identificar explosiones nucleares. Actualmente hay 2 aeronaves de este tipo en servicio activo, pero como refleja el artículo [12] “Air Force to start transforming tankers into WC-135 ‘nuke sniffers’ in FY19 “ del diario Defense News de abril de 2018, la flota se verá incrementada.. Figura 6. WC-135 en base aérea de Eielson, Alaska, tras recoger niveles de contaminación elevados en espacio aéreo internacional. Fuente: [55]. Para reafirmar la importancia actual de la inteligencia, se menciona la entrevista [13] llevada a cabo por el diario The Harvard Gazette en febrero de 2018 a Sir John Sawers, oficial de inteligencia, diplomático y funcionario inglés que fue jefe del Servicio de Inteligencia Secreto M16, cargo que ocupó desde noviembre de 2009 hasta noviembre de 2014. En dicha entrevista, Sawers afirma que ‘el modelo de Bond, si en algún momento fue cierto, está completamente acabado. Ahora, la persona más importante en cualquier servicio de inteligencia es el analista de datos, pues es él quien te dirá de dónde vienen las amenazas, y donde están surgiendo las oportunidades que tú, como un agente de inteligencia, puedes explotar’. Por último, para facilitar la comprensión del presente proyecto conviene definir qué se entiende por Objetivo, siendo éste una persona de especial interés dada su posición en la organización, o su posible influencia sobre la misma. Ángel Vergara García. 15.

(16) INTRODUCCIÓN. 1.1.. MARCO DEL PROYECTO. Antes de enmarcar el presente proyecto en un ámbito de inteligencia, conviene introducir los tipos en los que se puede clasificar la misma. Este Trabajo de Fin de Grado está basado en la INTELIGENCIA COMPETITIVA, es decir, en la aplicación de las actividades de la inteligencia en el ámbito de la empresa para obtener ventajas estudiando el mercado, evaluando a los competidores y su competitividad, encontrando nuevos proveedores potenciales o nuevas oportunidades empresariales. Sin embargo, no es de exclusiva aplicación a un tipo de empresa, pues como dice Gustavo Díaz Matey [14], gestor de inteligencia de negocios en ICEX España Exportaciones e Inversiones y Doctor en Ciencias Políticas por la Universidad Complutense de Madrid: ‘La inteligencia debería ayudar a reducir la incertidumbre inherente en cualquier proceso de toma de decisiones, con independencia de la organización en la que se aplique’. A su vez, Diaz Matey, junto con otros autores, hace una distinción en su libro ‘La Inteligencia Empresarial en España’ [14] la cual se matiza a continuación. Por una parte se encuentra la inteligencia económica, que tiene carácter estatal y por tanto tendrá como fin facilitar el proceso de toma de decisiones de la política económica del Estado. Una definición más detallada de lo anterior es la dada por Garth Hancock, del Instituto de Estudios Internacionales de Monterrey, el cual define inteligencia económica como ‘Información económica estructurada y relevante para el encargado de tomar decisiones políticas o comerciales, incluyendo datos tecnológicos, financieros y económicos, a través de los cuales se pueda mejorar la posición relativa de la economía de un Estado’. Por otra parte, se tiene la inteligencia empresarial o inteligencia estratégica en la empresa, la cual profundiza en el concepto de inteligencia competitiva, no sólo limitando dicha inteligencia a ayudar a las empresas a evaluar amenazas provenientes de los competidores sino también buscando la reducción del riesgo, minimizar la incertidumbre y una correcta comprensión del entorno. Una vez definidos los diversos tipos de inteligencia, se determina el marco de este proyecto. El presente TFG se ha incluido dentro de un caso llevado a cabo por la empresa Tarlogic Security. Por motivos de privacidad, no se pueden desvelar nombres, ni de personas ni de empresas, vinculadas al mismo. En el caso en cuestión, una empresa a la cual se denominará ‘A’ para clarificar la situación, contactó con Tarlogic Security pues tenía serias sospechas de la existencia de una fuga de información por parte de alguno o algunos de sus empleados. Estas sospechas eran debidas a que varios socios actuales de una nueva empresa, que se designa como ‘B’, habían trabajado durante años para A, con lo que podían existir vínculos con empleados actuales de A y los fundadores de B provenientes de A. Las sospechas se consolidaron pues B se había introducido con fuerza en el mercado, y a pesar de su reciente creación licitaba proyectos de gran envergadura para lo que aplicaba conocimientos de gestión y procedimientos muy similares a los de A.. 16. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(17) Herramientas de Ciberinteligencia Competitiva. Así, se inició una investigación para identificar posibles relaciones, haciendo hincapié en la trayectoria de los fundadores de B y sujetos de especial relevancia que aún eran trabajadores en A. Se emplearon diversas fuentes, así como redes sociales importantes a nivel laboral, como son LinkedIn, Twitter, Facebook, etc. Es en este punto donde se hizo notable la necesidad de una cierta automatización de este proceso de búsqueda a través de redes sociales, para lo cual se requería del diseño de un programa que facilitase la labor, siendo aquí donde se ubica el presente TFG. 1.2.. MOTIVACIÓN. Hoy en día, la globalización ha hecho que el mundo sea mucho más pequeño, creando un único mercado global acompañado de una compleja situación económica centrada en la competitividad. Por ello, las empresas han centrado sus metas en no sólo competir, sino en competir mejor. Así lo recoge el ICEX España Exportación e Inversiónes en su Plan Estratégico 2017-2018 [15] en el cual define como su misión ‘Impulsar de forma eficiente la proyección internacional de las empresas españolas para contribuir a su competitividad’. Por tanto, el uso de la inteligencia competitiva para una empresa supone una considerable ventaja pues permite: a. Identificar potenciales amenazas del entorno. b. Aprovechar las oportunidades que brinda el mercado. c. Anticiparse a cambios, y por consiguiente desarrollar productos que den respuesta a necesidades futuras. En definitiva mejorar la capacidad de reacción. d. Conocer las necesidades de los clientes. e. Aliarse con socios estratégicos. f. Minimizar la incertidumbre en la toma de decisiones. g. Vigilar a los competidores. h. Etc. Por todo ello, supone una motivación poder realizar este Trabajo de Fin de Grado sobre una realidad de vital importancia que en España es relativamente pionera, y que, sin embargo, hay constancia histórica de que la inteligencia en el ámbito de la empresa ya se realizaba incluso en el siglo XVI.. Ángel Vergara García. 17.

(18) INTRODUCCIÓN. 1.3.. ESTRUCTURA DE LA MEMORIA. El contenido de la memoria se ha dividido en las siguientes secciones: 1. Introducción Se introducen los conceptos de inteligencia y sus tipos, así como el marco del proyecto y la motivación para su realización. 2. Metas del Proyecto Se reflejan las metas generales, así como un listado de metas específicas para el proyecto. 3. Metodología Descripción técnica y teórica de los cuatro bloques en los que se divide la investigación: Maltego, Twitter, Neo4j, WhatsApp. 4. Resultados Aplicación de los tres primeros bloques anteriores a un caso real, centrándolo en la organización multinacional Atos y en su participación en los Juegos Olímpicos. Exposición de la utilidad del cuarto bloque aún no llevado a un plano práctico, con varias aplicaciones reales facilitadas por la empresa colaboradora Tarlogic Security. Análisis de los principales impactos, en los ámbitos ético y profesional, económico, social y medioambiental del proyecto. 5. Conclusiones y Líneas de Futuro Desarrollo Evaluación del cumplimiento de cada una de las metas establecidas para el proyecto. Análisis de Líneas de Futuro Desarrollo incluyendo algunas limitaciones halladas en la elaboración del proyecto, así como posibles ampliaciones a realizar.. 18. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(19) Herramientas de Ciberinteligencia Competitiva. 2.. METAS DEL PROYECTO. La meta general, que ha sido también la principal motivación para realizar el presente Trabajo de Fin de Grado, es la aplicación práctica de un concepto relativamente nuevo y novedoso como es la inteligencia, puesto que no se ha encontrado constancia en la Escuela de la existencia de otros proyectos sobre el tema, pero que a su vez es un concepto de vital importancia y cada vez más empleado por no solo empresas u organizaciones, sino también gobiernos de multitud de naciones. Por supuesto, la consecución de una herramienta exhaustiva de investigación debe hacerse siempre desde el cumplimiento de la normativa vigente en relación a la Protección de Datos Personales y Garantía de Derechos Digitales [2] y al Reglamento General de Protección de Datos [3], reglamento europeo que entró en vigor en mayo de 2016 y es aplicable desde el 25 de mayo de 2018, momento en que se derogó la directiva 94/46/CE. Las metas específicas de este trabajo son las siguientes: 1. El análisis de los conceptos de Inteligencia e Inteligencia Competitiva, así como las principales ventajas y ejemplos de su aplicación. En particular para este proyecto, orientado a la Inteligencia Empresarial. 2. El estudio de cómo llevar a a cabo el análisis de una empresa para la obtención, en este caso, de personas de especial interés. Para éste propósito, se usará el software Maltego CE de Paterva. 3. El desarrollo de una aplicación basada en el lenguaje de programación Python para obtener mediante la API de la red social Twitter usuarios relacionados con las personas de interés obtenidas. 4. La obtención de un grafo con los datos obtenidos anteriormente mediante la aplicación Neo4j para determinar la red de contactos de las personas de interés y así poder extraer otras potenciales personas de interés. 5. El desarrollo y uso de una aplicación para monitorizar la actividad de Whatsapp de las personas de interés obtenidas, así como el tratamiento de los datos sobre conexiones registradas. 6. La aplicación del procedimiento visto en las metas 2, 3 y 4 a un caso real para poder definir una serie de lineas de actuación basadas en la información adquirida. 7. La aplicación en casos reales de la herramienta indicada en la meta 5.. Ángel Vergara García. 19.

(20) METODOLOGÍA. 3.. METODOLOGÍA. Se subraya de nuevo el cumplimiento en la totalidad del desarrollo del presente proyecto de la normativa vigente en relación a la Protección de Datos Personales y Garantía de Derechos Digitales [2] y al Reglamento General de Protección de Datos [3], reglamento europeo que entró en vigor en mayo de 2016 y es aplicable desde el 25 de mayo de 2018, momento en que derogó la directiva 94/46/CE. Sin embargo, se destaca que el RGPD no ha derogado la anterior LOPD (Ley Orgánica de Protección de Datos) y su reglamento de desarrollo. Simplemente va desplazando esta en la medida en que resulte incompatible con él. Siempre que dicha incompatibilidad no se produzca, ambas normativas coexisten, lo que hace compleja su interpretación y aplicación práctica sin el asesoramiento jurídico correspondiente. No obstante, la actividad desarrollada en el presente TFG está dentro de los límites establecidos en dicha norma. El incumplimiento de la norma puede dar lugar a importantes sanciones, pudiendo llegar a los 20 millones de euros, o el 4% de la facturación global anual [16].. 20. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(21) Herramientas de Ciberinteligencia Competitiva. 3.1.. OBTENCIÓN DEL OBJETIVO. En esta sección, una vez definida la empresa u organización de interés, se analiza su estructura interna, utilizando la mayor de las fuentes de información de la que se dispone en la actualidad para generar inteligencia, y más aún con el masivo crecimiento que sufre internet día a día ya visto en la introducción, OSINT (Open Source Intelligence). Así, se analizarán las redes sociales, páginas webs vinculadas con la empresa en cuestión u otras webs para acotar el estudio y obtener un grafo que permita identificar las principales personas de interés ligadas a la compañía. Para ello, se empleará el software Maltego (a partir de ahora referido como Maltego), software de Paterva orientado a OSINT, es decir, a la explotación de información de fuentes abiertas. Permite analizar personas, cuentas de la red social Twitter (a partir de ahora referida como Twitter), compañías o dominios, entre otros, gráficamente, lo cual facilita su posterior tratamiento. La razón de utilizar la mencionada herramienta es la simplicidad de su uso, además de las numerosas transformaciones automatizadas con las que cuenta, que se muestran a continuación. Sin embargo, se estudió el uso de software alternativo, como el software de visualización y manejo de grandes grafos de redes Gephi, pero se decidió el uso de la primera por el motivo ya comentado, así como la recomendación por parte del equipo de ciberinteligencia de Tarlogic Security en base a la experiencia en su uso. Para ejemplificar lo anterior, y mostrar el potencial de la seleccionada aplicación, se verán algunas transformaciones de especial interés. Las transformaciones en que se basa Maltego son aplicables a numerosos tipos de entidad. En primer lugar, se pueden aplicar transformaciones a personas bajo seguimiento, introduciendo por tanto en el actual proyecto una entidad tipo persona. Además, entrando en dicha entidad es posible definir su nombre y apellidos, o incluso añadir alguna fotografía del Objetivo en cuestión o notas sobre el mismo, como refleja la Figura 7.. Ángel Vergara García. 21.

(22) METODOLOGÍA. Figura 7. Definición de la entidad en Maltego.. La entidad por tanto ya ha sido definida, para la cual se ha tomado, por motivos de privacidad obvios, un nombre genérico y relativamente común como es John Smith. Una vez definida, se puede acceder a las transformaciones asociadas a dicha entidad, y en el caso de una entidad tipo persona, son las mostradas en la Figura 8.. 22. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(23) Herramientas de Ciberinteligencia Competitiva. Figura 8. Transformaciones de la entidad tipo persona.. Algunas transformaciones que facilita Maltego están reservadas para la versión de pago de la misma. Sin embargo, proporcionando las credenciales de autenticación como desarrollador de Twitter, la transformación To Twitter Affiliation de la Figura 9 es gratuita. Si se efectúa dicha transformación, la aplicación devuelve cuentas de Twitter asociadas al nombre de la entidad, lo cual será de gran utilidad para el presente proyecto.. Figura 9. Transformación de To Twitter Affiliation.. Ángel Vergara García. 23.

(24) METODOLOGÍA. En efecto, se obtienen las 12 primeras cuentas asociadas al nombre John Smith, debido a la limitación con la que cuenta la Community Edition de Maltego. Así pues, el análisis de la compañía que se llevará a cabo, como se ha mencionado al inicio de la sección, se obtendrá a partir de una primera parte de investigación y obtención de información de la empresa, buscando relaciones entre empleados de tipo académico o laboral, tanto en el momento presente como en algún momento pasado. Estas relaciones se introducirán en Maltego de manera manual, obteniendo una primera aproximación, la cual permite localizar personas de especial interés, o con un numero considerable de conexiones en la empresa. Posteriormente, se llevará a cabo la transformación To Twitter Affiliation ya vista, con la cual, con un posterior filtrado de los resultados mostrados, se procede a la segunda parte de la investigación, con la aplicación basada en Twitter. Se ejemplifica lo anterior en la Figura 10 con un caso ficticio, introduciendo una nueva entidad de tipo compañía, e implementando entidades tipo persona con las relaciones encontradas a través de, por ejemplo, LinkedIn, noticias, o la web de la empresa.. Figura 10. Grafo de compañía ficticia.. 24. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(25) Herramientas de Ciberinteligencia Competitiva. Como muestra el grafo, se ha diseñado una compañía ejemplo con un esquema relativamente común, con un CEO llamado John Smith, el cual está a la cabeza de un comité de dirección formado por tres directivos, Álvaro, Jason y Ana. A su vez, tienen a su cargo a tres, dos y un empleado, respectivamente. Además, se ha descubierto que Álvaro y John, el CEO, estudiaron en la Escuela Técnica Superior de Ingenieros Industriales durante la misma época. Por otra parte, tanto John, como dos empleados a cargo de Jason, trabajaron en una empresa ficticia la cual ha sido designada como EmpFic, también en la misma época, con lo que probablemente tuvieron cierta relación en ese momento. Maltego permite además una gran variedad de opciones de visualización, para facilitar el manejo de datos. A continuación, la Figura 11 muestra las principales disposiciones posibles.. Figura 11. Opciones de visualización.. Ángel Vergara García. 25.

(26) METODOLOGÍA. A la hora de analizar el grafo para identificar a las principales personas de interés, que serán los Objetivos, no es necesario ``a ojo´´ o contando relaciones, pues Maltego incorpora varias opciones de visualización. La primera de ellas, es la denominada en la documentación de Paterva [17] como diverse decent, mostrada en la Figura 12. Esta visualización asigna un tamaño a los nodos directamente proporcional al número de relaciones entrantes de los mismos. Sin embargo, otorga un mayor peso a aquellos nodos que provengan de antecesores distintos.. Figura 12. Visualización con diverse decent representativos.. Este tipo de visualización supone una aproximación notablemente interesante a la organización, al no centrarse solo en un número de relaciones sino también en la diversidad de la procedencia de esas relaciones. Así, se pueden evitar interpretaciones erróneas, pues a simple vista en la visualización inicial podría parecer que Álvaro López cuenta con numerosas relaciones, cuando la realidad es que los principales nodos son John Smith, Javier Rodríguez y Jorge Sánchez. Otras opciones más básicas de. 26. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(27) Herramientas de Ciberinteligencia Competitiva. visualización que no se analizarán son las basadas estrictamente en número de relaciones, ya sean entrantes o salientes. Por último, una vez identificados los Objetivos, se ejecuta la transformación para obtener los perfiles de Twitter asociados a dichos nombres, resultando así el grafo de la Figura 13.. Figura 13. Ejecución de transformación a grafo final.. Finalmente, será necesario filtrar los resultados obtenidos para determinar el perfil real de cada Objetivo, que es indispensable para el siguiente bloque de investigación.. Ángel Vergara García. 27.

(28) METODOLOGÍA. 3.2.. APLICACIÓN PARA TWITTER. En esta sección, se analizará en detalle el desarrollo en el lenguaje de programación Python (a partir de ahora referido como Python) vinculado a la red social Twitter, así como los requisitos que requerirá dicho desarrollo. 3.2.1 Requisitos de la aplicación En las tablas del 3 al 9 se resumen los principales requisitos de la aplicación, que se han dividido en cuatro subgrupos: de usuario, hardware, de portabilidad y funcionales. Tabla 3. Requisito de Interfaz de Usuario 1.. Tabla 4. Requisito de Interfaz Hardware 1.. Tabla 5. Requisito de Interfaz Hardware 2.. Tabla 6. Requisito de Portabilidad 1.. 28. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(29) Herramientas de Ciberinteligencia Competitiva. Tabla 7. Requisito de Portabilidad 2.. Tabla 8. Requisito de Portabilidad 3.. Tabla 9. Requisito Funcional 1.. Ángel Vergara García. 29.

(30) METODOLOGÍA. 3.2.2 Bases del desarrollo La aplicación orientada a Twitter se ha basado en el uso de la API de Twitter, la cual ofrece tres niveles de uso [18], según las necesidades de la aplicación: 1. Standard API: permite un uso relativamente amplio, pero con notables limitaciones. Es gratuito. 2. Premium API: aumenta los horizontes del anterior nivel permitiendo acceso a mayores bases de datos. 3. Enterprise API: el máximo nivel posible de acceso. Ofrece además account managers dedicados y soporte técnico. Para el presente proyecto, se ha empleado el nivel básico y gratuito, la Standard API. Por otra parte, Twitter requiere para el uso de la API unas credenciales de acceso que se proporcionan únicamente a perfiles acreditados como de desarrollador, para lo cual se solicitó dicha acreditación indicando los fines de la aplicación que se iba a desarrollar, que estaría enfocada a investigación. Contando ya con las credenciales de acceso para la autentificación necesaria para el uso de la API, se ha empleado la librería de Python Tweepy [19] para el acceso a la API de Twitter. Una vez vista la base sobre la cual se construirá el desarrollo orientado a Twitter, se subraya que dicho desarrollo se centra en dos pilares fundamentales. Por una parte, se encuentra el desarrollo puramente basado en Twitter, con la extracción de datos de interés siguiendo varios desarrollos en Python por medio de la librería Tweepy. Por otra parte, destaca la vinculación de estos datos con Neo4j [20], una base de datos orientada a grafos. 3.2.3 Obtención de red del Objetivo El script de Twitter se basa en un módulo principal, el cual se encarga de extraer la red completa de relaciones del perfil facilitado. Es decir, extrae los seguidores, seguidores y seguidos de esos seguidores, seguidos, seguidores y seguidos de esos seguidos, de la cuenta del Objetivo, resultando la red mostrada en la Figura 14.. 30. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(31) Herramientas de Ciberinteligencia Competitiva. Figura 14. Esquema red a extraer del Objetivo.. Sin embargo, la API de Twitter no permite acceso sin límites a los datos de la red social [21], pues establece un Rate Limiting, el cual divide en dos bloques: solicitudes POST, relacionadas con publicar en la red social, o solicitudes GET, relacionadas con extraer información de esta red social. El presente caso está vinculado al segundo grupo de solicitudes, las solicitudes GET, las cuales Twitter limita en una ventana de 15 minutos a entre 15 y 900 solicitudes o requests por ventana temporal, en función de la solicitud en cuestión. Como consecuencia de lo anterior, se ha tenido que modificar el código para de alguna manera ‘evitar’ este límite y conseguir extraer todos los datos requeridos de la red social, como se plasma en extractos de código a continuación. En primer lugar, es vital la autenticación de la Figura 15 que permite el acceso a la API de Twitter. Para ello, se importa la librería ya mencionada Tweepy, y las credenciales de acceso, las cuales no se reflejan en el extracto mostrado por motivos de privacidad. Así, llamando a la clase TwitterClient(), la cual comprueba las credenciales de acceso mediante la clase TwitterAuthenticator(), devuelve a su vez con la llamada a la función get_twitter_client_api() el cliente necesario para el acceso a la API.. Ángel Vergara García. 31.

(32) METODOLOGÍA. Figura 15. Código de autenticación.. Una vez realizada la autenticación, se ha llevado a cabo la definición de dos grandes funciones, para obtener todos los seguidores y seguidos de un perfil dado. Para este propósito, Tweepy ofrece dos funciones [22], que son followers_ids y friends_ids. Ambas funciones reciben un parámetro para identificar el perfil del Objetivo, al cual se le puede facilitar tanto el ID vinculado a la cuenta, como el screen_name o nombre de usuario, y devuelven una lista que contiene los ID de los usuarios que siguen o seguidos por la cuenta del Objetivo, respectivamente. En la elaboración del código relacionado con las mencionadas funciones, han surgido diversos problemas que se describen a continuación: 1. Obtención de tweepy.TweepError: excepción llevada a cabo por la librería Tweepy por diversas razones, pero que debido al código de error 179 obtenido [23], se trata de una solicitud no autorizada debido a que el dueño de la cuenta ha protegido sus tweets. Así, tal y como se muestra en la Figura 16 y Figura 17, se ha evitado dicha excepción asignando a cuentas protegidas un único seguidor o seguido con ID no existente en la red social 0000. De esta manera, las cuentas a las que no se permite el acceso están identificadas con ese ID. 2. Retorno de máximo de seguidores o seguidos en 5.000: tras considerar las excepciones del rate limit y la excepción vista en el punto 1, se logró que el código operase con normalidad, llegando a su finalización. Sin embargo, en el posterior análisis de los resultados obtenidos, se observó que ninguna cuenta contaba con más de 5.000 seguidores ni seguidos, hecho cuanto menos sospechoso. Así, se descubrió que no solo hay un rate limit como límite de solicitudes cada 15 32. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(33) Herramientas de Ciberinteligencia Competitiva. minutos, sino que también figura un límite para una misma solicitud, que en el caso de las funciones followers_ids y friends_ids es de 5.000 resultados por solicitud. Por ello, cuando un usuario tenía más de 5.000 seguidores o seguidos, se llegaba a este límite con lo que el script finalizaba el análisis del usuario en cuestión, ignorando un gran número de perfiles de manera errónea. Esto se corrigió con la implementación de otro parámetro con el que cuentan las funciones usadas, Cursor, el cual permite la paginación y así recorrer perfiles completos sin ninguna complicación. Tras solucionar la primera limitación, se planteó el código de la Figura 16 y Figura 17. En dicho código, se inicializan las funciones de autenticación ya comentadas, teniendo el Objetivo una cuenta personal con nombre de usuario @angelvergarata1. Se buscará pues, la extracción de cuatro listas, dos de las cuales contienen los seguidores y seguidos de la cuenta Objetivo, y las dos restantes contienen a su vez, en el índice correspondiente a cada seguidor y seguido, una lista con todos los seguidores o seguidos de los mismos. En esta primera aproximación, se ejecuta el script hasta que salta el rate limit por parte de la API de Twitter, momento a partir del cual se para la ejecución durante 15 minutos y 15 segundos, de manera que ya se habría entrado en la próxima ventana de solicitudes.. Figura 16. Primera aproximación de extracción de seguidores.. Ángel Vergara García. 33.

(34) METODOLOGÍA. Figura 17. Primera aproximación de extracción de seguidos.. Finalmente, se crean a su vez cuatro archivos en formato json con el código de la Figura 18, para que en la futura utilización de los datos obtenidos no se requiera una petición a la API de Twitter con el retraso considerable que esto supone al tener que ‘evitar’ el rate limit, y se puedan obtener desde local de manera inmediata.. Figura 18. Volcado de datos en ficheros.. Es en el posterior análisis de los mencionados archivos cuando se hizo notable el fallo oculto que se estaba arrastrando comentado en el punto 2, pues un gran número de seguidores y/o seguidos contaban con exactamente esos 5.000 seguidores. Así, se hizo uso de ese elemento de paginación facilitado por la librería Tweepy, incorporándolo al código ya existente como muestra la Figura 19.. 34. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(35) Herramientas de Ciberinteligencia Competitiva. Figura 19. Segunda aproximación de extracción de seguidos.. Sin embargo, esto no supuso la solución definitiva: 3. En esos casos de cuentas de tamaños intermedios de aproximadamente 5.00075.000 seguidores o seguidos, daba un resultado adecuado, pero en cuentas de tamaño superior, con alrededor de 100.000 seguidores, esa estructura de código planteada es errónea. Esto se debe a una tercera limitación de Twitter, en la cual, a partir de 15 páginas recorridas, es decir, 15*5.000 usuarios por página, 75.000 usuarios devueltos, Twitter devolvía de nuevo un Rate Limit Error. Así, para solucionar este supuesto, se planteó el código definitivo de la Figura 20 y la Figura 21. En estos extractos, se pausa la ejecución del script después de la obtención de cada página de resultados durante 61s, logrando así que nunca se alcance ese nuevo rate limit que se estaba obteniendo, debido que a esos 75.000 seguidores se llegaría tras 15 páginas de resultados, es decir tras 15*61s = 15 minutos y 15 segundos, luego ya figuraría dentro de la siguiente ventana de solicitudes.. Ángel Vergara García. 35.

(36) METODOLOGÍA. Figura 20. Código definitivo de obtención de seguidos.. Figura 21. Código definitivo de obtención de seguidores.. Finalmente, tras comprobar la correcta ejecución del anterior código con algunas cuentas de Objetivos, se hizo notable el tiempo requerido para algunas cuentas. A modo de ejemplo, en el análisis de una de las cuentas vinculadas al Objetivo que se obtendrán en el epígrafe 4.1.2, @gillesat, se observó que pese a ser una cuenta relativamente pequeña, con 32 seguidos y 7 seguidores, el tiempo de ejecución para la extracción de los seguidos, seguidores, seguidos de seguidos y seguidores de seguidores superaba la semana con alrededor de 200 horas de ejecución. Se inspeccionó el código en busca de fallos, pero se descubrió que el único fallo era la limitación impuesta por Twitter, pues pese a haber implementado métodos al codificar para burlar dicha limitación, para una cuenta como 36. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(37) Herramientas de Ciberinteligencia Competitiva. @BBCWorld a la cual seguía el Objetivo mencionado, con 25.2 millones de seguidores, el tiempo de extracción de únicamente esos seguidores es: 𝑇 = 25.200.000 (𝑠𝑒𝑔𝑢𝑖𝑑𝑜𝑟𝑒𝑠) 𝑥. 1𝑣𝑒𝑛𝑡𝑎𝑛𝑎𝑅𝑎𝑡𝑒𝐿𝑖𝑚𝑖𝑡 15 𝑚𝑖𝑛𝑢𝑡𝑜𝑠 1ℎ𝑜𝑟𝑎 𝑥 𝑥 75.000 𝑢𝑠𝑢𝑎𝑟𝑖𝑜𝑠(15 𝑝á𝑔𝑖𝑛𝑎𝑠 𝐶𝑢𝑟𝑠𝑜𝑟) 1 𝑣𝑒𝑛𝑡𝑎𝑛𝑎𝑅𝑎𝑡𝑒𝐿𝑖𝑚𝑖𝑡 60𝑚𝑖𝑛𝑢𝑡𝑜𝑠. El cálculo previo equivale a 84 horas, es decir, 3 días y 12 horas de ejecución de código para obtener los seguidores de un único perfil, lo cual es claramente inviable. Así pues, se ha decidido limitar la obtención de información mediante Cursor a una página de resultados, con la modificación mostrada en la Figura 22.. Figura 22. Limitación voluntaria cursor.. De esta manera, se obtienen como máximo 5.000 seguidores o 5.000 seguidos, lo cual permite extraer los seguidores o seguidos de varias cuentas en una misma ventana temporal de solicitudes. En referencia al efecto que puede tener esta decisión sobre los resultados prácticos buscados en el análisis de Objetivos es mínima. Esto se debe a que el fin principal del desarrollo de la API de Twitter que se ha efectuado en el presente proyecto es obtener potenciales perfiles con conexiones interesantes o destacadas con el Objetivo (se verá más adelante cuanto se introduzca el software Neo4j). Por ello, como los perfiles con grandes números de seguidores y seguidos suelen pertenecer a grandes organizaciones o famosos, no son el principal enfoque de la investigación con lo que no se necesita analizar la totalidad de su red de conexiones en Twitter. En adición a la limitación anterior, esta reducción temporal en el tiempo de ejecución conduce a la posibilidad de hacer algo más exhaustiva la investigación, obteniendo de cada seguidor del Objetivo no solo sus seguidores, sino también sus seguidos, y de cada seguido por el Objetivo, no solo sus seguidos, sino también sus seguidores. Esta extensión de la aplicación se muestra en la Figura 23.. Ángel Vergara García. 37.

(38) METODOLOGÍA. Figura 23. Extensión para obtener red completa.. En el código mostrado, se introduce manualmente el usuario asociado al Objetivo, y se hacen llamadas a las funciones ya vistas para la obtención de seguidores y seguidos. Se hace uso de seis listas para un mismo Objetivo, que hacen referencia a: 1. Seguidores_id: lista con los ID de Twitter de todos los seguidores del Objetivo. 2. Seguidores_sub_seguidores_id: lista que tiene en cada posición una lista con los ID de los seguidores de cada seguidor del Objetivo. 3. Seguidores_sub_seguidos_id: lista que tiene en cada posición una lista con los ID de los seguidos por cada seguidor del Objetivo. 4. Seguidos_id: lista con los ID de Twitter de todos los seguidos del Objetivo. 5. Seguidos_sub_seguidores_id: lista que tiene en cada posición una lista con los ID de los seguidores de cada seguido por el Objetivo. 6. Seguidos_sub_seguidos_id: lista que tiene en cada posición una lista con los ID de los seguidos por cada seguido por el Objetivo. Por último, se efectuará el volcado a ficheros json que ya se ha visto anteriormente, tal y como refleja la Figura 24.. 38. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(39) Herramientas de Ciberinteligencia Competitiva. Figura 24. Volcado de datos en ficheros.. Se ejemplifica el contenido de las listas anteriormente mencionadas con un ejemplo con un total de 15 cuentas, con un Objetivo con nombre A que cuenta con dos seguidores (C y E) y tres seguidos (B, C y D). A su vez, estas cuentas asociadas a letras tendrán sus respectivos seguidos y seguidores, también mostrados en el grafo ficticio de la Figura 25.. Figura 25. Relaciones Twitter caso ficticio.. Siguiendo con el esquema anterior, la declaración de las listas sería la codificada en la Figura 26.. Figura 26. Codificación de listas de datos en caso ficticio.. Una vista más clara de la codificación anterior es la que refleja la Tabla 10. Ángel Vergara García. 39.

(40) METODOLOGÍA. Tabla 10. Representación esquemática de la codificación de listas de datos.. 3.2.4 Otros módulos desarrollados Más allá del desarrollo principal ya visto, se han desarrollado diferentes módulos para obtener determinados datos o visualizaciones de cuentas particulares. La utilidad de esto es notoria cuando, tras el análisis en Neo4j que figurará a continuación, se obtiene algún ID relevante del cual se desconoce absolutamente todo salvo ese ID. Puesto que los mencionados desarrollos se basan en manejos de dataframe, así como opciones de visualización, será necesario introducir tres librerías disponibles en Python para el correcto funcionamiento del código: 1. MatplotLib: se trata de una librería de trazado 2D de Python [24] que permite la generación de gráficos, así como su edición. 2. Numpy: es un paquete descrito por los desarrolladores de éste [25] como ‘fundamental para la computación científica con Python’. El uso particular en el presente proyecto será de generación de vectores para su posterior introducción en dataframes. 3. Pandas: es una importante librería introducida en su documentación [26] como ‘Python Data Analysis Library’, la cual facilita la implementación de estructuras de datos y su análisis con el lenguaje de programación Python. El primero de estos módulos Python supone una visualización parcial de datos relacionados con la cuenta proporcionada, además de la generación de una gráfica que refleja temporalmente los likes obtenidos por la cuenta del Objetivo, lo cual puede ser de interés para registrar periodos de mayor o menor actividad. Por tanto, tras la necesaria definición de las funciones de autenticación de las credenciales de desarrollador para el acceso a la API de Twitter vistas en la Figura 15, se implementan tres funciones principales.. 40. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(41) Herramientas de Ciberinteligencia Competitiva. La primera función, Figura 27, extrae los principales datos del usuario indicado. La segunda función, Figura 28, extrae los últimos 200 tweets de dicho usuario. Ambas funciones realizan la correspondiente llamada a las funciones de autenticación mencionadas.. Figura 27. Extracción de datos de cuenta del Objetivo.. Figura 28. Función para la extracción de tweets.. La tercera función, Figura 29, permite la introducción de los datos a un dataframe para su posterior manejo, obteniendo diversos datos del perfil vinculado al Objetivo.. Figura 29. Creación de dataframe.. Por último, la Figura 30 genera el grafo que muestra por pantalla la evolución de los likes asociados a la cuenta con la componente temporal en el eje de abscisas.. Ángel Vergara García. 41.

(42) METODOLOGÍA. Figura 30. Creación del grafo.. Pese a la simplicidad del código mostrado, se ha decidido crear una interfaz adecuada para la visualización del mismo, para lo cual se ha empleado una herramienta de diseño de interfaces gráficas de usuario incluida en el software de desarrollo Qt [27] llamada QtDesigner [28]. El resultado es el mostrado en la Figura 31, y permite la búsqueda de un determinado perfil a través de su número ID o de su nombre de usuario.. Figura 31. Interfaz gráfica 1.. Así, la interfaz se ha codificado de manera que la introducción de una cuenta no existente genera un error legible impidiendo la selección del botón para mostrar los resultados, como en la Figura 32, o la introducción de una cuenta válida como en la Figura 33, permite la opción de mostrar los resultados.. Figura 32. Búsqueda de usuario no válido en Interfaz Gráfica 1.. 42. Escuela Técnica Superior de Ingenieros Industriales (UPM).

(43) Herramientas de Ciberinteligencia Competitiva. Figura 33. Búsqueda de usuario válido en Interfaz Gráfica 1.. En el caso de la Figura 33, el botón mostrar se encuentra en estado activo, con lo que si se pulsa, se mostrarán los datos de la cuenta como refleja la Figura 34, y se generará el gráfico de la Figura 35 con la evolución temporal de los likes de los últimos 200 tweets de la cuenta del Objetivo.. Figura 34. Muestra de datos de Interfaz Gráfica 1.. Figura 35. Gráfico generado por Interfaz Gráfica 1.. Ángel Vergara García. 43.

(44) METODOLOGÍA. La segunda interfaz creada es una adición a la ya comentada, pues se centra en la obtención de datos de los usuarios y muestra además un listado de los últimos tweets. Por ello, se ha creado una función adicional definida en la Figura 36, que crea un nuevo dataframe que aparece en la interfaz, reflejando no solo los últimos tweets, sino además su fecha de publicación y el dispositivo desde el que se realizó dicha publicación.. Figura 36. Función para extracción de tweets y datos vinculados.. Así, se genera la interfaz gráfica de la Figura 37, que resulta similar a la ya evaluada de la Figura 31, con la adición de ese cuadro que recoge los tweets junto con sus datos.. Figura 37. Interfaz Gráfica 2.. Cuenta, al igual que la Interfaz Gráfica 1, con esa seguridad de inhabilitar la opción de mostrar resultados en caso de que el usuario no sea válido, y en caso de que el usuario introducido sea válido, el pulsado del botón ‘mostrar’ generaría lo que refleja la Figura 38. 44. Escuela Técnica Superior de Ingenieros Industriales (UPM).

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)