Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Sechs Schritte zur Sicherung eingebetteter Systeme im IoT

Mark Pitchford von LDRA

Sicherheit ist nach wie vor ein vorrangiges Anliegen für eine Vielzahl eingebetteter Systeme im Internet der Dinge (IoT). Im Stromnetz vergrabene Systeme, Stromerzeugung, Fertigung, Automobilsysteme, medizinische Geräte, Gebäudemanagement, Zapfsäulen, Toaster und vieles mehr können bei Infiltration ein erhebliches Risiko darstellen, Mark Pitchford von LDRA Berichte.

Glücklicherweise ist mit Sicherheit das alte Sprichwort „Eine Unze Prävention ist ein Pfund Heilung wert“ sicherlich wahr und die Grundlage des viel neueren Schlagworts „nach links verschieben“! Engineering Foresight hilft beim Aufbau sicherer Systeme zu geringeren Kosten als späteres reaktives Testen. Da das Erstellen sicherer Software viel mit dem Erstellen funktional sicherer Anwendungen gemeinsam hat, beginnt die Entwicklung sicherer Software mit der Befolgung funktionaler Sicherheitsprozesse.

Berücksichtigen Sie diese Best Practices, um qualitativ hochwertigen Code zu erstellen und die Sicherheit eingebetteter Systeme zu verbessern:

1. Integrieren Sie Sicherheit in den Softwareentwicklungslebenszyklus

Die traditionelle sichere Codeverifizierung ist weitgehend reaktiv. Code wird in Übereinstimmung mit relativ lockeren Richtlinien entwickelt und dann getestet, um Schwachstellen zu identifizieren. Unabhängig davon, ob Sie agile Entwicklung oder ein traditionelles Entwicklungslebenszyklusmodell verwenden, es gibt einen proaktiveren Ansatz für integrierte Sicherheit.

Bei der traditionellen Entwicklung fließen Anforderungen in das Design, in den Code (vielleicht über ein Modell) und in die Tests ein. Bei der agilen Entwicklung werden Anforderungen iterativ in Schichten von innen nach außen aufgebaut, jede mit ihrer eigenen Schleife aus Anforderungen, Design, Code und Test. Bei beiden Methoden führt die Sicherstellung, dass Sicherheitsanforderungen ein integraler Bestandteil des Entwicklungsprozesses sind, zu einem weitaus zufriedenstellenderen Ergebnis, als am Ende nur nach Schwachstellen zu suchen.

2. Bidirektionale Rückverfolgbarkeit sicherstellen

Die meisten funktionalen Sicherheitsstandards erfordern den Nachweis der bidirektionalen Rückverfolgbarkeit, die eine vollständige und gründliche Abdeckung zwischen den Entwicklungsphasen zwischen allen Entwicklungsstadien von den Anforderungen über das Design, den Code und den Test bestätigt. Mit dieser Transparenz können die Auswirkungen von Änderungen an Anforderungen oder von fehlgeschlagenen Testfällen mit einer Auswirkungsanalyse bewertet und dann adressiert werden.

Artefakte können automatisch neu generiert werden, um den Nachweis der fortgesetzten Einhaltung des entsprechenden Standards zu erbringen. Wenn Sicherheit von größter Bedeutung ist, stellt die bidirektionale Rückverfolgbarkeit auch sicher, dass kein redundanter Code oder nicht spezifizierte Funktionalität vorhanden ist, und dies umfasst auch Backdoor-Methoden. Diese Vorteile unterstreichen den Wert einer systematischen Entwicklung, um die Fähigkeit zum Aufbau sicherer Systeme zu erhöhen.

3. Wählen Sie eine sichere Sprachuntergruppe

Bei der Entwicklung mit C oder C++ sind etwa 80 % der Softwarefehler auf die falsche Verwendung von 20 % der Sprachkonstrukte zurückzuführen. Sprachuntergruppen verbessern sowohl die Sicherheit als auch die Sicherheit, indem sie die Verwendung unsicherer Konstrukte verhindern oder kennzeichnen. Zwei beliebte Codierungsstandards, MISRA C und Carnegie Mellon Software Engineering Institute (SEI) CERT C, helfen Entwicklern, sicheren Code zu erstellen.

