Show simple item record

dc.contributor.authorFraser, Olivia Lucca
dc.date.accessioned2018-04-20T11:04:21Z
dc.date.available2018-04-20T11:04:21Z
dc.date.issued2018-04-20T11:04:21Z
dc.identifier.urihttp://hdl.handle.net/10222/73879
dc.description.abstractReturn-orientated programming (ROP) identifies pieces of a process’s executable memory ending in a return instruction (gadgets), and enlists them as an instruction set in which a new, “parasitic” program can be written, hijacking the process’s control flow. Since gadgets are already present in executable memory, there is no reliance upon memory being mapped as both writeable and executable, which lets the ROP program (or “chain”) bypass the shellcode attack mitigation known as w ⊕ x. As such ROP represents one of the most difficult exploit mechanisms to mitigate. This thesis explores ROP-chain generation as a domain for evolutionary computation. It describes a system called ROPER (Return-Oriented Program Evolution with ROPER), designed and implemented by the author, which orchestrates the evolution of ROP-chains towards declaratively specified objectives. The author goes on to study the behaviour and ecology of the ROP-chain populations generated by ROPER, and their responses to various environmental pressures. Issues of importance include: 1) establishing a robust environment for evolution to discover ROP solutions, 2) the design of variation operators, 3) emergent strategies for genomic resilience, and 4) the role of speciation through fitness sharing. Case studies are performed using four very different tasks representative of: 1) the functional objective of a bare bones exploit, 2) a supervised learning task, 3) policy discovery for an agent playing ‘Snake’, and 4) an “unwinnable” task in which fitness is gauged randomly, so that the effects of non-selective pressures in the environment can be studied. Taken together this work represents the first time that ROP evolution has been explicitly demonstrated (at least in the public domain), and studied across a range of tasks.en_US
dc.language.isoenen_US
dc.subjectevolutionary computationen_US
dc.subjectgenetic programmingen_US
dc.subjectmachine learningen_US
dc.subjectartificial intelligenceen_US
dc.subjectcybersecurityen_US
dc.subjectapplication securityen_US
dc.subjectreturn-oriented programmingen_US
dc.subjectvirtual machinesen_US
dc.subjectremote code executionen_US
dc.titleUrschleim in Silicon: Return-Oriented Program Evolution with ROPERen_US
dc.date.defence2018-04-17
dc.contributor.departmentFaculty of Computer Scienceen_US
dc.contributor.degreeMaster of Computer Scienceen_US
dc.contributor.external-examinern/aen_US
dc.contributor.graduate-coordinatorNorbert Zehen_US
dc.contributor.thesis-readerAndrew McIntyreen_US
dc.contributor.thesis-readerGunes Kayaciken_US
dc.contributor.thesis-supervisorNur Zincir-Heywooden_US
dc.contributor.thesis-supervisorMalcolm Heywooden_US
dc.contributor.ethics-approvalNot Applicableen_US
dc.contributor.manuscriptsNot Applicableen_US
dc.contributor.copyright-releaseNot Applicableen_US
 Find Full text

Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record