前言
要保持一周至少精读两篇的速度要保持一周至少精读两篇的速度要保持一周至少精读两篇的速度。
看来这周又凉凉了。
本篇是三星投在 CHI Conference on Human Factors in Computing Systems (没想到是人机交互与普适计算 A 会)的论文,让人联想到同是三星出品的 Void。本篇无数地方暗示某 Large IT Company 真是够了,直接千万级的真实用户数据集,有钱真好。本篇也做的是语音命令的攻击检测,但是本篇没有从信号处理的角度出发,而是从文本的角度出发,另辟蹊径,分类器也没有使用 DNN,而是传统的 Logistic 回归,反而能够达到很好的效果。
本文提出的方案名叫 “Text-conVerted VoICE command analysis” (Twice),第一次看了半天才反应过来 Twice 是缩写名字…… VV=W
1 基本信息
1.1 论文来源
I.-Y. Kwak, J. H. Huh, S. T. Han, I. Kim, and J. Yoon, “Voice Presentation Attack Detection through Text-Converted Voice Command Analysis,” in Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems, Glasgow, Scotland Uk, 2019, pp. 1–12, doi: 10.1145/3290605.3300828.
1.2 概述
本文工作在于区分用户的真实命令与可疑命令(各类 Spoofing Attack)。相比之前使用各类信号处理方法提取特征的工作,本文创新地使用了text-converted voice command utterances(即命令的文字内容)作为特征来做恶意命令的分类。同时为了达到最佳的分类准确度,设计了全局模型和定制模型,对于使用频率低,数据少的用户使用全局模型,反之使用定制模型,进一步提高了准确度。在实验评估过程中,使用了真实世界的语音助手数据集(来自260万用户的3460万条数据)。实验结果得到了3.4%的EER,当使用最优的阈值时,可以检测 95.7% 的攻击,即使是对于那些频繁使用危险指令的用户(相对难以分辨真实命令和攻击),也可以达到低于 5% 的 EER。
2 论文要点
2.1 背景
对于安全风险较高的命令,传统的安全措施有:
- 使用 PIN 或 指纹解锁,这需要物理接触,降低可用性。
- 使用声纹。但是当有环境噪声时,目前声纹的准确率大约在 80-90%,且为了保证较高的可用性(降低 FRR),往往将拒绝命令的阈值调整的较高,使得很多恶意命令可以浑水摸鱼。(乃至一直被嘲笑的 Mimicry attack 都可能达到很好的攻击效果)于是现在的研究趋向于使用生物识别,但是生物识别的问题在于当环境变化时,可能会导致准确率降低,并且在没有训练过的场景可能出现效果下降。
作者给出了一下几个攻击场景:
- 攻击者黑入 TV 或者 PC,通过环境音感知周围没有人时,播放恶意命令。
- 隐秘攻击,如之前的 DevilWhisper,DolphinAttack,LightCommand等等。
- 熟人的语音合成攻击(能够获取足够多的声纹数据),并可以找到合适的时机播放。
实际应用中,对延时和资源占用都是有要求的。(参考同为三星出品的 Void[1])
[1] M. E. Ahmed, I.-Y. Kwak, J. H. Huh, I. Kim, T. Oh, and H. Kim, “Void: A fast and light voice liveness detection system,” in 29th USENIX Security Symposium (USENIX Security 20), Aug. 2020, pp. 2685–2702, [Online]. Available: https://www.usenix.org/conference/usenixsecurity20/presentation/ahmed-muhammad.
2.2 价值
- 对真实世界场景的语音助手命令使用情况作了分析,数据表示 87.48% 的用户在每个月仅适用不超过 20 条命令。
- 设计了一款语音替身攻击的检测系统(Voice presentation attack detection system)。该系统开始时使用全局通用的模型(立即可用),并随着用户对于语音助手的使用增多逐渐改用定制模型。
- 验证了 使用 text-converted utterances (命令转文本内容)作为特征来检测安全敏感命令的异常使用 的可行性。得到结果 EER 为 3.4%,并且在模型未知的数据上达到了 95.7% 的准确率。
- 确认了在真实世界的语音助手中实际使用的安全敏感命令,例如获取信用卡信息以及修改安全设置等。
2.3 问题陈述
使用命令文本和匹配的应用能否足够分辨给定命令是不是攻击?
如何高效、轻量地检测给定的命令文本是不是一次攻击(对于安全敏感命令的异常使用)?
2.4 方法
- 首先作者团队收集了两个月的真实世界的语音助手命令(约 4800 万条),并对数据进行了清洗,去掉了无法识别和没有文本内容的命令,最终得到命令 3460 万条。其中 11 月命令用于训练,12月命令用于评估。
- 作者团队先对这些命令数据集做了分析,对不同用户群体做了区分,统计了常用命令,和常用的应用。这里作者发现不同群体在常用的命令上组合有差异,且不同组合所占比例均不高,且分布较均匀,说明使用匹配的应用可以作为分类特征。
- 作者参考了[2],对用户关注的安全敏感命令做了整理,并以此得到攻击数据集。
- 作者设计的系统 Twice 是用来与现有的语音助手系统共同工作的,Twice 在服务器端工作,具体工作方法如下:
- 当用户使用语音助手时,其命令和设备ID会被送到服务器,服务器对命令做转文本得到文本内容,然后处理命令,理解命令要唤起的应用,然后这些信息都将送给 Twice,Twice 会通过这些信息对命令是攻击的概率进行计算,最终命令的响应和概率都将被返回给用户端语音助手,语音助手通过提前设定的阈值来判断是不是攻击,如果怀疑是攻击,则需要用户手动验证。若验证通过,则该命令作为真实命令加入用户数据集用于后续训练。
- 在具体的分类上,作者选择了两个特征:BoW 和 匹配应用。BoW 即 Bag of Words,词袋,简而言之就是每个单词出现次数,不考虑了单词顺序。匹配应用就是命令最终匹配的应用。在分类器的选择上,测试了Logistic Regression,XGBoost,SVM,最终由于 Logistic Regression 在效果和时间上效果最好,选择 Logistic Regression。
[2] A. P. Felt, S. Egelman, and D. Wagner, “I’ve Got 99 Problems, but Vibration Ain’t One: A Survey of Smartphone Users’ Concerns,” in Proceedings of the Second ACM Workshop on Security and Privacy in Smartphones and Mobile Devices, Raleigh, North Carolina, USA, 2012, pp. 33–44, doi: 10.1145/2381934.2381943.
2.5 结果
十一月的训练数据集中,不同语音助手使用频率的用户数目表:
命令数量 | 20-29 | 30-49 | 50-99 | 100-499 | 500-999 | ≥1000 |
---|---|---|---|---|---|---|
用户数量 | 71813 | 53296 | 29265 | 9679 | 339 | 195 |
在验证数据集中,定制模型在使用命令超过 500 条的用户群体中能达到更好的 EER。
全局模型和使用命令数目超过 500 条的用户的定制模型的平均训练损耗与检测用时(三种分类模型)如下表(括号内为标准差):
Global | Model | User | -Tailored | model | ||
---|---|---|---|---|---|---|
Logistic | XGBoost | SVM | Logistic | XGBoost | SVM | |
训练用时(sec) | 3.4(0.13) | 5.3 (0.07) | 36.2 (22.35) | 0.5 (0.01) | 1.0 (0.01) | 2.9 (1.66) |
训练占用内存(MB) | 961.43 (0.05) | 969.63 (0.62) | 1071.13 (83.00) | 821.67 (0.01) | 823.89 (0.08) | 837.03 (5.08) |
检测用时(ms) | 0.14 (0.04) | 1.51 (0.18) | 0.64 (0.06) | 0.11 (0.02) | 1.55 (0.18) | 0.64 (0.06) |
在十二月数据集上做评估的平均 FAR 如下表
Global Model | User | - | tailored | model | |||
---|---|---|---|---|---|---|---|
命令数目 | - | 20-30 | 30-50 | 50–100 | 100–500 | 500–1,000 | >1,000 |
FAR | 4.3% (0.03) | 10.1% (0.10) | 8.34% (0.08) | 5.9% (0.06) | 4.3% (0.04) | 2.3% (0.02) | 1.7% (0.02) |
此外,作者在经常使用安全敏感命令的用户群体中做了额外的测试,发现即使是经常使用敏感命令的用户, 在接替使用全局模型和定制模型后,能一直保持低于 5% 的 EER。(尽管两个模型各自在部分使用频率的群体上都有高于 5% 的 EER)
3 评论
3.1 局限性
先介绍作者提到的局限性:
- 对于重放攻击无法检测,因为重放攻击与之前用户使用的真实命令的内容是一样的,无法做到很好的分类。所以作者提到 Twice 有必要和一个重放攻击检测方案一同进行部署。(尽管后面作者又用几倍的文字解释重放攻击的威胁有限)
- 第二是 Twice 需要全面的攻击数据集,如 2.4 方法 部分所介绍的,本片工作的攻击数据集参考了 [2] 中的常见问题,可能并不覆盖到所有的攻击,对于攻击的数据集做更全面的覆盖,才能达到更好的实际应用效果。
我个人看到的局限性:
- 文中多次提到了一个假设:同一个 Device ID 对应 同一个真实用户。实际场景中的大部分用户也许满足这一要求,但是考虑家庭公用设备与公司公用设备等场景,以及语音攻击的重灾区:智能家居的应用场景,该假设可能并不成立,那么对应可能会有一些攻击存在。
- 在 2.5 结果中显示 训练的平均内存消耗接近了 1 GB,尽管时间非常短(秒级),但是这个内存消耗可能使得同时无法训练太多的模型,意味着可能用户模型的更新速度会受限?
3.2 启示
- 这篇论文抛开信号特征直接对转文本后的命令从命令的内容上做分类,检测攻击的可能性,实属新颖。当然背后也脱不开三星的大规模数据才能这么做。这样做使得语音合成,语音转换,模仿攻击都没有太大意义了:因为这三类攻击的目的是骗过身份认证,内容上还是具有攻击性质的,比如会使用敏感的应用,含有安全敏感单词,这些都会被 Twice 检测。
- 对于语音设备的攻击分为多个阶段,之前我们一直希望从音频原始信号的角度做分类,但是本文跳出该阶段,从最后识别出的命令的阶段做分类,也可以达到不错的效果。
- 本文在评估阶段使用到了 Shapiro-Wilk normality test 和 Wilcoxon signed-rank test with Bonferroni correction 等统计学概念,有参考意义。
4 个人笔记
对于安全风险较高的命令,传统的安全措施有:
- 使用 PIN 或 指纹解锁,这需要物理接触,降低可用性。
- 使用声纹。但是当有环境噪声时,目前声纹的准确率大约在 80-90%,且为了保证较高的可用性(降低 FRR),往往将拒绝命令的阈值调整的较高,使得很多恶意命令可以浑水摸鱼。(乃至一直被嘲笑的 Mimicry attack 都可能达到很好的攻击效果)于是现在的研究趋向于使用生物识别,但是生物识别的问题在于当环境变化时,可能会导致准确率降低,并且在没有训练过的场景可能出现效果下降。
关于重放攻击的想法,本文中未太多的解释关于重放攻击的防御