[Episode 16] Tout sur les Malwares

Bonjour tout le monde !
Voici le numéro 16 du comptoir !

Au programme

  • Les news du moment (1:17)
  • Notre dossier sur les malware (24:40)
  • Pas de what’s Next pour cette épisode mais on vous laisse avec Corpse Bride de Brookes Brothers (1:09:19)
Lire

Bonne écoute !

 

Liens et références

 

//News

Morgan

News 1 : Honey Encryption :
http://gizmodo.com/sneaky-honey-encryption-stops-hackers-by-drowning-the-1511718913

News 2 : Obfuscation cryptographique :
http://www.wired.com/wiredscience/2014/02/cryptography-breakthrough/
http://bitcoinmagazine.com/10055/cryptographic-code-obfuscation-decentralized-autonomous-organizations-huge-leap-forward/

Lois

News 1: GCHQ contre les hacktivistes Anonymous

Justin

Le pwnage du mois : Lien 1 Lien 2

Un autre coup d’éclat de la SEA : Lien 1 Lien 2

 

//Dossier Malware

http://www.guideantivirus.com/media/data/GuideAntivirus/malware_timeline-FR.jpg

http://www.howtogeek.com/125650/htg-explains-how-antivirus-software-works/

FUD: Lien 1 Lien 2

Wikipedia 🙂

 

//Musique

 Corpse Bride – Brookes Brothers

lien direct ici

Flattr this!

Android Wear et Google Know…pardon, Google Now

Vous avez sûrement entendu parler ces derniers jours d’Android Wear.

Pour ceux qui n’auraient pas suivi, Android Wear est une variante du système d’exploitation Android à destination des « objets connectés ». Il y a d’ailleurs de grandes chances pour que les Google glass et l’hypothétique google watch en soient pourvus. Un prototype l’utilisant est en préparation chez Motorola : la Moto 360.

moto360

Je ne vais pas m’étendre sur les particularités de cet OS, son interconnexion avec le système de notifications du téléphone, etc. Tout ceci est très bien expliqué dans de nombreux articles sur la toile, vous avez notamment un tour d’horizon très complet fait par Ars Technica.

Concentrons-nous sur la véritable valeur ajoutée que tente d’apporter Google : Google Now.

Google Now n’est pas encore très connu du grand public, il est relativement bien caché dans Android, surtout si vous ne possédez pas un Nexus, mais par exemple un Samsung. Vous pouvez généralement y accéder en appuyant longuement sur votre bouton « home », et appuyer sur l’icône correspondant à un G qui apparait.

Google Now a pour objectif de devenir votre assistant personnel, au même titre que Siri sur iPhone ou le projet Cortana pour les Windows Phone. Cependant, ce n’est pas qu’un simple moteur de recherche avec quelques notions de sémantique et des facultés de reconnaissance et synthèse vocale.

Google Now va plus loin que cela, sa principale différence, et celle qui va nous intéresser d’un point de vue vie privé, c’est sa capacité à savoir vous donner l’information qui vous intéresse, au moment opportun, sans que vous n’ayez à lui demander quoi que ce soit. Ces informations sont représentées sous la forme de « cartes », vous pouvez avoir une liste non exhaustive de ses capacités sur leur page de présentation.

Comment est-ce possible me direz vous ? C’est simple, Google tire à profit l’énorme quantité d’information qu’il dispose sur vous à tout moment pour proposer des cartes qu’il juge pertinentes.

Quand on y pense, Google est une petite NSA à lui tout seul, pour peu que, comme moi, vous soyez un (trop) grand utilisateur des produits Google, à savoir :

  • Mes mails personnels sont sur un compte Gmail
  • mon téléphone tourne sous leur système d’exploitation Android
  • mon agenda personnel est sur Google Calendar
  • la plupart de mes communications instantanées sont réalisées sur Google Hangout
  • mon moteur de recherche est généralement… Google, même si de plus en plus je passe par défaut sur DuckDuckGo
  • même si je n’utilise quasiment plus les réseaux sociaux pour des sujets personnels, j’utilise activement Google+ pour partager des articles pour le ComptoirSecu
  • au cas ou le moteur de recherche ne capterait pas tout, j’utilise également très souvent Google Chrome comme navigateur principal, je suis également un gros consommateur de vidéos Youtube
  • la plupart des albums photos que je souhaite partager avec la famille et les amis sont sur Picasa, maintenant renommé Google+ Photos
  • quand j’ai une note rapide à prendre, je l’inscris dans Google Keep
  • j’ai pendant très longtemps utilisé activement Google reader, j’ai même utilisé Google Voice lorsque je travaillais sur New York, je fais mes recherches d’itinéraire sur Google maps, etc.

