freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

如何使用usbsas安全地读取不受信任的USB大容量存储设备
Alpha_h4ck 2022-10-24 22:17:25 196017
所属地 广西

关于usbsas

usbsas是一款功能强大的开源(GPLv3)工具&框架,该工具可以帮助广大用户以安全的方式读取不受信任的USB大容量存储设备。

该工具的实现遵循深度防御的概念和最小特权原则,usbsas的目标是减少USB堆栈的攻击面。为了实现这一点,通常在(特权)内核空间中执行的大多数与USB相关的任务(解析USB数据包、SCSI命令、文件系统等)已被移动到用户空间,并在不同的进程(微内核风格)中分离,每个进程都以其自己的受限安全计算模式执行。

该工具基于Rust语言开发,并且支持在GNU/Linux上运行。

功能介绍

1、从不受信任的USB设备读取文件(不使用uas、USB_storage和文件系统等内核模块)。支持的文件系统有FAT、exFat、ext4、NTFS和ISO9660;

2、使用远程防病毒软件分析文件;

3、将新文件系统上的文件复制到受信任的USB设备,支持的文件系统有FAT、exFAT和NTFS;

4、将文件上传到远程服务器;

5、支持制作USB设备镜像;

6、擦除USB设备内容;

usbsas架构

1、Web客户端/服务器:作为usbsas的主程序,可以部署一个安全的USB文件传输中转站;

2、Fuse实现:使用usbsas以只读模式挂载USB设备;

3、Python:usbsas可以和Python搭配使用,并使用脚本将数据从一台设备拷贝到另一台设备;

工具依赖组件

ntfs3g

FatFs

fontawesome

bootstrap

Lato

工具体系架构/运行机制

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/cea-sec/usbsas.git

工具构建

$ cargo build --release

$ cargo build --release -p usbsas-analyzer-server

$ cargo build --release -p usbsas-tools

$ cargo build --release --manifest-path=usbsas-hid/hid-user/Cargo.toml

$ cargo build --release --manifest-path=usbsas-hid/hid-dealer/Cargo.toml

工具使用

内核模式

usbsas最大的一个优势就是在用户空间中运行,因此Linux内核不能有usb_storage和uas模块。在未设置CONFIG_USB_STORAGE和CONFIG_ USB_UAS的情况下编译内核,或者至少阻止加载此模块,因为如果存在,它们将在插入USB设备时自动加载:

$ cat << EOF > /etc/modprobe.d/usbsas.conf

install usb_storage /bin/false

blacklist usb_storage

install uas /bin/false

blacklist uas

EOF

$ rmmod usb_storage

$ rmmod uas

$ depmod

USB权限

usbsas需要USB设备的读写权限,因此我们需要创建一个指定用户,并提供对应权限:

ACTION=="add", SUBSYSTEM=="usb", ENV{ID_USB_INTERFACES}=="*:080650:*", MODE="0660", OWNER="usbsas"

Web客户端/服务器

$ ./target/release/usbsas-server

$ ./target/release/usbsas-analyzer-server

$ $BROWSER http://localhost:8080

Fuse使用

$ ./target/release/usbsas-fuse-mount --help

usbsas-fuse-mount 1.0

Mount a (fuse) filesystem with usbsas

 

USAGE:

    usbsas-fuse-mount [OPTIONS] <busnum> <devnum> <mountpoint>

 

ARGS:

    <busnum>        设备加载的总线编号

    <devnum>        设备加载的Dev编号

    <mountpoint>     设备加载的路径

 

OPTIONS:

    -h, --help                  打印帮助信息

    -n, --part-num <PARTNUM>    加载的分区编号 [默认: 1]

    -V, --version               打印版本信息

工具运行截图

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可证协议。

项目地址

usbsas:【GitHub传送门

参考资料

https://en.wiki*pedia.org/wiki/Seccomp

https://en.wiki*pedia.org/wiki/Sheep_dip_(computing)

# USB数据 # USB # USB设备 # 数据存储安全 # 存储安全
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1023 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录