Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Internet of Things-technologie

Zes stappen voor het beveiligen van embedded systemen in het IoT

Mark Pitchford van LDRA

Beveiliging blijft een allesoverheersende zorg voor een breed scala aan embedded systemen in het Internet of Things (IoT). Indien geïnfiltreerd, kunnen systemen die zijn begraven in het elektriciteitsnet, stroomopwekking, productie, autosystemen, medische apparatuur, gebouwbeheer, benzinepompen, broodroosters en nog veel meer een aanzienlijk risico vormen, Mark Pitchford van LDRA rapporten.

Gelukkig, met beveiliging, is het oude gezegde "een ons voorkomen is een pond genezing waard" zeker waar, en de basis van de veel nieuwere "shift left" buzz-zin! Technische vooruitziende blik helpt bij het bouwen van veilige systemen tegen lagere kosten dan later reactief testen. Aangezien het bouwen van veilige software veel gemeen heeft met het bouwen van functioneel veilige applicaties, begint de ontwikkeling van veilige software met het volgen van functionele veiligheidsprocessen.

Overweeg deze best practices om code van hoge kwaliteit te produceren en de beveiliging van embedded systemen te verbeteren:

1. Bouw beveiliging in de levenscyclus van softwareontwikkeling

Traditionele verificatie van beveiligde codes is grotendeels reactief. Code wordt ontwikkeld in overeenstemming met relatief losse richtlijnen en vervolgens getest om kwetsbaarheden te identificeren. Of u nu agile ontwikkeling gebruikt of een traditioneel ontwikkelingslevenscyclusmodel, er is een meer proactieve benadering van ingebouwde beveiliging.

Bij traditionele ontwikkeling vloeien de vereisten naar ontwerp, code (misschien via een model) en tests. Bij agile ontwikkeling worden eisen iteratief opgebouwd in lagen van binnenuit, elk met zijn eigen lus van eisen, ontwerp, code en test. Met beide methoden zal ervoor zorgen dat beveiligingsvereisten een integraal onderdeel van het ontwikkelingsproces zijn, tot een veel bevredigender resultaat leiden dan alleen op het einde naar kwetsbaarheden te zoeken.

2. Bidirectionele traceerbaarheid garanderen

De meeste functionele veiligheidsnormen vereisen bewijs van bidirectionele traceerbaarheid, bevestiging van volledige en grondige dekking tussen ontwikkelingsfasen tussen alle ontwikkelingsfasen, van vereisten tot ontwerp, code en test. Met een dergelijke transparantie kan de impact van eventuele wijzigingen in vereisten of van mislukte testcases worden beoordeeld met impactanalyse en vervolgens worden aangepakt.

Artefacten kunnen automatisch opnieuw worden gegenereerd om bewijs te leveren van voortdurende naleving van de juiste norm. Waar veiligheid voorop staat, zorgt bidirectionele traceerbaarheid er ook voor dat er geen redundante code of niet-gespecificeerde functionaliteit is en dat geldt ook voor achterdeurmethoden. Deze voordelen onderstrepen de waarde van systematische ontwikkeling om het vermogen om veilige systemen te bouwen te vergroten.

3. Kies een veilige taalsubset

Bij het ontwikkelen met C of C++ kan ongeveer 80% van de softwarefouten worden toegeschreven aan het onjuist gebruik van 20% van de taalconstructies. Taalsubsets verbeteren zowel de veiligheid als de beveiliging door het gebruik van onveilige constructies te voorkomen of te markeren. Twee populaire coderingsstandaarden, MISRA C en Carnegie Mellon Software Engineering Institute (SEI) CERT C, helpen ontwikkelaars om veilige code te produceren.

Het toepassen van MISRA C of CERT C zal resulteren in een veiligere code dan wanneer geen van beide zou zijn toegepast. Het handmatig afdwingen van deze richtlijnen gaat echter ten koste van tijd, moeite, geld en ironisch genoeg kwaliteit, aangezien het handmatige proces complex en foutgevoelig is. Om de kosten te verlagen en de productiviteit te verbeteren, moeten ontwikkelingsorganisaties ondersteuning voor compliance automatiseren.

4. Gebruik een op beveiliging gerichte processtandaard

Beveiligingsnormen vormen een ander onderdeel van de veilige ontwikkelingsoplossing, hoewel beveiligingsnormen niet zo goed zijn ontwikkeld en in de tijd zijn getest als functionele veiligheidsnormen, die al tientallen jaren worden gebruikt. Dit zal echter veranderen naarmate er branchespecifieke beveiligingsstandaarden worden ontwikkeld.

Zo ontwikkelt de auto-industrie momenteel ISO/SAE 21434 "Cybersecurity engineering voor wegvoertuigen" om het probleem van verbonden voertuigen als doelwit voor cyberaanvallen te verminderen. De belofte van een substantieel document met meer details dan de leidende principes op hoog niveau van SAE J3061 "Cybersecurity Guidebook for Cyber-Physical Vehicle Systems", zorgt ervoor dat ISO/SAE 21434 alom wordt verwacht.

5. Automatiseer zoveel mogelijk

In elke fase van het softwareontwikkelingsproces vermindert automatisering kwetsbaarheden in embedded systemen en bespaart het enorm veel tijd en kosten. Ontwikkelaars kunnen gebruikmaken van vereistentools (bijv. IBM Rational DOORS), simulatie- en modelleringsconstructies importeren en deze testen met de code om in één oogopslag te zien hoe en of aan de vereisten wordt voldaan, wat er ontbreekt en waar dode code is die dat niet doet. niet aan een vereiste voldoen.

Een statische analyse-engine kan de naleving van coderingsnormen en functionele veiligheids- en beveiligingsnormen controleren. Met automatisering en veilig ontwerp hebben reactieve tests zoals penetratietesten een plaats, maar hun rol is om te bevestigen dat de code veilig is om niet te achterhalen waar deze niet is.

6. Selecteer een veilige softwarebasis

Veilige embedded software moet draaien op een beveiligd platform, dus als een applicatie wordt aangevallen, draait deze in zijn eigen silo, geïsoleerd van andere softwarecomponenten (“domeinscheiding”). Geautomatiseerde softwaretest- en verificatietools kunnen worden geïntegreerd in algemene ontwikkelomgevingen, van het specificeren van vereisten via ontwerp en modellering tot codering en documentatie. Dit zorgt ervoor dat ontwikkelaars veilige systemen kunnen bouwen in een vertrouwde omgeving en met de tools die al voor hun systeem zijn gespecificeerd.

Het volgen van deze zes processen biedt een samenhangende benadering voor het ontwikkelen van embedded software voor het IoT die veilig, beveiligd en betrouwbaar is.

De auteur is Mark Pitchford van LDRA.

Voor meer informatie klik hier:


Internet of Things-technologie

  1. Industriële IoT beveiligen:het ontbrekende stukje van de puzzel
  2. De weg naar industriële IoT-beveiliging
  3. Beveiligingsproblemen van het industriële IoT aanpakken
  4. Het IoT beveiligen tegen cyberaanvallen
  5. De IoT-bedreigingsvector beveiligen
  6. IoT beveiligen door bedrog
  7. Hand in hand – Waarom het IoT SD-WAN nodig heeft
  8. Het IoT beveiligen van de netwerklaag naar de applicatielaag
  9. Vier stappen om de beste CISO aan te nemen in een IoT-wereld
  10. Drie stappen voor wereldwijde IoT-beveiliging
  11. Beveiliging versterkt het ware potentieel van IoT