Automatic Problem Generation for Capture-the-Flag Competitions This material is based upon work supported by the National Science Foundation under Grant.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Overview Network security involves protecting a host (or a group of hosts) connected to a network Many of the same problems as with stand-alone computer.
Authentication Applications The Kerberos Protocol Standard
Key distribution and certification In the case of public key encryption model the authenticity of the public key of each partner in the communication must.
RSA COSC 201 ST. MARY’S COLLEGE OF MARYLAND FALL 2012 RSA.
Native x86 Decompilation Using Semantics-Preserving Structural Analysis and Iterative Control-Flow Structuring Edward J. Schwartz *, JongHyup Lee ✝, Maverick.
A3.1 Assignment 3 Simple Job Submission Using GT 4 GRAM.
Requirements for a Secure Voting System  Only authorized voters can vote  No one can vote more than once  No one can determine for whom anyone else.
Introduction to Computer Security David Brumley Carnegie Mellon University.
Review: Software Security David Brumley Carnegie Mellon University.
The Kerberos Authentication System Brad Karp UCL Computer Science CS GZ03 / M th November, 2008.
Exchange Network Key Management Services A Security Component February 28, 2005 The Exchange Network Node Mentoring Workshop.
The Future of Correct Software George Necula. 2 Software Correctness is Important ► Where there is software, there are bugs ► It is estimated that software.
1 Authentication Applications Digital Signatures Security Concerns X.509 Authentication Service Kerberos Based on slides by Dr. Lawrie Brown of the Australian.
 Key exchange o Kerberos o Digital certificates  Certificate authority structure o PGP, hierarchical model  Recovery from exposed keys o Revocation.
Cryptography in World War II Jefferson Institute for Lifelong Learning at UVa Spring 2006 David Evans Class 4: Modern Cryptography
Chapter 9 - Control in Computerized Environment ATG 383 – Spring 2002.
Security Outline Encryption Algorithms Authentication Protocols Message Integrity Protocols Key Distribution Firewalls.
Dr Alejandra Flores-Mosri Security Internet Management & Security 06 Learning outcomes At the end of this session, you should be able to: –Describe the.
Security Module – Part 1 Spring 2006 V.T. Raja, Ph.D., Oregon State University.
S/MIME and PKI Dartmouth College PKI Lab. What Is S/MIME? RFC 2633 (S/MIME Version 3)RFC 2633 Extensions to MIME Uses PKI certificates, keys, and.
PicoCTF: Inspiring Tomorrow’s Cyber Security Workforce and Leaders Jonathan Burket
Computer Science Public Key Management Lecture 5.
Strong Password Protocols
Tonga Institute of Higher Education Design and Analysis of Algorithms IT 254 Lecture 9: Cryptography.
Java: Chapter 1 Computer Systems Computer Programming II.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
PicoCTF: Teaching 10,000 High School Students to Hack Peter Chapman 1/15/2014 Carnegie Mellon University This material is based upon work.
Configuration Management (CM)
ASP.NET.. ASP.NET Environment ASP.NET is Microsoft's programming framework that enables the development of Web applications and services. It is an easy.
Public-Key Cryptography CS110 Fall Conventional Encryption.
David Evans CS200: Computer Science University of Virginia Computer Science Class 36: Public-Key Cryptography If you want.
Chapter 21 Public-Key Cryptography and Message Authentication.
Automatic Diagnosis and Response to Memory Corruption Vulnerabilities Presenter: Jianyong Dai Jun Xu, Peng Ning, Chongkyung Kil, Yan Zhai, Chris Bookhot.
Fall 2010/Lecture 321 CS 426 (Fall 2010) Key Distribution & Agreement.
Key Exchange Methods Diffie-Hellman and RSA CPE 701 Research Case Study Derek Eiler | April 2012.
Cryptography is the process of encryption and decryption a message or data. Examples: Banking to keep peoples money safe Schools so we can keep students.
Facilities for Secure Communication The Internet is insecure The Internet is a shared collection of networks. Unfortunately, that makes it insecure An.
ACCESS CONTROL MANAGEMENT Poonam Gupta Sowmya Sugumaran PROJECT GROUP # 3.
Topic 14: Secure Communication1 Information Security CS 526 Topic 14: Key Distribution & Agreement, Secure Communication.
ECE509 Cyber Security : Concept, Theory, and Practice Key Management Spring 2014.
Kerberos Guilin Wang School of Computer Science 03 Dec
© Copyright 2009 SSLPost 01. © Copyright 2009 SSLPost 02 a recipient is sent an encrypted that contains data specific to that recipient the data.
The Hierarchical Trust Model. PGP Certificate Server details Fast, efficient key repository –LDAP, HTTP interfaces Secure remote administration –“Pending”
1 Diffie-Hellman (Key Exchange) Protocol Rocky K. C. Chang 9 February 2007.
Int fact (int n) { If (n == 0) return 1; else return n * fact (n – 1); } 5 void main () { Int Sum; : Sum = fact (5); : } Factorial Program Using Recursion.
Security. Cryptography (1) Intruders and eavesdroppers in communication.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Software Security. Bugs Most software has bugs Some bugs cause security vulnerabilities Incorrect processing of security related data Incorrect processing.
Dr. Nermi hamza.  A user may gain access to a particular workstation and pretend to be another user operating from that workstation.  A user may eavesdrop.
Innovations in P2P Communications David A. Bryan College of William and Mary April 11, 2006 Advisor: Bruce B. Lowekamp.
Intrusion Resilience via the Bounded-Storage Model Stefan Dziembowski Warsaw University and CNR Pisa.
Outline The basic authentication problem
Sponsored by Portakal Technologies
DNS Security Advanced Network Security Peter Reiher August, 2014
Cyber Grand Challenge “Cyber Grand Challenge (CGC) is a contest to build high-performance computers capable of playing in a Capture-the-Flag style cyber-security.
OPERATING SYSTEMS CS 3502 Fall 2017
Big Numbers: Mathematics and Internet Commerce
Group theory exercise.
Topic 1: Data, information, knowledge and processing
Using SSL – Secure Socket Layer
An Installation Guide of PGP on Windows 2000
Certificates An increasingly popular form of authentication
Protocol ap1.0: Alice says “I am Alice”
Discrete Math for CS CMPSC 360 LECTURE 14 Last time:
Cloud-based Resources for Cybersecurity Education and Training
Digital Communications
Bethesda Cybersecurity Club
Presentation transcript:

