Question:
Pouvons-nous protéger un jeu vendu avec la machine Windows sur laquelle il s'exécute?
younes
2017-10-31 15:53:57 UTC
view on stackexchange narkive permalink

Nous voulons protéger un jeu qui est essentiellement vendu avec l'ordinateur qui le contient. La sécurité se fait de cette façon:

  1. Le disque dur est chiffré à l'aide du matériel TPM 1.2, qui contient une clé unique pour déchiffrer le système d'exploitation uniquement sur cet ordinateur spécifique. Ainsi, Windows ne démarrera que sur un seul PC. De plus, le TPM ne laissera pas Windows démarrer en cas de modification matérielle.

  2. explorer.exe est remplacé par game.exe , Le système démarre le jeu au démarrage. Si vous quittez le jeu, il n'y a pas d'explorateur, juste un écran noir.

  3. Ctrl & Alt & d'autres touches sont désactivé, donc le Gestionnaire des tâches n'est pas accessible.

  4. L'adaptateur Ethernet est désactivé, l'exécution automatique est désactivée pour empêcher le vidage de game.exe .

  5. Deep freeze est installé, l'utilisateur ne peut pas accéder aux modes Sûr ou Réparer

S'agit-il d'un système sécurisé? S'il n'est pas sécurisé, que peut faire un attaquant?

