📣 Help Shape the Future of UKRI's Gateway to Research (GtR)

We're improving UKRI's Gateway to Research and are seeking your input! If you would be interested in being interviewed about the improvements we're making and to have your say about how we can make GtR more user-friendly, impactful, and effective for the Research and Innovation community, please email gateway@ukri.org.

Morello-HAT: Morello High-Level API and Tooling

Lead Research Organisation: University of Glasgow
Department Name: School of Computing Science

Abstract

The CHERI project has created the infrastructure for hardware capabilities. The Morello project implements these concepts and tools for the Arm architecture. In terms of programming languages, the focus of CHERI and Morello has been primarily on C but considerable work has also been done on C++ and some more preliminary work on Rust. The Morello-HAT project (Morello High-Level API and Tooling) intends to create a common API that can be used by compiler developers as well as programmers of higher-level languages, to allow them to leverage Morello's HW capabilities to improve memory security and type safety, spatial as well as temporal, of their language and programs.
The project consists of three work packages:
1. Develop the API using C++, Rust, Go and Dart as target languages
2. Demonstrate the usability and effectiveness of the API on a series of example applications by ML-based detection of vulnerabilities and assessment of the effectiveness of our API in mitigation of vulnerabilities.
3. Use hardware capabilities to enhance the debug infrastructure.
WP 1 High-Level Capability API
The technical focus of the work will be on higher-level APIs which will use capabilities to harden run-time type checking, dynamic memory management and concurrency.
WP1.1 will start from existing work on C++ to design the API foundations for object type safety and investigate the use of capabilities in managed memory.
1. Develop a C++ API for object type safety
2. Develop a capability-based garbage collector for C/C++
WP1.2 will focus on Rust, Go and Dart, fast-growing programming languages that are representative for many modern programming languages.
1. Building on existing work on use of capabilities in Rust, extend the type safety API from WP1 to languages with a Rust-like type system, and design a concurrency API.
2. Provide capability support for garbage collection and concurrency, using Go as an example of a language with managed memory, first-class concurrency support and structural typing.
3. Dart, set to become the preferred language for Android app development, allows dynamic typing which run-time checks. This task focuses on supporting these checks with capabilities.
WP 2 Machine learning based validation of the high-level API
We will use the High-level API from WP1 and the debug interface built in our EPSRC AppControl project to create an efficient data collection mechanism for collecting unique data features from the Morello architecture, which will be used to train our ML models for detection of anomalies in non-capability as well as capability versions of applications written in C++, Rust, Go and Dart.
WP 2.1 will focus on building data collection mechanism and ML detection models for validation of the high-level API
1. Setup debug interface to create an efficient low-level data collection mechanism.
2. Create benchmark vulnerable testing suites
3. Design data pre-processing and normalisation algorithms for data collection and analysis of data features.
4. Train and validate the abnormality detection ML models
WP 2.2 will focus on validating the API from WP1 using ML based approaches.
1. Develop ML runtime compute API
2. Develop ML inference models
3. Test and validate the high-level API using the ML models
WP 3 Securing the debug infrastructure
WP3 will enhance the traditionally exposed debug infrastructure by creating a ICMetrics secured software API on top of the CHERI software stack for debug and authentication.
WP 3.1 Create high-level API for accessing the debug subsystem and registers
1. Analyse debug mechanism and authentication signals to create high-level API to access debug infrastructure
2. Create ICMetrics secured software API
3. Integrate, test and validate the debug stack
WP 3.2 Carry out trial and evaluation on the enhanced debug management mechanism.
1. Create penetration testing and evaluation program suites
2. Evaluate and analyse the enhanced debug mechanism

Publications

10 25 50
publication icon
Abolfathi K (2023) Independent and Hybrid Magnetic Manipulation for Full Body Controlled Soft Continuum Robots in IEEE Robotics and Automation Letters

