DolphinAtack: Inaudible Voice Commands

 

DolphinAtack: Inaudible Voice Commands论文笔记

#DolphinAtack: Inaudible Voice Commands 作者们: 浙江大学*6 Guoming Zhang∗ Chen Yan∗ Xiaoyu Ji† Tianchen Zhang Taimin Zhang Wenyuan Xu† link:https://acmccs.github.io/papers/p103-zhangAemb.pdf


背景工作:一些人听不到的隐藏的声音能够控制系统 作者工作:设计了完整了一套不可被听到的攻击(DolphinAttack),能够将声音调制到超声波的频段。通过利用手机中电路的非线性性质,低频段的声音可以被很容易地解调出来,从而被声音识别系统所使用。 作者在 Siri, Google Now, Samsung S Voice, Huawei HiVoice, Cortana 和 Alexa上均进行了测试,通过注入一系列听不见的声音命令,可以实现诸如让Siri初始化FaceTime call、让Google Now切换手机到飞行模式、甚至操纵奥迪的导航系统。 因此作者提出了软件和硬件层面上的一些缓解措施,并提出了使用支持向量机SVM来分类检测海豚音

Intro

声音识别系统SR能够允许机器或程序检测说的话并且将其转化为机器可识别的格式。由于其的高效率和提升上来的准确性,由此诞生了声音控制系统VCS。由于现在发展很快,于是相关的安全防护就鲜有人注意。 本论文着重解决如下问题:

  • 声音指令能否在人不查觉的情况下让设备接收到,让SR执行
  • 注入一系列听不见的声音能否导致对声音控制系统的破坏 要解决上述两个问题,有三个困难:
    1. 硬件层面,大部分的低通滤波器会去掉高频信号
    2. SR系统不一定会识别非人类声音的信号
    3. 一些VCS系统会识别声音中的用户信息来判断用户身份

实验证明海豚音能造成如下影响:

  1. 访问恶意网站
  2. 监听
  3. 注入虚假信息
  4. 拒绝服务攻击
  5. 隐藏攻击活动

    Background and attack model

    VCSs

    典型的VCS包括

    • 声音捕捉:记录环境声音、过滤、数字化,然后去除高频或微小声音信号
    • 语音识别:包括活动态和识别态,活动态下持续等待用户按键或者说出某些特定词语(词语口音可能为依赖用户的,在本地或云端服务器进行处理)
    • 命令执行

三部分 Alt text

Microphone

Alt text ECM:Electret Condenser Microphone MEMS:Micro Electro Mechanical System(dominate) 采样率在44.1kHz左右,最终经过滤波等操作后能得到22kHz以下的频率信号

Threat Model