Die Anwendung von MISRA C oder CERT C führt zu einem sichereren Code, als wenn keines von beiden angewendet würde. Die manuelle Durchsetzung dieser Richtlinien kostet jedoch Zeit, Mühe, Geld und ironischerweise Qualität, da der manuelle Prozess komplex und fehleranfällig ist. Um Kosten zu senken und die Produktivität zu steigern, müssen Entwicklungsorganisationen den Compliance-Support automatisieren.

4. Verwenden Sie einen sicherheitsorientierten Prozessstandard

Sicherheitsstandards stellen einen weiteren Teil der sicheren Entwicklungslösung dar, obwohl Sicherheitsstandards nicht so gut entwickelt und erprobt sind wie funktionale Sicherheitsstandards, die jahrzehntelang verwendet wurden. Dies wird sich jedoch ändern, wenn branchenspezifische Sicherheitsstandards entwickelt werden.

Die Automobilindustrie beispielsweise entwickelt derzeit die ISO/SAE 21434 „Road Vehicles Cybersecurity Engineering“, um das Problem vernetzter Fahrzeuge als Ziel von Cyberangriffen zu mildern. Das Versprechen eines substanziellen Dokuments mit mehr Details als den hochrangigen Leitprinzipien des SAE J3061 „Cybersecurity Guidebook for Cyber-Physical Vehicle Systems“ lässt ISO/SAE 21434 weithin antizipieren.

5. Automatisieren Sie so viel wie möglich

In jeder Phase des Softwareentwicklungsprozesses reduziert die Automatisierung Schwachstellen in eingebetteten Systemen und spart enorm viel Zeit und Kosten. Entwickler können Anforderungstools (z. B. IBM Rational DOORS) einbinden, Simulations- und Modellierungskonstrukte importieren und diese gegen den Code testen, um auf einen Blick zu sehen, wie und ob die Anforderungen erfüllt sind, was fehlt und wo toter Code ist, der nicht funktioniert. Eine Anforderung nicht erfüllen.

Eine statische Analyse-Engine kann die Einhaltung von Codierungsstandards und funktionalen Sicherheitsstandards überprüfen. Bei Automatisierung und sicherem Design haben reaktive Tests wie Penetrationstests ihren Platz, aber ihre Rolle besteht darin, zu bestätigen, dass der Code sicher ist, um nicht herauszufinden, wo er nicht ist.

6. Wählen Sie eine sichere Softwaregrundlage aus

Sichere eingebettete Software muss auf einer sicheren Plattform laufen, d. h. wenn eine Anwendung angegriffen wird, läuft sie in einem eigenen Silo, isoliert von anderen Softwarekomponenten („Domänentrennung“). Automatisierte Softwaretest- und Verifikationstools lassen sich von der Anforderungsspezifikation über das Design und die Modellierung bis hin zur Codierung und Dokumentation in gängige Entwicklungsumgebungen integrieren. Dies stellt sicher, dass Entwickler sichere Systeme in einer vertrauten Umgebung und mit den bereits für ihr System spezifizierten Tools erstellen können.

Die Befolgung dieser sechs Prozesse bietet einen zusammenhängenden Ansatz zur Entwicklung eingebetteter Software für das IoT, die sicher und zuverlässig ist.

Der Autor ist Mark Pitchford von LDRA.

Für weitere Informationen klicken Sie hier:


Internet der Dinge-Technologie

  1. Absicherung des industriellen IoT:das fehlende Puzzleteil
  2. Der Weg zur industriellen IoT-Sicherheit
  3. Bekämpfung von Sicherheitslücken des industriellen IoT
  4. Sicherung des IoT gegen Cyberangriffe
  5. Absicherung des IoT-Bedrohungsvektors
  6. Sicherung des IoT durch Täuschung
  7. Hand in Hand – Warum das IoT SD-WAN braucht
  8. Absicherung des IoT von der Netzwerkschicht bis zur Anwendungsschicht
  9. Vier Schritte zur Einstellung des besten CISO in einer IoT-Welt
  10. Drei Schritte für globale IoT-Sicherheit