Assured systems, those systems that exhibit confidentiality, integrity, and availability and whose security properties have been verified or proven, are essential for the United States' national security. This project is developing the necessary learning materials and strategies to equip undergraduate computing students with the following capabilities, which are essential for building assured systems:
1. The ability to account for system security from the start in the form of requirements, specifications, policies, and concepts of operation. 2. The ability to use security and integrity mechanisms (such as authentication and reference monitors) to satisfy confidentiality, integrity, and availability requirements. 3. The ability to apply computer-assisted reasoning tools (such as theorem provers and model checkers) to formally verify security properties.
The learning materials being created include a series of hands-on lab exercises that incorporate security concepts and mechanisms, as well as functional programming and theorem proving. Materials also include hands-on projects that integrate both security and assurance, requiring students to walk the virtuous cycle of specification, design, implementation, and verification. Through these activities, students experience first-hand how theory, concepts, and tools can be combined to solve real-world problems. This project is identifying the educational foundations necessary for producing graduates who can build assured systems to support the nation's critical infrastructure. The activity-based and modular nature of the project's learning materials will help foster adoption by a wide range of educators, including those whose primary expertise is not in assurance.