company-products

Comme vous le voyez, la liste est très longue, je n’en suis pas fier, car j’ai parfaitement conscience des risques que cela implique, mais je suis totalement dépendant des produits de la société au slogan très hypocrite « Don’t be evil », et, à cause de tous ces services utilisés activement pendant toutes ces années, il est très facile pour Google de savoir :

  • à qui je parle et de quoi je parle (Hangout, Gmail)
  • quels sont mes centres d’intérêt (recherches googles, conversations…)
  • où je vais (fonction GPS d’android), ce que je fais (Google Calendar)
  • à quoi je ressemble, à quoi ressemble mon entourage (mes albums photos)
  • qu’est ce que j’achète (les reçus dans Gmail)

Et j’en oublie sûrement beaucoup. Si vous voulez vous faire peur, allez donc jeter un œil à votre page Ad preferences ou encore votre Google Dashboard.

Le pire étant si vous avez oublié de désactiver la localisation GPS périodique d’Android, vous verrez à quel point Google est doué pour deviner où vous travaillez, ou vous vivez, combien de temps en moyenne vous passez au travail ou en soirée, où vous voyagez, etc.

Bref, vous l’avez compris, pour peu que comme moi vous soyez très consommateur de leur produit, ou si a minima vous utilisez Gmail et possédez un téléphone Android, Google en sait énormément sur vous.

Leur génie réside dans le fait de vous offrir ces informations pour vous aider au quotidien, c’est là qu’entre en jeu Google Now, laissez-moi vous présenter quelques exemples vécus par moi-même ou par des proches :

  • Vous sortez de chez vous un jour ouvré ? Google vous annonce qu’en vue du trafic il vous faudra 35 minutes pour arriver au travail (il a mis en corrélation l’heure et votre coordonné GPS)
  • Vous prenez l’avion ? Google vous rappel votre vol et vous dit quand partir de votre position actuelle pour ne pas être en retard à l’aéroport (il a lu votre confirmation de vol sur Gmail)
  • Vous venez d’arriver au cinéma ? Google vous affiche le QR code de votre ticket électronique (il a lu vos mails et l’a mis en corrélation avec l’heure et votre position GPS)
  • Vous êtes au travail et vous vous demandez quand votre colis Amazon va arriver ? Ne vous en faites pas, Google vous fera un rappel le jour de livraison estimée
  • Vous avez rendez-vous chez le médecin ? Google vous dira quand partir pour être à l’heure (il a mis en corrélation votre position GPS et les informations dans votre agenda)
  • Vous venez d’arriver dans une nouvelle ville, il est tard et vous ne savez pas ou dormir ? Ne vous en faites pas Google à quelques suggestions d’hôtels à proximité ? Il est midi ? Qu’à cela ne tienne ! Voici quelques suggestions de restaurants !

google-now-cards

Je pourrai continuer comme ça encore longtemps, le potentiel est énorme.

Alors, oui, c’est effrayant, surtout la première fois, je vous assure que quand j’ai reçu ma première notification m’avertissant que j’avais reçu ma nouvelle clé USB à la maison je n’ai pas tout de suite compris qu’il s’était basé sur le mail d’Amazon et j’ai regardé par dessus mon épaule !

Mais on ne peut nier à quel point ces informations tombent parfois à point nommé et sont pratique, et c’est là tout le génie de Google Now, réussir à vous mettre en avant les points positifs d’une surveillance omniprésente, essayez de vous vendre ce qui vous révolte lorsque cela est réalisé par un organisme gouvernemental.

