on January 8, 2003
When was the last time you saw a new book on detecting intrusions at your local book store? Aside from revisions of "Network Intrusion Detection" by Northcutt and Novak, the last thought-provoking book was Paul Proctor's "Practical Intrusion Detection Handbook," published in August 2000. In 2003, IDS fans, the drought has ended.
"Implementing Intrusion Detection Systems" (IIDS) is a welcome start to a year that will see four books published with the word "Snort" in their titles. IIDS pays homage to the finest detection engine in the land, but uses Snort as a sample of the capabilities an IDS has to offer -- capabilities frequently attacked in the press and by assessment-oriented companies. Author Tim Crothers tackles the naysayers head-on in the book's second paragraph: "You see media articles from well-known security writers claiming that IDS is a dead technology. Fortunately, those writers are wrong." Amen!
IIDS is clear and straightforward, with a dose of good advice and informative diagrams. The sample IDS deployment chapter was nice to see in a published work, and the evasion section in chapter 5 was well done. Overall Wiley did a fine job editing IIDS and the price is reasonable.
Now for the toughest part of any review -- constructive criticism of technical details. Crothers' discussion of "passive ftp" on p. 39 doesn't recognize that port 20 is only involved in "active ftp". (See pp. 456-7 of "Building Internet Firewalls, 2nd Ed, for a chart to silence all debate on this topic.) Closed tcp ports reply with RST ACKs, not the lone RSTs listed on p. 96. The author doesn't mention that FIN scans (p. 97) are never used because the lack of a response could be easily due to firewalls dropping packets, not open ports staying quiet.
And, repeating the mistake seen in almost every book mentioning TCP/IP, Crothers' Appendix A claims TCPDump displays "starting and ending relative sequence numbers" (p. 258). Rather, those numbers are the sequence number of the first byte of data in the segment and the sequence number of the first byte of data in the NEXT segment. That's why a TCP segment with 432 bytes of data shows 1:433 in TCPDump -- the first byte is "relative" number 1, the last is relative number 432, and the NEXT is 433.
Apart from my philosophical disagreements with the author's detection methodology and priorities, I enjoyed reading IIDS immensely. I finished it in less than two days and highlighted many lines of text. It will be fun to see how the other four IDS books arriving this year compare to Tim Crothers' work.