New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues with random graph #46
Comments
@sherendcooper Thanks for reporting. Could you share a diff or a PR so we can review the change you are proposing? |
@sherdencooper Libraries of vulnerabilities are not necessarily global. The function |
For 2. That's indeed a bug. The fix is to generate the nodes and services first with vulnerabilities set to empty. Then loop again over the nodes to generate and assign vulnerabilities for each node. |
I am not sure whether the problem1 is raised by the difference in the python version, but in my running without deepcopy, the generated graph does not have the vulnerabilities outcomes as expected. By debugging, I found that the code does not generate new
|
@sherdencooper I see! There is indeed a bug then, it seems that the empty library if library is None:
library = {} |
@sherdencooper Reopening this bug. I think you might have closed it by accident. I've create a PR to fix the first part of the bug. |
@sheredencooper Fix proposed in #58 Give it a try and let me know if it works for you. |
Thanks for your fix, it works for me! BTW, I am doing some research work about RL and using your simulator. It's the greatest cyber attack simulator I have found! When I was using your simulator, I found something not so reasonable about the reward design.
In my experiment, I trained an agent with the original reward design in the chain env. The agent can perfectly take ownership of the network in training. When I saved the model and evaluate it with epsilon-greedy, the success rate is only about 90%. When I patched the two points I proposed above and trained an agent with the same parameters, the successful rate for evaluation is about 100%. I think the original reward design makes the agent overfit. Could you please take a look at the two points and give some feedback? Anyway, thanks again for your codes, it helps with my research, and I even would like to use them in my next research project about online learning :) |
Hi, I am working on generating the random graph and I found some logical issues with the random graph generation design (maybe).
add_leak_neighbors_vulnerability
function in generate_network.py should not returnlibrary
directly. Since it is a global dictionary, using it to assign the vulnerability will make all nodes share the same vulnerability outcomes which is not reasonable. It can be fixed by returnreturn copy.deepcopy(library)
assigned_passwords
. I fix this issue simply by repeating the loop.I am not familiar with network attacks, so would it be convenient for you to check whether the editions are right? Thx a lot.
The text was updated successfully, but these errors were encountered: