-
Notifications
You must be signed in to change notification settings - Fork 3
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
2024 update #1
base: master
Are you sure you want to change the base?
2024 update #1
Conversation
Hi!, Some ideas:
Also, I propose to:
What do you think about this? |
I definitely agree, it would benefit from a partial rewrite. Current decoding techniques did require me to silence Bandit (I don't feel comfortable executing Features like escaping local minima in decoding space are exactly what I had in mind, since malicious payloads could exploit this behaviour to sneak payloads past Phorcys detection (one example I have in mind is Log4shell payloads prefixing the JNDI lookup template by a dummy JSON payload to trick Phorcys into flagging reporting it as OK). This is in line with the limited memory resulting from containerization. As for implementing PCAP decoding, I had in mind the implementation of the following encoding formats:
Now for TLS, I will postpone work on that until the rest is done as secret management might become an issue in the case of mobile forensics. When it comes to performance, Phorcys would obviously tremendously benefit from multi-threading but due to the undeterministic nature of some decompression algorithms it might just pave the road for thread-starvation denial of service and temporary network monitoring outages. Some tricks come to mind as I'm typing this, like estimating average entropy gained from decoding specific children based on payload structure and prioritizing higher-rewarding children. But those entropy calculations would rely on logarithmic computations that might themselves slow things down on low-power ARM chips or limited virtualized environments. Speed optimization would be the second least prioritized feature, due to the amount of performance testing that would arise. The tree squashing way of reducing output is actually pretty easy to implement, so I don't have any issues with that. Easier parsing would lower the entry barrier to implementing Phorcys in existing forensics pipelines. Overall, Phorcys is the kind of tool that ends up in NGO hands, and all the hardening that would emerge from the implementation of those features would cement it as a reliable field forensics tool in line with the PTS. I'm OK with getting the maintainer role, I don't currently have any contract with a client so I can dedicate my free time to open source software. As I'm currently setting up my own PiRogue, I look forward to seeing it integrated in the device! I'll update the PR when I get the tests + most of the features going. |
Major update
I noticed the project was being left abandoned with some features missing. I believe Phorcys to be an extremely powerful tool for forensics and took it upon myself to maintain it so that it could be used on a honeypot I'm setting up in the wild.
This pull request is mainly here to notify that work has been done, but I'm stuck and am no longer making progress due to issues implementing tests in the CI pipeline.
Anyways, here's a short list of the things I changed in my branch:
Continuous integration pipeline
./github/workflows
) running on public Github Ubuntu runnersB110
,B404
,B602
E501
,W504
,E731
,F403
,F405
Python
setup.py
tosetup.cfg
)Runtime
This PR is not done, I'll have to fix the tests first. Then work remains to be done regarding Docker, IMO.