Cyber Security Engineering: A Practical Approach for Systems and Software Assurance (SEI Series in Software Engineering)