PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Les dangers des raccourcisseurs d’URL

jeudi 5 mars 2020 à 09:30

I. Présentation

Dans cet article, je vais vous exposer quelques dangers relatifs à l'utilisation des raccourcisseurs d'URL (URL Shortener) au travers plusieurs exemples concrets.

II. Qu'est-ce qu'un raccourcisseur d'URL ?

Les raccourcisseurs d'URL, ou URL Shortener sont des applications en ligne qui permettent aux utilisateurs de créer une URL assez courte, redirigeant vers une URL plus longue. Par exemple l'application web bit.ly va, pour l'URL https://thehackernews.com/2018/09/twitter-account-hacked.html me fournir l'URL courte suivante : https://bit.ly/2xcoe0N

 

Lorsque que l'utilisateur clique sur l'URL https://bit.ly/2xcoe0N, il requête le service bit.ly, qui stocke dans ses bases de données la correspondance 2xcoe0N https://thehackernews.com/2018/09/twitter-account-hacked.html, et le redirige vers l'URL longue via une redirection 301 :

Ces URL sont plus facile à retenir, mais aussi à partager sur les réseaux sociaux, lors de la saisie d'URL sur mobile, la transmission de liens par mail, etc. Les raccourcisseurs d'URL sont aujourd'hui largement utilisés et nombre d'applications possèdent des intégrations natives ou via modules de ceux-ci. Prenons l'exemple de Google Maps, qui possède son propre raccourcisseur d'URL afin de partager des trajets :

Il existe beaucoup de raccourcisseurs d'URL aujourd'hui, parmi les plus utilisés: bit.ly, buff.ly, TinyURL, ow.ly... Certains services tels que bit.ly assurent qu'un lien court créé n'expirera jamais :

III. Quels sont les dangers ?

