{"id":4093,"date":"2022-09-20T09:00:25","date_gmt":"2022-09-20T07:00:25","guid":{"rendered":"https:\/\/sanctuary.dev\/?p=4093"},"modified":"2022-09-26T10:22:35","modified_gmt":"2022-09-26T08:22:35","slug":"managing-run-time-vulnerabilities","status":"publish","type":"post","link":"https:\/\/sanctuary.dev\/de\/blog\/managing-run-time-vulnerabilities\/","title":{"rendered":"Managing von Laufzeitschwachstellen"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"4093\" class=\"elementor elementor-4093\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-51504da nd-elementor-section-full elementor-section-height-default elementor-section-height-default\" data-id=\"51504da\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b4cd865\" data-id=\"b4cd865\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ed5add9 elementor-widget elementor-widget-text-editor\" data-id=\"ed5add9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p class=\"nd-font-size-intro translation-block\">Der Umgang mit Laufzeitschwachstellen ist ein ziemlich unangenehmes Problem der modernen Softwareentwicklung. In diesem Beitrag werden wir eine Reihe von Ans\u00e4tzen untersuchen, die von der Sicherheitsgemeinschaft vorgeschlagen und umgesetzt wurden. Einige Ans\u00e4tze zielen darauf ab, das Vorhandensein von Fehlern zu <em>verhindern<\/em>, andere zielen darauf ab, die Fehler zu <em>finden<\/em>, bevor der Code bereitgestellt wird, und wieder andere zielen darauf ab, die Ausnutzung vorhandener Fehler in der Praxis zu erschweren.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a54d028 nd-elementor-section-big elementor-section-height-default elementor-section-height-default\" data-id=\"a54d028\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f9a9429\" data-id=\"f9a9429\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1f9dbdd elementor-widget elementor-widget-nd-image\" data-id=\"1f9dbdd\" data-element_type=\"widget\" data-widget_type=\"nd-image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<div class=\"nd-image\">\n                \n    \n        \n                <div class=\"d-flex flex-wrapper align-items-start\">\n                                            <img decoding=\"async\" style=\"\" src=\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches.png\" class=\"full-image skip-lazy\"  srcset=\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches.png 1920w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-720x440.png 720w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-1620x990.png 1620w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-1162x710.png 1162w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-1536x938.png 1536w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-18x12.png 18w, https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/Vulnerability-Management-Approaches-480x293.png 480w\" sizes=\"(min-width: 768px) 100vw, 100vw\" alt=\"Overview Vulnerability Management Approaches\">\n                                    <\/div>\n            \n        \n        \n    <\/div>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7266d3b nd-elementor-section-full elementor-section-height-default elementor-section-height-default\" data-id=\"7266d3b\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a973b97\" data-id=\"a973b97\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-60efb47 elementor-widget elementor-widget-text-editor\" data-id=\"60efb47\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<h2 id=\"preventing-run-time-vulnerabilities\">Verhindern von Memory Corruption<\/h2>\nDer radikalste Ansatz ist der Versuch, zu verhindern, dass Schwachstellen zur Laufzeit in die Anwendung eingef\u00fchrt werden. Der Wechsel von einer speicherunsicheren Sprache wie C (bei der die Last der Speicherverwaltung dem Programmierer aufgeb\u00fcrdet wird) zu einer speichersicheren Sprache wie Rust oder Python verhindert von vornherein eine Reihe von Schwachstellen, die den Speicher besch\u00e4digen k\u00f6nnen. \u00c4hnliche Effekte, wenn auch schwieriger zu beweisen, lassen sich mit der Ausbildung von Entwicklern und strengen Kodierungskonventionen erzielen.\n\nDiese Ans\u00e4tze sind zwar wertvoll, helfen aber nicht bei Projekten mit bestehenden Codebases, die in speicherunsicheren Sprachen geschrieben wurden.\n<h2 id=\"finding-run-time-vulnerabilities-before-deployment\">Finden von Fehlern vor dem Deployment<\/h2>\nEin zweiter Ansatz f\u00fcr den Umgang mit Laufzeitschwachstellen besteht darin, das wahrscheinliche Vorhandensein von Schwachstellen durch Speicherkorruption in einer Codebase zu erkennen und zu versuchen, diese vor dem Einsatz in einer Produktionsumgebung zu finden. Dies kann mit einer Reihe von Techniken erreicht werden:\n\n<ul class=\"ul default-list\">\n \t<li class=\"translation-block\"><span>Eine umfassende Testsuite kann n\u00fctzlich sein, um sicherzustellen, dass der Code der Spezifikation entspricht. Von Menschen geschriebene Testsuiten konzentrieren sich jedoch in der Regel auf die <em>beabsichtigte<\/em> Funktionalit\u00e4t, w\u00e4hrend Schwachstellen per Definition <em>unbeabsichtigt<\/em> sind.<\/span><\/li>\n \t<li><span>Automated software testing, or <em>fuzzing<\/em>, can be used to automatically construct interesting test cases and explore any reachable branch of the program. Fuzzing is a very effective technique to find bugs and we use it extensively at SANCTUARY to uncover complex bugs in our software during development. However, it does not give any guarantee about the absence of further bugs in the program.&nbsp;<\/li>\n \t<li class=\"translation-block\"><span>Statische Analysewerkzeuge k\u00f6nnen eine Reihe von Code-Patterns erkennen und melden, die gegen die Best Practices versto\u00dfen und oft zu Laufzeitschwachstellen f\u00fchren. Ein beliebtes Werkzeug ist der <a href=\"https:\/\/clang-analyzer.llvm.org\/\" target=\"_self\"><span class=\"underline-magic\">Clang Static Analyzer<\/span><\/a>, der leicht zu einem LLVM-basierten Kompilierungsfluss hinzugef\u00fcgt werden kann und auch ein Ansatz ist, den wir bei SANCTUARY verwenden, um eine hohe Codequalit\u00e4t zu gew\u00e4hrleisten. W\u00e4hrend statische Analysewerkzeuge helfen, eine gute Codequalit\u00e4t zu gew\u00e4hrleisten, geben sie auch h\u00e4ufig falsche Warnungen aus.<\/span><\/li>\n \t<li><span>Mit Hilfe formaler Methoden l\u00e4sst sich nachweisen, dass sich das Programm entsprechend einer Spezifikation verh\u00e4lt. Dies ist eine sehr leistungsf\u00e4hige Garantie; allerdings kann die formale \u00dcberpr\u00fcfung der Korrektheit eines Programms einen erheblichen menschlichen Aufwand erfordern. Daher l\u00e4sst sich diese Methode nur schlecht auf komplexe Software anwenden. Die Anwendung formaler Methoden auf \u00e4lteren Code ist sogar noch schwieriger, und oft muss ein Kompromiss dar\u00fcber geschlossen werden, welche Teile verifiziert werden sollen.<\/span><\/li>\n<\/ul>\nDie Anwendung dieser Techniken f\u00fchrt in der Regel zur Entdeckung vieler Bugs. Solange jedoch keine formalen Methoden verwendet werden, ist es unm\u00f6glich zu garantieren, dass die Anwendung fehlerfrei ist. Daraus folgt, <em>dass Laufzeitverteidigungen<\/em>&nbsp; ebenfalls verwendet werden sollten.\n\n<h2 id=\"mitigating-existing-run-time-vulnerabilities\">Unerkannte Schwachstellen Verteidigen<\/h2>\nDer letzte Ansatz f\u00fcr das Management von Laufzeitschwachstellen tr\u00e4gt der Tatsache Rechnung, dass es selbst nach gr\u00fcndlichen Tests wahrscheinlich immer noch Schwachstellen im Speicherbereich gibt, die nicht entdeckt wurden. <em>Laufzeitverteidigungen<\/em>&nbsp; Diese zielen darauf ab, die Ausnutzung von Schwachstellen zu erschweren. Laufzeitverteidigungen k\u00f6nnen nach ihrem Funktionsprinzip kategorisiert werden:\n\n<ul class=\"ul default-list\">\n \t<li><span>Verteidigungen basierend auf <em>Software Diversity<\/em> (oder Randomisierung) \u00e4ndern automatisch einige Details der Anwendung, die der Angreifer kennen muss, um den Angriff durchzuf\u00fchren. Die Funktionalit\u00e4t der Anwendung bleibt unver\u00e4ndert, aber dem Angreifer fehlen nun einige Informationen, die f\u00fcr den Angriff erforderlich sind. Eine g\u00e4ngige Abhilfema\u00dfnahme besteht beispielsweise darin, den Ort des Anwendungscodes im Speicher zu randomisieren. Randomisierungsschutzma\u00dfnahmen sind konzeptionell einfach und zeichnen sich in der Regel durch gute Kompatibilit\u00e4t und geringen Leistungs-Overhead aus. Wenn der Angreifer jedoch in der Lage ist, das Geheimnis der Randomisierung zu erraten oder auf irgendeine Weise offenzulegen, ist die Schutzma\u00dfnahme nicht mehr wirksam. Daher kombinieren wir bei SANCTUARY die Zufallsgenerierung mit den beiden anderen unten genannten Schutzma\u00dfnahmen.<\/span><\/li>\n \t<li><span>Verteidigungen basierend auf <em>Integrit\u00e4tspr\u00fcfungen<\/em>&nbsp; instrumentieren die Anwendung, um bestimmte Sicherheitseigenschaften durchzusetzen. Ein bekanntes Beispiel ist die Kontrollflussintegrit\u00e4t (Control-Flow Integrity, CFI), die sicherstellt, dass der tats\u00e4chliche Kontrollfluss eines Programms mit einem Kontrollflussgraphen (Control-Flow Graph, CFG) \u00fcbereinstimmt, der aus dem Quellcode des Programms generiert werden kann. W\u00e4hrend CFI deterministische Sicherheitsgarantien bietet, ist die Generierung genauer CFGs sehr schwierig, was dazu f\u00fchrt, dass approximative CFGs verwendet werden m\u00fcssen, was die Schutzgenauigkeit verringert. Au\u00dferdem sch\u00fctzt CFI nicht vor Angriffen, die nicht von der theoretischen CFG abweichen; dazu geh\u00f6ren einfache Angriffe, die nur einige Daten aus dem Speicher lesen, und komplexere Angriffe, die nur Daten betreffen.<\/span><\/li>\n \t<li><span>Verteidigungen basierend auf <em>Speicherisolation<\/em>&nbsp; zielen darauf ab, die Anwendung in kleinere Komponenten aufzuteilen und Barrieren zwischen ihnen zu erzwingen, so dass eine Schwachstelle in einer Komponente nicht f\u00fcr einen Angriff auf eine andere Komponente genutzt werden kann. So verwenden beispielsweise vertrauensw\u00fcrdige Ausf\u00fchrungsumgebungen (Trusted Execution Environments, TEEs) eine durch Hardware verst\u00e4rkte Speicherisolierung, um ihre Integrit\u00e4t und Vertraulichkeit zu gew\u00e4hrleisten. Dies ist auch das Kernkonzept der <a href=\"https:\/\/sanctuary.dev\/de\/solutions\/consolidation\/\">Sanctuary Embedded Consolidation<\/a>Dennoch kann es immer noch eine Schwachstelle innerhalb derselben Komponente geben, f\u00fcr die wir bei SANCTUARY die beiden erstgenannten Abhilfema\u00dfnahmen in Kombination mit umfangreichen Tests einsetzen.<\/span><\/li>\n<\/ul>\nDiese Laufzeitverteidigungen k\u00f6nnen auch kombiniert werden: So kann beispielsweise eine Verteidigung wie CFI innerhalb eines TEE eingesetzt werden. <a href=\"https:\/\/sanctuary.dev\/de\/solutions\/security-services\/\">Monitoring<\/a> kann ebenfalls genutzt werden um aus einem Angriff folgende Anomalien zu erkennen.\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Laufzeitschwachstellen sind ein l\u00e4stiges Problem der modernen Softwareentwicklung. In diesem Beitrag untersuchen wir eine Reihe von Ans\u00e4tzen, die von der Sicherheitsgemeinschaft vorgeschlagen und umgesetzt wurden. Einige Ans\u00e4tze zielen darauf ab, das Vorhandensein von Fehlern zu verhindern, andere zielen darauf ab, die Fehler zu finden, bevor der Code bereitgestellt wird. Wieder andere zielen darauf ab, die Ausnutzung vorhandener Fehler in der Praxis zu erschweren.<\/p>","protected":false},"author":11,"featured_media":4112,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-4093","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-know-how"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Managing Run-Time Vulnerabilities - SANCTUARY<\/title>\n<meta name=\"description\" content=\"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sanctuary.dev\/de\/blog\/managing-run-time-vulnerabilities\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Managing Run-Time Vulnerabilities - SANCTUARY\" \/>\n<meta property=\"og:description\" content=\"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sanctuary.dev\/de\/blog\/managing-run-time-vulnerabilities\/\" \/>\n<meta property=\"og:site_name\" content=\"SANCTUARY\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-20T07:00:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-26T08:22:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"821\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Tommaso Frassetto\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@sanctuary_dev\" \/>\n<meta name=\"twitter:site\" content=\"@sanctuary_dev\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/\"},\"author\":{\"name\":\"Tommaso Frassetto\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/5ae917b53e37c76258cccc3f7463cad0\"},\"headline\":\"Managing Run-Time Vulnerabilities\",\"datePublished\":\"2022-09-20T07:00:25+00:00\",\"dateModified\":\"2022-09-26T08:22:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/\"},\"wordCount\":871,\"publisher\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/#organization\"},\"image\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg\",\"articleSection\":[\"Know-how\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/\",\"url\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/\",\"name\":\"Managing Run-Time Vulnerabilities - SANCTUARY\",\"isPartOf\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg\",\"datePublished\":\"2022-09-20T07:00:25+00:00\",\"dateModified\":\"2022-09-26T08:22:35+00:00\",\"description\":\"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.\",\"breadcrumb\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage\",\"url\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg\",\"contentUrl\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg\",\"width\":1200,\"height\":821,\"caption\":\"Managing run-time vulnerabiltiies\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/sanctuary.dev\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Run-Time Vulnerabilities\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#website\",\"url\":\"https:\/\/sanctuary.dev\/en\/\",\"name\":\"SANCTUARY\",\"description\":\"The Embedded Security Experts\",\"publisher\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/sanctuary.dev\/en\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#organization\",\"name\":\"SANCTUARY\",\"url\":\"https:\/\/sanctuary.dev\/en\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/07\/sanctuary_linkedin_logo_v4.png\",\"contentUrl\":\"https:\/\/sanctuary.dev\/app\/uploads\/2022\/07\/sanctuary_linkedin_logo_v4.png\",\"width\":1841,\"height\":1841,\"caption\":\"SANCTUARY\"},\"image\":{\"@id\":\"https:\/\/sanctuary.dev\/en\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/sanctuary_dev\",\"https:\/\/www.linkedin.com\/company\/sanctuary-dev\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/5ae917b53e37c76258cccc3f7463cad0\",\"name\":\"Tommaso Frassetto\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fe19fd55fdeee8289a9a527ffa7307c3f17c8cd85e2f168d3ab04a3497e1876?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fe19fd55fdeee8289a9a527ffa7307c3f17c8cd85e2f168d3ab04a3497e1876?s=96&d=mm&r=g\",\"caption\":\"Tommaso Frassetto\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Managing Run-Time Vulnerabilities - SANCTUARY","description":"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sanctuary.dev\/de\/blog\/managing-run-time-vulnerabilities\/","og_locale":"de_DE","og_type":"article","og_title":"Managing Run-Time Vulnerabilities - SANCTUARY","og_description":"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.","og_url":"https:\/\/sanctuary.dev\/de\/blog\/managing-run-time-vulnerabilities\/","og_site_name":"SANCTUARY","article_published_time":"2022-09-20T07:00:25+00:00","article_modified_time":"2022-09-26T08:22:35+00:00","og_image":[{"width":1200,"height":821,"url":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg","type":"image\/jpeg"}],"author":"Tommaso Frassetto","twitter_card":"summary_large_image","twitter_creator":"@sanctuary_dev","twitter_site":"@sanctuary_dev","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#article","isPartOf":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/"},"author":{"name":"Tommaso Frassetto","@id":"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/5ae917b53e37c76258cccc3f7463cad0"},"headline":"Managing Run-Time Vulnerabilities","datePublished":"2022-09-20T07:00:25+00:00","dateModified":"2022-09-26T08:22:35+00:00","mainEntityOfPage":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/"},"wordCount":871,"publisher":{"@id":"https:\/\/sanctuary.dev\/en\/#organization"},"image":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage"},"thumbnailUrl":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg","articleSection":["Know-how"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/","url":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/","name":"Managing Run-Time Vulnerabilities - SANCTUARY","isPartOf":{"@id":"https:\/\/sanctuary.dev\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage"},"image":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage"},"thumbnailUrl":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg","datePublished":"2022-09-20T07:00:25+00:00","dateModified":"2022-09-26T08:22:35+00:00","description":"Managing run-time vulnerabilities is a nasty problem of modern software engineering. In this post, we examine approaches to address them.","breadcrumb":{"@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#primaryimage","url":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg","contentUrl":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/06\/HackerCode.jpg","width":1200,"height":821,"caption":"Managing run-time vulnerabiltiies"},{"@type":"BreadcrumbList","@id":"https:\/\/sanctuary.dev\/en\/blog\/managing-run-time-vulnerabilities\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sanctuary.dev\/en\/"},{"@type":"ListItem","position":2,"name":"Managing Run-Time Vulnerabilities"}]},{"@type":"WebSite","@id":"https:\/\/sanctuary.dev\/en\/#website","url":"https:\/\/sanctuary.dev\/en\/","name":"SANCTUARY","description":"The Embedded Security Experts","publisher":{"@id":"https:\/\/sanctuary.dev\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sanctuary.dev\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/sanctuary.dev\/en\/#organization","name":"SANCTUARY","url":"https:\/\/sanctuary.dev\/en\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sanctuary.dev\/en\/#\/schema\/logo\/image\/","url":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/07\/sanctuary_linkedin_logo_v4.png","contentUrl":"https:\/\/sanctuary.dev\/app\/uploads\/2022\/07\/sanctuary_linkedin_logo_v4.png","width":1841,"height":1841,"caption":"SANCTUARY"},"image":{"@id":"https:\/\/sanctuary.dev\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/sanctuary_dev","https:\/\/www.linkedin.com\/company\/sanctuary-dev\/"]},{"@type":"Person","@id":"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/5ae917b53e37c76258cccc3f7463cad0","name":"Tommaso Frassetto","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sanctuary.dev\/en\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fe19fd55fdeee8289a9a527ffa7307c3f17c8cd85e2f168d3ab04a3497e1876?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fe19fd55fdeee8289a9a527ffa7307c3f17c8cd85e2f168d3ab04a3497e1876?s=96&d=mm&r=g","caption":"Tommaso Frassetto"}}]}},"_links":{"self":[{"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/posts\/4093","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/comments?post=4093"}],"version-history":[{"count":133,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/posts\/4093\/revisions"}],"predecessor-version":[{"id":4709,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/posts\/4093\/revisions\/4709"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/media\/4112"}],"wp:attachment":[{"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/media?parent=4093"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/categories?post=4093"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sanctuary.dev\/de\/wp-json\/wp\/v2\/tags?post=4093"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}