Skip to content
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

Clarification - WipeMemoryService #25

Closed
sanjeevirajm opened this issue Jan 12, 2021 · 3 comments
Closed

Clarification - WipeMemoryService #25

sanjeevirajm opened this issue Jan 12, 2021 · 3 comments
Labels
question Molly development or support question

Comments

@sanjeevirajm
Copy link

Based on my understanding, it is used to overwrite values in app memory.
Why it's done? Security issue? is there any POC for that?

@valldrac
Copy link
Member

It is an anti-forensic feature against RAM acquisition and analysis.

I'm going to write a wiki post about how it works. I'll add the link to this ticket later so you can read then.

@valldrac valldrac added the question Molly development or support question label Jan 12, 2021
@sanjeevirajm
Copy link
Author

Thanks

@valldrac
Copy link
Member

valldrac commented Feb 9, 2021

I wish I could write the proper article to explain the details. But lately I don't have much time.

Basically, when Molly get locked:

  1. Clears the database encryption keys from memory
  2. Kills the JVM and restart itself
  3. Runs the WipeMemoryService in the background

Then the wipe service allocates large chunks of memory and overwrites them with random data, until there is no more free RAM available in the device. Then it frees everything and finalize. It takes a few seconds to complete, and you can see a notification and the progress bar.

All of this is to prevent forensic RAM analysis after Molly is locked. It's somehow a workaround to the known issue of JVM apps to overwrite its own memory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Molly development or support question
Development

No branches or pull requests

2 participants