导语: 想象一下,无需接触目标设备,仅通过监测其感应电流就能破解其内部运行状态,这听起来像是科幻电影的情节,但如今,得益于TinyML技术的飞速发展,这已成为现实!Santander安全研究团队推出的CurrentSense-TinyML项目,完美诠释了这种令人惊叹的攻击方式,为我们揭示了微控制器安全的新挑战。
CurrentSense-TinyML:电流感知与TinyML的完美结合
CurrentSense-TinyML项目利用电流感知和TinyML技术,实现对微控制器行为的远程监测和分析。该项目并非凭空想象,而是建立在先前研究成果的基础上,并结合了Stacksmashing团队的优秀工作。其核心目标是证明利用机器学习(ML)进行电流监控侧信道攻击的可行性。通过在目标微控制器上运行一个简单的LED闪烁程序,并利用另一个搭载TinyML模型的微控制器监测目标微控制器的电流变化,来判断LED的闪烁状态,从而证明该方法的可行性。
项目原理与核心技术
CurrentSense-TinyML巧妙地利用了INA219电流传感器来采集目标微控制器的电流数据。INA219通过I2C接口与搭载TensorFlow Lite模型的Arduino Nano 33 Sense板连接。Arduino Nano 33 Sense板作为分析器,实时接收并处理INA219传来的电流数据。 预先训练好的TensorFlow Lite模型则负责分析这些电流数据,并推断出目标微控制器的运行状态,例如LED的闪烁状态。这个过程的关键在于,不同的微控制器操作会产生不同的电流特征,而TinyML模型能够学习并识别这些特征,从而实现对目标微控制器行为的“监控”。
实验结果与可行性验证
项目提供了一个Jupyter Notebook,详细记录了数据收集、模型训练和测试的全过程。实验结果表明,CurrentSense-TinyML能够准确地识别目标LED的闪烁状态。通过Arduino IDE的串口绘图工具,可以清晰地看到分析器LED与目标LED状态的同步变化,这有力地证明了该方法的可行性。项目还提供了Google Colaboratory链接,方便用户在线运行和体验。
项目搭建与环境配置
为了方便用户复现实验结果,项目提供了详细的安装步骤和硬件清单。首先,需要确保安装了Python 3.8.x(TensorFlow不支持Python 3.9.x),并利用conda创建相应的环境。然后,安装TensorFlow和必要的库。硬件方面,需要准备INA219电流传感器、目标Arduino Nano ATMEGA329P板、分析器Arduino Nano 33 Sense板、面包板以及必要的线缆。软件方面,可以使用Arduino IDE或PlatformIO进行开发。
攻防对抗与展望
CurrentSense-TinyML的成功,揭示了微控制器安全领域的新挑战。攻击者可以利用这种技术,在不接触目标设备的情况下,获取其内部信息,这对于物联网设备、嵌入式系统等的安全防护提出了更高的要求。
总结:
CurrentSense-TinyML项目为我们展示了TinyML技术在安全领域应用的巨大潜力。通过电流感知和TinyML的结合,我们可以以一种前所未有的方式来监测和分析微控制器行为。虽然该技术目前还处于早期阶段,但它已经为我们提供了新的安全视角,并促使我们重新思考微控制器安全防护的策略。 这不仅仅是一个技术演示,更是对未来安全挑战的预警。
项目地址:https://github.com/Santandersecurityresearch/CurrentSense-TinyML