Le Post Infeeny

Les articles des consultants et experts Infeeny

Security in Windows Store apps

Cette session s’apparentait plus à un très gros listing de points dont voici le contenu.

  • Sécurité et confiance de l’utilisateur
    • La confiance de l’utilisateur l’encourage a essayer de nouvelles applications car ils n’ont pas d’inquiétudes
      • Suivre des bonnes pratique de programmation sécurisée
      • Les applications doivent fonctionner de manière attendues
      • Les applications doivent respecter les données de l’utilisateur
    • Les utilisateurs devraient pouvoir acheter une application sans inquiétudes
    • Simple, principe du sens commun appliqué à la sécurité de l’application afin de protéger la confiance de l’utilisateur
  • Eviter d’être trop optimiste
    • Choisissez les capabilities avec attention
    • Gérer correctement les données utilisateur

Eviter d’être trop optimiste (with great flexibility comes great responsibility)

  • Les utilisateurs s’attendent à des applications vivantes, dynamiques et interactives
  • Répondre à cette attente requiert des données temps réelle, des sources et du contenu du cloud
  • Avoir confiance dans le cloud est une expression d’optimistes et est l’erreur la plus courante

DEMO Injection Javascript/HTML (grâce à la fonction eval et MsApp.executeUnsafeLocalFunction ***)

« Not trust and then verify but verify then trust »

Utiliser WinJS framework en lieu et place de vieille constructions Javascript car :

  • Ils sont faits pour Windows Store Apps
  • Ils sont fournis par Microsoft
  • Ils grandissent de la manière que Windows 8 grandi

Faire attention lors de la mise en place de Work Arounds dans les frameworks JS car certains utilisent des mécanismes offrant des failles de sécurités lorsqu’ils sont exécutés dans le contexte d’une application WinJS.

Utiliser JSON.parse au lieu de eval

Choisissez les capabilities avec attention

Préférez le principe de moindre privilège.

Les capabilities les plus communément mal utilisées sont :

  • Document library
  • Pictures library

Règle de la liste des privilèges :

  • Ne l’utiliser qu’en cas de besoin
  • Les capabilities ajoutent des fonctionnalités aux applications mais augmentent aussi leur surface d’exposition aux attaques
  • Faire très attention lorsque l’on ajoute une capability juste pour faire marcher un truc temporairement, il faut penser à la supprimer après.

Il existe deux grands types de capabilities, les générales et les spéciales. Les générales peuvent être utilisées par tous les développeurs tandis que les spéciales sont réservées au compte business.
Dans tous les cas il faut appliquer le principe de privilège minimum.

Les capabilities générales sont utilisées pour ajouter des fonctionnalités pour interagir avec les bibliothèques, réseaux et appareils. Les capacités spéciales sont puissantes (penser à un administrateur) et ont des buts bien précis.

Document library est la capability la plus sur-déclarée.

Elle permet :

  • L’accès aux extensions de fichier enregistrées
  • Non nécessaire pour l’accès aux fichiers ou pour la création de fichiers dans Document. Pour tout cela utilisez un FilePicker
  • N’enregistrez pas d’extensions de fichiers à moins que vous ne le gériez vraiment.

Entreprise authentication :

  • A moins que vous ne développiez une application d’entreprise vous n’en avez pas besoin
  • Considérations à prendre en compte :
    • Utilisé pour accéder aux identités Windows et pour accéder aux ressources d’entreprise par code
    • Le FilePicker fourni un prompt pour interroger le Credential Challenger***
    • Non requis pour utiliser les comptes connectés tels que Microsoft Account, Facebook ou Twitter

Certificats utilisateurs partagés :

  • Si vous n’êtes pas une entreprise ou une institution financière il est peu probable que vous en ayez besoin
  • Considérations à prendre en compte
    • Autorise l’accès aux certificats logiciels ou matériels stockés sur des SmartCard.
    • Non requis pour du Secure Socket Layer (SSL). La plateforme le supporte nativement.

Gestion responsable des données utilisateurs

  • Soyez transparent avec vos utilisateurs au travers des privacy policy
    • Quelles données on collecte ?
    • Qu’est-ce que l’on fait de ces données ?
    • Comment désactiver la collecte de données ?
  • Stockez et transmettez ces informations de manière sécurisée
  • Utilisez Credentials Locker pour la gestion des authentifications
  • Evitez au maximum l’utilisation de données permettant d’identifier l’utilisateur
    • Par exemple en utilisant GetPackageSpecificToken lorsque l’on a besoin d’avoir un identifiant pour un couple unique de machine/application

La confiance est quelque chose qui s’évalue au fur et à mesure. En codant de manière sécurisée, en appliquant le principe de moindres privilèges et en gérant les données utilisateurs de manière sûre vos applications ont plus de chance d’être un vrai succès qu’un échec cuisant.

Et en plus, obtenir la confiance de l’utilisateur permet de le libérer de sa peur à se procurer vos applications.

John

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :