Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber...

55
© Fraunhofer FKIE Behavior-Driven Development in Malware Analysis Thomas Barabosch, Elmar Gerhards-Padilla [email protected] Botconf 2015, Paris, France Cyber Analysis & Defense (CA&D)

Transcript of Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber...

Page 1: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Fraunhofer FKIE

Behavior-Driven Development in Malware Analysis

Thomas Barabosch, Elmar Gerhards-Padilla [email protected]

Botconf 2015, Paris, France

Cyber Analysis & Defense (CA&D)

Page 2: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

2

Page 3: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

3

Motivation

n Malware analysis continues to be a tedious and time consuming task (some might call it job security…)

n Extraction of malicious behavior is a daily task

n  Analyze (obfuscated) binary code

n  Reimplement in higher language like Python or C (Reimplementation task)

n  Code is just “translated” from assembly to higher language

n  Functionality is not ensured

n  Readability is poor

n  No documentation

n  Underlying semantics not clear

Solution: Improve current process

Page 4: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

4

Related Work

n  Extraction of malicious behavior n  [Caballero2010], [Kolbitsch2010], [Barabosch2012]

n  Using TDD in RE processes n  [VanLindberg2008], [DeSousa2010]

However, current state-of-the-art solutions

n are not publicly available

n  can not cope with anti-analysis techniques

n  can not cope with complex obfuscations

n assume source code and documentation available

Page 5: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

5

Requirements of Solution

1.  Allows the analyst to describe concisely and naturally what he observes

2.  Ensures that the code works continuously during the implementation

3.  Resulting code should be concise, documented and readable

4.  Increases the focus of the analyst

Proposed Solution:

Apply Behavior-Driven Development to Malware Analysis

Page 6: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

6

*-DRIVEN DEVELOPMENT

Page 7: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

7

In the Beginning there was Software Testing...

n  Tests whether a software does what it is supposed to do

n  Shows quality of a software to stake-holders

n  Finds defects and failures in a software

n  Problems

n  Infrequent testing (e.g. Waterfall model)

n Code coverage

n Not efficient if done manually

Page 8: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

8

Test Driven Development (TDD)

Source: http://luizricardo.org/wordpress/wp-content/upload-files/2014/05/tdd_flow.gif

n  Short development cycle

n  Ideally ensures 100% coverage

n  Small and comprehensive code base due to frequent refactoring

n  Tests serve as a documentation of the code

Page 9: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

9

Behavior Driven Development (BDD)

n  BDD focuses on a clear understanding of the software’s behavior rather than modules, functions, etc.

n  BDD emerged from TDD

n  Test cases are formulated in natural language

n  Strong theoretical foundation (Hoare logic)

n {P} C {Q} -> Given _ When _ Then _

Page 10: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

10

Behavior Driven Development (BDD)

Scenario: Coffee maker can add sugar to coffee

Given customer chooses sugar

When customer presses OK button

Then coffee maker adds sugar to coffee

Page 11: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

11

BDD IN MALWARE ANALYSIS

Page 12: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

12

Overview of the Process

Observe

Test

Code

Refactor

n Preparation phase

n Implementation phase (Observe – Test – Code – Refactor)

Page 13: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

13

Preparation - Pinpointing the Behavior

n  First pinpoint the behavior in the binary

n  Find entry point S and exits {E1, …, En}

n  Extract initial test data for acceptance test

n  State acceptance test

Source: https://trak-1.com/wp-content/uploads/2014/10/haystack.jpg

Page 14: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

14

Pinpointing the Behavior (DGA)

n Domain Generation Algorithm n  See Daniel’s talk (DGArchive – A deep dive into domain generating malware)

n Several types of DGAs [Barabosch2012]

n  Deterministic/non-deterministic

n  Time-dependent/independent

n Naïve approach (forwards): look for timing sources

n  E.g. GetSystemTime, NtQuerySystemTime, GetLocalTime

n Naïve approach (backwards): DNS resolution

n  E.g. gethostbyname

Page 15: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

15

Pinpointing the Behavior (command dispatcher)

n Bots implement several commands

n Bots receive and process messages of botmaster

n  Command dispatcher