Je suis moi même tiraillé, je réalise à quel point ces données sont intrusives et de plus en plus précises, complètes et basés non pas sur un historique, mais sur l’instant présent. D’un autre côté, je l’admets, avoir une montre qui affiche mon QR code lorsque j’arrive au guichet du ciné pour ne plus avoir qu’a tendre le bras et non pas me battre avec la luminosité de mon téléphone, ça me fait vraiment envie.

Pouvoir d’un coup d’œil sur mon poignet savoir si je dois partir maintenant du travail pour aller au sport compte tenu du trafic, savoir qui m’appelle avant de sortir le téléphone du manteau ou lire un SMS d’un coup d’œil en réunion ? Je signe tout de suite.

Pour toutes ces choses, j’ai l’intime conviction qu’Android Wear, et surtout les produits qui l’utilisent, vont faire un véritable carton.

Et vous, qu’en pensez-vous ? Faites-vous parti des quelques irréductibles anti-google évitant leurs services comme la peste ? Où vous êtes vous comme moi inscrit sur la page de teasing du Moto 360 pour avoir une alerte lorsque ce petit bijou sera disponible ?

Flattr this!

SECompris #1 : Les One Time Passwords, ou « tokens »

SECompris est une nouvelle série de billets ayant pour objectif d’expliquer un terme, une technologie, ou un principe de sécurité au plus grand nombre.

Vous avez sûrement déjà entendu parler de One Time Passwords (mot de passe à usage unique), d’OTP ou encore de tokens dans le cadre d’une authentification forte. Cette option de sécurité est proposée de plus en plus couramment sur les comptes internet considérés comme « sensible », en complément du mot de passe.

battlenet_authenticator

Il vous est demandé de fournir à chaque connexion un code, souvent sous forme d’une suite de 6 a 8 chiffres, fourni par un logiciel sur votre téléphone ou par un porte clé souvent appelé « token ».

  • Google a été un des pionniers à le proposer sur Gmail avec Google Authenticator
  • Blizzard a été un des premiers à le proposer dans le monde du jeu vidéo avec son Battle.Net authenticator, l’initiative est maintenant très courante dans le monde du MMO, très sujet aux hacks de compte
  • Les banques en sont aussi friandes, elles ont par contre tendance à préférer vous proposer la version « matériel »

Matériel ? Logiciel ?

On retrouve deux formes de token, la version matérielle et la version logicielle.

La version matérielle prend généralement la forme d’un porte-clés avec un écran LCD. Le token a l’avantage d’être totalement déconnecté et à priori inaccessible par un attaquant (en dehors d’un vol de l’objet en question). Certains demandent d’ailleurs un code PIN avant d’afficher le fameux sésame temporaire pour pallier à ce risque.
Un des leaders sur le marché des tokens physique est RSA SecureID.

Bon, ok, mauvais exemple vu l'affaire RSA révélée par Snowden !

Leur gros désavantage est leur encombrement. Un token, ça va, quand vous commencez à avoir 5 accès en authentification forte, voir plus, vous comprendrez vite que ce n’est pas très « scalable ».
La version logicielle est, comme son nom l’indique, sous la forme d’une simple application, généralement pour smartphone. Certains éditeurs comme Blizzard ont leur propre logiciel avec le Battle.Net authenticator, d’autres respectent les standards et fournissent uniquement les informations nécessaires à l’ajout d’un nouvel OTP dans votre token logiciel préféré. Ces applications sont par exemple Google Authenticator et Authy.

authy

Les avantages et désavantages sont exactement l’opposé des versions matérielles. Plus aucun problème pour posséder 2 , 50 , 200 tokens. Par contre, vous vous retrouvez avec un OTP potentiellement accessible par des malwares, et donc plus vulnérable.

Je reste tout de même partisan de l’utilisation de ce type de dispositifs, tout simplement parce que le token physique est pour moi trop contraignant/couteux pour l’utilisateur, je préfère que l’utilisation de tokens se généralise de façon « non optimale » plutôt que cela reste marginalisé.

