Upgrade to Pro — share decks privately, control downloads, hide ads and more …

radBIOS: Bsides LV

radBIOS: Bsides LV

#radBIOS, as given at bsides LV

Richo Healey

August 04, 2015
Tweet

More Decks by Richo Healey

Other Decks in Technology

Transcript

  1. Recap •Nation state malware • exfiltrates data via audio •

    infects via audio • platform agnostic; doesn’t care about your • os • hardware • Runs in uefi/bios
  2. Recap •Nation state malware • exfiltrates data via audio •

    infects via audio • platform agnostic; doesn’t care about your • os • hardware • Runs in uefi/bios
  3. Demo Time! •If you’re not good at high pitched noises

    speak now •This part once gave someone a nose bleed • But I’m mostly convinced it wasn’t actually my fault
  4. Quietnet • Cool project from Kate Murphy • Easy enough

    for a non radio person to understand • Not hugely fault tolerant • Easy to hack on and embed!
  5. PSK 31 •Geared toward encoding natural language •Symbols optimised for

    english •Doesn’t need syncwords or the like
  6. How even to audio? •Audio driver gives you a stream

    of frames •FFT your frames into points •Walk along your points with a sliding window, looking for tones •Transform your tones into bits •Ham the bitstream into symbols •Unpack the symbols into bytes
  7. Fourier Transforms •Transform signal from its original domain • In

    our case time •To the frequency domain •Tl;dr let’s us answer the question “How strong was this frequency in this sample” •Programmatically, you can treat it as an array of floats
  8. Actual Airgap Hopping •By this point I have a thing

    that Sort Of Works In The Lab •Figured it’s probably done •Slap a BSD socket interface on it, call it a day
  9. Actual Airgap Hopping •Audio is hard •Duplex is harder •Doing

    this in a room full of jerks while I’m speaking is really damn hard
  10. Reexamining •Duplex actually wasn’t really what I wanted •Didn’t allow

    for 1:many exfil •Complex •Error prone •Monstrosity to debug
  11. D’you like dags? Content Addressable Dags { name: sha1(body), data:

    body } Naming { parents: [parents], payload: [bytes] } Encoding
  12. D’you like dags? Dags DAG Source of truth is here

    Root of the graph is here ??????
  13. (Sometimes) Dumber is better •Cranked back the hamming a little

    to make the messages smaller •Just keep yelling all the data all the time •Eventual consistency ftw •This got me remarkably far
  14. DSP redux •I decided to actually do some research •Originally

    mostly didn’t out of: • Hubris • Desire to actually know how the damn thing works
  15. DSP redux •UE insulates us from bitflips •Doesn’t help us

    at all working out where we are in the stream
  16. Keying •What I’ve done so far is FSK •Read a

    lot about PSK •Lots of math, hard to scrutinize
  17. Conclusions •You probably shouldn’t use this to steal docs from

    journalists •You maybe should use this for a research project! •Audio isn’t super inscrutable •Hillclimbing totally works •You will get really used to coding with a splitting headache
  18. gr33tz y0 •snare for tooting about #radBIOS •mossmann for schooling

    me about DSP •mike and dom for repeatedly telling me that my SUPER NOVEL INVENTION was created forever ago •Kate Murphy for quietnet •dragos for not killing me that time I went to cansec