IoT repackaging refers to an attack devoted to tampering with a legitimate firmware package by modifying its content (e.g., injecting some malicious code) and re-distributing it in the wild. In such a scenario, the firmware delivery and update processes play a central role in ensuring firmware integrity. Unfortunately, several existing solutions lack proper integrity verification, exposing firmware to repackaging attacks. If this is not the case, they still require an external trust anchor (e.g., signing keys or secure storage technologies), which could limit their adoption in resource-constrained environments. In addition, state-of-the-art frameworks do not cope with the entire firmware production and delivery process, thereby failing to protect the content generated by the firmware producers through the whole supply chain. To mitigate such a problem, in this paper, we introduce PATRIOT, a novel self-protecting scheme for IoT that allows the injection of integrity checks, called anti-tampering (AT) controls, directly into the firmware. The AT controls enable the runtime detection of repackaging attempts without needing external trust anchors or computationally expensive systems. \methodname{} can be adopted on top of existing state-of-the-art solutions ensuring the widest compatibility with current IoT ecosystems and update frameworks. Also, we have implemented this scheme into PATRIOTIC, a prototype to automatically protect C/C++ IoT firmware. The evaluation phase of 33 real-world firmware samples demonstrated the feasibility of the proposed methodology and its robustness against practical repackaging attacks without altering the firmware behavior or severe overheads.
翻译:IMT 重新包装是指专门用来修改内容(例如,输入一些恶意代码)和在野外重新分发合法固态软件包的攻击,目的是通过修改内容(例如,输入一些恶意代码)来篡改一个合法的固态软件包。在这种情况下,固态软件的交付和更新流程在确保固态完整性方面发挥着核心作用。 不幸的是,一些现有的解决方案缺乏适当的完整性核查,暴露了重新包装袭击的固态软件。如果不是这种情况,它们仍然需要外部信任定位(例如,签署密钥或安全存储技术),这可能会限制其在资源限制的环境中的采用。此外,最先进的框架无法应对整个固态软件的生产和交付过程,从而无法在整个供应链中保护固态软件制造商生成的内容。为了缓解这样一个问题,我们在本文件中引入了一种新型的ISTI自我保护计划,将防腐蚀(AT)控制直接引入固态软件。 AT控制能够实时检测重新包装尝试,而无需外部信任的固态系统或对当前高端系统进行升级。