Je pense que l’avenir sera de déporter ce type de produit sur les « objets connectés », toujours sans être parfait, ils seront encore un peu plus isolés, ce qui réduit d’autant la surface d’attaque.

Comment ça marche ?

Les principes cryptographiques sur lesquels l’algorithme se repose sont complexes, mais le principe général est extrêmement simple. Il y a deux acteurs, « Token », le programme ou le matériel vous fournissant le mot de passe à usage unique, et « Serveur », le serveur d’authentification vous demandant le fameux OTP.

Lors de l’initialisation, Serveur et Token ont partagé un secret. Pour les tokens physiques, cela se fait avant qu’il vous soit livré. Pour les tokens logiciel, cela consiste généralement en une phase d’enrôlement sur le site du compte à protéger qui vous affiche un QR code que vous devez prendre en photo via l’application d’OTP. Au final ce QR code n’est rien autre que le secret plus parfois quelques informations telles que l’algorithme qui sera utilisé pour générer les OTP.

totp-example

Token et Serveur possèdent donc maintenant un même secret « S ». Lors de votre prochaine connexion sur « Serveur », il va falloir vérifier que vous possédez bien « Token ». On ne peut pas se contenter d’envoyer S, cela reviendrait à tout simplement posséder deux mots de passe, S pourrait donc être volé par un attaquant au même titre que votre mot de passe habituel, tout l’intérêt serait perdu.

Mais comment faire savoir à Serveur que nous possédons bien S dans notre Token sans l’envoyer ? Il suffit de poser une question auquel il n’est possible de répondre que si l’on connait S.

Il est difficile de trouver ce genre d’exemple sans partir dans des mathématiques. Imaginons une fonction F, prenant deux arguments A et B. Lors de l’initialisation, Token et Serveur ont convenu de ce que serait la fonction F. À chaque connexion, Serveur va donc nous envoyer le paramètre A en le choisissant au hasard. Et nous allons lui répondre le résultat de F (A, S).

  1. Comme le serveur connait aussi le secret S et la fonction F, il lui suffit de refaire l’opération de son côté et de versifier la réponse. Si la réponse est la même, il est sûr que nous connaissons S, et que nous sommes donc la bonne personne
  2. Si un attaquant écoute l’échange, il ne verra que A et le résultat. Même s’il connait la fonction F utilisée (qui n’a aucunement besoin d’être secrète), il n’a pas S et il ne peut le retrouver à partir du résultat (la fonction a été choisie pour empêcher cela)
  3. Il ne pourra pas non plus réutiliser le résultat. Lors d’une prochaine tentative de connexion, le serveur enverra une autre valeur, disons Abis, et le résultat attendu ne sera donc pas le même.

totp-function

Si vous voulez un exemple plus terre à terre, il y a par exemple la fonction « Grid » de LastPass. Celui-ci vous fournit en guise de token une grille remplie de nombre, chaque case est identifiée par ses coordonnées, un peu comme à la bataille navale.

lastpass-grid

Lors d’une connexion, le serveur vous demande de fournir les chiffres de certaines cases, disons A5, F9, C6 et Z3.

Si vous répondez bfnh, c’est donc que vous possédez la grille.

Ce système, plus simple, n’est pas parfait, il est techniquement possible à l’attaquant de reconstituer petit à petit la grille au fil du temps, jusqu’à en avoir assez pour un jour pouvoir répondre à la question à votre place.

Si vous avez compris ceci, vous avez compris comment fonctionne un « challenge response » !

Les COTP (Counter-based OTP) se basent exactement là-dessus, sauf que le serveur n’envoie même plus la variable A, celle-ci est un compteur, incrémenté à chaque utilisation du token à la fois chez le Token et chez Serveur. La première connexion se basera donc sur F (1, S), puis F (2, S), etc. Un exemple de produit basé sur le COTP est par exemple la Yubikey, ce qui lui permet d’être totalement dépourvu de batterie.

YubiKey-NEO-+-finger

