Che cos'è il malware multi-path?

3

Mi piacerebbe sapere, nell'analisi del malware, cosa si intende per "esecuzione multi-path". Leggo questo quando incontro le parole nella documentazione di rilevamento del malware relativa al Control Flow Graph (CFG).

    
posta talfiq 06.09.2011 - 04:24
fonte

2 risposte

3

L'ho cercato, quindi non sono esperto, ma sembra voler dire questo.

Quando il codice è condizionale, per esempio usando un'istruzione 'if', una CPU deve decidere quale 'ramo' (l'if o il altrimenti) da prendere. Tuttavia, nelle moderne CPU, le istruzioni sono pretese e alcuni calcoli sono fatti su istruzioni non ancora eseguite, quindi la ramificazione pone un problema: quale ramo deve essere valutato? L'esecuzione del multipath (http://csd.ijs.si/courses/processor/chapter4/sld072.htm) significa valutare entrambi i rami e scartare il ramo che alla fine risulta non essere il percorso intrapreso.

In relazione al CFG: quando si prendono più diramazioni, verranno spostati temporaneamente più spigoli. Tuttavia, dopo che la condizione è stata completamente valutata, rimarrà un solo bordo, gli altri verranno scartati.

Dai un'occhiata al link per molte informazioni su come una moderna CPU può gestire la ramificazione.

Questo mi sembra non essere un tipico problema di "malware", ma un concetto di debug generale.

Qualcuno mi corregga se sto dicendo una sciocchezza: -)

    
risposta data 06.09.2011 - 09:07
fonte
1

Credo che la frase sia in riferimento per determinare se un dato pezzo di codice è o non è malware. Il codice dell'applicazione standard ha proprietà statistiche relative al barnching durante l'esecuzione. L'analisi di un pezzo di codice e il confronto del suo comportamento di ramificazione con i modelli standard è un test che è possibile utilizzare per rilevare il malware. Se il comportamento di diramazione è simile al modello, il test indica che questo non è maleware. Se il comportamento di diramazione è significativamente diverso dal modello, il test indica che il codice è maleware. Naturalmente test come questi potrebbero produrre risultati errati. Un pezzo di malware valuta come un codice normale, che è un falso negativo. O un pezzo di codice normale può essere valutato come maleware, che è un falso positivo. Poiché il maleware non dipende dal fatto che i dati o l'input dell'utente dipendano dalla maggior parte del codice applicativo, alcuni tipi di malware hanno tendenzialmente pattern di esecuzione altamente lineari (non ramificati). Ovviamente un sofisticato progettista malware potrebbe nasconderlo includendo molte più ramificazioni.

    
risposta data 07.09.2011 - 10:45
fonte

Leggi altre domande sui tag