Solución al reto BBVA Contigo, Hack BBVA 2021

Overview

Solution

  • Solución propuesta para el reto BBVA Contigo del Hackathon BBVA 2021. Equipo Mexdapy. Integrantes:
    • David Pedroza Segoviano
    • Regina Priscila Badillo
    • Zaid de Anda Mariscal
    • Gabriel Missael Barco

Descripción

flow

Nuestro proyecto realizará escucha activa por batches diarios o semanales (A definir) de opiniones en Twitter. Se escuchará en 5 regiones geográficas diferentes:

  • España
  • México
  • Perú
  • Argentina
  • Colombia.

Se obtendrán los tweets usando la API de Twitter por medio de Tweepy (Librería de Python) usando consultas con palabras claves de las 4 prioridades estratégicas de BBVA:

  • Mejorar la salud financiera de los clientes.
  • Ayudar a los clientes hacia un futuro sostenible.
  • Crecer en clientes.
  • Buscar la excelentica operativa.

geolisten

Posterior a la recolección por zona y prioridad, se analizarán los Tweets usando modelos pre-entrenados de Natural Lenguaje Processing para identificar clusters (conjuntos) de tweets con temas e ideas similares (similitud semántica). Luego, se realizará análisis de sentimientos, extracción de palabras clave de cada conjunto, esto lo puede ver de manera sintetizada en el flowchart anexado.

Finalmente, utilizando las palabras clave y el sentimiento asociado a cada conjunto, se generará una oración, idealmente en forma de sugerencia, que resuma el contenido del conjunto.

Recursos de apoyo:

Análisis de tweets.

