Writing Secure Code by Michael Howard & David LeBlanc