如何使用usbsas安全地读取不受信任的USB大容量存储设备
2022-11-6 09:4:50 Author: FreeBuf(查看原文) 阅读量:8 收藏

 关于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:https://github.com/cea-sec/usbsas

参考资料:

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

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

精彩推荐


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651201890&idx=4&sn=f49e0f91668337fb0697fb6452957bc9&chksm=bd1db3e98a6a3affb059a207f1cdd563ddb60b5486285e6a28521169ff4f61fd73362dea364a#rd
如有侵权请联系:admin#unsafe.sh