Todo el análisis se usa utilizando Python y múltiples librerías (ver requirements.txt en el repositorio). La representación gráfica del pipeline completo de recolección y análisis de tweets se encuentra en la carpeta de drive, con el nombre de "Solution pipeline.png". El proceso es el siguiente:

  1. Recolectamos tweets usando Tweepy, por zona geográfica en los 5 países de interés. Para esto, se especifica un centro con coordenadas y un radio, tal que se recolectan tweets de dicho circulo (que incluye al país en cuestión y a sus vecinos). Para obtener los tweets, se generan querys diferentes para cada una de las 4 prioridades, y esto se hace con palabras clave relacionadas con dicha prioridad. Por ejemplo, para la prioridad de salud financiera, se buscan palabras clave como "ahorro" e "inversión. Se recolectan un total de 5000 tweets por país y prioridad, obteniendo un total de 20 datasets de 5000 tweets cada uno.
  2. Realizamos clustering dentro de cada uno de estos 20 datasets para obtener los temas de los que se habla, para esto:
    1. Creamos embeddings de los tweets, esto es, pasamos cada tweet a un punto en el espacio. En particular, usamos un modelo pre-entrenado llamado Siamese BERT-Network, distiluse-base-multilingual-cased-v2, que pasa cada tweet a un punto en el espacio de 512 dimensiones. Esto tiene la propiedad de que los puntos cercanos (tweets) hablan de temas similares, y los puntos lejanos de temas diferentes.
    2. Aplicamos una técnica de reducción de dimensionalidad de los datos ya que 512 son demasiadas dimensiones para varias técnicas de clustering (particularmente de la que usamos). Para esto, usamos UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction, un algoritmo de clustering eficiente y que preserva las características de los datos de manera eficiente. Reducimos a 15 dimensiones.
    3. Finalmente, aplicamos un algoritmo de clustering sobre estos puntos para obtener grupos de tweets que hablen de lo mismo y/o de manera similar. Para esto, usamos HDBSCAN: Hierarchical density-based spatial clustering of applications with noise. Este algoritmo determina por si mismo el número de clusters y manda los tweets irrelevantes a ruido (sin cluster asignado.
  3. Una vez con los clusters dentro de cada dataset, tomamos únicamente los que tengan más de 100 tweets, y analizamos cada uno de estos clusters. Hacemos un análisis de sentimientos sobre los tweets y también obtenemos las palabras que mejor representan la información de los clusters.
  4. Finalmente, realizamos varias visualizaciones de los clusters con este análisis y se genera la recomendación.

pipeline

AWS

En una instancia de AWS, se ejecutará primero nuestro scrapper de información de twitter (cuya información se detalla más a profundidad en la sección análisis de tweets, que guardaremos en la misma instancia, para posterior ingreso a el módulo de análisis de tweets. Después, de manera secuencial, se ejecutará un análisis de sentimiento sobre cada cluster, para procesar todos los datos y obtener todos los estadísticos, que se almacenarán en un servicio S3. Estos datos posteriormente se pondrán a disposición de la página web mediante una API, que siempre estará expuesta para que la página web la pueda consumir. Cuando reciba un request, la API cargará los datos de S3, y los cambiará a un formato json para que la página web los pueda consumir.

Página Web

Todos los datos obtenidos y procesados, serán desplegados en una página web, que consumirá la API antes implementada en la instancia de AWS (Ver sección anterior). Esta página contendrá una vista inicial, donde se podrán elegir entre distintos países: España, México, Perú, Argentina, Colombia, (Ver maqueta de página en la carpeta). Por cada país, existirá una página donde se mostrará un Dashboard de los estadísticos, mapas, wordclouds, y demás indicadores que ayuden a la comprensión de los datos procesados.

Esta página está siendo escrita con HTML, CSS y JavaScript puro, por el momento no hay necesidad de utilizar ninguna otra tecnología, se plantea que para el MVP, esta página pueda ser alojada en GitHub Pages.

Owner
Gabriel Missael Barco
Undergraduate physics student 📡 / Python enthusiastic 🐍 / Community member @futurelabmx 🚀 / #SoyUG 🐝
Gabriel Missael Barco
Apache OFBiz rmi反序列化EXP(CVE-2021-26295)

Apache OFBiz rmi反序列化EXP(CVE-2021-26295) 目前仅支持nc弹shell 将ysoserial.jar放置在同目录下,py3运行,根据提示输入漏洞url,你的vps地址和端口 第二次使用建议删除exp.ot 本工具仅用于安全测试,禁止未授权非法攻击站点,否则后果自负

15 Nov 09, 2022
A python script to decrypt media files encrypted using the Android application 'Decrypting 'LOCKED Secret Calculator Vault''. Will identify PIN / pattern.

A python script to decrypt media files encrypted using the Android application 'Decrypting 'LOCKED Secret Calculator Vault''. Will identify PIN / pattern.

3 Sep 26, 2022
All in One CRACKER911181's Tool. This Tool For Hacking and Pentesting.🎭

This is A Python & Bash Programming Based Termux-Tool Created By CRACKER911181. This Tool Created For Hacking and Pentesting. If You Use This Tool To Evil Purpose,The Owner Will Never be Responsible

CRACKER911181 1 Jan 10, 2022
Set the draft security HTTP header Permissions-Policy (previously Feature-Policy) on your Django app.

django-permissions-policy Set the draft security HTTP header Permissions-Policy (previously Feature-Policy) on your Django app. Requirements Python 3.

Adam Johnson 76 Nov 30, 2022
A terminal based web shell controller

shell-hack Tribute to Chinese ant sword; A Powerful terminal based webshell controller; Usage : Usage : python3 shell-hack.py --url [URL] --w

s1mple 10 Dec 28, 2021
Password Manager is a simple Python project which helps users in managing their passwords in a easier way

Password Manager is a simple Python project which helps users in managing their passwords in a easier way

Manish Jalui 4 Sep 29, 2021
A blind SQL injection script that uses binary search aka bisection method to dump datas from database.

Blind SQL Injection I wrote this script to solve PortSwigger Web Security Academy's particular Blind SQL injection with conditional responses lab. Bec

Şefik Efe 2 Oct 29, 2022
hackinsta: a program to hack instagram

hackinsta a program to hack instagram Yokoback_(instahack) is the file to open, you need libraries write on import. You run that file in the same fold

1 Dec 04, 2021
Salesforce Recon and Exploitation Toolkit

Salesforce Recon and Exploitation Toolkit Salesforce Recon and Exploitation Toolkit Usage python3 main.py URL References Announcement Blog - https:/

81 Dec 23, 2022
This a simple tool XSS Detection Suite for CTFs games

This a simple tool XSS Detection Suite for CTFs games

Mostafa 2 Nov 24, 2021
A python script to bypass 403-forbidden.

4nought3 A python script to bypass 403-forbidden. It covers methods like Host-Header Injections, Changing HTTP Requests Methods and URL-Injections. Us

11 Aug 27, 2022
Spring Cloud Gateway < 3.0.7 & < 3.1.1 Code Injection (RCE)

Spring Cloud Gateway 3.0.7 & 3.1.1 Code Injection (RCE) CVE: CVE-2022-22947 CVSS: 10.0 (Vmware - https://tanzu.vmware.com/security/cve-2022-22947)

Carlos Vieira 35 Dec 28, 2022
Scan your logs for CVE-2021-44228 related activity and report the attackers

jndiRep - CVE-2021-44228 Basically a bad grep on even worse drugs. search for malicious strings decode payloads print results to stdout or file report

js-on 2 Nov 24, 2022
An advanced multi-threaded, multi-client python reverse shell for hacking linux systems

PwnLnX An advanced multi-threaded, multi-client python reverse shell for hacking linux systems. There's still more work to do so feel free to help out

0xTRAW 212 Dec 24, 2022
Dumps the payload.bin image found in Android update images.

payload dumper Dumps the payload.bin image found in Android update images. Has significant performance gains over other tools due to using multiproces

Rasmus 7 Nov 17, 2022
Trainspotting - Python Dependency Injector based on interface binding

Choose dependency injection Friendly with MyPy Supports lazy injections Supports

avito.tech 3 Jan 26, 2022
Pgen is the best brute force password generator and it is improved from the cupp.py

pgen Pgen is the best brute force password generator and it is improved from the cupp.py The pgen tool is dedicated to Leonardo da Vinci -Time stays l

heyheykids 2 Jan 31, 2022
Huskee: Malware made in Python for Educational purposes

𝐇𝐔𝐒𝐊𝐄𝐄 Caracteristicas: Discord Token Grabber Wifi Passwords Grabber Googl

chew 4 Aug 17, 2022
This little tool is to calculate a MurmurHash value of a favicon to hunt phishing websites on the Shodan platform.

MurMurHash This little tool is to calculate a MurmurHash value of a favicon to hunt phishing websites on the Shodan platform. What is MurMurHash? Murm

Viral Maniar 87 Dec 31, 2022
Format SSSD Raw Kerberos Payloads into CCACHE files for use on Windows systems

KCMTicketFormatter This tools takes the output from https://github.com/fireeye/SSSDKCMExtractor and turns it into properly formatted CCACHE files for

Black Lantern Security 35 Oct 25, 2022