Analyse de l'agrégat de 700 millions de comptes Linkedin de Juin 2021
Introduction
Le 22 juin 2021, un agrégat de données concernant 700 millions de comptes LinkedIn a été proposé à la vente sur un forum. Cet agrégat ne contient pas de mots de passe, mais une grande quantité de données publiques sur des profils d’utilisateurs LinkedIn.
Un agrégat de données très similaire à celui-ci avait déjà été rendu public en avril 2021, et contenait près de 500 millions de comptes ! L’entreprise LinkedIn avait publié un communiqué concernant cet agrégat de données, indiquant qu’il ne s’agissait que de données publiquement accessibles sur les profils publiques de ses utilisateurs.
L’agrégat de données du 22 juin 2021 contient des informations très similaires à celui d’avril 2021. Cependant, cette fois ce sont 700 millions de comptes qui sont concernés. Il a été publié sur un forum, et y est vendu pour 5000$. L’entreprise LinkedIn a également publié un communiqué au sujet de ce nouvel agrégat de données
Nous allons nous plonger en détail dans les données que contiennent cet agrégat. Les données présentées ci-après ont été anonymisées, mais reprennent exactement le type de contenu présent dans le véritable jeu de données (voir ce fichier d’exemple, données anonymisées d’un compte utilisateur de cet agrégat de données).
Analyse des données présentes dans l’agrégat
L’agrégat de données se présente sous forme d’une liste de structures JSON, séparées par des sauts de ligne comme ceci :
{"id":"ok50x4jDJULSRUyHWx3DzV_0000","full_name":"john doe","first_name":"john",...}
{"id":"Do4v+vBouxldLUfBrLAFPj_0000","full_name":"john doe","first_name":"john",...}
{"id":"YRLmYhSnfJtjEZ5bXxKANC_0000","full_name":"john doe","first_name":"john",...}
La structure JSON de chaque ligne correspond à un utilisateur, et contient une grande quantité d’informations que nous allons explorer en détail dans les sections suivantes.
Informations générales
Au tout début de chaque structure JSON nous trouvons les informations générales concernant le compte de l’utilisateur LinkedIn. Ce sont des données personnelles comportant le nom, le prénom, le genre et la date de naissance de l’utilisateur :
{
"id": "pQrFO2uEETAb0WxOT9mdLh_0000",
"full_name": "john doe",
"first_name": "john",
"middle_initial": "j",
"middle_name": "peter",
"last_name": "doe",
"gender": "male",
"birth_year": "1985",
"birth_date": "1985-07-13",
...
}
Réseaux sociaux
Ensuite nous trouvons toutes les informations relatives aux réseaux sociaux liés à ce profil. Les informations sont présentées avec le lien complet vers le profil, et le nom d’utilisateur sur la plateforme. Les réseaux sociaux que nous avons trouvés dans l’agrégat de données sont LinkedIn, Facebook, Twitter et GitHub :
{
...
"linkedin_url": "linkedin.com/in/john-doe-b93431ea",
"linkedin_username": "john-doe-b93431ea",
"linkedin_id": "36950119",
"facebook_url": "facebook.com/john.doe",
"facebook_username": "john.doe",
"facebook_id": "100002605726632",
"twitter_url": "twitter.com/john.doe",
"twitter_username": "john.doe",
"github_url": "github.com/john.doe",
"github_username": "john.doe",
...
}
Secteur d’activité et informations sur l’entreprise
Après les réseaux sociaux associés au profil de l’utilisateurs, nous trouvons toutes les informations relatives au poste qu’il occupe actuellement. Nous trouvons notamment dedans son rôle, son email et son téléphone professionnel, ainsi que toutes les informations sur son entreprise actuelle (taille, date de fondation, réseaux sociaux, localisation géographique) :
{
...
"industry": "computer software",
"job_title": "security engineer",
"job_title_role": "engineering",
"job_title_sub_role": "software",
"job_title_levels": ["manager", "senior"],
"job_company_id": "evilcorp",
"job_company_name": "evilcorp",
"job_company_website": "evilcorp.us",
"job_company_size": "1001-5000",
"job_company_founded": "1995",
"job_company_industry": "government administration",
"job_company_linkedin_url": "linkedin.com/company/evilcorp",
"job_company_linkedin_id": "123456",
"job_company_facebook_url": "facebook.com/evilcorp",
"job_company_twitter_url": "twitter.com/evilcorp",
"job_company_location_name": "washington, district of columbia, united states",
"job_company_location_locality": "washington",
"job_company_location_metro": "washington",
"job_company_location_region": "district of columbia",
"job_company_location_geo": "46.7,-74.76",
"job_company_location_street_address": "46 St Peter's road",
"job_company_location_address_line_2": "3rd floor",
"job_company_location_postal_code": "dh3 1rb",
"job_company_location_country": "united states",
"job_company_location_continent": "north america",
"job_last_updated": "2019-07-01",
"job_start_date": "2012-07-03",
"job_summary": "Long text describing my job",
...
}
Données de géolocalisation de l’entreprise
A la suite des informations sur l’entreprise actuelle de l’utilisateur, on retrouve les informations de géolocalisation de son entreprise :
{
...
"location_name": "washington, district of columbia, united states",
"location_locality": "washington",
"location_metro": "washington, district of columbia",
"location_region": "district of columbia",
"location_country": "united states",
"location_continent": "north america",
"location_street_address": "46 St Peter's road",
"location_address_line_2": "3rd floor",
"location_postal_code": "dh3 1rb",
"location_geo": "46.7,-74.76",
"location_last_updated": "2020-10-01",
...
}
Nombre de relations LinkedIn et salaire
Nous trouvons ensuite le nombre de relations LinkedIn et le salaire estimé de l’utilisateur :
{
...
"linkedin_connections": 768,
"inferred_salary": "55,000-70,000",
...
}
Nombre d’années d’expérience et description du profil
Ensuite nous trouvons le nombre d’années d’expérience de l’utilisateur, ainsi que la description générale de son profil :
{
...
"inferred_years_experience": 15,
"summary": "Long text describing my profile",
...
}
Adresses email et numéros de téléphone
La section suivante contient tous les numéros de téléphone et les emails associés au compte de l’utilisateur :
{
...
"phone_numbers": [
"+14839950305",
"+13549658422",
"+14131851328",
"+14676644426",
"+14855411518"
],
"emails": [
{
"address": "john.doe@gmail.com",
"type": "personal"
},
{
"address": "johndoe@hotmail.com",
"type": "personal"
}
],
...
}
Centres d’intérêts et compétences
Après cela nous trouvons la liste des centres d’intérêts et la liste des compétences de l’utilisateur:
{
...
"interests": [
"sport",
"science",
"photography",
"running",
"nature"
],
"skills": [
"microsoft office",
"python",
"scrapping",
"security",
"pentesting"
],
...
}
Données de géolocalisation
Nous trouvons ensuite les données de géolocalisation de l’utilisateur :
{
...
"location_names": [
"washington, district of columbia, united states"
],
"regions": [
"district of columbia, united states"
],
"countries": [
"united states"
],
"street_addresses": [],
...
}
Expériences professionelles
Après les données de géolocalisation du profil, nous trouvons la liste des expériences professionelles de l’utilisateur :
{
...
"experience": [
{
"company": {
"name": "evilcorp",
"size": "1001-5000",
"id": "evilcorp",
"founded": "1995",
"industry": "government administration",
"location": {
"name": "washington, district of columbia, united states",
"locality": "washington",
"region": "district of columbia",
"metro": "washington",
"country": "united states",
"continent": "north america",
"street_address": "46 St Peter's road",
"address_line_2": "3rd floor",
"postal_code": "dh3 1rb",
"geo": "46.7,-74.76",
},
"linkedin_url": "linkedin.com/company/evilcorp",
"linkedin_id": "123456",
"facebook_url": "facebook.com/evilcorp",
"twitter_url": "twitter.com/evilcorp",
"website": "evilcorp.us"
},
"location_names": [],
"end_date": "2015-01",
"start_date": "1996-01",
"title": {
"name": "chief executive officer",
"role": null,
"sub_role": null,
"levels": []
},
"is_primary": true,
"summary": "Long description of my job"
}
],
...
}
Parcours de formation
Après les données de géolocalisation du profil, nous trouvons la liste des expériences professionnelles de l’utilisateur :
{
...
"education": [
{
"school": {
"name": "washington university",
"type": "post-secondary institution",
"id": "9ud0aPNCMhSRuPHi7mg3p9_0",
"location": {
"name": "canada",
"locality": "washington",
"region": "washington",
"country": "united states",
"continent": "north america"
},
"linkedin_url": "linkedin.com/school/washington-university",
"facebook_url": "facebook.com/washington-university",
"twitter_url": "twitter.com/washington-university",
"linkedin_id": "123456",
"website": "washington-university.us",
"domain": "washington-university.us"
},
"end_date": "1986",
"start_date": "1983",
"gpa": null,
"degrees": [],
"majors": [
"computer security"
],
"minors": [],
"summary": null
}
],
...
}
Profils connexes
Cette partie contient une liste des profils attachés à cet utilisateur. Cette liste contient son profil LinkedIn, mais aussi des profils sur d’autres réseaux sociaux :
{
...
"profiles": [
{
"network": "facebook",
"id": "100002605726632",
"url": "facebook.com/john.doe",
"username": "john.doe"
},
{
"network": "linkedin",
"id": "36950119",
"url": "linkedin.com/in/john-doe-b93431ea",
"username": "john-doe-b93431ea"
},
],
...
}
Certifications
Les données contiennent également la liste des certifications passées par l’utilisateur, avec le nom, l’organisme de délivrance de la certification, la date de certification et la date d’expiration de celle-ci :
{
...
"certifications": [
{
"organization": "offensive security",
"start_date": None,
"end_date": None,
"name": "OSCE"
},
{
"organization": "offensive security",
"start_date": None,
"end_date": None,
"name": "OSCP"
}
],
...
}
Langages connus par l’utilisateur
Enfin nous trouvons la liste des langages connus par l’utilisateur, ainsi que son niveau de maîtrise pour chacun d’eux :
{
...
"languages": [
{"name": "french", "proficiency": 5},
{"name": "dutch", "proficiency": 5},
{"name": "english", "proficiency": 3},
{"name": "german", "proficiency": 3}
],
...
}
Conclusion
Bien que cet agrégat de données comporte de nombreuses informations sur un très grand nombre d’utilisateurs, il semble qu’il ne contienne que des informations déjà présentes publiquement sur les profils des utilisateurs (excepté les emails).
Les informations qui sont présentes dans cet agrégat de données :
- Le nom complet
- Le genre
- La date de naissance
- Réseaux sociaux liés au compte
- La description du profil
- Le parcours de formation
- La liste des expériences professionelles
- La liste des centres d’intérêts
- La liste des compétences
- La liste des certifications
- Données de localisation de l’entreprise
- Les adresses emails
- Les numéros de téléphone
- La liste des langues parlées par l’utilisateur
Les informations qui ne sont pas présentes dans cet agrégat de données :
- Les mots de passes des comptes Linkedin
Les impacts potentiels de cet agrégat de données sont majoritairement liés à la publication des emails. Les adresses emails personnelles et professionelles des utilisateurs présentes dans cet agrégat de données peuvent être ciblées par des campagnes de phishing.
Les mots de passes ne sont pas présents dans cet agrégat de données, cependant, il est grandement recommandé de changer vos mots de passes sur LinkedIn et les autres plateformes utilisant le même mot de passe. En effet, grâce aux informations fournies dans l’agrégat de données, un attaquant peut potentiellement trouver le mot de passe des utilisateurs à partir de listes de mots de passe personnalisées. L’attaquant peut ensuite tenter de bruteforcer le mot de passe du compte LinkedIn ou sur d’autres services utilisés par l’utilisateur. Il est aussi possible d’exploiter ces données pour demander à reset le mot de passe d’un compte de l’utilisateur sur un site, en répondant aux questions de sécurité.