BUGSWORLD It CAME from Aaron Shbeeb – Eugene Talagrand Building a better bug – by any means necessary.

Slides:



Advertisements
Similar presentations
1 Data Link Protocols By Erik Reeber. 2 Goals Use SPIN to model-check successively more complex protocols Using the protocols in Tannenbaums 3 rd Edition.
Advertisements

BugsWorld Project The Game The Simulator The Language The Translator.
Interprocess Communication CH4. HW: Reading messages: User Agent (the user’s mail reading program) is either a client of the local file server or a client.
Stopping cheaters since By: Tigran Gasparian.
Internet safety! By: Liam, Brilee, Dinny, Shalisha.
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
A Pipeline for Lockless Processing of Sound Data David Thall Insomniac Games.
Viruses,Hacking and Backups By Grace Mackay 8K Viruses Hacking and Hackers Backups.
1 Topic 1 – Lesson 3 Network Attacks Summary. 2 Questions ► Compare passive attacks and active attacks ► How do packet sniffers work? How to mitigate?
Network synchronization of Online Games Li, Zetan.
Introduction to InfoSec – Recitation 6 Nir Krakowski (nirkrako at post.tau.ac.il) Itamar Gilad (itamargi at post.tau.ac.il)
1 MD5 Cracking One way hash. Used in online passwords and file verification.
Rose-Hulman Archive Project Team 2 JP Gonzalez Jonathan Knez Steven Gregory Eric Lewandowski Joseph Richey Jeremy Barton Todd Windler.
How do Networks work – Really The purposes of set of slides is to show networks really work. Most people (including technical people) don’t know Many people.
Fuzzing Dan Fleck CS 469: Security Engineering Sources:
NAT (Network Address Translator) Atif Karamat In the name of God the most merciful and the most compassionate.
Systems of Distributed Systems Module 2 -Distributed algorithms Teaching unit 3 – Advanced algorithms Ernesto Damiani University of Bozen Lesson 6 – Two.
Shallow Blue Project 2 Due date: April 5 th. Introduction Second in series of three projects This project focuses on getting AI opponent Subsequent project.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
Building Secure Software Chapter 9 Race Conditions.
Subnetting.
JDBC. In This Class We Will Cover: What SQL is What ODBC is What JDBC is JDBC basics Introduction to advanced JDBC topics.
Computer Security and Penetration Testing
Assessing the Threat How much money is lost due to cyber crimes? –Estimates range from $100 million to $100s billions –Why the discrepancy? Companies don’t.
JokerStars: Online Card Playing William Sanville Milestone 4.
By Laura Trawin.
Scala Actors -Terrance Dsilva.  Thankfully, Scala offers a reasonable, flexible approach to concurrency  Actors aren’t a concept unique to Scala.
How do worms work? Vivek Ramachandran Nagraj – An Indian comic book hero, who commands all the snakes of the world.
CSE 381 – Advanced Game Programming 3D Game Architecture.
Computer Safety Workshop Presented by Roy Coleman April 14, 2015 © 2015 Roy Coleman.
Java for enterprise networks Version 2.3 Feb 2008 JSP Validation and Exception handling Why validate? Client side validation.
Experiences from years of agile coaching by Jimmy Nilsson.
“ACT” Audio Conference over ATM Network with TRM Technion - Israel Institute of Technology Electrical Engineering Faculty Computer Networks Laboratory.
Object Oriented Analysis & Design SDL Threads. Contents 2  Processes  Thread Concepts  Creating threads  Critical sections  Synchronizing threads.
Introduction to Threads CS240 Programming in C. Introduction to Threads A thread is a path execution By default, a C/C++ program has one thread called.
CIT 590 Examples Debugging. Agenda This class is an experiment in letting students learn by just doing things as opposed to me talking all the time! So.
Database Chess A server-based web gaming application by Jordan Arnold.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
System Initialization 1)User starts application. 2)Client loads settings. 3)Client loads contact address book. 4)Client displays contact list. 5)Client.
Security, NATs and Firewalls Ingate Systems. Basics of SIP Security.
Game Programming Patterns Event Queue From the book by Robert Nystrom
Nexthink V5 Demo Security – Malicious Anomaly. Situation › Avoid damage resulting from the incident itself and the cost of the unplanned response › Protection.
CCR Deadlock By: Laura Weiland April 30, Project Description Implement a module to the Train Operating System (TOS) that manages the deadlock problem.
DEEP RED An Intelligent Approach to Chinese Checkers.
AI Evaluation David Nowell CIS 588 2/14/05 Baldur’s Gate.
Artificial intelligence IN NPCs. Early Role Playing games Npcs in early role playing games were very limited in terms of being “Intelligent”. For instance,
More on OO Programming Our programs will no longer just be a main method or a main which calls a collection of other methods –instead, a program will be.
ACM Conference on Computer and Communications Security 2006 Puppetnet: Misusing web browsers as a distributed attack infrastructure Network Seminar Presenter:
Network Architecture Protocol hierarchies Design Issues for the layers
Chess Strategies Component Skills Strategies Prototype Josh Waters, Ty Fenn, Tianyu Chen.
Slide 1/29 Informed Prefetching in ROOT Leandro Franco 23 June 2006 ROOT Team Meeting CERN.
Iteration. Iteration: Review  If you wanted to display all the numbers from 1 to 1000, you wouldn’t want to do this, would you? Start display 1 display.
Lecture 17 Page 1 Advanced Network Security Network Denial of Service Attacks Advanced Network Security Peter Reiher August, 2014.
MUSIC GENRE JUKEBOX. CLIENT SPECIFICATIONS Audio Player Create, delete, and modify play lists Play, pause, stop, skip, fast forward, and rewind Send Streaming.
THE EVOLUTION OF CODA M. Satyanarayanan Carnegie-Mellon University.
Safer Internet Day. What do you use the Internet for? watching TV shows watching online videos playing gamestalking to friends homeworkfinding out things.
For more information on Rouge, visit:
Quicken Phone Number Quicken is a popular platform for personal finance management. It is generally used for money management or budgetary management purposes.
Discussion #11 11/21/16.
Programming and File Management Part 2
Game Architecture Rabin is a good overview of everything to do with Games A lot of these slides come from the 1st edition CS 4455.
Introduction To Repetition The for loop
PPP – Point to Point Protocol
An Open-Source Based Speech Recognition Android Application for Helping Handicapped Students Writing Programs Tong Lai Yu, Santhrushna Gande.
Software Requirement and Specification
More on RSVP implementation
Get Outlook Help.  Outlook established on 4 July 1996(as Hotmail) and 31 July 2012(at Outlook.com). The outlook may be a well- best-known.
Exceptions and networking
Presentation transcript:

BUGSWORLD It CAME from Aaron Shbeeb – Eugene Talagrand Building a better bug – by any means necessary

BUGSWORLD – THE GAME Students program bugs using primitives such as move, turnleft, turnright, infect Each bug is aware only of the state of the square in front of it – no other information is available The goal is to infect all enemy bugs

BUGSWORLD – beating the game Building the ultimate bug is hard – complex artificial intelligence is near impossible, and randomness is too great a factor The CIS 321 course series encourages students to read Client.cpp to understand the source code. Let’s be model students and try to break the code

Part I – Why information is good Bugs don’t get enough information to be smart. A bug species with information about the entire world could: Move defensively, avoiding enemy bugs Sneak up from behind for surprise attacks Amass in groups, and watch each other’s backs Hunt and kill remaining survivor enemy bugs

Part I – Getting more information Unfortunately, the server does not transmit any information to the bug Client other than what’s available through the Bug programming language However, one piece of code does get this information – the Display! Next stop … merging a Display client into a bug Client.

Part I – Merging Client and display The Client and Display were not meant to share information Problem – no way to associate a given bug on the display with the currently executing bug in the client Solution! Pick apart the network protocol and reverse engineer the server’s Hash function that sends messages to the Client and Display!

Part I – Merging Client and display Both the Client and the Display have a main event loop to send and receive messages to and from the server. Merging the loops leads to code that is twice as slow as ‘legit’ clients Bugs skip turns!

Part I – Merging Client and display Problem: Bugs skip turns, the code is too slow Solution! Implement a multithreaded client with two main loops that connect through message queues. Put that 660 knowledge to use Problem! RESOLVE is not MT safe! (Crash!)  Pointer_C uses global allocation tables  The Text object uses a global resource pool  Character_I[0]Stream uses non-reentrant code

Part I – Merging Client and display Problem: RESOLVE is not MT safe Solution! Bare metal C reimplementation of the Client and Server cores. Aaron’s ShbeebLib RESOLVE-workalike with a good dose of mutexes thrown in. It works!  Time to take some advanced AI classes!

Part II – Exploiting the protocol Why play fair when you don’t have to? Intelligent bugs are nice, but crippling other bugs is way cooler The server doesn’t check the source client for SKIP requests – generously offer to send SKIPs on behalf of other bugs!

Part II – Exploiting the protocol SKIPping other bug’s turns This wastes your bug’s turn. However, an intelligent species can program bugs that are in no danger of being infected to SKIP the turns of enemy bugs that are in danger of infecting friendly bugs.

Part II – Exploiting the protocol Superpowers It’s still unclear if the server checks how many times a bug moves per turn. Experimental results show the server acting very peculiarly when sent many moves per bug per turn Bug BLIND_FRENZY: Move Move Move Move Move Infect Turnleft

Part II – Hacking the Server The ULTIMATE superpower – controlling the server Possible through an exploit of /usr/class/sce/bin/rcpp-c++ Allows any student to arbitrarily read, add, modify, and delete any file pertaining to RESOLVE, including the Busgworld server