概述
Stegozoa: Enhancing WebRTC Covert Channels with Video Steganography for Internet Censorship Circumvention [AsiaCCS 2022]
最近一个名为Protozoa的工具允许在WebRTC媒体流上建立高性能的点对点Covert Channel, 然而容易受到中间人的攻击, 因为WebRTC应用程序依赖于WebRTC网关来协调用户连接. 在这种情况下, 控制WebRTC网关的对手可以检查媒体流的内容, 并简单地检测Covert负载的传输.
本文工作提出Stegozoa, 一种新的Covert Communication工具, 旨在挫败控制WebRTC网关的对手检测Covert数据传输的能力. 利用隐写技术将Covert数据嵌入到WebRTC视频信号中, 防止通过直接视频内容检测来检测Covert有效载荷. 为此, Stegozoa利用了最先进的隐写技术, 将其深入应用于WebRTC的视频编码管道, 确保不可检测性.
实验评估表明, Stegozoa可以创建安全的WebRTC Covert Channel, 对隐写分析和流量分析攻击具有高度抵抗力. 尽管为了换取更强的安全性会降低性能, 但Stegozoa可以提供合理的吞吐量, 允许用户运行低带宽的消息交换任务.
一句话: 基于Protozoa框架引入视频隐写技术实现抵抗中间人攻击的Stegozoa Covert Channel
前置知识
WebRTC
WebRTC (Web Real-Time Communications) 是一项实时通讯技术, 它允许网络应用或者站点, 在不借助中间媒介的情况下, 建立浏览器之间点对点(Peer-to-Peer)的连接, 实现视频流和(或)音频流或者其他任意数据的传输.
WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准.
主要应用场景覆盖广泛, 在网页实时通信领域占主要地位
Protozoa框架
Protozoa是一个在[CSS 2020]提出的安全通信工具, 它利用WebRTC视频通话来创建呼叫端点之间的高速Covert Channel. Protozoa用Covert数据载荷来完全替换压缩视频帧的内容. Protozoa生成的视频流保留了合法的WebRTC流的流量特征(如包大小、到达间隔时间分布等统计指标). 这严重削弱了现代流量分析技术检测多媒体流上建立的Covert信道的有效性.
缺陷:
然而, Protozoa是在一个强烈的假设下运作的, 即视频通话的参与者以点对点的方式交换媒体数据. 考虑到携带视像流的点对点连接是端到端加密的, 即使是不受限制地访问网络基础设施的最高级别的对手也不能观察到WebRTC流的原始视频内容. 但实际上无数的WebRTC应用程序都依赖于WebRTC网关.
WebRTC网关是一种专门的服务器, 它在参与视频通话的参与者之间协调媒体流的传输. 而WebRTC网关有能力对传入的媒体流进行解密、验证和执行任意操作.
如果当攻击者与WebRTC网关提供者联合, 则可以解密WebRTC数据流, 此时传输的Covert数据就会暴露.
方法
危胁模型
两个用户, Alice和Bob, 他们打算在最高级别的对手(如攻击者)的窥探下交流一些敏感信息.
前提假设
(1) 默认对手可以对加密的WebRTC媒体流生成的流量模式进行基于机器学习的统计流量分析, 试图区分合法的WebRTC流和携带Covert Channel的流. 对手可以观察、存储、主动操作和分析参与通信的各方之间交换的所有网络流.
(2) 假定对手可以访问交换的未加密的WebRTC媒体流, 对手可以检查呼叫参与者之间交换的媒体有效载荷, 验证媒体数据结构的组成, 并执行视频隐写分析.
(3) 假设对手无法控制安装在终端用户计算机上的软件, 也没有能力在用户的计算机上部署流氓监控软件. 即通信者端点是可信的.
(4) 假设攻击者不愿意阻止或降低WebRTC视频通话的质量, 除非有强有力的证据表明这些视频通话被用来传递某些Covert Channel. 否则较高的误封率会带来区域之间的经济活动损失.
Stegozoa架构
系统本身由一个网关服务组成, 该服务由三个主要元素组成: 一个API、libstegozoa库和一组位于修改后的Web浏览器中的媒体拦截钩子hooks. 这些元素的协调交互作用在不同的抽象层上, 允许Stegozoa在两个用户Alice和Bob之间建立一个Covert Channel, 并通过这个通道秘密地交换消息.
Covert Channel
Alice和Bob通过WebRTC视频会话服务建立Covert Channel.
首先Alice访问一个WebRTC服务比如Jitsi Meet创建一个聊天室, 在公共信道上给Bob分享chatroom的URL和共享秘密消息
接着Bob收到URL并登入chatroom与Alice展开通信
之后Alice和Bob使用共享的秘密消息初始化Stegozoa的隐写编码器以完成Covert Channel系统的构建
视频隐写
为了避免视频帧内容的失真和防止视频解码损坏. 采用对QDCT(quantized discrete cosine transform)系数采用最小有效位(least significant bit, LSB)替换,并结合两个额外步骤:
(1) QDCT过滤系数: 直流系数的变化比交流系数的变化影响更大; 蓝色色度系数和红色色度系数比亮度系数少(每个色度系数有2个亮度系数), 使色度系数的变化更明显. 因此为了减少视频失真, 选择一个QDCT系数子集嵌入消息有效载荷.
(2) Syndrome-trellis coding (STC): 从预先过滤的QDCT系数子集, 进一步在LSB替代的基础上应用STC, 以最小化视频失真.
编码步骤: 输入是VP8编解码器内置量化阶段生成的QDCT系数. 在系数滤波阶段, 编码器计算可用有效系数的数量以发现帧的嵌入容量. 然后提取LSBs的有效系数作为STC算法的输入(连同有效载荷消息). 另一方面,STC算法返回最终的LSB向量, 反映最后阶段嵌入到视频帧中的有效载荷消息.
信道优化
在使用视频隐写时会产生网络传输延迟, 导致在流量传输上有较为明显的模式而易受流量分析攻击. 为了防止这个问题并减少由Stegozoa操作引起的帧编码延迟, 文章为Stegozoa编码器开发了以下两个关键优化
(1) Trailing null-coefficient optimization: 在给定帧内嵌入Covert数据之前, Stegozoa编码器需要计算该帧有效QDCT系数的个数, 为此编码器需要执行一个嵌套循环遍历macroblock, 这个过程时间开销较大. 优化则是首先遍历macroblock的块, 然后按光栅扫描顺序检查系数, 直到找到最后一个非零系数. 这样, 就不必测试大多数不需要的null系数, 从而减少了上述操作造成的开销.
(2) Hardware-accelerated memcopy optimization: 计算过程涉及将QDCT系数复制到一个新的缓冲区中(让STC算法能够独立处理)这一频繁操作, libc库的memcpy函数执行较慢, 优化采用高级向量扩展(AVX)指令来复制数据, 可以有效降低延迟.
实验
实验评估目标有两个:
(i) 评估Stegozoa原型的网络性能
(ii) 衡量它的安全性, 抵抗检测的能力, 安全性又包括两个方面, 流量分析检测和视频隐写分析检测
网络延迟实验
最抗隐写分析的Stegozoa配置(𝛼=0.25)平均吞吐量为8.2 Kbps, 而抗隐写分析较少的配置(𝛼=1)平均吞吐量为23.8 Kbps.
Stegozoa往返时间平均为0.261秒, 最大为0.374秒.
带宽实验显示对于小体量内容比如twitter风格的feeds或维基百科文章在10min, 30min, 60min内可以传输的数量
流量分析检测
流量分析采用最先进的分类算法XGBoost进行, 并结合一组综合的特征, 比如基于对包长度和到达间隔时间计算的多个汇总统计信息, 还有如突发行为和高阶统计信息(如峰度)等.
在对信道优化前后, 可以看到流量分析检测概率有明显下降
对于𝛼= 0.25,对手能够获得的最大AUC仅为0.6. 实验表明Stegozoa对流量分析攻击是健壮的.
视频隐写检测
为了执行视频隐写分析, 利用最先进的SUPERB[14]和IDFB[58]视频隐写分析技术的可用实现, 并结合XGBoost分类器.
IDFB: 当𝛼=1时, 该分类器能够正确检测出较大比例的Stegozoa视频, 获得AUC为0.87. 但是这是不足为奇的, 因为在这种配置中, Stegozoa的隐写输出被期望表现出高的失真率. 𝛼值为0.5和0.25时, 分类器只能获得AUC分别为0.67和0.60.
SUPERB: 该隐写分析分类器的性能与基于IDFB的分类器相似, 在隐写输出视频失真较大时(𝛼=1)具有较高的AUC, 保守值𝛼越小的AUC接近随机猜测.
横向比较
比较Stegozoa与Protozoa[10]和SkypeLine[36]的性能, 这两种最先进的系统可以在多媒体会议应用程序上构建Covert Channel. 虽然Protozoa在很大程度上优于Stegozoa的吞吐量, 但Protozoa很容易被能够检查媒体流的对手检测到.
类似于Stegozoa, Skype采用了一个更强大的威胁模型, 对手能够检查未加密的Skype音频流, 并提出了一个在音频通话中嵌入隐写数据的机制. 不过Stegozoa提供的吞吐量比SkypeLine大2到3个数量级.
对比Skypeline时文章指出音频的吞吐量相比视频过低, 所以没有采用音频隐写的方法.
总结
本文介绍了一种新颖的互联网Covert Channel系统Stegozoa, 它在以WebRTC为媒介的视频会议流上使用视频隐写术. 实验评估结果表明, 仔细选择Covert数据嵌入参数可以使隐藏数据实现合理的吞吐量, 同时可以抵抗最先进的流量分析和隐藏分析攻击.
related work
Covert Channel工作
[10] Barradas, D., Santos, N., Rodrigues, L., and Nunes, V. Poking a Hole in the Wall: Efficient Censorship-Resistant Internet Communications by Parasitizing on WebRTC. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (2020).
[36] Kohls, K., Holz, T., Kolossa, D., and Pöpper, C. Skypeline: Robust Hidden Data Transmission for VoIP. In Proceedings of the 11th ACM on Asia Conference on Computer and Communications Security (2016).
视频隐写分析工作
[14] Cao, Y., Zhang, H., Zhao, X., and He, X. Steganalysis of H.264/AVC Videos Exploiting Subtractive Prediction Error Blocks. IEEE Transactions on Information Forensics and Security (2021).
[58] Zhang, H., You, W., and Zhao, X. A Video Steganalytic Approach Against Quantized Transform Coefficient-Based H.264 Steganography by Exploiting In-Loop Deblocking Filtering. IEEE Access (2020).
insights
(1) 文章中对视频流实时隐写的优化方法可以借鉴, 比如忽略null-coefficients
(2) 文章是第一个将视频流隐写引入protozoa Covert Channel中的工作并取得较好效果
(3) Stegozoa在网络传输延迟上还有改进空间, 而且安全性和传输率不可得兼也是可以改进的地方