Plusieurs problèmes bien connus concernent les raccourcisseurs d'URL, le premier étant bien entendu que l'utilisateur qui clique sur un lien court ne peut pas savoir où il va atterrir, il s'agit donc d'un outil facilitant le phishing, notamment pour les cas où une charge utile (Javascript par exemple) est exécutée dés le premier accès et sans action supplémentaire de l'utilisateur. Cela peut également être intéressant pour l'exploitation de vulnérabilité CSRF (voir https://ogma-sec.fr/dvwa-csrf-file-inclusion-solutions-explications-protections/). Bref. Pour cela, plusieurs services en ligne existent et permettent de vous afficher la destination finale d'un lien court avant tout accès (https://checkshorturl.com/expand.php), il faut cependant avoir le réflexe de les utiliser.

Il est également possible d'obtenir des métriques intéressantes sur un lien pour certains services en ajoutant un "+" à la fin de l'URL courte (par exemple https://bit.ly/2xcoe0N+). Bit.ly et goo.gl proposent notamment cette fonctionnalité, qui permet également de voir la destination finale du lien sans y accéder. :

On peut ainsi facilement voir, sans accéder directement à l'URL cible, si nous somme le seul à avoir cliqué sur le lien, quelles sont les populations ciblées, quand le lien a été créé, etc. Un autre problème se pose cependant. Une URL peut être une donnée sensible, elle peut contenir des informations importantes en paramètre (transmission de paramètres GET, qui sont présents dans l'URL), notamment :

Par exemple :

https://monsite.fr/login.php?user=admin&pass=MonPassword123@

Il est aussi fréquent que les raccourcisseurs d'URL soient utilisés pour "résoudre" des URL qui ne sont pas directement exposées sur internet, au sein d'une même équipe dans une entreprise par exemple. Cela peut exposer des informations concernant l'infrastructure interne d'une entreprise. Enfin, la notion de complexité de l'URL (ou plutôt de ses paramètres) est ici à rappeler. Certains services, par exemple de partage de documents (DropBox, Google Drive, One Drive), possèdent une fonctionnalité de partage de documents simple d'utilisation. Si je suis le propriétaire d'un document et que je souhaite le partager avec une personne (non authentifiée sur le service), la fonctionnalité de partage de document par URL va créer une URL telle que celle-ci :

https://1drv.ms/f/s!AuxYRKDNC_FxgXdUkb9vYMbmbmNV

Je n'ai plus qu'à envoyer ce lien à la personne concernée pour qu'elle puisse accéder à mon document. La sécurité de l'accès à la donnée cachée derrière ce lien réside donc dans la robustesse (taille + alphabets et entropie des caractères) du jeton présent dans l'URL (AuxYRKDNC_FxgXdUkb9vYMbmbmNV). Si cette information est connue par une autre personne, elle pourra accéder à la donnée. Il est donc dans l'intérêt de l'utilisateur de créer des jetons longs et complexes. On retrouve le même principe dans les liens de réinitialisation de mot de passe envoyés par mail, qui utilisent uniquement un jeton pour retrouver le compte souhaitant réinitialiser son mot de passe, exemple :

https://monsite.fr/resetpassword.php?token=dhfjkenpzdmQSLHQPCEUCNZMfqsdfnpcNDMSQLKDJENMmqlfsqmfk

Les raccourcisseurs d'URL viennent ici casser la complexité des jetons car ils permettent de cacher une URL complexe derrière une URL "courte" contenant comme donnée inconnue uniquement quelques caractères (par exemple, 6 caractères pour bit.ly).

IV. Le projet URLTeam

Les URL courtes sont donc plus simple à "casser" (brute forcer), c'est d'ailleurs l'objectif du projet URLTeam (https://www.archiveteam.org/index.php/URLTeam) qui va chercher à retrouver toutes les possibilités de liens raccourcis afin de voir si ceux-ci redirigent vers une URL ou non. Grâce à un traitement réparti sur des centaines de machines volontaires (à l'image d'un botnet), n’importe qui peut mettre sur son système un petit script qui va participer à la résolution des URL raccourcies. Les résultats du projet (URL nouvellement résolues) sont publiés sur archive.org : https://archive.org/search.php?query=subject%3A%22urlteam%22 Vous pouvez d'ailleurs suivre en direct le nombre de liens retrouvés pour chaque services (https://tracker.archiveteam.org:1338/status), soit plus de deux milliards de liens résolus pour bit.ly, plus d'un milliard pour tinyurl, etc.

Il faut donc considérer que chaque URL saisie dans un service de raccourcisseur d'URL est publique (dans le sens "référencée quelque part"). Je me suis donc penché sur le contenu des archives de l'URLTeam afin de voir ce qu'il pouvait y avoir d'intéressant, et je n'ai pas été déçu du voyage. URLTeam publie donc plusieurs fois par mois les nouvelles URL résolues grâce à son réseau de machines volontaires :

Attention, les URL nouvellement résolues ne sont pas à confondre avec les URL courtes récemment créées. Nous avons vu que la plupart des services ne font jamais expirer leurs liens courts, ceux-ci peuvent donc être résolus par brute force bien après leur création. Une seule archive "URLTeam Release" pèse en général plusieurs centaines de mégaoctets et ne contient que des documents texte remplis de liens :

Je me suis donc créé un petit script qui se charge de récupérer les dernières archives publiées par l'URLTeam et de les décompresser correctement pour me laisser uniquement les fichiers textes :

Cela me permet ensuite d'utiliser d'autres scripts et des commandes grep pour y trouver des informations intéressantes. J'ai par exemple créé un script qui se charge de récupérer tous les liens d'applications de partage de document (Owncloud, Google Drive, One Drive, Dropbox), qui possèdent des formats d'URL facile à identifier, puis de voir si les liens amènent vers des documents encore valides. Par exemple, un lien partagé Dropbox ressemble à cela  :

L'accès à cela un lien peut mener à:

Pour chaque service, je n'ai donc qu'à observer les différents comportements possibles et filtrer les réponses pour ne récupérer que les liens valides. Voici un exemple de sortie :

Pour une seule archive, je récupère en général plusieurs centaines de document Google Drive et Dropbox valides et quelques dizaines de documents Owncloud et One Drive. Il est alors très facile de découvrir des photos de famille, des documents "sensibles" (factures, fiche de paie, CV), des documents partagés collaboratifs, parfois des scans de cartes d'identité ou documents bancaires. ..

Le nombre de documents accessibles trouvés par archive est assez impressionnant. Il est certains qu'un attaquant qui cherche des données sur une entreprise ou un utilisateur précis perdra son temps, mais l'obtention de documents a priori privés peut facilement faire des utilisateurs propriétaires de ces documents des cibles, notamment pour du phishing, chantage et du vol de compte. J'ai également gardé plusieurs commandes grep qui permettent de filtrer :

Enfin, il m'est apparu que certains services utilisent des raccourcisseurs d'URL lors de leur communication avec leur utilisateur, notamment pour les liens de réinitialisation de mot de passe envoyés par SMS, pour les authentifications "rapides" par mobiles, ce qui permet de trouver des centaines de login/mots de passe valides d'utilisateurs, cela m'a par exemple permis d'accéder à des comptes icloud car une URL contenant les identifiants de l'utilisateur a été utilisée dans un raccourcisseur d'URL par un service web (auto-login?sms=true) :

Bref, on y trouve tout et n'importe quoi. Le problème ici est que les utilisateurs ne sont pas conscient du danger. Également, certains services ne devraient pas pouvoir être utilisés sur des raccourcisseurs d'URL, notamment les services de partage de fichiers car cela casse la sécurité de leur token, initialement assez robustes pour éviter d'être cassés par une attaque de type brute force. La seule leçon à retenir est donc la suivante : Si vous utilisez un raccourcisseur d'URL, considérez que le lien soumis est désormais totalement public, abstenez-vous donc dans certains cas.

Microsoft renforce l’intégration de Teams avec Outlook

mercredi 4 mars 2020 à 13:00

Microsoft continue de faire évoluer sa plateforme collaborative Teams en ajoutant de nouvelles fonctionnalités afin de renforcer les interactions entre Teams et le client de messagerie Outlook.

L'objectif étant de continuer à simplifier le travail de groupe en entreprise et de rendre plus fluide vos actions. Désormais, Microsoft Teams et Outlook vont permettre de :

- Déplacer une conversation Outlook directement vers un chat Teams
- Partager une conversation Teams dans un e-mail via Outlook

Ces deux nouvelles fonctionnalités vont renforcer le lien entre Outlook et Teams. En complément, Microsoft a ajouté la possibilité d'ajouter un tag / une balise aux membres de l'entreprise. Le but étant d'aider les utilisateurs à mieux cibler leurs messages.

Teams intègre également une fonctionnalité de sous-titrage en direct pour permettre de lire ce que les gens disent en temps réel, ce qui peut s'avérer très pratique dans les environnements bruyants. Reste à voir l'efficacité de cette nouveauté, pour le moment elle est disponible seulement en anglais.

Microsoft a également inclus d'autres fonctionnalités à Teams :

- Épingler des applications directement sur le volet de gauche pour un accès plus rapide
- Préserver les messages de canaux privés sans qu'ils puissent être supprimés grâce à la fonction de mise en suspens juridique
- Améliorer le machine learning de Teams pour faciliter la détection des conversations qui seraient inaproprié vis-à-vis de la politique de l'entreprise

Into The Breach : du Mod à la backdoor

mercredi 4 mars 2020 à 09:00

I. Présentation

Dans cet article nous allons voir en quoi la modification d'un jeu, lorsqu'elle est possible, peu mettre en danger les joueurs, notamment par l'intermédiaire des mods. Le cobaye du jour est le jeu Into The Breach.

Je m'intéresse depuis un petit temps à la sécurité des jeux vidéo, business en pleine croissance dans lequel la sécurité informatique et la sécurité de l'information est de plus en plus présente. Triche, harcèlement de joueur, vol de compte, déni de service sont quelques exemples de cas et d'attaques pouvant toucher les jeux vidéo, ces attaques impactent directement la réputation, jouabilité et intérêt du jeu pour les joueurs, et donc in fine l'argent généré par ce jeu.

Bref, sujet passionnant, je vous recommande la lecture et visualisation des éléments suivants :

Dans ce contexte, je me suis intéressé au jeu Into The Breach, un jeu en local uniquement (on commence doucement), rogue-like (https://fr.wikipedia.org/wiki/Rogue-like), sortie en ce début d'année 2018. Je vous recommande d'ailleurs chaudement d'y jouer, ainsi que FTL (Faster Than Light) du même éditeur. Il s'agit en gros d'un jeu de stratégie tour par tour.

L'objectif de cet article est donc de commencer à parler de la sécurité des jeux vidéo, comprendre leur fonctionnement, mesures de protection et notamment la façon dont nous pouvons appliquer les éléments de la sécurité informatique, forensic (investigation numérique), test d'intrusion, etc. aux jeux vidéo. Nous allons ici commencer par étudier le fonctionnement du jeu (les éléments qui nous intéressent), essayer quelques techniques simples de triche et ensuite voir comment nous pouvons utiliser ces informations afin d'insérer du code malveillant à l'intérieur du jeu. J’émettrai enfin quelques "pistes" ou méthodes connues qui pourraient permettre, dans un contexte réel, de diffuser ce code malveillant.

II. Étude du fonctionnement du jeu

Commençons donc pour étudier le fonctionnement général du jeu, c'est à dire l'exécutable (ou binaire) permettant d'exécuter le jeu. J'utiliserai pour cela les outils suivants :

L'activité, pour l'utilisateur, du jeu peu se résumer en trois phases :

Voici une vue de cette cette dernière phase :

On exécute donc le jeu une première fois, ainsi que Process Explorer :

Vue du processus Breach.exe et de son activité actuelle

Par défaut, Process Explorer nous permet donc de voir plusieurs informations, telles que les fichiers actuellement ouverts par le processus qui nous intéresse (Breach.exe), c'est également l'occasion de voir si Breach.exe ouvre d'autres processus, ce qui pourrait être le cas s'il possédait un anti-cheat, l'ouverture d'un processus par un autre processus pourrait se constater dans l'arborescence des processus, par exemple :

Arborescence de processus visualisée dans Process Explorer

Process Explorer nous permet également d'obtenir plusieurs informations à propos du processus Breach.exe et de son contexte d'exécution, on fait pour cela un clic droit > Properties.... On peut ainsi voir, par exemple, le chemin d'accès à l'exécutable :

Informations de bases du processus Breach.exe

On constate également l'état des protections pouvant être positionnées sur l'exécutable, (Data Execution Prevention, ASLR, Control Flow Guard), etc. Pour rappel, ces informations peuvent également être visualisées pour l'ensemble des processus grâce à l'ajout de colonnes dans la fenêtre principale :

Le panneau Properties permet également de voir les connexions ouvertes par le processus :
Ou encore les variables d'environnement de celui-ci :

Visualisation des variables d’environnement du processus Breach.exe dans Process Explorer

Parmi les information intéressantes ici, le chemin APPDATA, INSTALLEDIR, etc .Bref, Process Explorer permet de faire un premier tour du processus. Nous allons à présent utiliser Process Monitor et son système de filtre afin de tracer l'exécution de Breach.exe. Dés son ouverture, Process Monitor nous affiche son interface de filtre, permettant notamment de créer un filtre pour cibler un processus spécifique, comme ci-dessous :

Utilisation des filtres Process Monitor afin d'afficher les activités du processus Breach.exe uniquement

Je cible donc les activités qui concernent le processus Breach.exe. L'intérêt de Process Monitor est également qu'il peut être démarré avant l'exécution du processus qui nous intéresse, ce qui permet de tracer les premières actions de celui-ci dés son démarrage et son historique tout au long de son exécution. :

On peut par exemple constater ici qu'un ensemble de dll sont ouverts par le processus, on constate également la présence de fichiers .dat, .bank et de fichiers de journalisation (log.txt) :

J'observe également l'ouverture d'un grand nombre de fichier .lua :
Afin d'avoir une vue plus claire de l'ensemble des fichiers, j'ajoute un filtre sur les opérations QueryOpen et sur les chemins qui finissent pas ".lua" :

Cela permet d'obtenir la liste complète des fichiers .lua ouverts dés le démarrage du processus :

Intéressant, j'y reviendrai plus tard. J'applique le même filtre, cette fois-ci pour les fichiers .dll :
Process Monitor permet donc de tracer avec précision les actions d'un processus, celui-ci est souvent utilisé, notamment en sécurité pour les activités de reverse de malware (entre autres). Ici, il nous a permis de voir quels étaient les fichiers lus par Breach.exe. Jetons un œil au répertoire du jeu :

J'y retrouve les dll, les scripts .lua, les fichiers de logs et les ressources (.bank et .dat). Je m'intéresse rapidement aux fichiers de ressources pour voir ce qu'ils contiennent, pour une étude plus rapide, je les transfert sur une machine KaliLinux qui dispose d'un ensemble d'outils permettant d'effectuer ce type d'opération :

root@kali:/tmp/resources# ls -al
total 172180
drwxr-xr-x 2 root root 4096 Mar 24 20:50 .
drwxrwxrwt 14 root root 4096 Mar 24 20:50 ..
-rw-r--r-- 1 root root 100800 Mar 4 22:53 'Master Bank.bank'
-rw-r--r-- 1 root root 25764 Mar 4 22:53 'Master Bank.strings.bank'
-rw-r--r-- 1 root root 9669216 Mar 4 22:53 ambience.bank
-rw-r--r-- 1 root root 113497952 Mar 4 22:53 music.bank
-rw-r--r-- 1 root root 36681498 Mar 7 18:36 resource.dat
-rw-r--r-- 1 root root 16312256 Mar 6 18:50 sfx.bank
root@kali:/tmp/resources# file *
Master Bank.bank: RIFF (little-endian) data
Master Bank.strings.bank: RIFF (little-endian) data
ambience.bank: RIFF (little-endian) data
music.bank: RIFF (little-endian) data
resource.dat: PGP\011Secret Sub-key -
sfx.bank: RIFF (little-endian) data

La commande file permet permet d’avoir quelques informations sur les types de fichier, rien de bien parlant. J'utilise l'outil foremost pour tenter d'extraire les fichiers contenus dans le fichier resource.dat :

root@kali:/tmp/resources# foremost resource.dat
Processing: resource.dat
|*|
root@kali:/tmp/resources# ls
'Master Bank.bank' ambience.bank output sfx.bank
'Master Bank.strings.bank' music.bank resource.dat

J'obtiens alors un ensemble d'images, qui sont celles utilisées pour afficher le visuel utilisateur, ce qui permet de comprendre comment fonctionne l'affichage des informations :

Chaque visuel vu par l'utilisateur est donc un ensemble d'images positionnées tel qu'ordonné par le jeu. Cela peut notamment être intéressant si l'on souhaite crée un mod (j'y reviendrai) afin de changer, par exemple, l'aspect visuel du jeu (panneau de contrôle, aspect des ennemis, etc.).

Les fichiers .bank opposent un peu plus de résistance, l'utilisation de foremost sur ceux-ci ne donne rien, j'utilise donc binwalk qui va tenter de me dire quels sont les types de fichier contenus dans le fichier music.bank :

root@kali:/tmp/resources# binwalk music.bank
DECIMAL HEXADECIMAL DESCRIPTION
 --------------------------------------------------------------------------------
 1905669 0x1D1405 MySQL ISAM index file Version 5
 8207261 0x7D3B9D StuffIt Deluxe Segment (data): f
 11827947 0xB47AEB MySQL MISAM index file Version 6
 17252787 0x10741B3 StuffIt Deluxe Segment (data): f
 19688536 0x12C6C58 StuffIt Deluxe Segment (data): f
 27311935 0x1A0BF3F Cisco IOS experimental microcode, for "z"
 66127348 0x3F105F4 StuffIt Deluxe Segment (data): f
 86886121 0x52DC6E9 StuffIt Deluxe Segment (data): f
 91632984 0x5763558 StuffIt Deluxe Segment (data): f
 97794565 0x5D43A05 StuffIt Deluxe Segment (data): f
 109069865 0x6804629 VMware4 disk image

Rien de bien parlant, je me renseigne sur le format de fichier .riff (indiqué par la commande file précédemment) et trouve quelques dépôts Github qui semblent pouvoir extraire des informations de ce type de fichier, notamment l'outil suivant : https://github.com/panzi/mediaextract

git clone https://github.com/panzi/mediaextract.git
cd mediaextract
make buidldir
make
make install PREFIX=/usr
mediaextract -f riff,ogg,aiff,mp4,image,audio ../resources/music.bank

J’obtiens alors un très grand nombre de fichiers, qui semblent constituer la bande sonore (musiques et effets) du jeu :

Bien, nous avons à présents un ensemble d'informations sur la constitution du jeu et son activité.

III. Modification des informations de profil & de la partie (triche)

Lors de notre première analyse, nous avons pu distinguer différents fichiers qui étaient lus par le processus Breach.exe. L'un d'entre eux l'est d'ailleurs de façon très fréquente lors des combats, le fichier saveData.lua :

Liste des fichiers LUA stockés dans le répertoire /scripts/ du jeu

Intéressons nous donc à ce fichier en particulier. Process Monitor nous permet d'ailleurs de connaitre son chemin, afin de le retrouver rapidement, comme vous pouvez le voir ci-dessus.

Après analyse, qui nécessite d'avoir quelques connaissances sur le jeu, je déduis que ce fichier sert à enregistrer la partie courante, j'y trouve donc mon score, la vie et la capacité de mes unités et des ennemis du combat courant. Une bonne chose, ce fichier est accessible et compréhensible. Après une première lecture, je tente de tracer son évolution (les changements apportés) après avoir joué quelques minutes. J'utilise pour cela le Plugin "Compare" de Notepad++, qui permet de comparer et pointer les changement entre deux fichiers. J'expose l'ensemble de la démarche en vidéo :

Vous l'aurez compris, on peut modifier librement les fichiers saveData.lua et profile.lua afin de tenter de modifier les statistiques de nos unités, des unités ennemis, notre score global, les squad débloquées, débloquer des succès Steam, etc.

IV. Modification du jeu ("mod")

Bien, nous avons à présent réussi à modifier les informations de notre profil afin d'obtenir un meilleur score, d'améliorer nos unités et d'affaiblir l'ennemi par des vecteurs autres que le jeu lui même (aussi connu sous le nom de "triche"). Voyons si nous pouvons modifier le comportement du jeu de façon durable, par exemple en modifiant des éléments dans son exécution. La possibilité de modifier le jeu de cette façon ouvre la voie vers les Mods.

Dans le monde du jeu vidéo, un mod (abréviation de modification) est un jeu vidéo créé à partir d'un autre, ou plus souvent une modification du jeu original, sous la forme d'un greffon qui s’ajoute à l'original, le transformant parfois complètement. Les mods les plus courants se rencontrent sur PC (Source:  https://fr.wikipedia.org/wiki/Mod_(jeu_vid%C3%A9o) )

Pour cela, nous allons revenir quelques instants sur les fichiers LUA chargés dés le lancement du jeu. Ceux-ci sont situés dans le répertoire /scripts/ du jeu :

Accès au fichier saveData (Read et Write) observé à chaque avancement de la partie

Visiblement, ils contiennent les scripts d'exécution du jeu, écrit en LUA :

Lua est un langage de script libre, réflexif et impératif. Créé en 1993, il est conçu de manière à pouvoir être embarqué au sein d'autres applications afin d'étendre celles-ci. (Source : https://fr.wikipedia.org/wiki/Lua).

On peut donc parcourir librement ces scripts, et pourquoi pas les modifier. A noter que ces fichiers sont chargés uniquement au démarrage du jeu, ils sont donc en mémoire ensuite et leur modification n'aura aucun effet sans un redémarrage du jeu. Dans cet exemple, je modifie la portée de mouvement de mes unités :

Ici, je modifie la disposition de la carte, ce qui peut laisser entrevoir la possibilité d'ajouter d'autres éléments à l'intérieur :

Dans ce dernier exemple, je modifie les possibilités de couleur des unités, ce qui peut tout à fait faire partie d'un mod que les joueurs pourraient télécharger :

Bref ! Le code du jeu est totalement ouvert, j'ignore si cela est intentionnel ou non, mais le fait est que n'importe quel joueur est libre de modifier le jeu comme il le souhaite. En cherchant un peu, je pense également que l'on peut modifier les images contenues dans le fichier resource.dat, "recompresser" ces images et constater leur utilisation dans le jeu. Mais je n'ai pas pris le temps de le faire.

V. Injection d'une porte dérobée ou d'un code malveillant

Bien, nous sommes donc maintenant de parfait tricheur, nous pouvons modifier le code du jeu afin d'obtenir un avantage face à l'ordinateur, modifier notre score, la vie des unités alliées et ennemies, etc. Mais cela ne présente que peu d'intérêt car le jeu est en local uniquement, la seule conséquence concrète de cette manipulation est de détruire sa propre expérience en tant que joueur, à quoi bon passer des heures à jouer pour finir le jeu si je peut le faire en modifiant un fichier de configuration ? L'autre intérêt peut être la conception de mod, c'est à dire une version modifiée du jeu afin d'introduire de nouveau éléments, des difficultés supplémentaires, pourquoi pas de nouveaux ennemis, des couleurs à l'image d'unité à l'image de l'évènement du moment (Noël, Halloween, etc.), et plus encore.

Nous allons donc continuer notre aventure en essayant d'injecter du code malveillant dans les scripts LUA qui permettent l'exécution du jeu. Par code malveillant, j'entends par exemple :

Nous avons pour cela tous les éléments nécessaires, nous savons déjà que le code est modifiable, que tous les fichiers LUA sont chargés lors du démarrage du jeu. Sans aucune connaissance en LUA, voyons ce que l'on peut faire.

A. Conception d'un adware

Par adware, j'entends donc l'ajout d'un bout de code qui va me permettre, en tant que moddeur ou en tant qu'"attaquant", de gagner de l'argent grâce à la de publicité une fois que ma version modifiée du jeu sera installée sur les postes des joueurs. Habituellement, l'adware va parfaitement s'intégrer dans le jeu, mais je vais ici faire quelque chose de plus rudimentaire. Par exemple ouvrir le navigateur du joueur pour qu'il se rende automatiquement sur une page contenant de la publicité. Cela est faisable à partir d'un terminal Windows avec la commande suivante par exemple :

explorer https://ogma-sec.fr

Il faut donc faire quelque chose d'équivalent en LUA, et l'intégrer dans un des scripts LUA chargé au démarrage du jeu. Après quelques recherches, je remarque que l'on peut exécuter la fonction os.system, qui permet d'exécuter des commandes systèmes en LUA. J'intègre donc la commande suivante dans le script global.lua :

Intégration d'un adware dans le fichier global.lua du jeu Into The Breach

Cet ensemble de commandes va donc simplement ouvrir plusieurs fois une page web en direction de l'URL indiquée. Premier test, j'enregistre le fichier et exécute le jeu, mon adware est bien en place et m'ouvre plusieurs page en direction de l'URL indiquée.

B. Ajout d'une porte dérobée

Nous allons à présent insérer une porte dérobée dans notre jeu vidéo modifié, je récupère pour cela le code d'un reverse shell TCP en Powershell tout simple sur le dépôt Github suivant : https://gist.github.com/staaldraad/204928a6004e89553a8d3db0ce527fd5

L'idée est donc de mettre en place :

Sur mon poste d'attaque, je télécharge donc ce script depuis Github et le modifie pour qu'il contacte mon IP d'attaquant, j'ouvre ensuite un service web simple en Python pour que ce script puisse être téléchargé. En ce qui concerne la modification du code du jeu pour qu'il télécharge et exécute ce script, la voici, toujours dans le fichier global.lua :

Ajout d'un download & execute de ma porte dérobée (backdoor)

Voila le tout en cours d'exécution, en première partie j'expose l'action de l'adware, puis de la porte dérobée. A noter qu'il s'agit uniquement de PoC et qu'ils ne sont pas discrets du tout (le reverse shell bloque d'ailleurs l'exécution de la suite du jeu). Mais peu importe, un attaquant ayant le temps et la motivation réelle pourra librement effectuer des opérations bien plus furtives.

V. Diffusion de la version modifiée

Comme indiqué plusieurs fois, le code modifié l'est ici uniquement en local. Il existe cependant plusieurs moyens d'implanter du code malveillant, notamment au travers la diffusion d'un mod.

En effet, le monde du jeu vidéo contient des milliers de forums qui permettent d'interconnecter les joueurs autours d'un même genre de jeu ou d'un même jeu. C'est également sur ces forums que sont diffuser des mods. Si vous avez finis un jeu et que vous souhaitez continuer à découvrir des choses, les mods permettent d'obtenir de nouveau contenus (comme dit précédemment, nouveaux ennemis, difficultés supplémentaires, etc.) souvent produits par les joueurs eux-mêmes.

Un attaquant n'aura donc qu'à créer un mod qui semble légitime (par exemple via une modification des couleurs du jeu) et à inclure dans celui-ci du code malveillant. Les mods étant diffusés et installés par les joueurs, et non via un mécanisme propre au jeu, aucun contrôle de sécurité ne sera effectué.

Également, le code malveillant peut être diffusé selon le même modèle, mais cette fois si sous la forme d'une triche, par exemple "Insère ce ficher à la place du fichier existant dans le répertoire /scripts/ du jeu et tous tes unités seront presque invincible".
Bref, ce ne sont pas les idées qui manquent, et peu nombreux seront les joueurs qui penseront à regarder (et comprendre) le contenu du mod afin de vérifier qu'il ne contient pas de code malveillant à l'intérieur.

VII. Conclusion

Quelques leçons à tirer de cet article :

Wi-Fi : de la détection de mouvement avec le 802.11be ?

mardi 3 mars 2020 à 15:00

Et si les signaux émis par le Wi-Fi permettait de détecter les mouvements dans une pièce ? C'est l'hypothèse émise par la rédaction de The Next Web en évoquant le prochain standard 802.11be avec le comité directeur IEEE. Alors qu'en 2019, le Wi-Fi 6 voyait le jour, on se tourne maintenant vers l'avenir avec de nouveaux usages.

La norme 802.11be aurait pour objectif principal d'améliorer la connectivité entre différents appareils connectés à un même réseau, notamment avec des débits élevés sur des distances plus longues. En complément, de nouvelles fonctionnalités sont à l'étude, dans l'idée de faciliter la communication entre plusieurs véhicules pour éviter une collision.

Paul Nikolich, directeur du comité IEEE, précise qu'il souhaite s'appuyer sur les signaux des radio-fréquences pour détecter les mouvements des personnes. Ainsi, on pourrait suivre une personne qui se déplace d'une pièce à l'autre. Il va encore plus loin en indiquant que l'on pourrait détecter le rythme cardiaque grâce aux signaux RF car le flux respiratoire agit sur les ondes. Cela pourrait s'avérer utile pour les personnes âgées afin de détecter une chute, par exemple.

Nous avons d'un côté l'IEEE qui imagine de nouvelles fonctionnalités et spécifications pour la nouvelle norme, et de l'autre Wi-fi.org qui est en charge de la commercialisation du protocole, et surtout, des tests de certification. La future norme est encore à l'étude et elle va encore évoluer dans les mois à venir.

Source

Comment créer un logo pour une application : règles et procédés

mardi 3 mars 2020 à 13:00

I. Présentation

Le développement d’applications mobiles est une perspective d’affaires. Selon certaines prédictions, d’ici 2020, les revenus liés à cette sphère seront de 189 milliards de dollars. En moyenne, un propriétaire de smartphone utilise 30 applications par mois sur son appareil. 2,8 millions d’applications officielles ont été créées par des fans d’Android. Il y a 2,2 millions de programmes sur l’Apple App Store. Comment faire en sorte que les gens prêtent attention à vos applications avec une telle concurrence ?

L’icône de l’application mobile est la première chose que les utilisateurs voient avant de décider d’installer l’application ou non. Ainsi, c’est l’icône qui permet à votre produit de se distinguer par rapport aux applications concurrentes. Avec une icône agréable, vous attirerez de nouveaux utilisateurs. Son design de qualité indiquera mieux que n’importe quels mots que votre programme pourrait être intéressant.

Pourquoi l’icône de l’application mobile est-elle nécessaire ?

L’icône de l’application est une image graphique. Son but principal est d’être utilisée comme raccourci pour ouvrir le programme installé. De plus, l’image simplifie l’identification du programme pendant la recherche : ayant plusieurs options similaires, l’utilisateur choisira par icône, titre et note. L’icône idéale explique le but du programme.

Ainsi, la tâche de l’icône est de susciter l’intérêt de l’utilisateur et de le convaincre que le programme mobile est crédible et peut résoudre ses besoins réels.

II. 6 astuces pour créer des logos d’applications

L’icône de l’application mobile doit être originale (pas de violation de droit d’auteur). Elle doit correspondre au design de l’interface du programme à travers sa couleur et son style. Plus important, l'élément doit être conforme aux règles de design officielles :

• L’icône de l’application Android doit être créée conformément aux astuces pour créateurs de produits Android ;

• L’icône pour iPhone et autres gadgets iOS doit être développée selon les lignes directrices d’Apple.

De même, suivez les lignes directrices universelles pour que le logo accomplisse son rôle efficacement. Nous avons compilé 6 règles principales.

1. Le redimensionnement

L’icône de l’application mobile est affichée sur la page principale du Store, dans le sous-menu (dans la version plus petite) et sous forme d’icône sur l’écran de l’appareil mobile. Dans tous les cas, elle aura plusieurs tailles. La version affichée à l’écran dépend souvent de la résolution et des paramètres personnalisés. L’essentiel est que l’image reste lisible dans tous les cas, et que l’utilisateur n’ait pas à forcer pour voir les détails. Vous pouvez voir les options d’affichage de vos icônes à l’aide de services spéciaux - par exemple, Appsparky.

2. La reconnaissance

La plupart des utilisateurs doivent reconnaître les symboles et images de votre icône. Tous les éléments visuels doivent être compris quel que soit le pays ou la langue. L’efficacité de l’icône dépend de la compréhension de votre idée de design par les utilisateurs. YouTube est un bon exemple. Il s’agit à la base du symbole courant de lecture de vidéo.

3. L’unicité

Votre icône d’application se battra avec des millions d’autres icônes pour l’attention de l’utilisateur. Dans ce cas, l’unicité est une chance de rendre les images remarquables. Comment rendre unique l’icône de l’application :

• Explorez d’autres icônes dans votre niche. Analysez les meilleures réalisations et faites tout différemment. Copier les idées des autres dans ce cas mène droit à l’échec;

• Cherchez de nouvelles significations en termes de couleurs et de symboles. Expérimentez et faites plusieurs essais;

• Inspirez-vous des icônes d’applications de jeux : cette niche a des besoins moins formels en termes d’images et présente plus de créativité;

• Vous pouvez utiliser des éléments visuels reconnaissables de votre marque comme idée de base. C’est ce qu’ont fait les développeurs de l’application Twitter, par exemple.

4. Modérez le nombre de lettres

Facebook a bien raison d’utiliser la lettre F dans l’icône de l’application. Des dizaines de services célèbres en font de même. Si votre identité de marque est développée afin que les utilisateurs vous reconnaissent avec une ou deux lettres, c’est tout simplement excellent. Mais ne mettez pas le nom complet de l’entreprise dans l’icône. Et de manière générale, supprimez autant de mots que possible. Si vous décidez d’insérer des mots, alors vous n’utilisez pas entièrement les avantages des éléments visuels.

Les mots et les images sont des outils opposés. L’icône est une représentation graphique du programme. Faites attention aux détails visuels car :

• le nom de l’application sera déjà écrit à côté de l’icône;

• les lettres et les mots voleront la vedette aux images et vice versa. Le fait de perdre l’attention de l’utilisateur fera qu’il choisira votre concurrent.

Si le nom est court, vous pouvez essayez de l’utiliser comme élément central. C’est ce qu’a fait la société Néo-Zélandaise Xero.

5. Un logo répondant aux attentes fonctionnelles

Les processus d'interaction de l’utilisateur avec l’icône et l’interface doivent être les mêmes. Une bonne icône d’application doit exprimer le concept du programme, créer un image de produit complète et compléter le design, l’idée et la fonctionnalité. Une telle icône :

• est conforme au schéma de couleurs et au style de l’application;

• montre à quoi sert le programme;

• est bien visible sur les thèmes clairs et sombres, ainsi que sur différents types de papiers peints.

Dropbox est un bon exemple de solution visuelle :

6. Affichage sur fonds sombre et clair

L’utilisateur peut choisir le thème sombre du design du Store. Ceci peut rendre le fond de l’appareil sombre ou clair. Il est important que les icônes ressortent tout aussi bien sur toutes les variantes du fond. Vous pouvez tester ceci avec le service IconTester. En voici un exemple :

III. Tendances de design de logo d’applications mobiles

Comment créer une icône pour une application Android ou iOS en tenant compte de ces tendances de design ? Nous pouvons vous donner quelques recommandations qui resteront d’actualité dans un futur proche :

1. La simplification. Supprimer l’excès de la composition - concentrez-vous sur l’essentiel. Plus l’image est simple, mieux elle sera reconnue sur n’importe quel type d’écran. Smartsheet scheduler a exactement ce type de logo.

2. Supprimez tous les éléments qui ne sont pas nécessaires. Supprimer tous les détails mineurs n’affectant pas le sens de votre logo. Si seules les choses essentielles restent, le résultat sera mieux retenu. Voici l’exemple de Calendly :

3. Mettez en avant les détails. Mettez en avant un des détails de l’icône ou rendez le logo un peu asymétrique. Ceci attirera l’attention des utilisateurs. C’est ce qu’ont fait les développeurs de Todoist :

4. Les dégradés. C’est la tendance de 2018 et elle restera d’actualité. Avec un dégradé, l’image peut être rendue plus volumineuse et plus profonde afin d’avoir des effets visuels uniques. Instagram est associé à cette tendance :

5. Les nuances de néon. Les logos minimalistes peuvent être animés avec des couleurs néon claires avec un dégradé. C’est la tendance sur laquelle les designers de Spotify se sont basés :

6. "Fait à la main". Les images dessinées à la main, aux contours flous et aux couleurs naturelles. Cette option a été choisie par MetLife :

IV. Comment créer une icône pour une application Android ?

L’icône d’application Android doit être développée en tenant compte des paramètres de l’appareil Android et de la résolution d’écran. Le DPI est utilisé pour mesurer la qualité des graphiques au niveau des les applications. La classification DPI est comme suit :

• LDPI - 120;

• MDPI - 160

• High DPI - 240;

• XHDPI - 320;

• XXHDPI - 480.

L’icône de l’application doit être créée conformément aux exigences d’Android.

A. Exigences relatives à l’icône pour lancer un programme

L’image pour exécuter le programme pour smartphone doit être au format PNG, 32 bits. Un fond transparent est également requis.

La taille minimale d’une icône MDPI est de 48dp, les bords sont de 1dp. La quantité de détails dépend du DPI. Les options de tailles pour les autres métriques (en px):

MDPI HDPI  XHDPI  XXHDPI  XXXHDPI 
48 72 96 144 192

B. Exigences relatives aux icônes pour publier sur le Google Play

L’icône de l’application mobile doit avoir pour résolution 512 x 512 pixels. Cette icône est conçue spécialement pour le Google Play et ne peut pas être utilisée pour lancer le programme. Mais en même temps, les images utilisées sur les différentes variantes de l’icône doivent être identiques.

C. Astuces et consignes pour développer des icônes pour applications Android

Suivez les consignes suivantes :

• placez les éléments importants au centre, loin des bords et dans le tiers inférieur du cadre;

• s’il s’agit d’un logo, placez-le au centre en l'alignant verticalement et horizontalement;

• n’utilisez que des grandes polices pour les lettres.

Il est possible de créer une icône pour une application mobile Android dans un but précis. Par exemple:

1. Le branding. Créez une icône originale avec les couleurs et symboles de votre marque.

2. Attirez les utilisateurs à la recherche d’applications sur le Google Play. Un design de qualité est un indicateur de la qualité du programme.

Quel que soit l’objectif, l’image utilisée pour l’application Android doit être claire dans toutes les conditions, avec tout type de fond. Il est permis d’utiliser des icônes de forme originale.

D. Comment créer une icône pour une application iOS ?

Pour chaque application iOS, vous devez en faire une grande et une petite variante. La petite est requise pour être affichée sur l’écran d’accueil et dans le système (après avoir installé l’application). La grande est celle affichée sur l’App Store.

Type d’appareil Dimensions de l’icône (px)
iPhone 6s Plus etc. 180x180
iPhone 6s, iPhone 6,

iPhone SE etc.

120x120
iPad Pro 167x167
iPad, iPad mini 152x152
App Store 1024x1024

Créez quelques petites icônes en tenant compte des conditions requises pour les différents appareils iOS. Il ne devrait y avoir aucune grande différence visuelle entre les images de différentes tailles.

Important : Vous n’avez pas besoin d’ajouter un cadre lumineux autour des icônes : le système ajoutera automatiquement une indentation d’un pixel à toutes les icônes pour bien les encadrer.

E. Règles de design pour les icônes d’applications iOS

Suivez ces recommandations :

1. Design simple. Il doit être l’élément central transmettant l’essence du programme, sur un fond simple et mémorable, accompagné d’un minimum de détails.

2. Accentuation claire. Concentrez-vous sur l’élément qui attirera les utilisateurs et indiquera l’utilité de votre programme.

3. Reconnaissance. Pas d’énigmes : l’utilisateur n’a pas le temps de résoudre les énigmes. Il doit comprendre instantanément l’importance de l’icône et du programme.

4. Simple fond opaque pour se concentrer sur l’élément principal.

5. Pas d’images protégées ! C’est valable aussi pour les éléments liés à la marque Apple.

6. Testez différentes options de fond avec l’icône - pour que l’image puisse se marier avec la plupart des options de fonds personnalisés.

7. Garder les angles droits - le système les arrondira.

V. Comment créer un logo pour une application : les meilleurs services

Si vous voulez créer vous-même une icône pour application mobile - nous avons choisi des services qui vous seront utiles.

Logaster

C’est un générateur de logo en ligne. Il propose des dizaines de solutions visuelles uniques. Vous pouvez préciser le schéma de couleur et le thème souhaités. Vous pouvez modifier la version qui vous plaît et la télécharger dans les dimensions appropriées.

Makeappicon 

C’est un générateur d’icônes pour Android et iOS dans les bonnes dimensions. Vous pouvez uploader votre propre image, sur laquelle le service se basera pour créer des logos. Ils répondront aux exigences du moment.

IconsFlow

C’est un générateur d’icônes en ligne permettant de créer des images dans un style unique. Vous pouvez avoir l’impression d’être un designer en sélectionnant les bons éléments et couleurs. Vous pouvez charger et modifier directement votre propre image.

Font Awesome

C’est un puissant éditeur d’icônes pour applications mobiles et réseaux sociaux, avec une bibliothèque très riche, il est utilisé dans de nombreux domaines et sur certains sites Internet. Il propose plusieurs options et paramètres pour créer une image unique.

Conclusion

Développer un logo pour une application mobile est une tâche complexe. Vous devez obtenir des résultats intéressants, uniques et attractifs qui répondent aux exigences des développeurs d’applications mobiles. Suivez les règles et tendances. Moralité : utilisez des services adaptés de génération d’idées et rendez votre programme attractif vis-à-vis de votre public.