how secure
play

How Secure are our Computer Systems Courses? Majed Almansoori, - PowerPoint PPT Presentation

madS&P How Secure are our Computer Systems Courses? Majed Almansoori, Jessica Lam, Elias Fang, Kieran Mulligan, Adalbert Gerald Soosai Raj, Rahul Chatterjee 1 Technology in modern society Banks Buildings Hospitals Cars 2


  1. madS&P How Secure are our Computer Systems Courses? Majed Almansoori, Jessica Lam, Elias Fang, Kieran Mulligan, Adalbert Gerald Soosai Raj, Rahul Chatterjee 1

  2. Technology in modern society Banks Buildings Hospitals Cars 2

  3. Technology comes with risks Computer security is important !!! 3

  4. Are we training our students on computer security? Security courses are offered as advanced electives Students can graduate without taking any security course Top 20 CS programs in the US (according to US News) Result: Software engineers with Source: https://www.usnews.com/best-graduate-schools/top-sci no security background ! ence-schools/computer-science-rankings 4

  5. Is security integrated in CS courses? Prior work evaluated database textbooks. - Found plenty of SQL injection bugs. What about other computer science courses? We focus on Computer Systems 5

  6. What is a Computer Systems course? Computer Systems Course Focuses on the software part 6 Image Source: http://users.ece.northwestern.edu/~kcoloma/ece361/lectures/lec01-introduction.pdf

  7. We ask: Are computer systems courses taught securely? RQ1: Do students use unsafe C/C++ functions in their projects? RQ2: Is computer systems course taught using unsafe functions? 7

  8. Unsafe C/C++ functions lead to vulnerabilities Buffer Overflow Integer Overflow Exploit unsafe function (e.g. strcpy ) Code Injection Format String 8

  9. Example: code snippet with strcpy() Source Destination Controlled by user! Make argv[1] larger than 20 bytes to cause buffer overflow. Buffer overflow ⇒ Control the program flow! 9

  10. Popular unsafe functions Level 1 Level 2 (Use with caution) (Easily Exploitable) atoi strcpy memcpy strcat getopt* exec* gets (v)snprintf (v)sprintf realpath system popen 10

  11. Code collection ● We Considered top 20 R1 universities in the US (According to US News). ● Collected code from course web pages and . ● We attributed some of the students’ code to instructors (Details in the paper). ● We found: 193.2 KLOC 567.3 KLOC by Instructors by Students KLOC = Thousand lines of code 11

  12. Abundant use of unsafe functions 3,099 Invocations 60% Level 2 by Students 4,238 Invocations 55% Level 2 FlawFinder (Analysis tool) by Instructors 12

  13. Most used unsafe functions in the dataset Level 2 13

  14. Do students and instructors use similar functions? Usage counts of unsafe functions for a school func 1 func 2 func 3 …. func n 23 1 0 …. 4 1 0 5 …. 9 Found high similarity : ● Most universities scored ≥ 0.5 ● Four scored ≥ 0.9 14

  15. Where did students learn about these functions? Most of them teach/use unsafe functions !!! Instructors Code Lecture Notes Textbooks 15

  16. The increased awareness towards gets() 9 Invocations only fgets() is getting popular Replace unsafe functions with their safer alternatives! 16

  17. Is it enough to teach the safe alternatives? NO! Also controlled by user! Make argv[1] larger than 240 bytes to cause buffer overflow. Buffer overflow ⇒ Control program flow! 17

  18. More than just teaching safe functions Unsafe Functions Teach safe Update Train Grade code alternatives material Instructors security 18

  19. How Secure are our Computer Systems Courses? Collected 7,337 invocations Unsafe examples in 760+ KLOC of unsafe function course resources Future directions: Redesign Integrate security in computer systems course other required courses https://majedalmansoori.com malmansoori2@wisc.edu 19

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend