MSc/UG Project Supervision
Automated Identification of Connected Autonomous Vehicle Risk Scenarios
- Build a sensor data processing algorithm to identify scenarios and extract key parameters describing risk, make use of these identified scenarios to improve safety in autonomous driving.
- Students with different skills and interests can tailor the potential project scopes accordingly (ML, Safety, Security)
- This is considered a High difficulty project with a large programming component
- There is scope to collaborate with industry partners for this!
- Potential Steps May Include:
- using object identification from sensor video data to automatically identify one or more scenarios of interest
- identify key safety parameters describing automated vehicle performance from already identified scenarios, and statistical methods to describe safety,
- Processing parameters to improve road driving safety.
Automatic Generation of Cryptographic Protocols Source Code
- Automatically generate running protocol code from a standard protocol specification (such as MetaCP)
- Students with different skills and interests can tailor the potential project scopes accordingly (Formal Methods, Crytography, Security)
- This is considered a Very High difficulty project with a large programming component
- Potential Options
- Generate source code from that specification to multiple target languages (this must consider the semantics of both the specification language and the target language).
- Draw conclusions about the implementation and the security results.
- Implement a graphical interface that allows for no-code implementation of (one category of) cryptographic protocols, e.g., key exchange protocols. Show some ability to generate code for several protocols. The automatically generated code must compile and run in real world environments (desktop/laptop computers or embedded systems).
- All the above will be building ontop of existing apporaches
Robustness and Verification of IDS Networks
- It has become apparent in recent years that our Machine Learning Algorithms are vulnerable to attacks. Your task it to make machine learning algorithms for intrusion detection more robust and resilient
- Students with different skills and interests can tailor the potential project scopes accordingly (ML, Formal Verification, Security)
- This is considered a High difficulty project with a large programming component
- Potential Options
- Apply adverserial training on existing/newly designed Intrusion Detection Systems to thwart attackers
- Formally verify an Intrusion Detection System to be robust against attackers
- Attack an Intrusion Detection System to find ways to bypass it
Federated Learning for Optimum Decision Making in Cryptocurrency Trading
- Build a distributed trading system operating on different currencies/exchanges to profitably trade and make group decisions optimizing for profitability
- Students with different skills and interests can tailor the potential project scopes accordingly (ML, Finance)
- This is considered a VERY High difficulty project with a large programming component
- There is scope to collaborate with industry partners for this!
- Potential Steps May Include:
- optimize for number of agents and exchanges
- try different optimization strategies e.g. local vs global
- implement paper trading system to evaluate effectiveness of strategies
Module Leader
MSc Forensics, Malware, and Penetration Testing
- Gave lectures, created coursework and exam, marked coursework and exam, led TAs and practicals
- Course Security Outcomes
- Identify security vulnerabilities in a range of software and hardware systems
- Understand how vulnerabilities may be exploited by an attacker
- Use a range of methods and tools to analyse systems that have already been attacked.
- Write formal reports that summarise their findings
MSc Secure Programming (INFR11098) module page
- Gave lectures, created coursework and exam, marked coursework and exam, led TAs and practicals
- Course Security Outcomes
- Know how to respond to security alerts specifying CVE ID numbers which identify software issues
- Identify possible security programming errors when conducting code reviews in languages such as Java, C or Python
- Define a methodology for security testing and use appropriate tools in its implementation
- Apply new security-enhanced programming models and tools which help ensure security goals, e.g.,with access control, information flow tracking, protocol implementation, or atomicity enforcement.
- Sample Course Feedback
- Student oaUJ: "Please encourage all lecturers to use Piazza as effectively as Dr Arnaboldi"
- Student zAQT: "BEST COURSE IN INFORMATICS PERIOD"
- Student qpHn: "I knew very little about security before this course, and I believe I learnt a lot"
Project Supervision
- Joe Hutchesont (Co-Supervisor with Prof. Aspinall, UG, University of Edinburgh), 22/23 - "Automated Identification of Connected Autonomous Vehicle Risk Scenarios"
- Agathe Petillot (Co-Supervisor with Prof. Aspinall, UG, University of Edinburgh), 22/23 - "Automated Identification of Connected Autonomous Vehicle Risk Scenarios"
- Fayz Siddiqui (Co-Supervisor with Prof. Aspinall, UG, University of Edinburgh), 22/23 - "Automated Identification of Connected Autonomous Vehicle Risk Scenarios"
- Henri-Louis Boisvert (Co-Supervisor with Prof. Komandantskaya, MSc, Heriot-Watt University), 21/22 - "Evaluating the Performance of Different Reinforcement Learning Methods for Autonomous Racing"
Teaching Tools
Coursework Automatic Judge System and Marking Tool (CSC362 - Cryptography - Newcastle University)
- Made a submission and marking website for Cryptography
- Automated judge system evaluating code quality and structure
- Automated marking of coursework through testcases and automated feedback system
- Invoved: PHP, MySQL, Java, JUnit
CTF Competition Coursework Submission Tool (CSC3124 - System and Network Security - Newcastle University)
- Developed Coursework Tool for Capture The Flag (security competition)
- Generated Unique Security challenges for students
- Created virtual security environments for security testing
- Involved: C, Java, python, NodeJS, virtual machines, networking
Teaching Assistant Positions
- Security Analysis of Complex Systems, (MSc) CSC8207, 2019-2020
- System Security, (MSc) CSC8102, 2019-2020
- Cryptography, (UG) CSC3621, 2016-2020
- System and Network Security, (UG) CSC3124, 2016-2020
- Software Engineering, (UG) CSC2021, 2016-2020
- Understanding Concurrency, (UG) CSC3324, 2016-2020
- Website Construction and Management (Server-side), (UG) CSC2021, 2016-2017