Knowledge-Informed Auto-Penetration Testing Based on Reinforcement Learning with Reward Machine

Yuanliang Li, Hanzheng Dai, Jun Yan
5/24/2024
cs.AIcs.CRcs.LG

No confident code implementation found for this paper. 1 possible match can be shown below.

Abstract

Automated penetration testing (AutoPT) based on reinforcement learning (RL) has proven its ability to improve the efficiency of vulnerability identification in information systems. However, RL-based PT encounters several challenges, including poor sampling efficiency, intricate reward specification, and limited interpretability. To address these issues, we propose a knowledge-informed AutoPT framework called DRLRM-PT, which leverages reward machines (RMs) to encode domain knowledge as guidelines for training a PT policy. In our study, we specifically focus on lateral movement as a PT case study and formulate it as a partially observable Markov decision process (POMDP) guided by RMs. We design two RMs based on the MITRE ATT\&CK knowledge base for lateral movement. To solve the POMDP and optimize the PT policy, we employ the deep Q-learning algorithm with RM (DQRM). The experimental results demonstrate that the DQRM agent exhibits higher training efficiency in PT compared to agents without knowledge embedding. Moreover, RMs encoding more detailed domain knowledge demonstrated better PT performance compared to RMs with simpler knowledge.

View on arXivView PDF

Code Implementations

No confident code match yet

We couldn't find an author-owned or strongly-evidenced community implementation for this paper. 1 weaker match is hidden by default — verify before relying on them.

No code implementations found yet.

Know of an implementation? Let us know in the comments below!

Similar Papers

Cite this paper

@article{li2024knowledgeinformed,
  title  = {Knowledge-Informed Auto-Penetration Testing Based on Reinforcement Learning with Reward Machine},
  author = {Yuanliang Li and Hanzheng Dai and Jun Yan},
  year   = {2024},
  eprint = {2405.15908},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2405.15908v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2405.15908.svg)](https://codeofpaper.com/paper/2405.15908)

Discussion