假定满足一下条件:

  • 无直接设备接触、改变设备设定、安装恶意程序等,但对设备充分熟悉
  • 无使用者交互
  • 人耳不可闻
  • 攻击设备:传送超声波的播放器,信号发生器等

    Feasibility Analysis

    由于低通滤波LPF的存在,恶意指令需要在这之前从高频信号中解调出来,即从Microphone或者Amplifier中解调 目前已有关于利用Amplifier中的非线性性质来产生新频率的相关报道,但是对Microphone的研究还很少,本文主要关注这点

    非线性影响模型

    麦克风的输出信号和输入信号满足下式: Alt text……(1) 选择相应的载波频率来传送消息m: Alt text……(2) (物理推导,傅里叶变换balabala) 记$m(t)$的频率为fm,将(2)式代入(1)式后进行傅里叶变换可知,最终的输出信号中带有$fc-fm,fc,fc+fm,fm,2(fc-fm),2fc,2(fc+fm),2fc-fm,2fc+fm$等和声、交叉共轭频率分量,因此也就可以通过一定的载波频率fc来使原本不可闻的消息频率fm输出到非超声波段了

    非线性影响评估

    主要对ECM和MEMS两种麦克风进行实验

    实验环境

    Alt text

    实验结果

    单一音调: Alt text 多重声音: 通过计算三种条件下的Mel频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC),再通过计算MCD (Mel-Cepstrum Distortion)来量化其扭曲程度,当MCD小于8时可认为是可以接受的 比较的是

  • 由text-to-speech引擎产生的原声
  • 由iPhone 6 plus播放由三星Galaxy S6 Edge记录的声音(MCD 3.1)
  • 由TTS产生并调制且播放于全带宽的超声波播放器Vifa上(MCD 7.6) Alt text

    Attack Design

    1. 为VCS系统调制活动态和认知态下的声音指令基带信号
    2. 设计便携的发送器来在任何地方发动海豚音的攻击 以下基于Siri进行分析,其他SR系统也可以类似应用

      声音指令的产生

      为了控制VCS,海豚音需要在注入普通控制指令之前产生活动态下的指令“Hey Siri”

      活动态指令产生

      需要满足两个要求:1.包含唤醒词“Hey Siri” 2.将音色调至和使用用户相似 因此设计如下两种攻击场景:

    3. 攻击者不知道使用者的声音 基于Text-to-speech(TTS)系统,由于Siri不会区别音色近似的声音,因此攻击者能够准备一系列启动指令来暴力尝试,这些声音之间有音色上的差距。作者使用Google的TTS来训练Siri,然后用其他诸如Baidu等公司的TTS来攻击Siri
    4. 攻击者能够获得部分用户的声音 通过截取出一些音节片段进行重组,得到Hey Siri Alt text 实验在iPhone 4S上取得了成功

      普通控制指令的产生

      与活动态不同,此时的声音指令不区分用户身份,如下图所示: 测试环境:使用Google的TTS训练Siri,其他的TTS用以攻击,使用iPhone6 Plus来播放录音,使用iPhone 4S来开Siri Alt text 活动态打开率为39%

      声音指令调制

      为了利用麦克风中的非线性性质来攻击,海豚音需要使用放大调制(Amplitude modulation, AM)

      AM的调制参数

      在AM当中,载波的大小是随基带信号的峰值来调整的,成倍数关系。AM的主要能量都集中在载波频率和其相邻的基带上

      ==深度==

      调制深度m被定义为$m=M/A$,为调制时基带波和调制波的幅值比

      载波频率

      取决于如下因素:

  • 超声波的频率范围
  • 基带信号带宽
  • 低通滤波器的截止频率
  • 麦克风对VCS的频率响应
  • 攻击者的播放器频率响应 被调制的声音信号最低频率应保持在20kHz以上$fc-w>=20kHz$ 并且由于非线性性质,也需要寻找较好的载波频率来使得最后的放大倍数尽可能大,这可以通过实验获得
    声音选择

    选择基带范围尽可能小的来创建基带声音信号

    声音播放器

    作者们设计了两款播放器:一款是优良的信号发生器,另一款是能通过智能手机驱动的便携播放器;前一款用来检测海豚音的攻击范围,后一款用以测试walk-by-attack的可行性 播放器包括信号源、调制器和播放器

但是由于大部分的手机仅支持最高48kHz的采样率而实验测得大部分设备的最佳载波频率都在24kHz以上,因此作者们最终选择了三星Galaxy S6 Edge来做这个实验;但是由于三星这款手机上的自带的播放器会减弱20kHz以上的频率信号,作者们又使用一个窄带超声波变频器作为播放器,然后再在前面接一个放大器,如下图: Alt text

对于VCS的一些可行实验

实验对象:16个语音控制系统和7款语音识别系统,主要分析如下问题:

  1. 攻击是否能在不同的操作系统或者硬件平台上进行
  2. 不同的软硬件是否会对攻击效果产生影响
  3. 构造成功的攻击因素有哪些

    系统的选择

    主要选择市面上流行度较高的个人设备(穿戴设备、手机)、智能家庭设备和汽车等

    环境设置

    播放器使用载波频率为23/25/33/40/48kHz 被攻击设备放置在桌上,设备和播放器放置于同一高度来避免机械共振,背景噪音55dB,在测试带宽范围20-50kHz内无干扰声音。同时在设备上安装多个方向的麦克风,取解调效果最好的为准 命令选择了如下的一套指令: Alt text 对于每一条指令,选择TTS综合出的声音和作者自己的声音进行比较测试 声音大小:从播放器Vifa的10cm远处测量得到分贝大小为125 成功攻击的标志:SR系统识别出的文字和语音攻击指令相同 调制参数:主要针对调制频率和调制深度来考虑,因此他们还测量如下如下3个参数:

    • 调制频率范围:确定认知态下的攻击100%成功时的载波频率范围
    • 最佳频率:在解调后能获得最佳的带宽幅度增
    • AM深度:在最佳频率下的100%成功时的深度范围

可行性结果

Alt text

  • 硬件依赖性 由于海豚音的攻击依赖于数字处理系统之前的声音硬件系统,so it really counts
  • SR系统依赖性 同时,由于不同识别系统之间的差异,相同硬件之间可能会有诸如最佳频率,最远距离之类的区别
  • 识别态和活动态的区别
  • 命令之间的区别 攻击指令如果更加短而普遍的话,攻击效果也会得到提升
  • 载波频率之间的区别 载波频率存在有效的上下界,以Nexus 7为例: 上界为39kHz是因为Vifa播放器和Nexus的麦克风在39kHz时的频率响应都较低 下界为24kHz是因为麦克风的非线性频率响应 同时,不可闻的声音指令的幅值也不能低于由基带频率产生的二、三阶等的和声成分(可能由声音处理电路的非线性性质产生),否则会对原始波形产生影响导致无法被SR识别 Alt text
  • 调制深度 一般而言成功概率会随调制深度提升而提高
  • 攻击距离 如果设备能产生更高压强的声音或者有更好的声音传播方向性,距离还可以进一步提升
  • 实验的一些不足之处 由于缺乏相关的声音测量反馈界面,除了获取设备之外,测量各个参数对攻击效果的影响也是相当麻烦。需要在各个平台上安装各种各样的音谱分析软件,对于Apple Watch这种无法安装的,还需要使用其自带的录音功能,再将其重放给分析设备

    相关总结

  • 在16款不同设备、7款不同声音识别系统上几乎全部成功
  • 测量了在所有设备上的攻击效果,其中一些完全能够应用于真实生活场景,如对iPhone 4s和Amazon Echo的攻击
  • 测量、检查并讨论了SR系统、设备硬件、声音指令、fc、AM深度等对攻击效果的影响

    Impact Quantification

    本节主要讨论在使用大功率播放器时的语言、背景噪音、声音压强和攻击距离对攻击的的影响

    语言

    测试代表指令:启动SR系统Hey Siri、初始化用户监控Call 1234567890、拒绝服务攻击Turn on airplane mode 实验环境iPhone 6Plus,iOS 10.3.1,攻击距离20cm背景噪音55dB,fc=25kHz,AM深度100%。十次测试计算成功概率后,使用5种语言测试结果如下: Alt text

    背景噪音影响

    三种环境:办公室、咖啡厅和街道 通过改变背景音的大小来模拟不同环境下的影响: Alt text Hey Siri受影响较小是因为指令长度较短,任意单词的识别错误就可能导致整条指令的识别错误

    声强影响

    更高的Sound Pressure Level能有更好的信噪比,作者们考察两种粒度下的识别率和SPL之间的关系:一种是看一个句子中识别对的单词比例,另一种是看整个句子(指令)的识别率,显然前一种会比后一种高: Alt text 可以看到三星要达到100%比苹果所需的SPL要高,这是因为苹果设备在解调不可闻的声音时的能力要比三星强

    距离影响

    Alt text 由于Apple Watch是佩戴在手上的,因此可能本身具备了更好的接受性能

    便携设备攻击评估

  • 环境设置 攻击设备:三星S6 Edge + Android 6.0.1 被攻击设备:Apple Watch (与iPhone 6 Plus相连接) AM深度100%,采样率192kHz,基带最大频率3kHz,使用“开启飞行模式”作为攻击指令
  • 结果如下 Alt text The word and sentence recognition rates are 100%. With the increase of fc, the Apple watch fails to recognize the voice command because of frequency selectivity of the speaker. 使用功率放大器可以进一步提升攻击距离。 这种攻击方式也可以使用远程攻击,如将带有攻击音频的视频上传至播放网站等

    Defences

    硬件层面防护

    1. 很多麦克风还可以接受20kHz以上的声音,这部分应被过滤掉。目前已有iPhone 6 Plus已经可以实现抵抗不可闻声音的功能
    2. 同时对于已经发布的麦克风设备,可以在低通滤波器之前加一个检测调制的声音信号并且使用调制的声音信号来取消掉基带的声音信号。特别是我们可以检测那些带有AM调制特征的一些超声波段信号,并且通过解调这些信号来获得基带信号。如接收信号$v(t) = Am(t) cos(2π fct) + cos(2π fct)$可通过下变频得到$AM(t)$进而得到$m(t)$而这个过程不会影响到正常指令的传递

      软件层面防护

      Alt text 从图中可以看出,攻击信号无论是在发送的原始信号还是在解调出的信号中都存在较高频的成分(原始信号为Google TTS,fc=25kHz)。因此可以通过检测500-1000Hz的信号来分析海豚音,这里使用了SVM支持向量机来机器学习分类。 提取15个时域和频域上的特征,再通过NeoSpeech TTS 和Selvy TTS产生了总共14组声音指令,每组指令又有原始信号和解调信号两种,所以总共24个输入信号。 接下来使用5组无海豚音,5组带海豚音作为分类输入,剩余14组作为测试,发现测试命中率全部达到100%

      相关工作

  • VCS的安全研究
  • 装有传感器的设备安全研究
  • 通过传感器的隐私泄露 6