Les TOTP (Time-based OTP) ne se basent pas sur un compteur, mais sur l’heure. Le mot de passe à usage unique est donc valable pendant une courte fenêtre de temps, disons 1 minute pour l’exemple. Si vous vous connectez le 10 mars 2014 à 14h35 il enverra le résultat de F (10/03/2014 – 14 :35 :00) au serveur. À 14h36, la variable utilisée aura changé et le résultat précédent ne sera plus valable.

Ce dernier système est le plus couramment utilisé. Le TOTP le plus connu est sûrement RSASecureID :

Bon, ok, mauvais exemple vu l'affaire RSA révélée par Snowden !
Bon, ok, mauvais exemple vu l’affaire RSA révélée par Snowden !

Quel est l’intérêt ?

Rappelons les fondamentaux, il existe 3 facteurs d’authentification possibles :

  1. Ce que l’on connait : un mot de passe, un code PIN, appelez-le comme vous voulez
  2. Ce que l’on est : la biométrie, comme l’empreinte digitale ou la reconnaissance rétinienne
  3. Ce que l’on possède : les fameux « tokens »

L’extrême majorité de nos accès informatique est régie par ce que l’on connait. Le problème étant que le mot de passe est très faillible :

  • Nous sommes submergés par les comptes à créer et retenir, et il est donc très tentant de réutiliser toujours les mêmes mots de passe, et de mettre des mots de passe court, facile à retenir et surtout à saisir. La mode des smartphones n’a rien amélioré, c’est même pire, il est très désagréable de taper un mot de passe complexe avec un clavier tactile
  • Un mot de passe est très facile à capturer par un malware, ceux qui le font sont tellement courants qu’ils ont même un nom propre, on les appelle les keylogger, généralement classés dans la grande famille des trojan, ou cheval de Troie. Un keylogger « surveille » les touches du clavier et retient les mots de passe saisis pour les envoyer à l’attaquant. Il suffit donc d’une connexion sur un ordinateur infecté pour fournir nos précieux mots de passe.

C’est là que vient l’authentification « forte », ne pas demander un, mais deux facteurs différents. Dans le cas présent : un mot de passe ET un token.

Comme on l’a vu au-dessus, le token est conçu pour que la preuve de possession change à chaque connexion. De ce fait, le keylogger va obtenir notre mot de passe et le mot de passe à usage unique (OTP) généré par le token lors de la connexion. Seulement lorsqu’il essayera de se connecter de son côté, le mot de passe à usage unique ne sera plus valide.

Le seul moyen pour lui d’assurer une connexion à volonté sur notre compte est de posséder notre token, ou, plus techniquement, la clé secrète qu’il utilise pour générer ces mots de passe à usage unique. Pour un token matériel, c’est conçu pour être mission impossible sans recourir à un vol du fameux porte-clés.

Pour un token logiciel, cela implique de pirater l’ordinateur utilisé par la connexion ET l’ordinateur (oui, votre smartphone est un ordinateur) hébergeant le token. On se rend tout de suite compte que la tâche est bien plus ardue.

Conclusion

L’OTP est un mécanisme simple et éprouvé permettant de renforcer efficacement la sécurité d’un contrôle d’accès. C’est une fonctionnalité qui nécessite peu de moyens pour être mise en place du côté du fournisseur de service et qui ne nécessite pas de matériel spécifique pour s’identifier à la différence de la biométrie.

Enfin, contrairement à la biométrie, un OTP se change très facilement, comme un mot de passe, si jamais votre token était compromis, il est très simple pour l’utilisateur de réinitialiser le secret et donc d’invalider les bénéfices du vol.

L’OTP est un superbe palliatif à un mot de passe faible, même si je ne conseillais jamais à quelqu’un d’utiliser un mot de passe facile à deviner, si la personne ne peut se résoudre à retenir un mot de passe complexe, l’ajout d’un OTP réduira très fortement les risques. De la même manière, se connecter sur un équipement que l’on ne maîtrise pas, comme l’ordinateur d’un cybercafé, peut se faire bien plus sereinement.

