IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Détection de la protection par l'UAC


Sujet :

Windows

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut Détection de la protection par l'UAC
    Bonjour,

    Les programmes que l'on développe sont souvent utilisés par des grands comptes qui ont parfois des exigences particulières. L'une d'elle est que les applications puissent s'installer dans un répertoire sans écrire de données ailleurs.

    Avec l'arrivée de Vista, si le programme est classiquement installé dans "Program files", un utilisateur standard ne peut plus écrire dans le répertoire de l'application. Le fichier est soit virtualisé (et sera donc différent pour chaque utilisateur ce qui change du comportement habituel), soit l'écriture est carrément refusée (Microsoft annonce que se sera le comportement standard dans les OS post Vista).

    J'en arrive donc à ma question : Connaissez vous les API qui me permettrait de détecter si le répertoire dans lequel l'application est installée est protégé par l'UAC ? Avez vous des exemples de code ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ne serait-il pas plus simple, lors de l'installation, de donner au commun des mortels le droit d'écriture dans le dossier en question, avec les APIs de gestion des droits (ou la commande cacls) ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Merci pour l'idée, je ne savais pas que c'était possible. Mais est-ce une solution viable à long terme ?

    Il faut que les changement de droits soient fait au moment de l'installation ? non ?

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Normalement, au moment de l'installation en effet.
    Par contre, il semblerait que ce ne soit pas directement réglable dans le programme d'installation (enfin, ça doit dépendre du générateur d'installeurs). Mais bon, rien n'empêche l'installeur d'extraire un programme qui règle les droits du dossier, puis exécuter ce programme...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Mais si on lance un programme, comment peut-on être sûr qu'il aura les droits suffisants ? Les machines des grands comptes ont souvent des droits assez restrictifs et une politique de sécurité très stricte.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Au moment de l'install, tu as forcément les droits sur les dossiers que tu crées, tu as donc aussi les droits de changer les droits dessus.

    Donc, tu devrais pouvoir donner le droit aux non-administrateurs d'y accéder, sauf si la virtualisation de Vista se met en travers de ton chemin au lieu de refuser normalement l'accès...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Justement, je ne comprend pas grand chose à la gestion des droits sous Windows. Je ne savais pas si un utilisateur ayant les droits d'installer une application pouvait aussi modifier les droits d'écrire dans les sous-répertoires de "program files". Donc merci pour l'info.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Eh bien, la plupart du temps (je dis bien la plupart du temps), les droits en écriture viennent avec les droits de changer les permissions.
    Typiquement, les administrateurs peuvent le faire.

    De plus, le créateur d'un fichier ou dossier a forcément tous les droits dessus, donc si tu peux créer un sous-dossier dans Program Files, tu peux forcément changer les droits sur ce sous-dossier.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Mon avis : Le droit d'ecriture dans le répertoire "c:\program files\<produit>" est une abbération en termes de sécurité (hormis lors de l'installation).

    En effet, quelqu'un de "malintentionné" peut venir changer le binaire du produit et le remplacer par son cheval de troie (création d'un utilisateur local membre du groupe des admin par exemple).

    Donc, le répertoire "c:\program files\<produit>" devrait être Read Only pour le commun des mortels (je sais, c'est très loin dêtre le cas).

    Après cela, il y a des répertoires prévus pour dans lequel on (l'application avec les privilèges de l'utilisateur) peut créer des fichiers, "C:\Documents and Settings\<utilisateur>\Application Data" ou encore "C:\Documents and Settings\All Users\Application Data".
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En effet.
    Les programmes que l'on développe sont souvent utilisés par des grands comptes qui ont parfois des exigences particulières. L'une d'elle est que les applications puissent s'installer dans un répertoire sans écrire de données ailleurs.
    Ces "grands comptes" sont des idiots finis. D'un autre côté, s'ils se moquent de la sécurité...

    Sinon, ces "exigences particulières" n'interdisent sûrement pas l'usage de sous-dossier, si?
    Si on peut faire des sous-dossiers, rien n'empêche de ne donner les droits en écriture que sur le sous-dossier en question...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si leur idée de la sécurité consiste à avoir les exécutables modifiables par le commun des mortels, grands comptes ou pas, ce sont des idiots.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Si leur idée de la sécurité consiste à avoir les exécutables modifiables par le commun des mortels, grands comptes ou pas, ce sont des idiots.
    +1
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    D'un autre côté, donner les droits d'écriture sur le répertoire ne signifie pas forcément les donner sur l'exécutable, si l'on rend ce droit d'écriture non-héritable...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    les grand comptes dont je parle plus haut utilisent des systèmes "jetables" (les ordinateurs sont reformatés tous les jours et une image du système réinstallée automatiquement). Les administrateurs veulent pouvoir installer les "applications spéciales" en un seul bloc, avec une simple copie des fichiers dans un répertoire, et non en suivant toute une procédure d'installation.

    Donc si quelqu'un a une réponse à ma question initiale (comment détecter la protection d'un répertoire par l'UAC) je reste intéressé, car, comme je viens de l'indiquer, je ne contrôle pas forcément l'installation de l'application.

  15. #15
    Membre confirmé
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    373
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 373
    Points : 512
    Points
    512
    Par défaut
    les grands comptes, beurk, je connais. le profil exemplaire de psychopathes.
    tout ce qui les interresse, c'est de controler, tel big brother tout ce que font les utilisateurs, et se faciliter la vie. aprés tout, pour eux, l'utilisateur est un con, et un con, ca ose tout, donc il est extremement dangereux pour lui meme et pour le systeme. grandiose vue, n'est-il pas??
    donc, la solution parfaite de leur point de vue, c'est de reformater et installer une image parfaite tous les matins sur les ordinateurs.. super..

    concernant ta question initiale, replonge toi dans la documentation windows en ligne sur le msdn ou l'utilisation et les regles de l'UAC sont decrites par le menu et particulierement faciles à mettre en oeuvre..
    puisque les grands comptes sont si brillants, ils ne devraient pas avoir besoin de nous pour résoudre cette problématique ridiculement facile.
    PS, c'est tellement facile, que rien qu'en utilisant les régles de programmation et d'installation (inclus ecritures des elements dans la base registre) de windows98, ca marche impecable sur tous les systémes, inclus vista.
    mais pour ca, faut lire la doc.. et pas se contenter de poser une question en se croyant chez mac do..
    et l'utilisateur n'a pas à toucher quoi que ce soit dans le repertoire d'installation du programme. sinon, ca s'appelle un suicidaire..

Discussions similaires

  1. [Sécurité] Protection par htaccess
    Par dom_dev dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2006, 10h34
  2. Protection par mot de passe
    Par BigZ444 dans le forum Delphi
    Réponses: 2
    Dernier message: 12/05/2006, 21h28
  3. Protection par .htaccess
    Par bagu dans le forum Apache
    Réponses: 4
    Dernier message: 03/04/2006, 16h38
  4. [Sécurité] Protection par .htaccess et .htpasswr
    Par agencep dans le forum Langage
    Réponses: 9
    Dernier message: 23/02/2006, 13h10
  5. Protection par blocage de répertoire?
    Par Madmac dans le forum Windows XP
    Réponses: 15
    Dernier message: 09/02/2006, 00h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo