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

Engineering Software Diversity: a Model-Based A...

Avatar for Brice Morin 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.

Avatar for Brice Morin

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