Weeve Testimony – Een vertrouwde stap naar het beveiligen van machine-economie

(Gaurav Tiwari) (6 mei 2020)

Gegevens zijn vergeleken met grondstoffen zoals olie of goud. In deze verbonden wereld zullen steeds meer kwaliteitsdata het slimme besluitvormingsproces van machines die in een fabriek worden ingezet of verschillende gadgets die in onze huizen worden ingezet, mogelijk maken. Maar er ligt een grote uitdaging voor de boeg: hoe kunnen kwaliteitsvolle en betrouwbare gegevens veilig op een schaalbare en geautomatiseerde manier worden geleverd? Marktleiders voor low-end embedded apparaten werken er hard aan om de beste hardware- en softwarebeveiligingspraktijken die algemeen beschikbaar zijn op high-end apparaten naar deze microcontroller-apparaten te brengen. Beperkte middelen in microcontrollers, en met zoveel besturingssystemen en oplossingsstapels, leidt tot een complex en uitdagend landschap voor embedded beveiliging.

We kunnen de gegevensbeschermingsscenarios als volgt categoriseren;

  • Gegevens in rust
  • Gegevens onderweg
  • Gegevens in gebruik

Bij Weeve ontwikkelen we oplossingen op maat voor gegevensbeveiliging voor op microcontrollers gebaseerde IoT-apparaten.

  • We beschermen data at rest gebruikt een vertrouwde opslagoplossing. Deze gegevens bevatten cryptografische activa, zoals sleutels of bepaalde digitale activa, zoals virtuele munten enz.
  • Met gegevens onderweg, we hebben Weeve MQTTS ontwikkeld, een lichtgewicht en veilig publish-subscribe gebaseerd op het MQTT-protocol, op maat gemaakt voor low-end apparaten. Dit is een alternatief voor MQTT via TLS, dat meer stroombronnen verbruikt aan de rand.
  • Voor gebruikte gegevens we behandelen de integriteit van het proces dat op een IoT-apparaat wordt uitgevoerd. Dit proces kan het verzamelen van nuttige gegevens zijn met behulp van sensoren of het uitvoeren van een gegevensverwerkingsstap of zelfs het uitvoeren van een bedrijfslogica in het geval van een actuator. Het detecteren en voorkomen van de softwarekwetsbaarheden van het proces is hier de sleutel. We ontwikkelen Weeve Testimony , een real-time controleverklaring-applicatie, die het onderwerp is van deze blogserie.

Voordat we Weeve Testimony introduceren, is hier een klein beetje technische achtergrond van problemen die we oplossen en technologieën die in onze oplossing worden gebruikt.

Kwetsbaarheidsproblemen in het C-programma

Bijna alle embedded software en firmware op laag niveau is ontwikkeld in de programmeertaal C. Het ontbreken van de juiste grenscontroles voor het bedoelde toegewezen geheugen is een bron van grote beveiligingsrisicos. Naast bufferoverloop lijdt C-programma aan integer-overflow, string-formaat kwetsbaarheid, overschrijven retouradres, etc. Er is ook een nieuwe klasse van beveiligingsbedreigingen voor een C-programma zoals return-to-libc , en algemener return-oriented programming (ROP) die zeer effectief zijn tegen gangbare mitigatietechnieken zoals Preventie van gegevensuitvoering en code-ondertekening. Een juiste codebeoordeling met statische en dynamische applicatiebeveiligingstools kan de ernst van dergelijke kwetsbaarheden verminderen. Andere technieken in de toolchain zoals stack-smashing-protection, in de hardware zelf zoals NX-bit set voor datasegmenten, tijdens runtime zoals Address Space Layout Randomizations (ASLR) bestaan. Maar het programma is nog lang niet een eerlijke garantie zonder kwetsbaarheid. In de context van op microcontrollers gebaseerde low-end apparaten, is de meest effectieve mitigatietechniek van ASLR niet geïmplementeerd vanwege praktische bruikbaarheid om te voorkomen dat er een run-time loader is.

Onze aanpak om kwetsbaarheden in C-programmas te verminderen

Om problemen met de kwetsbaarheid van C-programmas aan te pakken, gaan we ervan uit dat er altijd beveiligingsfouten in het programma zullen zijn, en daarom durven we ze tijdens runtime te detecteren. We stellen ons het bestaan ​​voor van een meer geprivilegieerd geïsoleerd bewakingsproces dat het gedrag van een actief C-programma (de MCU-firmware) inspecteert en getuigt . Het bewakingsproces moet geïsoleerd en meer geprivilegieerd zijn dan de normale firmware, want als het deel uitmaakt van hetzelfde proces of een vergelijkbaar bevoegdheidsniveau als normale firmware, kan de hacker het bewakingsproces ook hacken door gebruik te maken van dezelfde kwetsbaarheid in normale firmware . We voorzien ook de behoefte van een externe attestatie-entiteit die van tevoren (met behulp van onze profileringstool) alle geldige momentopnamen van de uitvoering van normale firmware-uitvoering kent en periodiek getuigt van deze momentopnamen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *