19/7/2019

Blog di sviluppo: Considerazioni a posteriori sugli exploit

In questo blog di sviluppo esamineremo gli exploit, il modo in cui li abbiamo risolti e cosa comporta per gli exploit futuri.

CRONOLOGIA

11-12 MAGGIO

  • All'inizio di maggio, tre exploit hanno iniziato a diffondersi nella community di Rainbow Six Siege: quello dello scudo di Clash, delle Claymore e degli scudi mobili. 
  • Dopo che il team ha monitorato la situazione durante il fine settimana, ci è stato subito chiaro che si trattava di un problema prioritario.

13 MAGGIO

  • Il team ha iniziato a indagare sugli exploit.  Il nostro primo passo è stato riprodurli in modo accurato e coerente per capire il problema e quindi iniziare a identificarne la causa principale.
  • L'indagine iniziale ha rivelato che avremmo avuto bisogno di tempo per comprendere la portata del problema, pertanto una soluzione rapida non sarebbe stata possibile.
  • Poiché l'exploit ha continuato a diffondersi in tutta la community, abbiamo iniziato a discutere di possibili piani per mitigare l'impatto a breve termine.

15 MAGGIO

  • I progettisti capo si sono riuniti per discutere degli exploit. Dovevamo determinare quantitativamente, attraverso i dati, la portata e l'impatto esatto degli exploit nel gioco.

16 MAGGIO

  • La mattina del 16, dopo aver esaminato i dati, abbiamo preso la decisione di disabilitare Clash, le Claymore e gli scudi mobili.
  • Diversi team hanno messo da parte il loro lavoro normale esplorando opzioni per creare e implementare una soluzione che consentisse di disabilitare Clash, le Claymore e gli scudi mobili.
  • Abbiamo iniziato a testare ogni possibile soluzione non appena veniva completata. Abbiamo identificato cinque potenziali approcci al problema e, dopo un certo numero di insuccessi, l'ultimo approccio individuato ha finalmente avuto un esito positivo.

17 MAGGIO

  • Dopo un primo e un secondo giro di test accelerati, abbiamo attivato i comandi che disabilitavano Clash, le Claymore e gli scudi mobili come prima soluzione di emergenza.

24 MAGGIO

  • Ci siamo resi conto che una risoluzione completa avrebbe richiesto più tempo, in quanto coinvolgeva i processi del sistema centrale, principalmente l'ordine in cui i pacchetti vengono inviati al server. Tuttavia, consapevoli che la rimozione di Clash e di gadget importanti avrebbe avuto un forte impatto sul gioco, i team hanno iniziato a lavorare in parallelo per creare diversi sistemi di protezione da introdurre in modo sicuro.

GIUGNO

  • Nelle settimane seguenti, hanno ricominciato a verificarsi segnalazioni di exploit.
  • Tuttavia, con i comandi già implementati, siamo stati in grado di reagire rapidamente e disabilitare Clash e IQ.
  • A questo punto il team aveva già definito una soluzione completa e operativa per il problema alla base degli exploit. I test interni avevano già mostrato risultati positivi ma, prima di poter essere tranquillamente implementata sui server di gioco, la soluzione doveva superare un periodo di prove su larga scala nel server di test.

GIUGNO-LUGLIO

  • A fine giugno, l'ordine globale viene implementato prima su PC e, successivamente, su console nel mese di luglio.
  • Durante questo periodo monitoriamo le prestazioni delle modifiche all'ordine globale, con particolare attenzione a qualsiasi segnale di regressione.

COMANDI E SISTEMI DI PROTEZIONE

Mentre parte del team lavorava a una soluzione, già all'inizio del processo un'altra parte aveva iniziato lo sviluppo di diversi sistemi di protezione a breve termine, con l'obiettivo di creare una soluzione più sostenibile e veloce. Questi comandi e sistemi di protezione, che avevano come target solo i metodi di exploit, non sono mai stati concepiti come una soluzione definitiva. Sono stati, piuttosto, una decisione presa dal team dopo aver valutato i costi della rimozione di Clash e di due gadget sulla salute del gioco. Sono stati implementati poco dopo sui server di gioco, con l'invito alla community a segnalare ulteriori occorrenze del problema.

.