Automatic Problem Generation for Capture-the-Flag Competitions This material is based upon work supported by the National Science Foundation under Grant No and by a Graduate Research Fellowship under Grant No /11/2015 Jonathan Burket Peter Chapman Tim Becker Carnegie Mellon University Chris Ganas David Brumley

Outline Overview of Automatic Problem Generation Flag Sharing in picoCTF 2014 Future Work 2

“Jeopardy-Style” Capture-the-Flag 3 Cryptography 100 Cryptography 200 Web 100 Web 200 Forensics 100 Flag: “sql_injection_rox” Points!

Example CTF Problem You find an encrypted message written on the documents. Can you decrypt it? “rfc qcapcr nyqqnfpyqc gq bmuasiugssaxxlextkasoklntcidhm” 4 “the secret passphrase is dowcukwiuuczzngzvmcuqmnpvekfjo”

Flag Sharing 5 Flag: “sql_injection_rox” Points! Alice Bob

Flag Sharing 6 Flag: “sql_injection_rox” Points! freeflags.com Points! Alice BobCarolDave

Changing Problems Automatically 7 “the secret passphrase is dowcukwiuuczzngzvmcuqmnpvekfjo” “rfc qcapcr nyqqnfpyqc gq bmuasiugssaxxlextkasoklntcidhm” “the secret passphrase is vrsoblzffauncgrgknleuxedsknnhb” “rfc qcapcr nyqqnfpyqc gq tpqmzjxddyslaepeiljcsvcbqillfz” k=24

Changing Problems Automatically 8 “the secret passphrase is dowcukwiuuczzngzvmcuqmnpvekfjo” “rfc qcapcr nyqqnfpyqc gq bmuasiugssaxxlextkasoklntcidhm” “the secret passphrase is dowcukwiuuczzngzvmcuqmnpvekfjo” “znk ykixkz vgyyvnxgyk oy juciaqcoaaifftmfbsiawstvbkqlpu” k=24 k=6 These different versions can be generated automatically!

