VolWeb简介

VolWeb 是一个数字取证内存分析平台,利用 Volatility 3 框架的强大功能,它致力于帮助攻击调查和应急响应。

VolWeb的目标是通过提供一个集中化、可视化和增强型的网络应用程序,提高内存收集和取证分析的效率,以服务于事件响应人员和数字取证调查员。一旦调查员从Linux或Windows系统获取了内存镜像,证据可以上传到VolWeb,触发使用Volatility 3框架的自动处理和提取工件。

通过利用云原生存储技术,VolWeb还使事件响应人员能够使用专用脚本直接将内存镜像上传到VolWeb平台,这些脚本与平台进行交互,并由社区维护。另一个目标是允许用户编制技术信息,如指标,以便稍后导入到现代CTI平台(如OpenCTI),从而在调查后连接您的事件响应和CTI团队。

VolWeb 使用文档

VolWeb-Documentation

本 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 文件。确保privkeyfullchain文件分别具有与上面示例相同的名称。

如果您使用 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

导航至https://本机ip/

默认情况下,创建的管理员和用户帐户将具有以下凭据:

admin:password

user:password

您可以通过 Django 管理面板 -> 创建更多分析师帐户并更改密码https://[VOLWEB HOSTED IP]/admin.,然后使用上面的管理员帐户进行修改。

🛠 教程 – 使用 AWS 部署 VolWeb 作为 S3 存储解决方案

在本教程中,读者将逐步学习如何使用 AWS 而不是 MINIO 作为存储解决方案在生产中部署 VolWeb 平台。在执行此任务之前,您需要了解所涉及的不同组件,下图提供了所涉及的技术和协议的广泛视图。

首先,您需要满足以下要求:

准备您的环境

要在生产环境中部署 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