Monday, June 13, 2005
Book review: Silence on the Wire
Silence on the Wire: A Field Guide to Passive Reconnaissance and Indirect Attacks
Michal Zalewski
No Starch Press
ISBN 1593270461
2005; 268 pages plus index
Summary
Silence on the Wire examines the fundamental limits of computer security, pointing out a universe of subliminal channels which inevitably leak information from every networked computer. This is a book for researchers, for people who love to take things apart and see how they work, and maybe for top investigators on difficult cases. What you won't find is yet another list of everyday tips about securing your network. Read this to expand your horizons, not to solve today's issue.
The book
Edmund Locard, who founded the first crime lab, laid out a fundamental forensic principle: whenever two objects come into contact, something is always exchanged. A perpetrator always leaves something at the crime scene and always takes something away. You could view Locard's Exchange Principle as the theme of Silence on the Wire. For example, we like to think that a failed login is a no-op, but the client comes away knowing how long the authentication attempt took (which may be a clue to whether the user ID exists) and the server can learn some characteristics of the client's TCP/IP stack. This is just one of the book's many examples of inadvertent data disclosure.
Zalewski has published about hidden data before. In 2004, he made headlines by recovering deleted text from documents Microsoft had published.
The book is well produced. In contrast to many of today's publications, it is mercifully free of typos and (except for useless chapter titles) well organized.
Zalewski organizes the book with clear and complete introductions to the foundations of every topic, going so far as to explain Boolean logic in preparation for the fascinating discussion later of parasitic computing. The book begins with a practical example, explaining the history of random number generators and the Linux /dev/random device and the reasons they take input from keyboard timing. After he lays out the problem of preventing an attacker from predicting RNG output the turns the problem around and looks out how an attacker can derive keystroke timing and statistically guess the text based on examining the RNG state. It's the first of many problems Zalewski constructively turns upside down, though he really should have acknowledged that his discovery is a classic subliminal channel.
The book, continued
Early in the book Zalewski writes
You'll read tutorial explanations for clever hacks such as timing attacks on crypto, turning search engine spiders into attack tools, using time-to-live fields in TCP/IP packets to map networks behind firewalls and triangulate the real source of packets which have spoofed addresses, and nmap's "idle scan" feature which allows scanning a host without ever receiving a packet from it.
There are many discussions of the effect of underspecified protocols and how they permit identifying a source operating system or even getting leftover data from its memory in unused bytes of a packet.
Of course there's a couple of pages about Tempest attacks but only to lead up to the recent (Lughry and Umphress, 2002) discovery that status LEDs leak information. Manufacturers wire status LEDs direct to read and write lines to ensure, cheaply, that they blink when they should. LEDs switch fast enough to allow reconstructing the data remotely with a telescope and a photocell. Zalewski gives a lovingly detailed discussion down to the level of line codings and even part numbers for monitoring equipment.
He reviews proposed countermeasures, none of which are effective enough to dissuade you from covering the LEDs with duct tape.
There's a discussion of identifying programs and network stacks by studying how their random number generators behave. This is a practical investigative technique: Kumar, Paxson and Weaver did just that to track the origin of the Witty worm.
Saving the best for last, Kalewski closes with the fascinating idea of "parasitic computing", untraceably hiding computations and storage in normal network traffic. Hundreds of megabytes can be stored in delayed mail queues and ICMP echoes, and remote hosts will do arbitrary boolean computations for you when they verify the checksums of your packets. It's a beautiful notion but probably won't compete with the squalid reality of botnets.
Research that really belonged in this book
Cambridge's Markus Kuhn proposed a passive eavesdropping attack which is totally in the spirit of Silence on the Wire, and could even have been dropped straight into the chapter about watching blinking lights. Kuhn (http://www.cl.cam.ac.uk/~mgk25/ieee02-optical.pdf) points out that if you measure the brightness in a room lit up by a CRT from microsecond to microsecond, you can reconstruct the raster scan.
A couple of discoveries that would have fit into Silence on the Wire happened after it went to press. Tadayoshi Kohno's work on how to identify a remote device by its rate of clock skew (http://www.cse.ucsd.edu/users/tkohno/papers/PDF/) and Steven McLeod's experiments showing that hard disks are detectably changed after forensic imaging with a write blocker (members.ozemail.com.au/~steven.mcleod/ SMART_Anti_Forensics.pdf) would certainly have fit the book's theme.
The story of how the cellular telephone companies put a halt to toll fraud done with hacked phones definitely deserved to be covered. They looked below the abstraction of the transmitted signal and found that they could identify and block hacked handsets by variations in the waveform caused by differences in analog components.
It is possible that Zalewski's work overlaps with what the military calls "MASINT", Measurement and Signature Intelligence. Unclassified information is sparse but suggests that MASINT studies out-of-band characteristics of an opponent's activities which the opponent doesn't take the trouble to mask.
Michal Zalewski
No Starch Press
ISBN 1593270461
2005; 268 pages plus index
Summary
Silence on the Wire examines the fundamental limits of computer security, pointing out a universe of subliminal channels which inevitably leak information from every networked computer. This is a book for researchers, for people who love to take things apart and see how they work, and maybe for top investigators on difficult cases. What you won't find is yet another list of everyday tips about securing your network. Read this to expand your horizons, not to solve today's issue.
The book
Edmund Locard, who founded the first crime lab, laid out a fundamental forensic principle: whenever two objects come into contact, something is always exchanged. A perpetrator always leaves something at the crime scene and always takes something away. You could view Locard's Exchange Principle as the theme of Silence on the Wire. For example, we like to think that a failed login is a no-op, but the client comes away knowing how long the authentication attempt took (which may be a clue to whether the user ID exists) and the server can learn some characteristics of the client's TCP/IP stack. This is just one of the book's many examples of inadvertent data disclosure.
Zalewski has published about hidden data before. In 2004, he made headlines by recovering deleted text from documents Microsoft had published.
The book is well produced. In contrast to many of today's publications, it is mercifully free of typos and (except for useless chapter titles) well organized.
Zalewski organizes the book with clear and complete introductions to the foundations of every topic, going so far as to explain Boolean logic in preparation for the fascinating discussion later of parasitic computing. The book begins with a practical example, explaining the history of random number generators and the Linux /dev/random device and the reasons they take input from keyboard timing. After he lays out the problem of preventing an attacker from predicting RNG output the turns the problem around and looks out how an attacker can derive keystroke timing and statistically guess the text based on examining the RNG state. It's the first of many problems Zalewski constructively turns upside down, though he really should have acknowledged that his discovery is a classic subliminal channel.
The book, continued
Early in the book Zalewski writes
"...I've chosen to single out these two cases for their uniqueness [and] beauty...".Throughout the book he writes about the elegant instead of the everyday.
You'll read tutorial explanations for clever hacks such as timing attacks on crypto, turning search engine spiders into attack tools, using time-to-live fields in TCP/IP packets to map networks behind firewalls and triangulate the real source of packets which have spoofed addresses, and nmap's "idle scan" feature which allows scanning a host without ever receiving a packet from it.
There are many discussions of the effect of underspecified protocols and how they permit identifying a source operating system or even getting leftover data from its memory in unused bytes of a packet.
Of course there's a couple of pages about Tempest attacks but only to lead up to the recent (Lughry and Umphress, 2002) discovery that status LEDs leak information. Manufacturers wire status LEDs direct to read and write lines to ensure, cheaply, that they blink when they should. LEDs switch fast enough to allow reconstructing the data remotely with a telescope and a photocell. Zalewski gives a lovingly detailed discussion down to the level of line codings and even part numbers for monitoring equipment.
He reviews proposed countermeasures, none of which are effective enough to dissuade you from covering the LEDs with duct tape.
There's a discussion of identifying programs and network stacks by studying how their random number generators behave. This is a practical investigative technique: Kumar, Paxson and Weaver did just that to track the origin of the Witty worm.
Saving the best for last, Kalewski closes with the fascinating idea of "parasitic computing", untraceably hiding computations and storage in normal network traffic. Hundreds of megabytes can be stored in delayed mail queues and ICMP echoes, and remote hosts will do arbitrary boolean computations for you when they verify the checksums of your packets. It's a beautiful notion but probably won't compete with the squalid reality of botnets.
Research that really belonged in this book
Cambridge's Markus Kuhn proposed a passive eavesdropping attack which is totally in the spirit of Silence on the Wire, and could even have been dropped straight into the chapter about watching blinking lights. Kuhn (http://www.cl.cam.ac.uk/~mgk25/ieee02-optical.pdf) points out that if you measure the brightness in a room lit up by a CRT from microsecond to microsecond, you can reconstruct the raster scan.
A couple of discoveries that would have fit into Silence on the Wire happened after it went to press. Tadayoshi Kohno's work on how to identify a remote device by its rate of clock skew (http://www.cse.ucsd.edu/users/tkohno/papers/PDF/) and Steven McLeod's experiments showing that hard disks are detectably changed after forensic imaging with a write blocker (members.ozemail.com.au/~steven.mcleod/ SMART_Anti_Forensics.pdf) would certainly have fit the book's theme.
The story of how the cellular telephone companies put a halt to toll fraud done with hacked phones definitely deserved to be covered. They looked below the abstraction of the transmitted signal and found that they could identify and block hacked handsets by variations in the waveform caused by differences in analog components.
It is possible that Zalewski's work overlaps with what the military calls "MASINT", Measurement and Signature Intelligence. Unclassified information is sparse but suggests that MASINT studies out-of-band characteristics of an opponent's activities which the opponent doesn't take the trouble to mask.