We presented this beta for the first time to OSDFCon attendees and received a very warm reception both during and after our presentation. As always, we are very grateful to our community for the years of support given to our trainings, book, invited speaking engagements, plugin contests, and other activities.
With this blog post, we now want to document the beta release for the entire community.
This beta release is meant to give an early view of the future direction of Volatility along with the ability to experience the new framework well in advance of its first official release next summer.
Motivation
Since being initially developed in the mid-2000s, Volatility 2 has become the de-facto framework for memory analysis research, development, and real-world analysis. Parallel to this rise in popularity, significant changes have occurred in the memory forensic landscape, including the:
- Large increases in the size of RAM samples to be analyzed
- Inclusion of multiple RAM samples in common investigative scenarios
- Number of analysis tasks (plugins) that are available and utilized in investigations
- Introduction of rapid kernel development cycles across Windows, Linux, and OS X
These changes, along with others, drove the decision to redesign and reimplement Volatility 3 as a completely new framework - meaning that every line of code has been written from scratch. This decision gave us the full ability to design a framework that not only meets the needs of current analysis, but also of analysis for years to come.
New Features
During the design phase of Volatility 3, it became clear that the choice to design the framework from scratch provided the flexibility to fulfill many of the requests made over the years by members of our community. We are happy to say that a number of these requests have now been satisfied with Volatility 3 and will be fully realized in the first official release.
For users, the highlights of the new features include:
- Major performance boosts
- The removal of reliance on --profile in order for the framework to determine which symbol table (profile) is needed to match the operating system version in the memory sample
- Proper evaluation of 32bit code on 64bit systems, such as Window's wow64
- Automatic evaluation of in-memory code to avoid as much manual reverse engineering on part of the analyst as possible
For developers:
- Much simpler integration into user 3rd-party interfaces and libraries
- Extensive API documentation
- The ability for plugins to directly call other plugins
- Plugin versioning
- Direct integration of custom symbol tables and data structures
Code and Documentation
The official repository for Volatility 3 is on Github within the same organization as Volatility 2.
The official documentation can be found on our Read the Docs page.
Roadmap
In order to fully meet the needs of our community, including keeping Volatility 2 stable and up-to-date with the latest operating system versions, along with the rapid development of Volatility 3, we have decided on a dual framework development cycle.
For Volatility 3, our goal is to have the first full release in August 2020. This release is slated to have complete feature parity (plugins, address spaces, etc.) with Volatility 2 as well as a number of completely new analysis features. We then expect official periodic releases to continue for years after.
For Volatility 2, the core development team will keep it fully up-to-date with features and plugins until August 2021.
In August 2021, the core development team will stop work on Volatility 2 and all efforts will be given to Volatility 3.
This means that, for the roughly next two years, Volatility users can expect a fully featured framework in Volatility 2 while we work to bring Volatility 3 to full realization.
Getting Involved!
By releasing a beta version of Volatility 3 in the middle of the development cycle, we hoped to inspire members of the community to help with our efforts related to development, documentation, testing, and everything else involved with making Volatility 3 become the new de-facto framework of the field. While the core of Volatility 3 is implemented and stable, there is much work to be done in porting plugins and adding the envisioned brand new features.
Whether you are a college student looking to gain real-world development experience or a seasoned professional looking to have a major impact on your field, there are many tasks where help would be appreciated and recognized.
If you would like to discuss these possibilities with us, then please see our community resources, described next.
Community Resources
For the members of our community who wish to engage directly with the core development team as well as other members, we now have two resources available:
- Our new Slack server
- Our existing mailing list - vol-users
Both of these resources can be used to ask questions, get help with analysis or development tasks, keep up with our latest announcements, and for anything else related to Volatility and memory forensics.
Final Thoughts
We would again like to thank our community for the continued support!
The huge, warm reception at OSDFCon made for a very nice experience, and we always enjoy being able to engage directly with Volatility users.
Our 2020 calendars are already packed with trainings, conferences, and other community events. If you see an announcement of us participating at an event that you will also be attending, then please stop by and say hello.
-- The Volatility Team
The huge, warm reception at OSDFCon made for a very nice experience, and we always enjoy being able to engage directly with Volatility users.
Our 2020 calendars are already packed with trainings, conferences, and other community events. If you see an announcement of us participating at an event that you will also be attending, then please stop by and say hello.
-- The Volatility Team