Automatic Problem Generation Through Automatic Problem Generation, different competitors can receive different versions (“autogen” problem instances) of a given problem. 9 “wkh vhfuhw sdvvskudvh lv yuvreociidxqfjujnqohxahgvnqqke” Flag: “vrsoblzffauncgrgknleux…” “rfc qcapcr nyqqnfpyqc gq bmuasiugssaxxlextkasoklntcidhm” Flag: “dowcukwiuuczzngzvmc…” Alice Bob Flags can’t be shared!

Templated Autogen Problems 10 “What is the value of {register} after executing the instruction at address {memory address}?” “What is the value of eax after executing the instruction at address 0x ?” “What is the value of ebx after executing the instruction at address 0x ?” Problem instances are essentially the same, but have slightly different details. Good for detection and prevention of flag sharing

11 Flag: “vrsoblzffauncgrgknleux…” Correct Flag: “dowcukwiu…” Alice Bob Flag: “vrsoblzffauncgrgknleux…” Correct Flag: “vrsoblzff…” Correct! Flag Sharing! We detect flag sharing by looking for cases where users submit incorrect flags that are correct for an instance other than their own

12 Correct Flag: “dowcukwiu…” Alice Bob Correct Flag: “vrsoblzff…” freeflags.com “The correct flag for this problem is vrsoblzffauncgrgknleux…” Distinct, per instance flags allows competition to detect the source of shared flags

Challenges Balanced Difficulty Bug Prevention Scalability and Deployment 13

Balanced Problem Difficulty 14 Need to make sure each problem instance is reasonably close to the same difficulty. “the secret passphrase is dowcukwiuuczzngzvmcuqmnpvekfjo” k=0

Scalability and Deployment Each team must be given a team-specific problem instance Problem instance generation must not bottleneck the performance of the competition For problems served from remote machines, instances must be deployed to those machines and synchronized with the grading server 15

Automatic Problem Generation in picoCTF

picoCTF ,185 Eligible Teams 9,738 Eligible Students 12 Day Competition 66 Security Challenges Cash Prizes for Top 10 Teams 17

Automatically Generated Problems in picoCTF Problem NameCategoryScore Teams Solved Tyrannosaurus HexMiscellaneous No CommentWeb CaesarCryptography Internet InspectionWeb JavascryptWeb SubstitutionCryptography ZORCryptography50554 Basic ASMReversing60887 Repeated XORCryptography70182 BlockCryptography13035

Flag Sharing in picoCTF ,412 flags (correct and incorrect) submitted to automatically generated problems 1,081 (0.84%) labeled as “shared flags” 530 distinct flag sharing cases 14% (460/3185) of teams involved 87% of these teams shared flags for only one problem 68% teams attempting to submit a shared flag eventually solved the problem correctly 19

20

21

22

23

24

25

26

27

Future of Automatic Problem Generation in CTFs 28

29

Synthesized Autogen Problems 30 void check_input(int v0, int v1) { v0 += 7; int v2 = 0; v0 *= v2; v1 += 2; if(v0 < 45) { int v3 = v0; v2 -= v3; } v1 *= 8; int v4 = 3; v4 *= v1; if(v0 != 0) { you_lose(); return; } if(v2 != 0) { you_lose(); return; } if(v4 != -456) { you_lose(); return; } get_key(); return; } void check_input(int v0, int v1, int v2, int v3, int v4, int v5, int v6) { int v7 = -1; v3 -= 3; v6 -= 1; for(int v8=1; v8<= 9; v8+=v1) { v5 += v8; v2 *= v6; } int v9 = 6; int v10 = 0; if(v2 <= v9) { v5 *= v4; v0 += v3; } else { v3 |= v6; } int v11 = v6; v11 += v10; for(int v12=1; v12< 10; v12+=v5) { int v13 = v7; v6 *= v0; if(v5 == 44) { v13 -= v2; v11 *= v10; } else { v13 *= v11; … void check_input(int v0, int v1) { int v2 = v1; int v3 = v0; if(v1 > 29) { v0 *= v1; } if(v0 != -8930) { you_lose(); return; } if(v2 != 94) { you_lose(); return; } if(v3 != -95) { you_lose(); return; } get_key(); return; } Similar Difficulty Harder

Synthesized Autogen Problems Easy Hard 31

Questions? 32