n Naïve approach: follow data flow from network source

n  Monitor networking APIs like receive

n  Follow data flow in forwards direction until switch statement

switch (17)

case 1

case 2

case 3

case 4

case 5

case 6

case 7

Example: Dridex

Page 16: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

16

Preparation - Initial End-To-End Acceptance Test

n  Serves as guide throughout the implementation phase

n  Tests behavior as a black box

n  Capture data at S and {E1, …, En}

n  Once this test passes -> reimplementation successfully

Page 17: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

17

Step 1: Observing the Behavior

n  Top-Down-Approach

n  Getting a rough overview

n  Identifying individual features and their interfaces

n  Gather test data at interfaces (input/output)

n  Use this data for mocking later

n  Mock interfaces of submodules at first

Observe

Test

Code

Refactor

Page 18: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

18

Step 2: Writing a Test

n  Given-Then-When

n  Fundamental: mock objects

n Mimic the behavior of real objects

n  In software development, they replace, e.g., non-existing objects

n  In our case, they replace modules that are not 100% understood

n Gather test data at module interfaces

Observe

Test

Code

Refactor

Page 19: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

19

Step 2: Writing a Test

n  Given-Then-When

n  Fundamental: mock objects

n Mimic the behavior of real objects

n  In software development, they replace, e.g., non-existing objects

n  In our case, they replace modules that are not 100% understood

n Gather test data at module interfaces

Observe

Test

Code

Refactor

Main

Init Deinit AMain

A1 A2

Page 20: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

20

Step 2: Writing a Test

n  Given-Then-When

n  Fundamental: mock objects

n Mimic the behavior of real objects

n  In software development, they replace, e.g., non-existing objects

n  In our case, they replace modules that are not 100% understood

n Gather test data at module interfaces

Observe

Test

Code

Refactor

Main

Init Deinit AMain

A1 A2

Page 21: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

21

Step 3: Making the Test Pass

n  Just write enough code to make the test pass

n  Binary serves as valid system specification

n  Focus and just implement code to make the test pass

n  “Premature optimization is the root of all evil”

Observe

Test

Code

Refactor

Page 22: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

22

Step 4: Refactoring the Code

n  Altering the syntax without altering the semantics

n  Ensures conciseness and readability

n  Many refactorings do exist (see also [Fowler1999])

n Refactoring inlined code (memcpy)

n Break up complex expressions

n Removing dead expressions

n  Does the end-to-end acceptance test pass?

Observe

Test

Code

Refactor

Page 23: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

23

Limitations

n  Decrease in time efficiency

n  Extra time pays off due to benefits

n  TDD comes with an overhead of 15% to 35% [Bhat2006]

n  TDD/BDD comes from “normal” software development

n  Reusability not needed in malware analysis

n  Long-running projects do exist also in the field of malware analysis

Page 24: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

24

CASE STUDY NYMAIM DGA

Page 25: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

25

Nymaim

n  Nymaim is a malware dropper

n  But also credential stealer, SOCKS, etc.

n  Heavily obfuscated

n  Decompilers fail to work

n  See IDApatchwork presentation of Daniel Plohmann

Page 26: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

26

n  Unpacked Dridex

n  Regular functions

n  No strange constants

n  Resolved imports

n  Reasonable control flow

n  …

Page 27: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

27

n  Unpacked Nymaim

n  Irregular functions

n  Function entries

n  Function ends

Page 28: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

28

n  Unpacked Nymaim

n  Irregular functions

n  Function entries

n  Function ends

n  Strange constants

Page 29: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

29

n  Unpacked Nymaim

n  Irregular functions

n  Function entries

n  Function ends

n  Strange constants

n  Control flow computed dynamically

Page 30: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

30

n  Unpacked Nymaim

n  Irregular functions

n  Function entries

n  Function ends

n  Strange constants

n  Control flow computed dynamically

n  Confuses disassembler

Page 31: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

31

Nymaim‘s DGA – Tools of Trade and Resources

n  Tools of trade

n  Immunity Debugger 1.85

n  IDA Pro 6.8

n  Mandiant ApateDNS 1.0

n  Python 2.7.9