Les commentaires ne sont pas destinés à une discussion approfondie;cette conversation a été [déplacée vers le chat] (http://chat.stackexchange.com/rooms/68062/discussion-on-question-by-younes-can-we-tamper-proof-a-game-thats-sold-along-wi).
https://www.microsoft.com/windowsembedded/en-us/windows-embedded-8-pro.aspx
Alors, j'insère une clé USB avec un programme à exécution automatique, et ...
@Mawg L'exécution automatique à partir d'une clé USB peut facilement être désactivée par le défenseur.Même s'il n'est pas désactivé, le disque est toujours chiffré et l'attaquant doit obtenir les clés du TPM matériel.
Il n'est pas possible de rendre quoi que ce soit infalsifiable lorsque d'autres ont un contrôle complet sur le matériel.Pas avec n'importe quel matériel ou logiciel, ce n'est pas possible.
Oui, je le sais, mais le PO ne l'a pas mentionné.
Les attaques de canaux secondaires exposeraient toujours votre jeu au clonage, si quelqu'un le souhaite et a accès au matériel.
Vous voudrez peut-être vous pencher sur [WePOS et ses successeurs] (https://en.wikipedia.org/wiki/Windows_Embedded_Industry).Verrouiller ce qui est essentiellement un kiosque Windows est un problème (principalement) résolu dans l'industrie des systèmes de vente au détail et de paiement.Vous ne pouvez jamais le faire à 100%, mais vous pouvez vous en approcher, et le point de vente le fait depuis des décennies.
De nombreuses attaques d'imagerie ont lieu après le démarrage du système.Si la clé est stockée en texte clair en mémoire, elle peut alors être capturée.
... bien sûr, cela dépend souvent du matériel, mais un attaquant qui construit du matériel personnalisé peut faire en sorte que ce matériel s'identifie comme autre chose au moment de l'énumération.
Je suppose que c'est une convention, mais je trouve bizarre de se référer à quelqu'un essayant de faire avec * sa propre propriété * un "attaquant".Et ce que vous décrivez n'est pas un ordinateur.C'est essentiellement une armoire d'arcade.Comment au lieu de traiter vos clients comme votre ennemi, créez-vous un jeu pour lequel les gens seront prêts à payer?
"Comment au lieu de traiter vos clients comme votre ennemi" Le client dans ce cas est l'entreprise qui a l'obligation de le verrouiller (probablement une installation CBT ou un distributeur / opérateur de machines de style arcade), donc vous ne faites pasbeaucoup de sens.
Quel est votre modèle de menace?
@12431234123412341234123 J'irais plus loin en disant qu'il n'est pas possible de rendre quoi que ce soit infalsifiable, point final.Juste inviolable.
L'inviolabilité est impossible.Votre meilleur espoir est de rendre les choses aussi difficiles que possible ... mais, si vous dépensez plus de ressources pour la sécurité que pour le développement de vos produits, alors vous avez un plan d'affaires déséquilibré.
Donc, la machine d'arcade est fondamentalement impossible à entretenir, car échanger une mauvaise partie ne la fera pas démarrer?
Dans quelle mesure votre adversaire est-il bien financé?Êtes-vous à l'échelle, par exemple, des fournisseurs de télévision par satellite, où les gens sont prêts à dépenser de l'argent réel pour financer un laboratoire de rétro-ingénierie, ou vous inquiétez-vous simplement pour les amateurs?
... aussi, dans quelle mesure la mécanique du jeu peut-elle se résumer à quelque chose qui peut être encapsulé dans un module matériel inviolable?Bien sûr, il y a des attaques (de synchronisation, d'alimentation et autres) contre les cartes à puce, mais si vous en avez une exécutant la logique de base du jeu, cela place au moins cette logique dans un endroit distinct de votre ordinateur à usage général.
@younes Il semble que vous soyez déterminé à le faire, et la question devrait se lire: "Quelles sont les stratégies pour rendre une machine * inviolable *?".Comme vous pouvez le voir à partir des réponses, ce ne sera nulle part près de * inviolable ** preuve *** ....
Est-ce que geler la RAM (pour que les données contiendront après avoir été retirées de la carte principale), permuter le module Ram vers un autre ordinateur et le vider est-il possible?
Sept réponses:
MSalters
2017-11-01 18:57:41 UTC
view on stackexchange narkive permalink

Nous pouvons analyser votre configuration en la comparant à un système connu pour être non inviolable, la Sony PlayStation 3.

Contrôle du système d'exploitation

Vous n'ont aucun contrôle sur le système d'exploitation. Sony a écrit le système d'exploitation lui-même.

Taille du système d'exploitation

Le système d'exploitation PS3 peut être très simple car il suffit de démarrer des jeux. Windows est un système d'exploitation générique, avec de nombreuses fonctions. Cela expose de nombreuses API.

Shell

Le shell du système d'exploitation PS3 est destiné à simplement démarrer les jeux. Sous Windows, l'interface utilisateur par défaut est fournie par Explorer. Vous proposez de le remplacer, ce qui n'est pas un objectif de conception pour Microsoft. Cela peut sembler fonctionner, mais déchirer Explorer peut laisser certaines interfaces ouvertes. C'est un problème particulier pour vous car de telles interfaces ouvertes peuvent devenir des vecteurs d'attaque.

Matériel

Vous semblez travailler sur un matériel PC standard, juste avec TPM. Sony avait conçu la PS3 dès le départ dans l'hypothèse que les pirates attaqueraient le matériel.

Votre PC standard a probablement des slots PCI-e. Ceux-ci prennent en charge DMA. En utilisant cela, vous avez accès à la mémoire du PC. Ce sera non crypté. Une manière courante de le faire est d'utiliser FireWire. IIRC, les consoles modernes conservent désormais la RAM cryptée également, et elles n'accordent évidemment pas l'accès DMA au matériel extérieur.

Conclusion

Votre système semble moins sûr qu'une PS3, et une PS3 peut être piratée, il est donc prudent de supposer que le vôtre peut l'être aussi.

J'aime l'attaque par procuration.Bien qu'il puisse être difficile d'écrire * exactement * comment votre système peut être attaqué, si vous pouvez montrer qu'il est manifestement moins sécurisé qu'un autre appareil et que cet autre appareil a déjà été piraté, cela vous donne une réponse assez définitive!
Je voudrais mentionner que la PS3 a été piratée par linux par le célèbre geohot, linux a été autorisé à être installé à l'intérieur de toute PS3 inférieure à la v 3.15
Bien que généralement mal implémenté, il existe une couche de contrôle d'accès du PCI (e) à la mémoire principale.
@PlasmaHH PCI (e) est utilisé par la carte graphique, le retrait de la carte arrêtera le démarrage du système, tout changement de matériel, y compris (l'ajout / la suppression) provoquera l'arrêt du démarrage du TPM. pouvez-vous accéder à la mémoire sans que le système d'exploitation détecte les modifications matérielles dans les emplacements PCI?
@younes: Votre TPM1.2 peut arrêter de démarrer, mais qu'en est-il du hotplug PCI-e?
@younes: Je peux, avec un peu d'azote liquide, ce n'est pas du tout un problème.Peut tu?Je ne sais pas trop quel est l'intérêt de la couche de protection MMU ici ...
@PlasmaHH Heureusement, toutes les suggestions jusqu'à présent peuvent être corrigées: l'ajout d'un logiciel qui crypte la RAM fera l'affaire
@younes: Comment voulez-vous que cela fonctionne exactement?Notez que vous utilisez un processeur x86 ordinaire sur Windows normal.Une instruction x86 `MOV` ne décodera pas son argument.Encore plus fort, le fait que le x86 sache qu'il s'agit d'une instruction `MOV` nécessite que le segment de code ne soit pas chiffré.Et votre carte vidéo disponible dans le commerce sera également mappée en mémoire et s'attendra à effectuer des transferts DMA pour les textures.Il en sera de même pour votre stockage (HDD / SDD).
https://security.stackexchange.com/questions/109968/ram-encryption-is-it-possible
@younes: SGX n'a-t-il pas toujours besoin que les données soient en RAM?Et comment la clé pénètre-t-elle dans le processeur sans jamais toucher la RAM?De plus, SGX simple peut être lu par des attaques de canaux secondaires.De plus, toutes ces choses sont extrêmement lentes à exécuter le code de jeu réel.
@younes Vous semblez penser que "si les gens proposent une liste spécifique d'attaques, et après cela, je me défends contre elle, alors mon système est sécurisé".C'est une définition erronée fondamentale de sécurisé.Cet argument est un argument de * surface d'attaque *, votre surface d'attaque est beaucoup trop grande pour être sécurisée, et encore moins sécurisée actuellement.Corriger des trous dans un vecteur d'attaque spécifique que quelqu'un évoque ne diminue pas considérablement votre surface d'attaque;votre surface d'attaque est exponentiellement grande, les patchs sont des correctifs linéaires.
La PS3 exécute FreeBSD et des trucs comme WebKit.Totalement exploitable.De plus, sur PS3 et PS4, vous pouvez MITM le bus PCIe.Cela fonctionne également sur tous les PC.En outre, le micrologiciel du disque dur peut être attaqué, directement et indirectement, donc lorsqu'il est décrypté, il vous suffit de vider tout ou les données à volonté.Il en va de même pour la RAM.
Vous vous rendez compte que les guichets automatiques et autres ordinateurs de service comme les comptoirs de paiement en libre-service exécutent WIndows XP, n'est-ce pas?
@ Иво Недев: Trop conscient.Mon entreprise a en fait coopéré avec une grande banque dans le cadre d'une expérience concernant la sécurité des guichets automatiques.Ils ont tendance à prendre la sécurité physique assez au sérieux.Sans entrer dans les détails, c'était le genre d'expérience où ils sortaient les sacs de sable.De plus, ils n'exécutent pas XP, ils exécutent XP Embedded.
Overmind
2017-10-31 17:36:10 UTC
view on stackexchange narkive permalink

Il y a trop de choses à faire au niveau du système d'exploitation. C'est le vrai problème. Il existe de nombreuses façons de lancer des processus et / ou d'explorer le système. Un aspect important est qu'il semble que vous n'avez pas pris en compte le fait de tout exécuter à partir d'un compte non administrateur. De plus, vous n'avez rien mentionné sur l'USB, les autres périphériques, les touches F, les raccourcis par défaut et bien d'autres aspects.

En tant que note: 2/10, qui est purement due au système d'exploitation. Pratiquement, n'importe quel jeune technicien contournera votre configuration actuelle.

USB et autres périphériques peuvent être réparés - Windows peut être configuré pour interdire l'installation de nouveaux pilotes.Si vous fournissez au système un clavier USB approprié (pas un clone bon marché, un avec un VID / PID / série unique), vous ne pouvez pas échanger un clavier avec des touches supplémentaires.
Certes, les connexions USB peuvent être gérées, tout comme les autres périphériques, mais il y a beaucoup de choses à considérer puisque vous pouvez même démarrer une navigation de fichier en branchant des prises audio sur la carte audio.Tout doit être correctement configuré et pris en compte.
@MSalters Il n'est pas difficile de programmer un arduino comme clavier USB avec n'importe quelle paire VID / PID que vous voulez.Il serait trivial de trouver l'ID du clavier existant et de demander à un arduino d'émuler le même clavier et d'appuyer automatiquement sur Ctrl-Alt-Suppr ou Ctrl-Alt-Esc.
Je ne sais pas comment fonctionne TPM, mais je suppose qu'une fois que j'ai démarré sur un CD Linux, la partie est terminée, car j'ai alors accès à tout ce à quoi le noyau Windows aurait eu accès
@Restioson TPM contient la clé de chiffrement du disque dur.vous pouvez monter une distribution Linux USB ou Live cd, mais vous ne pourrez pas décrypter le disque dur sans contourner ou capturer la clé du tpm
@Aaron ok, donc en supposant que vous puissiez réécrire le secteur de démarrage du disque dur avec un noyau minimal qui extrait la clé TPM et l'écrit à l'écran ou l'expose d'une autre manière, alors la partie serait terminée?
@Restioson En un mot probablement oui .. Ce ne serait pas vraiment anodin, mais si vous possédez le matériel, il y a toujours un moyen de vider les données.Il y a une discussion de defcon vraiment intéressante sur le piratage d'un décodeur câble pour obtenir les chiffrements de flux que je n'ai pas vraiment envie de regarder rn, mais cela montre à quel point certaines personnes sont informées et de quoi elles sont capables avec trop de temps libre.leurs mains.
@Aaron une fois * une * personne le fait, la méthode est là-bas et utilisable, ce qui est une sorte de jeu terminé pour la méthode de sécurité
@Restioson Je suppose que le système a SecureBoot, donc un tel secteur de démarrage n'aurait pas la bonne signature.Cela ne fait évidemment rien pour les attaques DMA, etc.
twisteroid ambassador
2017-11-02 12:45:45 UTC
view on stackexchange narkive permalink

On dirait que vous créez une machine d'arcade. Dans ce cas, apprenez des entreprises qui fabriquent et vendent des machines d'arcade et Utilisez Windows Embedded au lieu de la version de bureau .

L'utilisation du chiffrement TPM + disque complet est une bonne chose début. Vous devez également supprimer autant de composants Windows que vous n'utilisez pas que possible et verrouiller autant de surfaces d'accès que possible. Il est possible de faire cela sur une installation de bureau Windows, mais la raison d’être de Windows Embedded est d’activer ce type de personnalisation en profondeur.

Attention, même arcade les machines fabriquées «correctement» par de grandes sociétés de jeux utilisant Windows Embedded finissent par être piratées et vidées. Vous pouvez trouver de nombreuses versions "HDD" de jeux d'arcade populaires sur la scène. Cela devrait vous dire à quel point il peut être difficile de sécuriser correctement une machine d'arcade contre des hackers déterminés.

Ce.Utilisez le bon outil pour le travail.
https://www.microsoft.com/windowsembedded/en-us/windows-embedded-8-pro.aspx
S.L. Barth - Reinstate Monica
2017-10-31 16:09:25 UTC
view on stackexchange narkive permalink

Ce n'est pas sécurisé. Le matériel est sous le contrôle de l'utilisateur, il peut donc toujours trouver un moyen.

Je suppose que TPM est censé empêcher l'utilisateur de démarrer un autre système d'exploitation (comme Ubuntu) à partir d'un CD, d'un DVD ou USB. C'est une bonne précaution.

Cependant ... l'utilisateur peut toujours retirer le disque dur et le mettre dans un autre ordinateur. Ensuite, ils peuvent lire le disque dur. Il faudrait donc rendre le matériel inviolable.

Le remplacement de explorer.exe par game.exe est une étape, mais uniquement sous Windows environnement. Dès que l'utilisateur peut obtenir une invite de commande (démarrage en mode sans échec, peut-être), cela n'aidera plus. Tout ce qu'il fait, c'est ralentir l'attaquant.

Mais si le disque dur est chiffré, le retirer aiderait-il?La clé est dans le TPM.
@Anders Bon point.L'attaquant devrait obtenir la clé du TPM matériel.
Si la meilleure attaque disponible est de casser d'une manière ou d'une autre le TPM, je dirais que le système est assez sécurisé.(Cependant, il pourrait y avoir des attaques plus faciles - je ne sais pas vraiment.)
@Anders D'accord, bien que je sois également d'accord avec le commentaire de Lie Ryan sous la question - l'attaquant a un accès physique illimité à la machine.Je suppose que l'attaquant pourrait également recâbler les touches Ctrl et Alt.OP devra peut-être supprimer complètement le Gestionnaire des tâches.
Je pense que l'on peut toujours tuer l'exe du jeu, donc il faudrait également supprimer le gestionnaire de tâches.Ensuite, vous devez désactiver le démarrage sécurisé, etc.
Le gestionnaire de tâches @joojaa a été mentionné par le demandeur au point (3).Votre suggestion est une amélioration sur ce point.
Serge Ballesta
2017-10-31 20:17:21 UTC
view on stackexchange narkive permalink

Quelques idées d'attaque contre ça:

  • Windows est normalement livré avec un mode de réparation . Il peut être plus ou moins facile de l'activer ( réf., mais si c'est possible l'utilisateur peut faire démarrer l'ordinateur en mode ligne de commande -> n'oubliez pas de filtrer le programme cmd.exe dans ajout à explorer.exe
  • TPM peut être plus faible que ce à quoi vous vous attendiez, et des attaques réussies ont déjà été enregistrées ( ref sur wikipedia)
  • attaque sociale : je suppose que le jeu sera vendu et qu'une hotline sera en place. L'utilisateur n'ayant pas accès aux outils de configuration normaux, une attaque possible serait d'envoyer des requêtes car il ne le fait pas fonctionne . Il est fort probable qu’à un moment donné une action quitte le système avec un accès shell
  • bogue logiciel: à moins qu’elle ne soit programmée par Dieu lui-même, game.exe pourrait se briser dans des conditions inattendues. Cela pourrait être un bon point de départ pour les méthodes 1 ou 3
  • attaques sociales et commerciales selon la façon dont vous avez l'intention de livrer le système , twits et articles de blog affirmant que le système espionnera tout sur le réseau où il est installé pourrait faire baisser les ventes à un point où la protection n'a rien à protéger.
  • les attaques contre le système d'exploitation sous-jacent. Comme l'utilisateur n'a pas accès au système, il est susceptible de rester non corrigé

Et finalement l'avez-vous vraiment essayé? Je n'oserais jamais remplacer explorer.exe sur un système Windows car il n'y a pas de séparation nette entre le système et le shell et à mon humble avis, cela n'est pas pris en charge par Microsoft.

Il est un peu difficile de savoir ce que l'OP signifie par «explorer.exe» est remplacé par «game.exe», mais changer le shell de connexion à l'application est à peu près le moyen standard d'implémenter une appliance de type Kiosk, pas seulement surLes fenêtres.
Thomas Weller
2017-11-03 17:43:05 UTC
view on stackexchange narkive permalink

Une seule attaque suffit pour prouver qu'elle n'est pas sécurisée, non?

  1. Appuyez 5 fois sur la touche Shift . Une boîte de dialogue apparaîtra, vous demandant si vous souhaitez activer une fonction pour les personnes handicapées.
  2. Dans cette boîte de dialogue, cliquez sur le lien pour accéder au Centre de contrôle de l'accessibilité.
  3. Dans cette boîte de dialogue, cliquez dans la barre d'adresse
  4. tapez cmd Enter

Voici la capture d'écran dans un système allemand:

Screenshot

Screenshot

Vous n'avez pas mentionné explicitement la touche Shift , peut-être qu'elle est désactivée. Vous pouvez également maintenir NumLock pendant 5 secondes comme alternative.

Ceci est un excellent exemple du nombre de portes dérobées dans Windows.
@CareyGregory Ce n'est pas vraiment une porte dérobée si vous êtes déjà connecté.
@mbomb007: Je n'ai pas lu cela comme "porte dérobée" dans le sens de la sécurité, plutôt comme "portes ouvertes" :-)
Peut-être juste des raccourcis et différentes façons de faire les choses.
FWIW, le raccourci vers toutes ces accessibilités peut également être désactivé (je l'avais fait car parfois j'ai besoin d'appuyer sur la touche Shift consécutivement dans un jeu)
Spaig87
2017-11-03 15:33:56 UTC
view on stackexchange narkive permalink

Comme d'autres l'ont dit, cela ne peut pas être considéré comme sûr. Vous pouvez toutefois supprimer les «fruits à portée de main», à la fois pour réduire les risques de vol de votre logiciel et pour garantir une expérience positive à vos utilisateurs.

Votre objectif principal est de protéger les logiciels vendus avec le matériel.

Tout d'abord, assurez-vous d'avoir conçu votre matériel de manière à ce que seules les personnes autorisées puissent y accéder pour la maintenance. C'est probablement aussi simple que de s'assurer que tout ce qui n'est pas requis par un utilisateur se trouve dans une boîte fermée et scellée. Il se peut que les propriétaires aient besoin d'accéder à cette boîte. Une alarme d'intrusion de cas peut également être utile ici.

Deuxièmement, Microsoft propose un moyen de Créer une expérience de kiosque dans Windows 10. En suivant ces instructions et en prenant en compte leurs recommandations de sécurité se traduira par un PC verrouillé pris en charge par Microsoft .

Troisièmement, un Dongle de protection de logiciel peut également être utilisé pour protéger votre logiciel exécuté sur l'ordinateur. Si un attaquant contournait vos protections matérielles et logicielles sur le PC / OS, il devra encore soit voler le dongle, soit le casser.

Bien que cela ne protège pas complètement votre logiciel contre le vol, cela devrait dissuader tous sauf les attaquants les plus dévoués.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...