Bien sûr, le token n’est pas parfait, sa perte est souvent très problématique pour l’utilisateur, comment prouver son identité auprès du fournisseur ? Si l’opération de réinitialisation est trop peu exigeante, l’attaquant se contentera de l’exploiter. Si la réinitialisation est trop simple voir impossible, l’utilisateur sera traumatisé par la perte définitive de ses accès et, croyez-moi, il ne sera pas prêt de recourir de nouveau à une solution d’authentification forte.

C’est pour cette raison que je soutiens des initiatives comme la synchronisation du token sur plusieurs terminaux comme le propose Authy. Même si les puristes crieront au scandale, je préfère un bon compromis au rejet de la sécurité.

J’espère que ce billet aura été informatif et compréhensible, peut-être vous a-t’il convaincu à activer l’authentification forte sur votre compte mail ? Votre gestionnaire de mot de passe ? votre banque ? Si vous avez un token sur ces 3 services, vous faites partie du haut du panier des utilisateurs.

Flattr this!

Stripe, Un paiement simplifié et sécurisé ?

Aujourd’hui je vais vous parler d’un concurrent au très célèbre Paypal: Stripe.

C’est toujours assez complexe et pas vraiment sécurisant d’être redirigé vers un autre site web lors d’un paiement sur Internet. Il faut toujours vérifier le certificat SSL et le numéro de carte bleue peut être récupérer si on a un key logger sur sa machine. De plus, payer sur son mobile peut être assez fastidieux.

Stripe permet avec son téléphone de payer via Navigateur web, mobile et tablette sans aucune redirection vers un site tierce. Le tout est réalisé en Node.js ou via un plugin si c’est sur une application mobile.

Le concept est simple, le client voulant payer se connecte sur son compte via OAuth2.0 sur le site du vendeur. S’il n’a pas de compte, il est possible d’en créer un dans la foulée. Un sms contenant un code à usage unique est ensuite envoyé sur le téléphone de l’utilisateur. Il suffit de rentrer ce code sur le site pour payer. Le sms envoyé est lié à la commande et à la clé API du marchand.

598px-Oauth_logo.svg

Évidemment, ils prennent une commission: 2.9% de la transaction plus 30 centimes. Cela peut paraitre beaucoup mais Paypal utilise exactement la même grille tarifaire. D’ailleurs un des principaux investisseurs est Peter Thiel qui n’est autre qu’un des fondateurs du géant du paiement électronique. Paypal s’intéresse beaucoup à cette solution de checkout puisqu’ils ont annoncés eux aussi développer quelque chose de similaire .

Du côté de la sécurité, la société est certifié PCI Service Provider Level 1. Ce qui indique un bon niveau de maturité de ce côté-là. Pour rappel, PCI/DSS est une certification qui impose beaucoup de règles de sécurité avec des audits réguliers. Les numéros de cartes bleues sont chiffrés en AES-256 et les clés de déchiffrements sont stockées sur des machines séparées. Il n’y a malheureusement pas suffisamment de description sur leur site pour se faire une réelle idée des mécanismes de sécurité employés de leur côté. Toutefois, il possible de signaler les failles trouver sur leur système via une adresse mail: security@stripe.com avec un engagement de réponse dans les 24h. Cependant, ils demandent de ne pas publier la description de la faille avant leur avoir communiqué et aucune contrepartie n’est annoncée.

stripe mobile

Une attaque par l’homme du milieu me parait cependant faisable. C’est pour cela qu’ils conseillent aux vendeurs de faire attention aux autres javascripts qui seraient présent sur leurs sites. On peut très bien imaginé remplacer la clé API du vendeur par celle d’un attaquant afin de récupérer l’argent par exemple. Pour cela, il faudrait s’enregistrer sur leur site afin d’avoir une clé et le subterfuge serait, à mon avis, vite découvert.

Malheureusement, l’application n’est pas encore disponible en France mais cela ne saurait tarder. Attention, je vous déconseille de rechercher stripe sur le store android, j’ai eu des surprises NSFW 🙂

 

Sources:

http://techcrunch.com/2014/03/05/stripe-debuts-a-new-checkout-experience-with-one-click-payments-for-mobile-and-web/?ncid=rss

https://stripe.com/help/security

Flattr this!