Customer Rating:      Summary: Holistic Security Comment: In the 11th century, Moses Maimonides taught us that the highest form of charity is to teach a man to fish. If you give him a fish, he can eat today. If you teach him to fish he can eat forever.In the same way, Mark G. Graff and Kenneth R. van Wyk have provided an excellent book that gives us a framework for thinking about security rather than trying to give specific rules that might have been invalid before the book came off the press. "Secure Coding" gives the reader the ability to envision, architect, design, code, and implement a security framework that truly meets the needs of its stakeholders. The authors don't provide a cookbook. In their own words: "When you picked up this book, perhaps you thought that we could provide certain security? Sadly, no one can." Instead, they deliver a robust mental model and a framework to understand security and to architect, design, develop, and operate secure systems. They present best practices in the field of security, the reasons for using them, and suggestions on deciding which practices are appropriate in your particular case. Their approach is to realize that the objective is not to make a system totally secure, but to make it just secure enough. Deciding what is "just secure enough" is a business and not a technical decision. It is based on weighing risk versus cost. There are substantial references throughout the book as well as an appendix of resources. The book is filled with examples of security failures and, more importantly, an excellent post mortem on each to show what could have been done to avoid the problem. The authors are extremely familiar with UNIX environments and this comes through in the examples. However, you don't need to be a UNIX guru to glean valuable lessons from the examples. One key message is that security is not something you can bolt onto an application. You must take a holistic approach to the overall system in which the application is being used. It's worth noting that many secure applications become extremely insecure because of the system environment (including networks) in which they exist. A second key message is that, while you can retrofit a insecure application, it is far easier and far less costly to incorporate security as an integral part of the entire development life-cycle including requirements, architecture, and design. The security architecture and design must be well-documented so that future maintenance does not inadvertently introduce gaping security holes. The book is primarily intended for those who architect, design, and code secure applications. However, I believe that it is a must read for those who manage and those who implement secure applications and systems.
Customer Rating:      Summary: Some reviewers missing the point. Comment: Some of the reviewers here are missing the point of this book. It's not a "secure code cookbook" in that it doesn't give specific code examples. Such things are quickly obsolete anyway.This book teaches you how to *think* about security, how to think about and *design* code that will be secure. It isn't a "add this snippit of code to your input buffer validation function" sort of book. There are many of these books, and they're useful in their place, but this book writes about the design of secure code, not the actual specifics. To continue the cooking analogy, this is a book on how to write receipes, not a book *of* receipes. Disclaimer, I helped review this book - and I think it's the sort of work that has been sorely missing in the field (I was also given a free copy for doing the review work). Jeremy Allison, Samba Team.
Customer Rating:      Summary: A good step in the right direction Comment: You may have a hi-tech lock on your door, 100% unpickable. If I can just slam my shoulder against the door and jerk it loose from the frame, the fancy lock is irrelevant.Passwords, encryption, and all the rest are the lock. This book is more about making the door and frame strong. Remember the Blaster worm? That wasn't a 'security' problem. It exploited bugs in Windows that supposedly had nothing to do with security. This book is about building programs that resist attack. That doesn't mean copying a safe code fragment into your program and declaring it safe - that idea is ludicrous. Instead, this book is about the process that designs and implements strong programs. It starts with architecture and design documents, then follows through to design and maintenance. The weakness of this book is lack of detail - how to build fail-safe code, what needs to be on design and inspection checklists, etc. There's good reason for that: each sub-topic needs books, if not whole libraries of its own. Take fault tolerance, for example. It may not sound like security, but an attack is meant to cause system failures, and fault tolerance is design to withstand failures. Fault tolerance is a huge topic, with journals and literature all its own. This book can barely mention the idea, while still giving other topics their due. It's a start, though. Much of the advice may sound drearily familiar: code reviews, security audits, configuration control, error checking, and all the other things that take the 'fun' out of programming. If people want that kind of 'fun', then stop calling them software engineers. They're not ready for adult responsibilities. Before anything else, software security requires correct behavior from a program. I really hope I don't hear objections to that as a basic design goal.
Customer Rating:      Summary: Secure Coding: Logico Philosophicus Comment: Secure Coding is not a "technical" book, at least not in the traditional sense of the term. It is a psychological and philosophical masterpiece that just happens to address technical issues at the same time. It delves deep into the human psyche and attempts to explain HOW and WHY developers write insecure code, and what we can do to avoid such mistakes. Furthermore, it dispels widely-held cognitive distortions associated with software design and secure coding. This book is of paramount importance to the industry, and should be read by anyone and everyone involved in software development.Personally, I will not be placing my copy of Secure Coding among the countless other O'Reilly books in my library, as it transcends the technical genre. Instead, I've found a nice little spot for it next to Plato's The Republic and Hume's Treatise of Human Nature. Yes, it's that good.
Customer Rating:      Summary: What every coder should read before programming Comment: Graff and van Wyk's book is great for both an IT manager to get up to speed quickly on security concepts as well as for a coder who needs checklists and case studies to learn from. Don't be deceived by its few pages, this book leaves out the fluff, but concentrates heavily on real-world security issues and problems. Because it abstracts the attacks and does not get bogged down in one particular implementation, Secure Coding is perfect for most any platform. I highly recommend this book for anyone (and that should be everyone) who needs critical computer security information.This book covers buffer overflows (and how to quickly fix them), race conditions, XSS, DOS attacks, security architecture, "good security" practices and much more. Think you're already in the know? Here's a test: Do you know why char * buf=(char *) calloc(BUFSIZE,1); is not always the best way to clear memory? Read the book to find out why! (page 66-67) Happy secure coding!
|
|