VolWeb 集中式增强型数字取证内存分析平台
VolWeb简介
VolWeb 是一个数字取证内存分析平台,利用 Volatility 3 框架的强大功能,它致力于帮助攻击调查和应急响应。
VolWeb的目标是通过提供一个集中化、可视化和增强型的网络应用程序,提高内存收集和取证分析的效率,以服务于事件响应人员和数字取证调查员。一旦调查员从Linux或Windows系统获取了内存镜像,证据可以上传到VolWeb,触发使用Volatility 3框架的自动处理和提取工件。
通过利用云原生存储技术,VolWeb还使事件响应人员能够使用专用脚本直接将内存镜像上传到VolWeb平台,这些脚本与平台进行交互,并由社区维护。另一个目标是允许用户编制技术信息,如指标,以便稍后导入到现代CTI平台(如OpenCTI),从而在调查后连接您的事件响应和CTI团队。
VolWeb 使用文档
本 wiki 描述 VolWeb 应用程序的目的是:
帮助系统管理员在生产环境中部署平台。
协助调查员部署该平台的本地版本。
帮助项目的潜在贡献者建立开发环境来测试和提出新功能。
本文档将随着社区的需求和贡献而不断发展。
🛠 教程 – 生产环境中的标准部署
在本教程中,读者将逐步学习如何在生产中部署 VolWeb 平台。
要在实验室中部署 VolWeb,您需要了解其不同的组件。下图提供了所涉及的技术和协议的总体视图。
首先,您需要满足以下要求:
准备您的环境
要在生产环境中部署 VolWeb,您将需要 X509 证书:
以下是如何为 MinIO 或 VolWeb 生成自签名证书的示例:
openssl genrsa > ./privkey.pem
openssl req -new -x509 -key ./privkey.pem > ./fullchain.pem
[!警告]如果您要创建自签名证书,请确保您的浏览器信任它。建议使用受信任的 CA 生成证书。
将证书复制到VolWeb 平台
./VolWeb/docker/nginx/ssl/privkey.pem
并./VolWeb/docker/nginx/ssl/fullchain.pem
用于 VolWeb 平台。将证书复制到MINIO 实例
./VolWeb/docker/minio/privkey.pem
并 为其复制该证书。./VolWeb/docker/minio/fullchain.pem
[!警告]在签署证书时设置 VolWeb 实例的 FQDN/IP 地址。如果您选择在不同的服务器上使用 MINIO,请确保签署该服务器的 FQDN/IP 的 MinIO 证书并相应地更改 env 文件。确保
privkey
和fullchain
文件分别具有与上面示例相同的名称。
如果您使用 VolWeb 平台的 FQDN,请务必编辑 nginx 配置文件VolWeb/docker/nginx/nginx.conf
配置环境变量
您将需要创建并配置环境变量以填充所有必要的秘密。为此,请执行以下操作:
cd VolWeb/docked
cp .env.prod.example .env
vim .env (or any text editor)
修改必要的变量以满足您的要求。
第一次开始
[!重要]您需要互联网连接来拉取镜像(或者将它们拉入您的气隙环境中)。
使用以下命令启动平台:
cd VolWeb/docker
docker-compose up
默认情况下,创建的管理员和用户帐户将具有以下凭据:
admin:password
user:password
您可以通过 Django 管理面板 -> 创建更多分析师帐户并更改密码https://[VOLWEB HOSTED IP]/admin.
,然后使用上面的管理员帐户进行修改。
🛠 教程 – 使用 AWS 部署 VolWeb 作为 S3 存储解决方案
在本教程中,读者将逐步学习如何使用 AWS 而不是 MINIO 作为存储解决方案在生产中部署 VolWeb 平台。在执行此任务之前,您需要了解所涉及的不同组件,下图提供了所涉及的技术和协议的广泛视图。
首先,您需要满足以下要求:
可以创建存储桶、AWS 客户端 ID 和 KEY 的 AWS 帐户。
准备您的环境
要在生产环境中部署 VolWeb,您将需要 X509 证书:
以下是如何为 MinIO 或 VolWeb 生成自签名证书的示例:
openssl genrsa > ./privkey.pem
openssl req -new -x509 -key ./privkey.pem > ./fullchain.pem
[!警告]如果您要创建自签名证书,请确保您的浏览器信任它。建议使用受信任的 CA 生成证书。
将证书复制到
./VolWeb/docker/nginx/ssl/privkey.pem
和./VolWeb/docker/nginx/ssl/fullchain.pem
。
如果您使用 VolWeb 平台的 FQDN,请务必编辑 nginx 配置文件VolWeb/docker/nginx/nginx.conf
配置环境变量
您将需要创建并配置环境变量以填充所有必要的秘密。为此,请执行以下操作:
cd VolWeb/docked
cp .env.aws.example .env
vim .env (or any text editor)
修改必要的变量以满足您的要求。
第一次开始
[!重要]您需要互联网连接来拉取镜像(或者将它们拉入您的气隙环境中)。
使用以下命令启动平台:
cd VolWeb/docker
docker-compose up
导航至https://fqdn-or-ip-of-volweb/
默认情况下,创建的管理员和用户帐户将具有以下凭据:
admin:password
user:password
您可以通过 Django 管理面板 -> 创建更多分析师帐户并更改密码https://[VOLWEB HOSTED IP]/admin.
,然后使用上面的管理员帐户进行修改。
创建案例并上传证据
将 AWS 与 VolWeb 平台结合使用需要一些要求。在 VolWeb UI 中创建案例后,您可以通过VolWeb-Scripts轻松上传任何内存镜像。但是,如果您想从 VolWeb 平台上传内存映像,则需要将 CORS 授权给与案例关联的存储桶 ID。为此,请通过 Web 浏览器或 aws SDK 导航到您的 AWS 存储桶授权并添加以下 CORS 策略:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*" // OR https://volweb-fqdn for better security.
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2",
"ETag"
],
这将允许 VolWeb 平台将证据上传到您的存储桶。
🛠 教程 – 在本地计算机上部署 VolWeb 或贡献
贡献:
首先通过提出问题来提出建议。
或者直接通过k1nd0ne@mail.com联系我。
如果您希望在不完成生产部署要求的所有步骤的情况下测试 VolWeb 或为该项目做出贡献,请按照本教程进行操作。
设置您的开发环境
要设置开发环境,请按照下列步骤操作:
配置Docker开发环境
cd VolWeb/docker
cp .env.dev.example .env
docker-compose -f docker-compose-dev.yaml up
配置您的 Python3 环境
在新终端中,设置 Python3 虚拟环境并安装依赖项
cd VolWeb
python3 -m venv ./venv
pip3 install -r requirements.txt
编辑venv/bin/activate
文件(在 Linux/MacO 上)并导出以下环境:
export CSRF_TRUSTED_ORIGINS=http://localhost:8000/
export WEBSOCKET_URL=ws://localhost:8000/
export AWS_ENDPOINT_URL=http://localhost:9000/
export AWS_ENDPOINT_HOST=localhost:9000
export AWS_REGION=""
export POSTGRES_USER=volweb
export POSTGRES_PASSWORD=volweb
export POSTGRES_DB=volweb
export DATABASE=postgres
export DATABASE_HOST=localhost
export DATABASE_PORT=5432
export AWS_ACCESS_KEY_ID=user
export AWS_SECRET_ACCESS_KEY=password
export BROKER_HOST=localhost
export BROKER_PORT=6379
激活虚拟环境:source ./venv/bin/activate
接下来,应用所有迁移,初始化默认帐户,并启动 Web 服务器:
cd VolWeb
source ./venv/bin/activate
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py initadmin
python3 manage.py runserver
启动Celery
在新终端中,您需要启动 celery Worker 以便启动分析任务。 (确保还激活 venv)。
cd VolWeb/
source ./venv/bin/activate
celery -A VolWeb worker --loglevel=INFO
开发完您的功能后,将设置更新为生产并使用生产 docker-compose.yaml 测试您的代码。
VolWeb 正在积极开发中;根据路线图,您的功能可能需要一些时间才能集成。
使用 VolWeb:最佳实践指南
以下部分将帮助您使用 VolWeb 并优化 VolWeb 平台的性能。
技巧 1:选择正确的内存映像格式
在将内存映像上传到 VolWeb 平台之前,建议使用原始格式,以减少翻译操作。
示例:考虑将 vmem 映像和关联的 vmss 转换为原始映像,然后将结果上传到 VolWeb 平台。
提示 2:检查分析结果
分析完成后,您可以检查每个插件产生的结果。下面是各个状态的含义:
“成功”:插件产生结果。
“失败”:插件没有产生任何结果。
“不满意”:缺少符号要求。考虑导入正确的 ISF。
技巧 3:不要停止使用 Volatility3 CLI
VolWeb 并不是要取代 Volatility3 CLI;而是要取代 Volatility3 CLI。事实上,有些插件缺失了,一旦我们找到合适的可视化方法,它们就会被集成。 Volatility3 v2.5.2 CLI 提供了对包含证据的远程Min.IO存储桶执行分析的功能。以下是您仍然可以将 Volatility3 CLI 与 VolWeb 平台结合使用的方法:
~» export AWS_ENDPOINT_URL="https://your-minio/volweb-instance:9000"
~» export AWS_ACCESS_KEY_ID=REDACTED
~» export AWS_SECRET_ACCESS_KEY=REDACTED
~» vol -f bucketID/Name_Of_The_Evidence.raw windows.pstree
[!NOTE]您可以通过转至 MinIO 实例或通过公开的 VolWeb REST API 获取证据元数据来检索证据位置。有关与 REST API 交互和示例脚本的更多信息:
提示 4:寻求帮助!
如果您需要在实验室中部署 VolWeb 的支持,请提出问题或直接通过k1nd0ne@mail.com联系我们。
提示 5:使用管理面板
如果您是 VolWeb 的管理员,请使用位于https://volweb-uri/admin 的管理面板。
您将能够创建、修改、删除用户。如果需要,您还可以刷新证据。某些证据可能会因未识别的错误而停止,您可以从管理面板中删除它们(它们也会从 s3 存储桶中自动删除)。
截图
下载地址
直链下载地址
https://lp.lmboke.com/VolWeb-2.0.0.zip
https://lp.lmboke.com/VolWeb-2.0.0.tar.gz
项目地址
GitHub:
https://github.com/k1nd0ne/VolWeb