Domanda:
Possiamo a prova di manomissione un gioco venduto insieme al computer Windows su cui gira?
younes
2017-10-31 15:53:57 UTC
view on stackexchange narkive permalink

Vogliamo proteggere un gioco che viene sostanzialmente venduto con il computer che lo contiene. La sicurezza viene eseguita in questo modo:

  1. L'HDD viene crittografato utilizzando l'hardware TPM 1.2, che contiene una chiave univoca per decrittografare il sistema operativo solo in quel computer specifico. Quindi Windows si avvierà solo su un PC. Inoltre, il TPM non consentirà l'avvio di Windows in caso di modifiche all'hardware.

  2. explorer.exe è sostituito da game.exe , Il sistema avvia il gioco all'avvio. Se esci dal gioco non c'è esploratore, solo uno schermo nero.

  3. Ctrl & Alt & altri tasti sono disabilitato, quindi il Task Manager non è accessibile.

  4. L'adattatore ethernet è disabilitato, l'esecuzione automatica è disabilitata per impedire il dumping di game.exe .

  5. Deep freeze installato, l'utente non può accedere alle modalità Sicura o Ripara

È un sistema sicuro? Se non lo è, cosa può fare un utente malintenzionato?

I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/68062/discussion-on-question-by-younes-can-we-tamper-proof-a-game-thats-sold-lungo-wi).
https://www.microsoft.com/windowsembedded/en-us/windows-embedded-8-pro.aspx
Quindi, inserisco una chiavetta USB con un programma a esecuzione automatica e ...
@Mawg L'esecuzione automatica da una chiavetta USB può essere facilmente disabilitata dal difensore.Anche se non è disabilitato, il disco è ancora crittografato e l'aggressore deve ottenere le chiavi dal TPM hardware.
Non è possibile rendere nulla a prova di manomissione quando altri hanno il controllo completo sull'hardware.Non con alcun hardware o software, non è possibile.
Sì, lo so, ma l'OP non ne ha parlato.
Gli attacchi al canale laterale esporranno sempre il tuo gioco alla clonazione, se qualcuno lo desidera e ha accesso all'hardware.
Potresti voler esaminare [WePOS e i suoi successori] (https://en.wikipedia.org/wiki/Windows_Embedded_Industry).Bloccare quello che è essenzialmente un chiosco Windows è un problema (per lo più) risolto nel settore dei sistemi di pagamento e vendita al dettaglio.Non puoi mai farlo al 100% ma puoi avvicinarti e il punto vendita lo fa da decenni.
Ci sono molti attacchi di imaging che avvengono dopo che il sistema è già stato avviato.Se la chiave è archiviata come testo normale in memoria, può essere acquisita.
... certo, questi spesso * dipendono * dall'hardware, ma un utente malintenzionato che crea hardware personalizzato può far sì che quell'hardware si identifichi come qualcos'altro al momento dell'enumerazione.
Immagino sia una convenzione, ma trovo strano riferirsi a qualcuno che cerca di fare ciò che vuole con * la propria proprietà * un "aggressore".E quello che stai descrivendo non è un computer.È fondamentalmente un cabinet arcade.In che modo invece di trattare i tuoi clienti come tuoi nemici, crei un gioco per cui le persone saranno disposte a pagare?
"Come invece di trattare i tuoi clienti come tuoi nemici" Il cliente in questo caso è l'azienda che ha l'obbligo di bloccarlo (probabilmente qualche struttura CBT o distributore / operatore di macchine in stile arcade), quindi non stai realizzandomolto senso.
Qual è il tuo modello di minaccia?
@12431234123412341234123 Vorrei fare un ulteriore passo avanti e dire che non è possibile fare nulla a prova di manomissione, punto.Basta manomettere.
A prova di manomissione è impossibile.La tua migliore speranza è renderlo il più difficile possibile ... ma, se stai spendendo più risorse per la sicurezza rispetto allo sviluppo del tuo prodotto, allora hai un piano aziendale sbilenco.
Quindi la macchina arcade è fondamentalmente non gestibile, dal momento che sostituire una parte cattiva non la farà avviare?
Quanto è ben finanziato il tuo avversario?Sei sulla scala, ad esempio, dei fornitori di TV satellitare, dove la gente è disposta a spendere soldi veri per finanziare un laboratorio di ingegneria inversa, o sei solo preoccupato per gli hobbisti?
... inoltre, fino a che punto le meccaniche di gioco possono essere ridotte a qualcosa che può essere incapsulato in un modulo hardware a prova di manomissione?Certo, ci sono (tempismo, potenza e altro) attacchi contro smartcard, ma se ne hai uno che esegue la logica di gioco di base, questo almeno mette quella logica in un posto diverso dal tuo computer generico.
@younes Sembra che tu sia determinato a farlo, e la domanda dovrebbe essere: "Quali sono alcune strategie per rendere una macchina * antimanomissione *?".Come puoi vedere dalle risposte, non sarà neanche lontanamente vicino a * antimanomissione ** *** ....
Sta congelando la RAM (in modo che i dati conterranno dopo la rimozione dalla scheda principale), scambiare il Ram Modul con un altro computer e scaricarlo una possibilità?
Sette risposte:
#1
+116
MSalters
2017-11-01 18:57:41 UTC
view on stackexchange narkive permalink

Possiamo analizzare la tua configurazione confrontandola con un sistema noto per essere non a prova di manomissione, la Sony PlayStation 3.

Controllo del sistema operativo

Tu non hanno alcun controllo sul sistema operativo. Sony ha scritto il sistema operativo da sé.

Dimensioni del sistema operativo

Il sistema operativo PS3 può essere molto semplice in quanto richiede solo l'avvio dei giochi. Windows è un sistema operativo generico, con molte, molte funzioni. Questo espone molte API.

Shell

La shell del sistema operativo PS3 è concepita solo per avviare i giochi. Su Windows, l'interfaccia utente predefinita è fornita da Explorer. Proponi di sostituirlo, il che non è un obiettivo di progettazione per Microsoft. Potrebbe sembrare che funzioni, ma la rimozione di Explorer potrebbe lasciare alcune interfacce aperte. Questo è un problema speciale per te perché tali interfacce aperte possono diventare vettori di attacco.

Hardware

Sembra che tu stia lavorando su un hardware standard per PC, solo con TPM. Sony aveva progettato la PS3 dall'inizio partendo dal presupposto che gli hacker avrebbero attaccato l'hardware.

Il tuo PC standard probabilmente ha slot PCI-e. Quelli supportano DMA. Usandolo, hai accesso alla memoria del PC. Questo non sarà crittografato. Un modo comune per farlo è tramite FireWire. IIRC, le console moderne ora mantengono crittografata anche la RAM e ovviamente non garantiscono l'accesso DMA all'hardware esterno.

Conclusione

Il tuo sistema sembra meno sicuro di una PS3 e una PS3 può essere hackerata, quindi è lecito ritenere che lo sia anche il tuo.

Mi piace l'attacco per proxy.Anche se potrebbe essere difficile scrivere * esattamente * come il tuo sistema può essere attaccato, se puoi dimostrare che è probabilmente meno sicuro di un altro dispositivo e che l'altro dispositivo è già stato violato, questa ti dà una risposta abbastanza definitiva!
Vorrei menzionare che la PS3 è stata hackerata da Linux dal famoso geohot, Linux poteva essere installato all'interno di qualsiasi PS3 inferiore alla v 3.15
Sebbene generalmente mal implementato, esiste un livello di controllo dell'accesso da PCI (e) alla memoria principale.
@PlasmaHH PCI (e) viene utilizzato dalla scheda grafica, la rimozione della scheda interromperà l'avvio del sistema, qualsiasi modifica hardware inclusa (aggiunta / rimozione) causerà l'interruzione dell'avvio del TPM. si può accedere alla memoria senza che il sistema operativo rilevi modifiche hardware negli slot PCI?
@younes: Il tuo TPM1.2 può interrompere l'avvio, ma per quanto riguarda l'hotplug PCI-e?
@younes: posso, con un po 'di azoto liquido che non è affatto un problema.Puoi?Non sono sicuro però quale sia il punto sul livello di protezione MMU qui ...
@PlasmaHH fortunatamente, tutti i suggerimenti fino ad ora possono essere modificati: l'aggiunta di un software che crittografa la RAM farà il lavoro
@younes: Esattamente come ti aspetti che funzioni?Nota che stai utilizzando una normale CPU x86 su Windows normale.Un'istruzione x86 `MOV` non decodificherà il suo argomento.Ancora più forte, il fatto che x86 sappia di essere un'istruzione `MOV` richiede che il segmento di codice non sia crittografato.E anche la tua scheda video standard sarà mappata in memoria e si prevede di eseguire trasferimenti DMA per le trame.Così sarà la tua memoria (HDD / SDD).
https://security.stackexchange.com/questions/109968/ram-encryption-is-it-possible
@younes: SGX non richiede ancora che i dati siano nella ram?E come fa la chiave ad entrare nella CPU senza mai toccare la RAM?Anche il semplice SGX può essere letto da attacchi di canale laterale.Inoltre, tutte queste cose sono incredibilmente lente per eseguire il codice di gioco effettivo.
@younes Sembri pensare che "se le persone escogitano un elenco specifico di attacchi, e dopo che lo fanno io mi difendo, allora il mio sistema è sicuro".Questa è una definizione sbagliata fondamentale di secure.Questo argomento è un argomento * superficie di attacco *, la superficie di attacco è troppo grande per essere protetta, figuriamoci attualmente protetta.L'applicazione di patch su buchi in un vettore di attacco specifico che qualcuno fa apparire non riduce in modo significativo la superficie di attacco;la tua superficie di attacco è esponenzialmente grande, le patch sono correzioni lineari.
La PS3 esegue FreeBSD e cose come WebKit.Totalmente sfruttabile.Inoltre, su PS3 e PS4 puoi MITM il bus PCIe.Funziona anche su tutti i PC.Inoltre, il firmware dell'HDD può essere attaccato, direttamente e indirettamente, quindi quando viene decrittografato devi solo scaricare tutti i dati a piacimento.Lo stesso vale per la RAM.
Ti rendi conto che gli sportelli automatici e altri computer di servizio come le casse automatiche eseguono Windows XP, giusto?
@ Иво Недев: Fin troppo consapevole.La mia azienda ha effettivamente collaborato con una grande banca in un esperimento sulla sicurezza dei bancomat.Tendono a prendere piuttosto sul serio la sicurezza fisica.Senza entrare nei dettagli, è stato il tipo di esperimento in cui tirano fuori i sacchi di sabbia.Inoltre, non eseguono XP, eseguono XP Embedded.
#2
+89
Overmind
2017-10-31 17:36:10 UTC
view on stackexchange narkive permalink

Ci sono troppe cose che possono essere fatte a livello di sistema operativo. Questo è il vero problema. Esistono numerosi modi per avviare processi e / o esplorare il sistema. Un aspetto importante è che sembra che tu non abbia preso in considerazione l'esecuzione di tutto da un account non amministratore. Inoltre, non hai menzionato nulla su USB, altre periferiche, tasti F, scorciatoie predefinite e molti altri aspetti.

Come punteggio: 2/10, che è dovuto esclusivamente al sistema operativo. Praticamente, qualsiasi ragazzo tecnico ignorerà la tua configurazione attuale.

USB e altre periferiche sono riparabili: Windows può essere configurato per non consentire l'installazione di nuovi driver.Se fornisci al sistema una tastiera USB adeguata (non un clone economico, uno con un VID / PID / seriale univoco) non puoi scambiare una tastiera con tasti extra.
È vero, le connessioni USB possono essere gestite, proprio come altre periferiche, ma ci sono molte cose da considerare poiché puoi persino avviare la navigazione di un file collegando i jack audio alla scheda audio.Tutto deve essere adeguatamente configurato e considerato.
@MSalters Non è difficile programmare un arduino come una tastiera USB con qualsiasi coppia VID / PID che desideri.Sarebbe banale trovare l'ID della tastiera esistente e avere un arduino che emuli la stessa tastiera e premere Ctrl-Alt-Canc o Ctrl-Alt-Esc automaticamente.
Non so come funzioni TPM, ma presumo che una volta avviato in un CD di Linux sia finita, poiché ho accesso a tutto ciò a cui il kernel di Windows avrebbe avuto accesso
@Restioson TPM contiene la chiave di crittografia sull'HDD.potresti montare una distribuzione linux usb o live cd, ma non saresti in grado di decrittografare l'HDD senza aggirare o catturare la chiave dal tpm
@Aaron ok, quindi supponendo di poter riscrivere il settore di avvio dell'HDD con un kernel minimo che ha estratto la chiave TPM e l'ha scritta sullo schermo o altrimenti l'ha esposta, allora * sarebbe * game over?
@Restioson In poche parole probabilmente sì .. Non sarebbe esattamente banale, ma se possiedi l'hardware, fondamentalmente c'è sempre un modo per scaricare i dati.C'è un discorso defcon davvero interessante sull'hacking di un decoder via cavo per ottenere i cifrari di flusso che non mi sento di cercare rn, ma mostra quanto siano informate alcune persone e di cosa sono capaci con troppo tempo liberole loro mani.
@Aaron una volta che * una * persona lo fa, il metodo è disponibile e utilizzabile, che è una sorta di game over per il metodo di sicurezza
@Restioson Presumo che il sistema abbia SecureBoot quindi tale settore di avvio non avrebbe la firma corretta.Questo ovviamente non fa nulla per gli attacchi DMA ecc.
#3
+39
twisteroid ambassador
2017-11-02 12:45:45 UTC
view on stackexchange narkive permalink

Sembra che tu stia creando una macchina arcade. In tal caso, impara dalle aziende che effettivamente producono e vendono macchine arcade e Usa Windows Embedded invece della versione desktop .

L'uso della crittografia dell'intero disco TPM + è un buon inizio. Dovresti anche rimuovere il maggior numero possibile di componenti Windows che non stai utilizzando e bloccare quante più superfici di accesso possibile. È possibile farlo su un'installazione desktop di Windows, ma la ragion d'essere di Windows Embedded è abilitare questo tipo di personalizzazione profonda.

Intendiamoci, anche arcade macchine realizzate "correttamente" da grandi società di giochi che utilizzano Windows Embedded alla fine vengono hackerate e scaricate. È possibile trovare molte versioni "HDD" di popolari giochi arcade sulla scena. Questo dovrebbe dirti quanto può essere difficile proteggere adeguatamente una macchina arcade contro determinati hacker.

Questo.Usa lo strumento giusto per il lavoro.
https://www.microsoft.com/windowsembedded/en-us/windows-embedded-8-pro.aspx
#4
+30
S.L. Barth - Reinstate Monica
2017-10-31 16:09:25 UTC
view on stackexchange narkive permalink

Questo non è sicuro. L'hardware è sotto il controllo dell'utente, quindi può sempre trovare un modo.

Presumo che TPM abbia lo scopo di impedire all'utente di avviare un altro sistema operativo (come Ubuntu) da CD, DVD o USB. Questa è una buona precauzione.

Tuttavia ... l'utente può ancora rimuovere il disco rigido e inserirlo in un altro computer. Quindi possono leggere il disco rigido. Quindi dovresti rendere l'hardware a prova di manomissione.

La sostituzione di explorer.exe con game.exe è un passaggio, ma solo in Windows ambiente. Non appena l'utente può ottenere un prompt dei comandi (avvio in modalità provvisoria, forse), questo non aiuterà più. Tutto ciò che fa è rallentare l'attaccante.

Ma se l'HDD è crittografato, rimuoverlo sarebbe d'aiuto?La chiave è nel TPM.
@Anders Buon punto.L'autore dell'attacco dovrebbe ottenere la chiave dal TPM hardware.
Se il miglior attacco disponibile è rompere in qualche modo il TPM, direi che il sistema è abbastanza sicuro.(Tuttavia, potrebbero esserci attacchi più facili, non lo so davvero.)
@Anders D'accordo, anche se concordo anche con il commento di Lie Ryan sotto la domanda: l'attaccante ha accesso fisico illimitato alla macchina.Suppongo che l'attaccante potrebbe anche ricollegare i tasti Ctrl e Alt.OP potrebbe dover rimuovere completamente Task Manager.
Penso che si possa sempre uccidere l'exe del gioco, quindi sarebbe necessario rimuovere anche il task manager.Quindi è necessario disabilitare l'avvio sicuro ecc
@joojaa Task Manager è stato menzionato dal richiedente al punto (3).Il tuo suggerimento è un miglioramento a quel punto.
#5
+27
Serge Ballesta
2017-10-31 20:17:21 UTC
view on stackexchange narkive permalink

Alcune idee di attacco contro questo:

  • Windows normalmente viene fornito con una modalità di riparazione . Potrebbe essere più o meno facile attivarlo ( rif., ma se possibile l'utente può far partire il computer in modalità riga di comando -> non dimenticare di filtrare il programma cmd.exe in Oltre a explorer.exe
  • TPM potrebbe essere più debole di quello che ti aspetti e gli attacchi riusciti sono già stati registrati ( rif su wikipedia)
  • attacco sociale : presumo che il gioco verrà venduto e che sarà attiva una hotline. Poiché l'utente non ha accesso ai normali strumenti di configurazione, un possibile attacco sarebbe inviare richieste perché non lo fa funziona . È probabile che in un momento un'azione lasci il sistema con un bug del software shell accesso
  • : a meno che non sia programmato da dio stesso, game.exe potrebbe interrompersi in condizioni impreviste. Questo potrebbe essere un buon punto di partenza per i metodi 1 o 3
  • attacchi sociali e commerciali a seconda del modo in cui intendi fornire il sistema , twits e post di blog che affermano che il sistema spera tutto sulla rete in cui è installato potrebbe ridurre le vendite in un punto in cui la protezione non ha nulla da proteggere.
  • attacchi contro il sistema operativo sottostante. Dato che l'utente non ha accesso al sistema, è probabile che rimanga senza patch

E finalmente l'hai davvero provato? Non oserei mai sostituire explorer.exe su un sistema Windows perché non c'è una netta separazione tra il sistema e la shell e IMHO non è supportato da Microsoft.

Non è chiaro cosa significhi l'OP con "` explorer.exe` è sostituito da `game.exe`", ma cambiare la shell di accesso all'applicazione è praticamente il modo standard di implementare un'appliance di tipo Kiosk, non solo suFinestre.
#6
+19
Thomas Weller
2017-11-03 17:43:05 UTC
view on stackexchange narkive permalink

Un solo attacco è sufficiente per dimostrare che è insicuro, giusto?

  1. Premi il tasto Maiusc 5 volte. Apparirà una finestra di dialogo che ti chiederà se desideri attivare alcune funzionalità per le persone disabili.
  2. In quella finestra di dialogo, fai clic sul collegamento per accedere al Centro di controllo per l'accessibilità.
  3. In quella finestra di dialogo, fai clic su nella barra degli indirizzi
  4. digita cmd Enter

Ecco lo screenshot in un sistema tedesco:

Screenshot

Screenshot

Non hai menzionato esplicitamente il tasto Maiusc , forse è disabilitato. In alternativa, potresti anche tenere premuto NumLock per 5 secondi.

Questo è un ottimo esempio di quante backdoor ci sono in Windows.
@CareyGregory Non è davvero una backdoor se hai già effettuato l'accesso.
@mbomb007: Non l'ho letto come "backdoor" nel senso della sicurezza, più come "porte aperte" :-)
Forse solo scorciatoie e modi diversi di fare le cose.
FWIW, anche il collegamento a tutte queste accessibilità può essere disabilitato (l'ho fatto perché a volte devo premere il tasto Maiusc consecutivamente in un gioco)
#7
+6
Spaig87
2017-11-03 15:33:56 UTC
view on stackexchange narkive permalink

Come altri hanno già detto, questo non può essere considerato sicuro. È tuttavia possibile rimuovere il "frutto a bassa pendenza", sia per ridurre le possibilità che il software venga rubato sia per garantire che l'esperienza degli utenti sia positiva.

Il tuo obiettivo principale è proteggere il software venduto con l'hardware.

Innanzitutto, assicurati di aver progettato il tuo hardware in modo tale che solo le persone autorizzate possano accedervi per la manutenzione. Questo è probabilmente semplice come assicurarsi che tutto ciò che non è richiesto da un utente sia in una scatola chiusa e sigillata. È possibile che i proprietari richiedano l'accesso a questa casella. In questo caso può essere utile anche un allarme di intrusione.

In secondo luogo, Microsoft fornisce un modo per Creare un'esperienza Kiosk in Windows 10. Seguendo queste istruzioni e tenendo conto dei loro consigli sulla sicurezza risulterà in un PC bloccato supportato da Microsoft .

Terzo, un dongle di protezione del software potrebbe anche essere utilizzato per proteggere il software in esecuzione sul computer. Se un utente malintenzionato aggira le protezioni hardware e software sul PC / sistema operativo, dovrà comunque rubare il dongle o decifrarlo.

Sebbene ciò non protegga completamente il tuo software dal furto, dovrebbe scoraggiare tutti tranne gli aggressori più impegnati.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...