comsec-group / cascade-artifacts

Artifacts for Cascade: CPU Fuzzing via Intricate Program Generation (USENIX Security 2024)
105 stars 7 forks source link

Inquiry About Availability of Bug List from Program Output #4

Closed brightpeng closed 9 months ago

brightpeng commented 9 months ago

Hello,

I've been reading through the paper and was particularly interested in the Appendix, which contains a detailed list of bugs along with their descriptions. This looks very interesting!

In the paper, there are figures like the time taken to reveal each bug. However, I'm curious to know if there's a way to access a comprehensive list of bugs similar to the one in the Appendix directly from the program's output.

Is there a feature or a part of the program that compiles and displays a list of identified bugs during or after its run? Such a list would be incredibly useful for understanding the specific issues encountered during the program's execution and for further analysis.

Thank you for your time and assistance.

Best regards,

flaviens commented 9 months ago

Hi @brightpeng, thank you for reaching out! I haven't yet built such a tool unfortunately (and not planning to at the moment ^^'). For getting bug info, I'd suggest you to check my github issues / pull requests on the corresponding repositories (keep in mind that some designs have fragmented repositories, e.g., CVA6 depends on cvfpu). If you want to build such a tool (that seems very useless, especially given the effort it would require), there's already some design repos (e.g. https://github.com/cascade-artifacts-designs/cascade-cva6-c1) where I re-injected some bugs that were fixed. You may start from there. I close this issue, please feel free to reopen if I did not satisfyingly answer your question. Hope it helps! Flavien

brightpeng commented 9 months ago

Thanks @flaviens! Is there a step in the dockerfile that will identify the bug?

I see there is a function that will check how long it takes to hit the bug as shown below. RUN bash -c "source /cascade-meta/env.sh && cd /cascade-meta/fuzzer && python3 do_timetobug.py 64 10 $TIMEOUT_SECONS_PER_BUG"

But is there a function that can be run to check if a bug was hit? I am hoping to add a new core and run Cascade to hunt bugs.

Could you provide guidance on how to best incorporate a new core and utilize the existing tools to detect bugs? Are there specific scripts or analysis tools within the cascade-meta/fuzzer directory that I should be aware of for this purpose?

Thanks,

flaviens commented 9 months ago

Hi @brightpeng, I see 2 questions here:

brightpeng commented 9 months ago

Thanks @flaviens ! The additional info you provided in the end of the readme was super helpful.

I wonder roughly how long it takes for running the fuzzer for a core? Is there a sign of finish?

I am current running python3 do_fuzzdesign.py picorv32 30 100 1 0

It has been running over 10 hours. ( I assigned 30 cores for the fuzzer. My system is Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz 36 cores.)

Still showing: /cascade-picorv32/cascade Starting parallel testing of picorv32 on 30 processes.

The system still seemed busy when I run 'top' to check the core usage. Debating whether I should interrupt or not. Hope to check with you with the sign of finish.

flaviens commented 9 months ago

Hi @brightpeng , thank you for your message, please consider opening another issue