Quella di rimuovere operatori e ridimensionare dotazioni non è una decisione che prendiamo alla leggera. Dobbiamo rispettare il tempo e gli sforzi che i giocatori hanno impiegato per sbloccare i contenuti di gioco, oltre a essere consapevoli dell'imponente impatto che la rimozione di elementi fondamentali di gioco può avere sul meta e sull'ecosistema di Rainbow Six Siege. Tuttavia, data la situazione, abbiamo ritenuto che attendere la soluzione definitiva non fosse un'alternativa praticabile. Era necessario eliminare gli exploit e normalizzare il gioco nel modo più sicuro e veloce possibile.

I sistemi di protezione necessari dovevano soddisfare diversi requisiti, ovvero: essere precisi, in modo da non causare alcun tipo di regressione o danno collaterale non intenzionale; essere facilmente modificabili per interventi rapidi e necessitanti di una fase di testing minima per poter essere consegnati rapidamente. I risultanti comandi per disabilitare gli operatori e i gadget sono stati la nostra prima risposta per affrontare rapidamente gli exploit, con la consapevolezza che si trattava di una soluzione d'emergenza e estremamente a breve termine, nell'attesa di predisporre e testare i sistemi di protezione.

CHE COS'È L'ORDINE GLOBALE?

Ogni operatore, gadget, granata, scudo, telecamera, muro e pianta in Rainbow Six Siege è un oggetto. Ogni oggetto in Rainbow Six Siege invia un messaggio (pacchetto) al server quando viene eseguita una qualsiasi fase di un'azione. Ad esempio, quando si usa un gadget, l'operatore invierà i messaggi "Sto equipaggiando il mio gadget" e "Sto usando il mio gadget" in sequenza. Allo stesso tempo, anche il gadget invia messaggi al server come "gadget attivato" e "gadget piazzato". Il server invia questi messaggi agli altri giocatori impegnati nella partita.

In precedenza, l'ordine con cui questi messaggi venivano consegnati al server era garantito solo per oggetto di gioco. Ciò significava che esisteva anche una possibilità di errore in caso di perdita di messaggi o quando questi venivano recapitati al server in ordine diverso. Gli exploit sfruttavano questa falla nel nostro protocollo di rete, ripetendo azioni in rapida successione contemporaneamente e aumentando così la probabilità che questi messaggi di rete non venissero ricevuti correttamente. Il risultato conseguente della replica errata sul server comportava che le partite dei giocatori non avrebbero mostrato correttamente l'azione desiderata.

La nostra soluzione al problema, ovvero l'ordine globale, modifica il motore di rete in modo da ordinare globalmente tutti i messaggi. I messaggi vengono anche inviati in numero multiplo, per garantire che i dati vengano inviati in modo affidabile. Ciò significa dunque che ogni partita riceverà la stessa sequenza di messaggi e la replica sarà in sincrono nella partita di ogni giocatore.

Quando ci siamo resi conto che tutti gli exploit in corso erano collegati a questo processo fondamentale, abbiamo dovuto essere coscienziosi nel modo di approcciarci all'ordine globale. Dovevamo assicurarci che non ci sarebbero stati effetti collaterali dannosi collegati alla modifica. A conti fatti, sebbene il passaggio all'ordine globale imponga un onere aggiuntivo sulla larghezza di banda, riteniamo che i suoi vantaggi valgano tale piccolo sacrificio e abbiamo preso quindi la decisione di procedere.

COSA COMPORTA QUESTO PER IL FUTURO

Con l'introduzione del nuovo ordine globale, le azioni vengono replicate in modo uniforme per tutti i giocatori in una partita poiché ora sono ordinate a livello globale, piuttosto che a livello client. Abbiamo valutato attentamente le conseguenze dei costi in termini di larghezza di banda e, sebbene questi aumenteranno leggermente, ciò non influenzerà l'esperienza di gioco. Ciò dovrebbe inoltre evitare ulteriori problemi con la consegna di messaggi in ordine diverso da quello originario nonché qualsiasi exploit di natura simile.

Gli exploit e il loro impatto sulla community hanno anche evidenziato il valore dei comandi per disabilitare operatori e gadget, nonché la necessità di avere un maggiore controllo sulla configurazione di operatori e dotazione sui server di gioco. In seguito a tutto ciò abbiamo iniziato a dedicare più risorse per soddisfare tale necessità, al fine di garantire una risposta tempestiva in caso di futuri exploit.

Visita gli altri canali social

facebook icontwitter iconyoutube icontwitch icon