首页> 外文会议>Annual midwest instruction and computing symposium >Do This and Nothing More: Teaching Adversarial Thinking Without Security
【24h】

Do This and Nothing More: Teaching Adversarial Thinking Without Security

机译:做到这一点,无所作为:在没有安全感的情况下教授对抗性思维

获取原文

摘要

Software Engineering has a computer security problem; programmers often think only of how to make a program work -- they often don't think about how it could fail. This contrast is at the core of the concept of "Adversarial Thinking" -- that security practitioners (and security conscious developers) need to think critically about about how a sufficiently motivated and intelligent attacker could make their systems fail. Unfortunately, students are often only taught the concept of Adversarial Thinking in the process of teaching them common vulnerabilities and exploits. This is a problem. First, students who do not take a security course do not learn the value of the adversarial perspective. Second, students learn Adversarial Thinking in the context of specific flaws rather than in the context of programming in general. At the same time, exercises that focus on adversarial aspects of computing often require a significant amount of security expertise from participants and a large time investment from the facilitators. One way to naturally teach adversarial thinking is to talk about how program specifications are not just a list of features that a program should have, but a contract that states "do this and nothing more." From that perspective, any program behavior not in the specification is a flaw. This concept is valuable for many reasons, not the least of which is that it does not presuppose any particular knowledge of security issues. We created a framework, DTANM (Do This and Nothing More) that hosts competitions between teams of students. In these short (1-2 hour) competitions, students are given a small piece of code and a specification of how it should behave in terms of inputs, outputs, and displays. For example, our first program was a simple command line calculator. Students look for flaws in the code that allow it to misbehave. When they find these flaws (e.g., the calculator allows an attempt to divide by zero), they fix them in their code and then force other teams' programs to process those "buggy vectors" by adding them to a list of tests that all teams' programs must periodically process. Teams are scored by comparing their program's behavior to a "gold standard" program (provided by the instructor) that is robust to all known attacks. In this way, teams work to improve their own code, while simultaneously thinking adversarially to discover flaws that enable unexpected behavior ~ All without any special "security knowledge" - only basic programming skills. Students in UMD's Computer Security course have found this exercise very enjoyable, and the authors hope to expand its use to students in Intro to CS and Programming classes. The framework itself relies primarily on basic input / output and scripting. For each competition, the instructor needs to provide only the source code, a build script, and the "gold standard" version of the program, which means that the DTANM framework can support a broad range of different programs, making it flexible and useful for teaching security principles for years to come.
机译:软件工程存在计算机安全问题;程序员通常只考虑如何使程序正常工作-他们通常不考虑程序可能如何失败。这种对比是“专家思考”概念的核心,即安全从业人员(和具有安全意识的开发人员)需要认真考虑如何充分激发积极性和聪明的攻击者才能使其系统出现故障。不幸的是,在教他们常见的漏洞和利用过程中,通常只会向学生传授对抗性思维的概念。这是个问题。首先,不参加安全课程的学生不会学习对抗性观点的价值。其次,学生在特定缺陷的背景下而不是在总体编程的背景下学习对抗性思维。同时,侧重于计算的对抗方面的练习通常需要参与者提供大量的安全专业知识,并需要主持人投入大量时间。一种自然地进行对抗性思维的方法是,讨论程序规范不仅是程序应具有的功能列表,而且还应说明“仅此而已”的合同。从这个角度来看,规范中没有的任何程序行为都是缺陷。此概念之所以有价值,有很多原因,其中最重要的一点是它不以任何特定的安全问题知识为前提。我们创建了一个框架DTANM(做到这一点,无所不包)来主持学生团队之间的比赛。在这些短时间(1-2小时)的比赛中,学生会得到一小段代码,并给出了输入,输出和显示方式的规范。例如,我们的第一个程序是一个简单的命令行计算器。学生会在代码中寻找导致其行为异常的缺陷。当他们发现这些缺陷时(例如,计算器允许尝试除以零),他们将其修复为代码,然后通过将其他团队的程序添加到所有团队的测试列表中,迫使其他团队的程序处理这些“错误的程序”程序必须定期处理。团队通过将其程序的行为与对所有已知攻击都具有鲁棒性的“金标准”程序(由教师提供)进行评分,从而为团队打分。这样,团队就可以改进自己的代码,同时进行对抗性思考,以发现导致意外行为的缺陷。〜所有这些都不需要任何特殊的“安全知识”,而只是基本的编程技能。 UMD计算机安全课程的学生发现此练习非常有趣,作者希望将该练习的使用范围扩展到CS和编程入门课程的学生。框架本身主要依赖于基本的输入/输出和脚本。对于每次比赛,讲师仅需提供源代码,构建脚本和程序的“黄金标准”版本,这意味着DTANM框架可以支持各种不同的程序,从而使其灵活,实用。在未来的几年中讲授安全性原则。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号