Designing Security Architecture Solutions
by Jay Ramachandran
Wiley 2002.
Index, Bibliography, Glossary of Acronyms. 452 pages. ISBN 0-471-20602-4. $49.99

Reviewed by  Robert Bruen   May 13, 2002 

There are still not enough books that cover writing secure code and designing secure systems. Fortunately, the few that are out there are generally good quality books. The range of topics for this set of books is still limited, leaving the door wide open for new, useful titles. Ramchandran has made a real contribution with this title.

Anyone who reads Bugtraq regularly is painfully aware of the almost daily barrage of security issues with software. Many of the issues have been caused by poor coding practices. Naturally, some of the holes are obscure and the discovery has been clever, but more often that not, someone was just not paying attention.  If you have read Building Secure Software by Viega and McGraw and Anderson's Security Engineering, this book would be a good addition to help round out the overall approach. Code writers need to make sure that they use good practices for the code, but just as important is the architecture of whatever it is being built.  It is well established that security needs to be built in from the beginning, because retrofitting usually is hard and not very successful.

One is never sure whether a poor product of any kind turned out that way as a result of simply doing a lousy job or because they did not know how to do a good job.  Ramchandran has significantly reduced the excuse pool for the latter.  This is not a cookbook by any means, but it is thorough in its approach to security architecture.  He has included the required chapter on cryptography, but fortunately, does not dwell on it.  He shows how cryptography fits into the security architecture without restating the obvious, as many other books have done.

The author covers both Windows and Unix issues.  The scope includes databases, web applications, CORBA and IPSEC, among other things, always with a clear introduction to each topic.  Unlike many security books, he has an in-depth business case with analysis. He also has a sense of humor.

While the book is not intended to be a security book, there are plenty of security concepts presented.  The concepts contain enough detail that, in spite of the intention, the reader will learn something about security.  The author's approach is one of the book's strengths.  Each section is well organized, with appropriate definitions, along with the relationship to the planning and design of a secure application.  One generally thinks of architecture as a high level endeavor, but in order to do it right, one must scrutinize the details.  Ramchandran has done it right.