publication icon
Ahmadi-Pour S (2025) MESSI: Task Mapping and Scheduling Strategy for FPGA-based Heterogeneous Real-Time Systems in ACM Transactions on Design Automation of Electronic Systems

publication icon
Boukhennoufa I (2023) A Novel Model to Generate Heterogeneous and Realistic Time-Series Data for Post-Stroke Rehabilitation Assessment. in IEEE transactions on neural systems and rehabilitation engineering : a publication of the IEEE Engineering in Medicine and Biology Society

 
Description The purpose of this project was to create practical methods and tools to increase digital security, in particular for digital systems supporting mission-critical applications. Our approach is based on what is called behavioural types, which are a kind of enforceable specifications. We have shown that this approach can be implemented in programming languages such as Rust and that it can improve in particular the security of memory operations.
Exploitation Route The project was part of a call which assumes a specific type of improved security for processors called Hardware Capabilities. Any system with such Hardware Capabilities could directly benefit from our approach. But the use of behavioural types as specifications has much broader applicability, for example to make software distribution more secure.
Sectors Digital/Communication/Information Technologies (including Software)

URL https://dsbd-morello-hat.github.io/
 
Title Artifact: Dynamically Updatable Multiparty Session Protocols 
Description Artifact for the paper: Dynamically Updatable Multiparty Session Protocols 
Type Of Technology Software 
Year Produced 2023 
Open Source License? Yes  
Impact Artifact supporting the paper Dynamically Updatable Multiparty Session Protocols 
URL https://drops.dagstuhl.de/entities/document/10.4230/DARTS.9.2.10
 
Title Artifact: Generic Go to Go: Dictionary-Passing, Monomorphisation, and Hybrid 
Description Artifact for paper: Generic Go to Go: Dictionary-Passing, Monomorphisation, and Hybrid 
Type Of Technology Software 
Year Produced 2022 
Open Source License? Yes  
Impact Artifact for paper : Generic Go to Go: Dictionary-Passing, Monomorphisation, and Hybrid 
URL https://dl.acm.org/doi/10.1145/3563331
 
Title Artifact: Rollback Recovery in Session-Based Programming 
Description Artifact for paper: Rollback Recovery in Session-Based Programming 
Type Of Technology Software 
Year Produced 2023 
Impact Artifact for paper: Rollback Recovery in Session-Based Programming 
URL https://link.springer.com/chapter/10.1007/978-3-031-35361-1_11#chapter-info
 
Title Designing Asynchronous Multiparty Protocols with Crash-Stop Failures (Artifact) 
Description We introduce Teatrino, a toolchain that supports handling multiparty protocols with crash-stop fail- ures and crash-handling behaviours. Teatrino accompanies the novel MPST theory in the related article, and enables users to generate fault-tolerant protocol-conforming Scala code from Scribble protocols. Local types are projected from the global protocol, enabling correctness-by-construction, and are expressed directly as Scala types via the Effpi concurrency library. Teatrino extends both Scribble and Effpi with support for crash-stop behaviour. The generated Scala code is execut- able and can be further integrated with existing systems. The accompanying theory in the related article guarantees deadlock-freedom and liveness properties for failure handling protocols and their implementation. This artifact includes examples, extended from both session type and distributed systems literature, featured in the related article. 
Type Of Technology Software 
Year Produced 2023 
Open Source License? Yes  
Impact Artifact supporting the paper Designing Asynchronous Multiparty Protocols with Crash-Stop Failures 
URL https://zenodo.org/record/7974824
 
Description Morello-HAT web site 
Form Of Engagement Activity Engagement focused website, blog or social media channel
Part Of Official Scheme? No
Geographic Reach International
Primary Audience Industry/Business
Results and Impact The Morello-HAT project intends to create and evaluate a common API that can be used by compiler developers as well as programmers of higher-level languages, to allow them to leverage Morello's hardware capabilities to improve memory security and type safety, spatial as well as temporal, of their language and programs.
Year(s) Of Engagement Activity 2022,2023,2024
URL https://dsbd-morello-hat.github.io/