Crowdstrike spacca windows 10

Stamattina notizia di mezzo mondo down “a causa di un aggiornamento Microsoft”.
Cerco info e scopro che MS non c’entra, è un update di una cosa che si chiama crowdstrike (che già il nome promette bene) che manda i Windows 10 in loop al boot.

Sarebbe da mettere anche nel thread del giornalismo sgombro, ma magari poi correggono il tiro, chissà.

Intanto su reddit qualcuno ha scritto come far partire windows 10 lo stesso:

Workaround Steps:

  1. Boot Windows into Safe Mode or the Windows Recovery Environment

  2. Navigate to the C:\Windows\System32\drivers\CrowdStrike directory

  3. Locate the file matching “C-00000291*.sys”, and delete it.

  4. Boot the host normally.

Certo, voglio vedere l’utente medio farlo…

Comunque c’è davvero il mondo in down.

Quindi l’ utente che non sa che fa quando lo usa come deve fare? Centro assistenza?

Domanda interessante, che può essere riformulata come: cosa fa uno che non sa fare? Per definizione, niente! Fa fare a chi sa fare, no? :joy:

1 Mi Piace

E paga

Esattamente.

Vabbè ma crowdstrike è una soluzione enterprise.
Domani mi leggete su QN, sul tema.

1 Mi Piace

Il problema è che in molti contesti si usa bitlocker, e devi ottenere la chiave bitlocker dal reparto IT, sperando che ne abbia una copia fredda.
Comunque pensate a quei poveri admin che dovranno recuperare manualmente tutte le macchine aziendali. Su reddit c’è gente disperata che prevede mesi per recuperare tutti e 700k sistemi bloccati.

1 Mi Piace

Eh.
Speriamo almeno li stiano pagando bene.

Aspetta e spera

Uh! Vedo profilarsi all’orizzonte un nuovo ricatto! @Jabbafar preparati!

1 Mi Piace

È quotata in borsa?

Avoja, -19% ieri mi pare.

1 Mi Piace

Da comprare subito

1 Mi Piace

Allerta sto,

2 Mi Piace

Ecco le prime informazioni su cosa é successo

L’errore non era nella programmazione, ma nei template che definiscono cos’è virus.
In pratica pratica visto che gli ultimi 3 template aggiornati funzionavano, su quello di luglio hanno passato il template nel content validator, quindi invece di effettuare lo stress test lo hanno messo in produzione … Ovviamente c’era un bug nel content validator.

Dico, ma non conoscono la Legge di Murphy?
Senza contare che lo sanno tutti che vale non che non c’è due senza tre, mica non c’è tre senza quattro :nerd_face:

The Content Interpreter on the sensor reads the Channel File and interprets the Rapid Response Content, enabling the Sensor Detection Engine to observe, detect or prevent malicious activity, depending on the customer’s policy configuration. The Content Interpreter is designed to gracefully handle exceptions from potentially problematic content.

When received by the sensor and loaded into the Content Interpreter, problematic content in Channel File 291 resulted in an out-of-bounds memory read triggering an exception. This unexpected exception could not be gracefully handled, resulting in a Windows operating system crash (BSOD).

Insomma, l’intelligentissimo Content Interpreter, che con grazia gestisce le eccezioni non gestite, s’è beccato un out-of-bounds error lì dove non si aspettava, e non è riuscito a gestirlo con garbo, quindi ha rimbalzato l’eccezione al SO, che non avendo la sua leggiadria è crashato come gli avessero tirato un sasso in faccia.

Vabbé, gli out-of-bound memory sono cattivelli, si sa[1].
Di base capita con letture col puntatore sbagliato, o anche con quello giusto, ma aspettandosi di trovare per certo un dato che non è detto ci sia.
Ho un collega che ,in operazioni simili, è un mito: lui carica dati in memoria (da db, da file, da array o da dove ti pare) e poi legge il primo record (o la prima cella o quel che ti pare) dando per scontato che un contenuto ci sia sempre, tanto la chiave del record è mandatoria, no?
Ecco, poi quando il record non c’è proprio, stranamente, sbomba tutto. Però noi lavoriamo a più alto livello, per cui è un po’ difficile far crashare il sistema operativo, ci crasha solo il nostro programma, ma il concetto è quello: dato che non c’è (o dato garbage) e nessun controllo di quello che hai letto prima di usarlo.
Abbiamo provato anche coi ferri roventi, ma niente: non recepisce.


  1. a type of memory access error that occurs when a program reads data from a memory address outside of the bounds of a buffer . This can result in the program reading data that does not belong to it, which can cause crashes, incorrect behavior, or even security vulnerabilities. ↩︎

In Ring0 non esistono eccezioni non gestite, anzi, non esistono proprio eccezioni, tranne quelle proprie della CPU che sono in realtà interrupt, e sono sempre gestite, nel senso che le gestisce quella parte del kernel che appunto blocca tutto se il frame di provenienza è a ring0.

Epperò:

Insomma, le gestiva, sulla carta, ma non questa.
e il blue screen indica che comunque il SO non ha caricato qualcosa di fondamentale (per cui ritenta)

Attenzione perché lì è usato in senso lato. Il kernel di Windows è scritto in puro C il quale non ha supporto per le eccezioni nel senso del C++ o dei moderni linguaggi, né può essere portato per questioni di ABI, ovvero di convenzione di struttura dello stack.