n  Behave 1.2.5 [Behave2015]

n  Source code on Bitbucket! n  https://bitbucket.org/tbarabosch/botconf-2015-bdd-in-mw-analysis

Page 32: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

32

Nymaim‘s DGA – First Observations

n  Black-boxing shows that

n At first four hard-coded domain are resolved and contacted

Page 33: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

33

Nymaim‘s DGA – First Observations

n  Black-boxing shows that

n At first four hard-coded domain are resolved and contacted

n  In case of failure domains are generated and resolved

n Deterministic: same results in two different VMs

n Time-dependent: different results when date changed

Page 34: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

34

Nymaim‘s DGA – First Observations

n  Black-boxing shows that

n At first four hard-coded domain are resolved and contacted

n  In case of failure domains are generated and resolved

n Deterministic: same results in two different VMs

n Time-dependent: different results when date changed

n Pinpointing the algorithm

n Breaking on GetSystemTime -> Bingo!

n  Input: time

n Output: 30 domain names

Page 35: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

35

Nymaim‘s DGA – Our First Test: Acceptance Test

n  We know already many important parameters

n  Interfaces of algorithm

n  Also we have gathered a first set of test data

n  Time information and list of generated domains

n  We write our first end-to-end acceptance test

n  It does not pass

n  However, once it passes we are done!

Page 36: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

36

Nymaim‘s DGA – Our First Test: Acceptance Test

Page 37: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

37

Nymaim‘s DGA – Our First Test: Acceptance Test

Page 38: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

38

Nymaim‘s DGA – Our First Test: Acceptance Test

Page 39: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

39

Nymaim‘s DGA – Overview

n  While stepping over the code we have noticed that there

n  Initialization

n  Main logic

n  PRNG (Xorshift)

n  We focus on one component at a time

n  Reverse the main logic, mock the rest!

Page 40: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

40

Nymaim‘s DGA – Main Logic

Page 41: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

41

Nymaim‘s DGA – Main Logic

Page 42: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

42

Nymaim‘s DGA – Main Logic

Page 43: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

43

Nymaim‘s DGA – Main Logic

n  Test only the main logic, e.g. choose TLD

n  Mock the rest!

n  Might require several scenarios

Page 44: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

44

Nymaim‘s DGA – Main Logic

n  Test only the main logic, e.g. choose TLD

n  Mock the rest!

n  Might require several scenarios

Page 45: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

45

Nymaim‘s DGA – PRNG (Xorshift)

n  Next, we have a look at the PRNG (Xorshift)

n  Still we do not want to deal with the seeds

n  Input: five integers (4* seed + modulo)

n  Output: integer [0, modulo - 1]

n  Has side effects on the seeds !

Page 46: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

46

Nymaim‘s DGA – PRNG (Xorshift)

Page 47: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

47

Nymaim‘s DGA – PRNG (Xorshift)

Page 48: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

48

Nymaim‘s DGA – PRNG (Xorshift)

Page 49: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

49

Nymaim‘s DGA – Results

Page 50: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

50

Nymaim‘s DGA – Results

Page 51: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

51

Nymaim‘s DGA – Results

n  Five tests of DGA’s features

n  One end-to-end acceptance test

Page 52: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

52

Nymaim‘s DGA – Results

n  Five tests of DGA’s features

n  One end-to-end acceptance test

n  Readable code

n  One class implementing the main logic

n  One class implementing the PRNG (strategy pattern)

n  One class serving as data structure

Page 53: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

53

CONCLUSION & FUTURE WORK

Page 54: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

54

Conclusion & Future Work

n  BDD in malware analysis

n  Case Study Nymaim

n  Check source code on Bitbucket!

n  https://bitbucket.org/tbarabosch/botconf-2015-bdd-in-mw-analysis

n  Future work

n  Automatic test case generation

n  Tools for gathering test data in RE context

Page 55: Cyber Analysis & Defense (CA&D) - Botconf 2018€¦ · Cyber Analysis & Defense (CA&D) © Cyber Defense Research Group, Fraunhofer FKIE 2 ... Naïve approach (backwards): DNS resolution

© Cyber Defense Research Group, Fraunhofer FKIE

55