Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Engineering Software Diversity: a Model-Based Approach to Systematically Diversify Communications

Brice Morin
October 18, 2018

Engineering Software Diversity: a Model-Based Approach to Systematically Diversify Communications

Automated diversity is a promising mean of increasing the security of software systems. However, current automated diversity techniques operate at the bottom of the software stack (operating system and compiler), yielding a limited amount of diversity. We present a novel Model-Driven Engineering approach to the diversification of communicating systems, building on abstraction, model transformations and code generation. This approach generates significant amounts of diversity with a low overhead, and addresses a large number of communicating systems, including small communicating devices.

Brice Morin

October 18, 2018
Tweet

More Decks by Brice Morin

Other Decks in Research

Transcript

  1. Engineering Software Diversity: a Model-Based Approach to Systematically Diversity Communications

    Brice Morin, Jakob Høgenes and Hui Song (SINTEF Digital, Oslo, Norway) Nicolas Harrand and Benoit Baudry (KTH, Stockholm, Sweden)
  2. 3 Microsoft's implementation of SMB Could have been mitigated with

    more diversity: a) different implem of SMB, b) other protocols
  3. 4 Diversity-Stability hypothesis: Increased diversity  increased resilience Red Queen

    hypothesis: Continued adaptation & evolution  sustainability Diversity in space Diversity in time
  4. Diversity in communications 5 • Few different protocols (HTTP/REST, MQTT,

    WS, etc) • Few different programming languages, for which stubs needs to be implemented • Many different serializations (binary, JSON, XML), in theory ∞
  5. A simple non-diversified protocol 6 m1(a, b, c, d, e)

    m2(a, b, c) m3(a) Repeat 100 times:
  6. Where ThingML helps diversity (though not for communications ) •

    By default, generate code for C/C++, Java, JavaScript, Go  2w-to-2mo to support a new language (1k-10k LoC) • By default, can communicate through MQTT, WS, UDP, etc  2h-to-2d to support a new protocol (100- 1k LoC) Where ThingML support diversity in communications (though very limited by default) • By default, generate 2 (de)serializers (for each supported language) • Binary à la Google Protocol Buffer and JSON 20min-to-2h to write a new (de)serializer (10-1k LoC) • What if you have 1M users and want unique serializations? 40y-to-240y  +10M-1B LoC to be maintained… 8 MDE to Diversify Communications
  7. 10

  8. 16

  9. Conclusion • Systematic diversification • A perfect use case for

    MDE! • We applied MDE to the diversification of communications • Significant diversity can be introduced automatically • No overhead at design-time: just specify your API, we take care of the rest • Runtime Overhead is compatible with "mass-produced" software/firmware 20
  10. 25

  11. 26