Change search
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf
A Systematic Approach to Automated Software Diversity Using Unison
KTH, School of Electrical Engineering and Computer Science (EECS).
2018 (English)Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE creditsStudent thesisAlternative title
Ett Systematiskt tillvägagångsätt för Automatiserad Mjukvarumångfald med Unison (Swedish)
Abstract [en]

Unison is a tool that combines instruction scheduling and register allocation as a single combinatorial problem and solves it using constraint programming, which is a programming paradigm for systematically solving combinatorial problems.

Automated software diversity is the process of automatically providing diverse executables in an effort to break so called gadgets, which are short instruction sequences that together make up an attack vector. Attacks that utilize gadgets rely heavily on the arrangement of the code in the executable. By providing a population of executables with equivalent functionality but different arrangements an adversary must construct a unique payload for each executable. The idea is to mount a proactive defense against adversaries and limit the reusability of each constructed payload.

The results when using Unison to systematically generate diverse executables show that the number of possible pairwise distinct executables is often larger than 1000000, even for small functions (less than ten instructions). Using Unison to force the executables to differ in a particular way is simple to implement, only a handful lines of code. One strategy evaluated in the experiment resulted in that the most frequent gadget only appeared in 24% of versions, and 82% of the gadgets only appeared in one program version each. However, future work is required before anything consumer oriented can be evaluated, in part because Unison does not support the x86 architecture.

Abstract [sv]

Unison är ett verktyg som kombinerar instruktionsschemaläggning och registerallokering som ett enat kombinatoriskt problem och löser det med villkorsprogrammering, vilket är en programmeringsparadigm för att systematiskt lösa kombinatoriska problem.

Automatiserad mjukvarumångfald innefattar att generera varierade exekverbara filer i en ansats att bryta så kallade gadgets, vilket är korta instruktionssekvenser som tillsammans utgör en attackvektor. Attacker som utnyttjar gadgets förlitar sig mycket på kodens interna struktur. Genom att generera en population av exekverbara filer med ekvivalent funktionalitet men strukturella skillnader så måste en motspelare konstruera en unik attack för varje exekverbara fil. Målet är att begränsa varje specifikt konstruerade attack till så få mål som möjligt och därmed bryta datasäkerhetens annars reaktiva karaktär.

Att använda Unison för att systematisk generera varierade exekverbara filer visar att antalet möjliga, parvis distinkta exekverbara filer är ofta större än 1000000, även för små funktioner (mindre än 10 instruktioner). Att använda Unison för att tvinga de exekverbara filerna att skilja sig på specifika sätt är enkelt att implementera, bara en handfull rader kod. En utvärderad strategi i experimentet resulterade i att den gadget med högst frekvens återfanns i 24% av alla programversioner, och 82% av alla gadgets återfanns i endast en programversion var. Dock så krävs mer arbete innan något konsumentorienterat kan utvärderas, delvis för att Unison inte stödjer processorarkitekturen x86.

Place, publisher, year, edition, pages
2018. , p. 67
Series
TRITA-EECS-EX ; 2018:169
National Category
Computer and Information Sciences
Identifiers
URN: urn:nbn:se:kth:diva-232080OAI: oai:DiVA.org:kth-232080DiVA, id: diva2:1232129
External cooperation
SICS
Subject / course
Information and Communication Technology
Educational program
Master of Science - Software Engineering of Distributed Systems
Supervisors
Examiners
Available from: 2018-07-10 Created: 2018-07-10 Last updated: 2018-07-10Bibliographically approved

Open Access in DiVA

fulltext(637 kB)11 downloads
File information
File name FULLTEXT01.pdfFile size 637 kBChecksum SHA-512
030fa8c1bc915f875f6832b6b116d3bdb429c3ff8b9dd52a0284a97495bad9ecda0ddb4f4672deaaf574a4951a2bf695b3991eacc39f566a4f6d83399caa6e87
Type fulltextMimetype application/pdf

By organisation
School of Electrical Engineering and Computer Science (EECS)
Computer and Information Sciences

Search outside of DiVA

GoogleGoogle Scholar
Total: 11 downloads
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

urn-nbn

Altmetric score

urn-nbn
Total: 53 hits
CiteExportLink to record
Permanent link

Direct link
Cite
Citation style
  • apa
  • ieee
  • modern-language-association-8th-edition
  • vancouver
  • Other style
More styles
Language
  • de-DE
  • en-GB
  • en-US
  • fi-FI
  • nn-NO
  • nn-NB
  • sv-SE
  • Other locale
More languages
Output format
  • html
  • text
  • asciidoc
  • rtf