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

VB.NET Discussion :

Codes visibles lors d'une décompilation


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut Codes visibles lors d'une décompilation
    Bonjour,

    Dans le cadre d'un programme pour la société dans laquelle je travaille, réalisé en VB.net avec Visual Studio 2010 Express, je fait plusieurs manipulations en particulier de l'envoi de fichiers vers un FTP, mais également l'enregistrement de données sur une base MySQL distante.

    Mon problème, est qu'en décompilant l'exe avec .Net Reflector, les identifiants (login / mdp) du FTP et de la base MySQL sont visibles, ce qui pose des problèmes sérieux de sécurité.

    Etant encore un peu novice, je ne sais pas du tout comment faire pour que ces informations "critiques" n'aient aucun moyen d'être vues, quelque soit le niveau de la personne qui manipulerait l'exe si je puis dire.

    Auriez-vous de pistes à me conseiller pour régler ce problème ?

    D'avance merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    à part la saisie par l'utilisateur il n'y a rien
    tout ce qui peut être imaginé est contournable

    on peut juste faire quelque chose qu'un novice ne peut pas trouver, mais un pro y arrivera toujours
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Oui, j'imaginais bien cette réponse.
    Tout ce qui a été tricoté peut-être détricoté.

    Maintenant, n'y a t'il rien à faire pour que ces identifiants ne soient pas aussi visibles en brut dans le programme par une simple décompilation ?
    Moi qui suit novice il m'a suffit de télécharger .Net Reflector et d'ouvrir mon exe pour trouver ces codes. Je me dis qu'il doit bien y avoir des possibilités, certains programmes élaborés par des firmes importantes utilisent des fonctionnalités telles que l'envoi sur des FTP etc, ils ont certainement des solutions pour que les identifiants ne soient pas accessibles à tous.

    Non ?

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bah au pire, tu les stockes dans un fichier de config et pour que ce ne soit pas facilement lisible par le profane, tu les cryptes avec un algo à la noix de ton choix.

    Mais c'est vraiment pour luter contre le fils de madame Michu (qui s'y connait un peu plus qu'elle). Quelqu'un comme toi ou moi pourra trouver l'algo de cryptage/décryptage dans le code décompiler et avoir accès aux infos.
    Kropernic

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Bon eh bien tout cela ne m'arrange pas !

    J'avais pensé quelque chose d'un peu similaire, mais plutôt en utilisant un Webrequest vers une page qui me retournerait les identifiants cryptés, et que le programme seul ait la clé de décryptage, mais c'était effectivement juste pour le fils de Madame Michu ainsi que pour la mère Michel.

    Merci en tout cas

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si ca peut te rassurer, le ftp n'est pas un protocole sécurisé, et je crois que les identifiants passent en clair sur le réseau
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    j'utilise ftps...

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    si tu as une gestion de login user, tu peux faire un webservice qui se log avec ce couple pour acquérir le couple nécessaire au ftp
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Pardon, je n'ai pas compris ce que tu voulais dire ?

  10. #10
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonjour figolu77,

    L'obfuscation en Dotnet est un sujet qui a et suscitera bien des réactions.....
    Comme mentionné plus haut tu peux prévoir l'encryption des chaines de caractères dans ton programme (*.exe) mais cette solution ne ralentira que les plus aguérrits en matière de Reverse Engineering (RE) et...ce seulement si ton programme vaut la peine qu'on s'attarde dessus en vue de récupérer des données "dites sensibles" ! Tout est relatif.

    Si toutefois tu voulais te lancer dans un système d'obfuscation/d'encryption de chaines de projet VbNet tu pourrais envisager d'agrémenter un vieux projet que j'avais développé dans le but d'illustrer l'utilisation de RegEx (du délégué MatchEvaluator, des patterns...etc...) et surtout la modification de projet (pas du binaire !) :

    https://bitbucket.org/3dotdev/vbnet-string-renamer


    J'espère que ça te sera utile.

    PS : attention je ne dis pas que ce genre de protection est infaillible car ca ne l'est pas mais ca peut écarter les nOObs.

    Sinon il existe un système de protection qui ce jour fait l'unanimité pour protéger très très convenablement ton binaire dotnet : https://github.com/yck1509/ConfuserEx


    A+

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Merci à tous pour toutes vos pistes, merci wallace1 également, comme toujours très efficace.

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Technique 1. Tu passes par un web service qui limitera la diffusion des fonctionnalités et des données selon les besoins.
    Technique 2: Tu créé un ou plusieurs utilisateurs au droit limité a ce que l'application a besoin. Tu fournis les credentials a l'utilisateur final. Ces derniers sont saisi dans l'application puis stocker de manière sécurisée a l'aide de ce que le système d'exploitation veut bien te mettre a disposition (ou saisi a chaque fois).

    La clé c'est de limité les droits de l'utilisateur qui est dans la nature. Mettre le compte admin de la base de donnée dans l'application qui se balade dans la nature est par définition un problème de sécurité.

    Si l'utilisateur envoyé des fichiers, inutile de lui donné le droit de suppression et encore moins les droits sur les fichiers des autres utilisateurs.

  13. #13
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Si tu fournis un identifiant universel, alors tu dois considérer ce compte comme public, point barre. Tenter de restreindre la visibilité du mdp est une tâche vaine : ceux que tu dois le plus craindre sont aussi ceux qui perceront le plus aisément tes protections.

    Je rejoins donc Sinople : la bonne solution est de limiter les droits du compte public ou bien de créer un compte par utilisateur.

    Identifie d'abord ce que tes utilisateurs doivent faire sur ce ftp.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Il n'y a aucun moyen sûr de stocker les identifiants dans le programme lui-même ; même si tu les chiffres, il faudra que ton programme ait la clé pour les déchiffrer, et donc quelqu'un qui décompile le code pourra finalement y accéder (même si ce sera un peu plus difficile).

    La bonne solution, à mon avis, est de demander les identifiants à l'utilisateur lors de la première utilisation, et de les sauvegarder dans les paramètres de l'application, en les chiffrant à l'aide de DPAPI. Voir ce billet pour plus de détails : http://www.thomaslevesque.fr/2013/05...rotection-api/

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Points : 48
    Points
    48
    Par défaut
    Merci à tous pour vos réponses, j'ai creusé un peu, et la réponse de wallace1 m'a paru pertinente (comme toujours avec toi wallace1).

    J'ai donc essayé ConfuserEx, j'ai trouvé un exe, et j'ai mis le .exe de mon programme. Je n'ai pas fouillé plus que ça.
    Je précise que mon exe est signé numériquement à la base.

    J'ai donc lancé la procédure confuserEx, et après cela, mon .exe est perçu comme un virus par avast, alors qu'avant, tout était ok (plus de 200 personnes ont installées le programme sans problème auparavant).

    Voici où j'ai téléchargé confuser :
    http://confuser.codeplex.com/

    Y a t'il des options en particulier à mettre ?
    Dois-je resigner le .exe une fois modifié par confuser ?

    Merci d'avance

  16. #16
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par figolu77 Voir le message
    J'ai donc lancé la procédure confuserEx, et après cela, mon .exe est perçu comme un virus par avast, alors qu'avant, tout était ok (plus de 200 personnes ont installées le programme sans problème auparavant).

    Voici où j'ai téléchargé confuser :
    http://confuser.codeplex.com/

    Y a t'il des options en particulier à mettre ?
    Dois-je resigner le .exe une fois modifié par confuser ?

    Merci d'avance
    Malheureusement la détection par les AV en tant que faux-positif est le prix à payer lorsqu'on veut éloigner les moins aguerrit du reverse engineering !!
    Dans Confuser il me semble qu'il est possible de conserver ton certificat numérique en le renseignant .... (jamais testé !) ??

    A+

Discussions similaires

  1. error code 1005 lors d'une création de table
    Par sebabarre dans le forum Débuter
    Réponses: 7
    Dernier message: 31/10/2012, 11h43
  2. Contenu d'une div toujours visible lors du défilement
    Par MisterSnow dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 13/09/2010, 16h08
  3. Réponses: 4
    Dernier message: 13/07/2010, 12h20
  4. probleme lors d'une création d'animation par le code
    Par Finality dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 13/10/2008, 21h12
  5. Bug Excel lors d'une tentative de modif de code VBA
    Par aerodynamique dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/11/2007, 11h28

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