Teaching the security mindset with reference monitors

Justin Cappos, Richard Weiss

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Abstract

    One of the central skills in computer security is reasoning about how programs fail. As a result, computer security necessarily involves thinking about the corner cases that arise when software executes. An unfortunate side effect of this is that computer security assignments typically necessitate deep understanding of a topic, such as how the stack is laid out in memory or how web applications interact with databases. This work presents a series of assignments that require very little background knowledge from students, yet provide them with the ability to reason about failures in programs. In this set of assignments, students implement two very simple programs in a high-level language (Python). Students first implement a reference monitor that tries to uphold a security property within a sandbox. For the second portion, the students are provided each others' reference monitors and then write attack code to try to bypass the reference monitors. By leveraging a Python-based sandbox, student code is isolated cleanly, which simplifies development and grading. These assignments have been used in about a dozen classes in a range of environments, including a research university, online classes, and a four year liberal arts school. Student and instructor feedback has been overwhelmingly positive. Furthermore, survey results demonstrate that after a 2-3 week module, 76% of the students who did not understand reference monitors and access control learned these key security concepts.

    Original languageEnglish (US)
    Title of host publicationSIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education
    PublisherAssociation for Computing Machinery
    Pages523-528
    Number of pages6
    DOIs
    StatePublished - 2014
    Event45th ACM Technical Symposium on Computer Science Education, SIGCSE 2014 - Atlanta, GA, United States
    Duration: Mar 5 2014Mar 8 2014

    Other

    Other45th ACM Technical Symposium on Computer Science Education, SIGCSE 2014
    CountryUnited States
    CityAtlanta, GA
    Period3/5/143/8/14

    Fingerprint

    Teaching
    Students
    Security of data
    High level languages
    Access control
    Feedback
    Data storage equipment

    Keywords

    • Access control
    • Python
    • Reference monitor
    • Security

    ASJC Scopus subject areas

    • Computer Science (miscellaneous)

    Cite this

    Cappos, J., & Weiss, R. (2014). Teaching the security mindset with reference monitors. In SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education (pp. 523-528). Association for Computing Machinery. https://doi.org/10.1145/2538862.2538939

    Teaching the security mindset with reference monitors. / Cappos, Justin; Weiss, Richard.

    SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 2014. p. 523-528.

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Cappos, J & Weiss, R 2014, Teaching the security mindset with reference monitors. in SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, pp. 523-528, 45th ACM Technical Symposium on Computer Science Education, SIGCSE 2014, Atlanta, GA, United States, 3/5/14. https://doi.org/10.1145/2538862.2538939
    Cappos J, Weiss R. Teaching the security mindset with reference monitors. In SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery. 2014. p. 523-528 https://doi.org/10.1145/2538862.2538939
    Cappos, Justin ; Weiss, Richard. / Teaching the security mindset with reference monitors. SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education. Association for Computing Machinery, 2014. pp. 523-528
    @inproceedings{e4f017d898eb460d8ec33a13b342660c,
    title = "Teaching the security mindset with reference monitors",
    abstract = "One of the central skills in computer security is reasoning about how programs fail. As a result, computer security necessarily involves thinking about the corner cases that arise when software executes. An unfortunate side effect of this is that computer security assignments typically necessitate deep understanding of a topic, such as how the stack is laid out in memory or how web applications interact with databases. This work presents a series of assignments that require very little background knowledge from students, yet provide them with the ability to reason about failures in programs. In this set of assignments, students implement two very simple programs in a high-level language (Python). Students first implement a reference monitor that tries to uphold a security property within a sandbox. For the second portion, the students are provided each others' reference monitors and then write attack code to try to bypass the reference monitors. By leveraging a Python-based sandbox, student code is isolated cleanly, which simplifies development and grading. These assignments have been used in about a dozen classes in a range of environments, including a research university, online classes, and a four year liberal arts school. Student and instructor feedback has been overwhelmingly positive. Furthermore, survey results demonstrate that after a 2-3 week module, 76{\%} of the students who did not understand reference monitors and access control learned these key security concepts.",
    keywords = "Access control, Python, Reference monitor, Security",
    author = "Justin Cappos and Richard Weiss",
    year = "2014",
    doi = "10.1145/2538862.2538939",
    language = "English (US)",
    pages = "523--528",
    booktitle = "SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education",
    publisher = "Association for Computing Machinery",

    }

    TY - GEN

    T1 - Teaching the security mindset with reference monitors

    AU - Cappos, Justin

    AU - Weiss, Richard

    PY - 2014

    Y1 - 2014

    N2 - One of the central skills in computer security is reasoning about how programs fail. As a result, computer security necessarily involves thinking about the corner cases that arise when software executes. An unfortunate side effect of this is that computer security assignments typically necessitate deep understanding of a topic, such as how the stack is laid out in memory or how web applications interact with databases. This work presents a series of assignments that require very little background knowledge from students, yet provide them with the ability to reason about failures in programs. In this set of assignments, students implement two very simple programs in a high-level language (Python). Students first implement a reference monitor that tries to uphold a security property within a sandbox. For the second portion, the students are provided each others' reference monitors and then write attack code to try to bypass the reference monitors. By leveraging a Python-based sandbox, student code is isolated cleanly, which simplifies development and grading. These assignments have been used in about a dozen classes in a range of environments, including a research university, online classes, and a four year liberal arts school. Student and instructor feedback has been overwhelmingly positive. Furthermore, survey results demonstrate that after a 2-3 week module, 76% of the students who did not understand reference monitors and access control learned these key security concepts.

    AB - One of the central skills in computer security is reasoning about how programs fail. As a result, computer security necessarily involves thinking about the corner cases that arise when software executes. An unfortunate side effect of this is that computer security assignments typically necessitate deep understanding of a topic, such as how the stack is laid out in memory or how web applications interact with databases. This work presents a series of assignments that require very little background knowledge from students, yet provide them with the ability to reason about failures in programs. In this set of assignments, students implement two very simple programs in a high-level language (Python). Students first implement a reference monitor that tries to uphold a security property within a sandbox. For the second portion, the students are provided each others' reference monitors and then write attack code to try to bypass the reference monitors. By leveraging a Python-based sandbox, student code is isolated cleanly, which simplifies development and grading. These assignments have been used in about a dozen classes in a range of environments, including a research university, online classes, and a four year liberal arts school. Student and instructor feedback has been overwhelmingly positive. Furthermore, survey results demonstrate that after a 2-3 week module, 76% of the students who did not understand reference monitors and access control learned these key security concepts.

    KW - Access control

    KW - Python

    KW - Reference monitor

    KW - Security

    UR - http://www.scopus.com/inward/record.url?scp=84899741567&partnerID=8YFLogxK

    UR - http://www.scopus.com/inward/citedby.url?scp=84899741567&partnerID=8YFLogxK

    U2 - 10.1145/2538862.2538939

    DO - 10.1145/2538862.2538939

    M3 - Conference contribution

    SP - 523

    EP - 528

    BT - SIGCSE 2014 - Proceedings of the 45th ACM Technical Symposium on Computer Science Education

    PB - Association for Computing Machinery

    ER -