2\ Score, 0.97701! This URL looks bad to the classifier. And it looks bad to us. We're in good shape: this is ML doing what it's supposed to, detect previously unseen bad content. Now, a naive attempt to subvert the classifier would be to randomize the URL suffix a bit.
-
-
Prikaži ovu nit
-
3\ Let's try it: here are randomized suffixes, and resulting scores: hxxp://wellsfargo-customer-support.webhosting.pl/login/aslfdsajd {'score': 0.99664} ...login/qwerio {'score': 0.99799} ...login/xzvckjcx {'score': 0.98897} ...no dice, even after > 1000 attempts.
Prikaži ovu nit -
4\ So that didn't work. Maybe adding some benign real-language suffixes will lower the score and let us evade the model. hxxp://wellsfargo...login/disneyland {'score': 0.99452} ... login/walrus {'score': 0.99584} ... login/jacaranda {'score': 0.99277} ... 100x No dice.
Prikaži ovu nit -
5\ Now let’s use a genetic algorithm to evolve a suffix: After 50 generations of evolution I get: hxxp://wellsfargo...login/gupsuyleapn {'score': 0.4361} If I take the evolution further I can even get: hxxp://wellsfargo.../svpxvegnon {u'score': 0.0855} Evasion accomplished!
Prikaži ovu nit -
6\ This little experiment took me a couple hours. The threat model here assumes the attacker has access to the model. Let's look at the winning subversive URL here in full: hxxp://wellsfargo-customer-support.webhosting.pl/login/svpxvegnon {u'score': 0.0855}
Prikaži ovu nit -
7\ Now, before you dismiss ML as easily subverted, consider that the target URL model was trained on ~100 million URLs, and performed way better in testing baseline, regex/signature systems, on new, bad URLs. It takes a day to train and far less human labor than signatures.
Prikaži ovu nit -
8\ Conclusion: ML is extremely fallible, but it's also extremely useful. You want it as a layer in your detection pipeline for URLs. You also want signatures. And blacklists. And humans-in-the-loop. Use ML, just don't treat it like it's a silver bullet.
Prikaži ovu nit
Kraj razgovora
Novi razgovor -
Čini se da učitavanje traje već neko vrijeme.
Twitter je možda preopterećen ili ima kratkotrajnih poteškoća u radu. Pokušajte ponovno ili potražite dodatne informacije u odjeljku Status Twittera.