Our digital products are not always dependable and secure; they often fail, and security breaches take place almost on a daily basis. This course covers the fundamentals and best practices for building and maintaining secure software systems including an overview of other important non-functional challenges regarding dependable software solutions. It will first introduce the basic concepts of dependable and secure computing, general methods and tools for quality software systems, threats to dependability and security, their attributes, and some general techniques to achieve the attributes. Various security types, their principles and the basics of authentication, access control, and cryptography will be presented next, including some of the most common computer attacks, their defense mechanisms, and intrusion detection systems. Some special topics will also be discussed that will include the interplay between software and system architecture as well as security engineering challenges. Overall, the course will provide comprehensive knowledge about security engineering principles that are applied in the design and implementation of security-aware software systems.
Our digital products are not always dependable and secure; they often fail, and security breaches take place almost on a daily basis. This course covers the fundamentals and best practices for building and maintaining secure software systems including an overview of other important non-functional challenges regarding dependable software solutions. It will first introduce the basic concepts of dependable and secure computing, general methods and tools for quality software systems, threats to dependability and security, their attributes, and some general techniques to achieve the attributes. Various security types, their principles and the basics of authentication, access control, and cryptography will be presented next, including some of the most common computer attacks, their defense mechanisms, and intrusion detection systems. Some special topics will also be discussed that will include the interplay between software and system architecture as well as security engineering challenges. Overall, the course will provide comprehensive knowledge about security engineering principles that are applied in the design and implementation of security-aware software systems.