ical security findings as a foundation for this work,
and have been able to highlight how unikernels can
be used to mitigate security risks. We discussed how
unikernels will form an integral part of the overall
software architecture and examined patterns for that
architecture which can be used to aid software devel-
opment. We therefore identified the requirement for
a unikernel-enabling surrounding framework to pro-
vide better support for the unikernel approach, and to
that end we discussed how this might be achieved, and
detailed a high- level architecture. We analyzed the
current state of unikernel compilation frameworks,
identified their shortcomings and offered sensible fu-
ture paths which could support powerful and scalable
multi-unikernel systems.
We are currently analysing different static and dy-
namic hardening mechanisms that can be added dur-
ing unikernel compilation. The result of this anal-
ysis will be a paper detailing the different potential
mechanisms which could be used and their impact on
runtime performance, unikernel image size as well as
runtime memory consumption. Early indications sug-
gest this work is likely to be of benefit. In parallel we
are investigating the use of a dedicated unikernel web
server that allows for on-demand launching of uniker-
nels for scale-out. To achieve this in a developer
friendly manner, additional in-unikernel libraries will
have to be devised. This will likely take some effort,
but we believe this will greatly enhance the prospect
that a more secure approach could be achieved.
We have also carried out some preliminary work
on the use of unikernel systems to assist in deal-
ing with some of the worrying security weaknesses
in IoT technology, and we also continue with this
work. Based on the work in this, and three previ-
ous papers—[Duncan et al., 2016a], [Bratterud et al.,
2017], and [Duncan et al., 2016b]—we are convinced
that properly developed unikernel-based solutions can
provide a vital weapon in the armoury of enterprises
for ensuring improved levels of security can be both
achieved and maintained.
ACKNOWLEDGEMENTS
This work was in part funded by the European Com-
mission through grant agreement no 644962 (PRIS-
MACLOUD).
REFERENCES
37signals. Make Opinionated Software.
Abadi, D. J. (2012). Consistency tradeoffs in modern dis-
tributed database system design: CAP is only part of
the story. Computer (Long. Beach. Calif)., (2):37–42.
Anati, I., Gueron, S., Johnson, S., and Scarlata, V. (2013).
Innovative technology for CPU based attestation and
sealing. In Proc. 2nd Int. Work. Hardw. Archit. Sup-
port Secur. Priv., volume 13.
Arce, I. (2004). The shellcode generation. IEEE Secur.
Priv., 2(5):72–76.
Bass, L., Weber, I., and Zhu, L. (2015). DevOps: A Soft-
ware Architect’s Perspective. Addison-Wesley Profes-
sional.
Bhatkar, S., DuVarney, D. C., and Sekar, R. (2005). Effi-
cient Techniques for Comprehensive Protection from
Memory Error Exploits. In Usenix Secur.
Blankstein, A. and Freedman, M. J. (2014). Automating
isolation and least privilege in web services. In Secur.
Priv. (SP), 2014 IEEE Symp., pages 133–148. IEEE.
Bon
´
er, J., Farley, D., Kuhn, R., and Thompson, M. (2014).
The reactive manifesto.
Bracha, G., Odersky, M., Stoutamire, D., and Wadler, P.
(1998). Making the future safe for the past: Adding
genericity to the Java programming language. Acm
sigplan Not., 33(10):183–200.
Bratterud, A., Happe, A., and Duncan, B. (2017). Enhanc-
ing Cloud Security and Privacy: The Unikernel Solu-
tion. In Cloud Comput. 2017 Eighth Int. Conf. Cloud
Comput. GRIDs, Virtualization, pages 1–8.
Bratterud, A. and Haugerud, H. (2013). Maximizing hyper-
visor scalability using minimal virtual machines. In
Cloud Comput. Technol. Sci. (CloudCom), 2013 IEEE
5th Int. Conf., volume 1, pages 218–223. IEEE.
Bratterud, A., Walla, A.-A., Engelstad, P. E., Begnum, K.,
and Others (2015). IncludeOS: A minimal, resource
efficient unikernel for cloud services. In 2015 IEEE
7th Int. Conf. Cloud Comput. Technol. Sci., pages
250–257. IEEE.
Bui, T. (2015). Analysis of docker security. arXiv Prepr.
arXiv1501.02967.
Burbeck, S. (1992). Applications programming in
smalltalk-80 (tm): How to use model-view-controller
(mvc). Smalltalk-80 v2, 5.
Candea, G. and Fox, A. (2003). Crash-Only Software. In
HotOS, volume 3, pages 67–72.
Childs Jr, R. H. E., Klebanoff, J. L., and Pollack, F. J.
(1984). Microprocessor memory management and
protection mechanism.
Climate, C. (2013). Rails’ Remote Code Execution Vulner-
ability Explained.
Costan, V. and Devadas, S. Intel sgx explained. Technical
report, Cryptology ePrint Archive, Report 2016/086,
2016. https://eprint. iacr. org/2016/086.
Cowan, C., Pu, C., Maier, D., Walpole, J., Bakke, P., Beat-
tie, S., Grier, A., Wagle, P., Zhang, Q., and Hinton,
H. (1998). StackGuard: Automatic Adaptive Detec-
tion and Prevention of Buffer-Overflow Attacks. In
Usenix Secur., volume 98, pages 63–78.
Detlefs, D., Dosser, A., and Zorn, B. (1994). Memory al-
location costs in large C and C++ programs. Softw.
Pract. Exp., 24(6):527–542.
COMPLEXIS 2017 - 2nd International Conference on Complexity, Future Information Systems and Risk
40