{"id":79564,"date":"2026-10-28T06:34:53","date_gmt":"2026-10-28T06:34:53","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=79564"},"modified":"2026-10-28T06:34:54","modified_gmt":"2026-10-28T06:34:54","slug":"iso-sae-21434-in-action-automotive-threat-analysis-cybersecurity-requirements-and-lifecycle-evidence","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/iso-sae-21434-in-action-automotive-threat-analysis-cybersecurity-requirements-and-lifecycle-evidence\/","title":{"rendered":"ISO\/SAE 21434 in Action: Automotive Threat Analysis, Cybersecurity Requirements, and Lifecycle Evidence"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A connected vehicle is a moving network of electronic control units, sensors, gateways, telematics services, diagnostic tools, mobile applications, and cloud infrastructure. Protecting just the cloud service is not enough if attackers can exploit a vehicle update mechanism, impersonate a diagnostic tester, or alter traffic across an in-vehicle interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ISO\/SAE 21434<\/strong>&nbsp;establishes an automotive cybersecurity engineering framework that covers cybersecurity risk management across the lifecycle of road-vehicle electrical and electronic (E\/E) systems, their components, and interfaces. The published first edition is ISO\/SAE 21434:2021. A second edition has been initiated but is not yet the published replacement. There is&nbsp;<strong>no official universal maturity-scale ranking of organizations from Level 1 through Level 5<\/strong>&nbsp;in ISO\/SAE 21434.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cybersecurity is not identical to functional safety<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ISO 26262 concentrates on hazards arising from malfunctioning E\/E behavior and related functional safety engineering. ISO\/SAE 21434 concentrates on cybersecurity threats and risks from malicious or unauthorized actions. Some consequences can overlap: a malicious command may cause a safety-relevant outcome, while an unintentional defect may originate from a different mechanism.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, a telematics ECU may be designed to tolerate accidental network faults, but an attacker could attempt to inject unauthorized control messages. The safety team and cybersecurity team must coordinate their analyses without pretending that a Hazard Analysis and Risk Assessment (HARA) is the same as a&nbsp;<strong>Threat Analysis and Risk Assessment (TARA)<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Understand the automotive cybersecurity lifecycle<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">New threats and vulnerabilitiesOrganizational governanceConcept and item definitionTARA and cybersecurity goalsSystem and component requirementsDesign, implementation, and integrationVerification and validationProduction and post-developmentMonitoring, maintenance, and end-of-life<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The management framework includes organizational cybersecurity management, project-dependent cybersecurity management, distributed cybersecurity activities with suppliers, continual cybersecurity activities, cybersecurity concept, product development, production, operations, maintenance, and decommissioning. Each project needs well-defined work products, responsibilities, decisions, and traceability.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A running example: Secure over-the-air firmware updates<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Northstar Mobility supplies a telematics unit with over-the-air (OTA) firmware updates. The unit communicates with a cloud backend, receives update metadata, downloads software, verifies it, and installs it. The engineering team must preserve update authenticity, protect rollback policy, restrict administrative privileges, and maintain reliable recovery after failed updates.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Element<\/th><th class=\"has-text-align-left\" data-align=\"left\">Example<\/th><\/tr><\/thead><tbody><tr><td>Item<\/td><td>Telematics ECU and firmware update functionality<\/td><\/tr><tr><td>Asset<\/td><td>Integrity of executable firmware and update authorization<\/td><\/tr><tr><td>Attack surface<\/td><td>Update service, cellular link, diagnostic interface, signing pipeline<\/td><\/tr><tr><td>Damage scenario<\/td><td>Unauthorized firmware controls or disables device functions<\/td><\/tr><tr><td>Threat scenario<\/td><td>Adversary substitutes a malicious image or update manifest<\/td><\/tr><tr><td>Security objective<\/td><td>Only authorized, integrity-protected firmware is installed<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">These are teaching examples. A real item definition documents boundaries, interfaces, operational environment, assumptions, dependencies, and supported variants.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Establish automotive cybersecurity responsibilities<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Define the cybersecurity manager or responsible function, project cybersecurity plan, responsibilities among OEM, Tier-1 supplier, component manufacturer, and cloud provider, and criteria for reviews and approvals. Supplier-to-customer agreements must clarify work products, security activities, information exchange, vulnerability disclosure, and responsibilities. A generic commercial contract does not automatically provide a sufficient cybersecurity interface arrangement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set up engineering traceability through the approved requirements and lifecycle tool. Record unique IDs for assumptions, assets, threat scenarios, TARA outputs, cybersecurity goals, requirements, design decisions, verification methods, and defects.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Perform a TARA<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A TARA is more than running STRIDE against a diagram. It involves structured asset identification, damage scenario assessment, threat scenario identification, attack path analysis, impact determination, attack feasibility evaluation, and cybersecurity risk determination and treatment according to the applicable methodology.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A compact example:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Field<\/th><th class=\"has-text-align-left\" data-align=\"left\">Worked illustration<\/th><\/tr><\/thead><tbody><tr><td>Asset<\/td><td>Firmware integrity<\/td><\/tr><tr><td>Damage scenario<\/td><td>Unauthorized firmware changes an ECU function<\/td><\/tr><tr><td>Threat scenario<\/td><td>Forged update is accepted by the device<\/td><\/tr><tr><td>Attack path<\/td><td>Compromised release account -&gt; altered update -&gt; device installation<\/td><\/tr><tr><td>Impact areas<\/td><td>Possible safety, operational, financial, and privacy consequences<\/td><\/tr><tr><td>Attack feasibility<\/td><td>Evaluated from prerequisites and attacker capabilities<\/td><\/tr><tr><td>Risk decision<\/td><td>Define treatment based on impact and feasibility<\/td><\/tr><tr><td>Treatment concept<\/td><td>Trusted update verification, isolated signing, release approvals, recovery controls<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Important distinction:<\/strong>&nbsp;avoid relabeling the attack-feasibility analysis as a generic statistical probability without justifying the methodology. ISO\/SAE 21434&#8217;s risk reasoning has automotive-specific structure. If you use STRIDE, attack trees, or scoring spreadsheets, use them as analysis aids and validate their suitability against the standard&#8217;s required work products.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Convert risks into traceable requirements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For the update scenario, engineering requirements could be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CYB-GOAL-01:<\/strong>\u00a0The device shall prevent installation of unauthorized firmware.<\/li>\n\n\n\n<li><strong>CYB-REQ-01:<\/strong>\u00a0The boot\/update chain shall verify firmware authenticity and integrity using approved cryptographic mechanisms and trusted keys.<\/li>\n\n\n\n<li><strong>CYB-REQ-02:<\/strong>\u00a0Release-signing authority shall be protected from ordinary development credentials.<\/li>\n\n\n\n<li><strong>CYB-REQ-03:<\/strong>\u00a0The device shall handle invalid or interrupted updates without entering an unsafe operating state.<\/li>\n\n\n\n<li><strong>CYB-REQ-04:<\/strong>\u00a0Events relevant to update validation failure shall be recorded and available through an approved diagnostic\/monitoring process.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These are&nbsp;<strong>illustrative engineering requirements<\/strong>, not copied normative clauses. Each should have a verification method and a link to risks and architecture. Security goals and claims should be specific enough to support meaningful evidence.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Design security into the architecture<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use a trust boundary between the release-signing environment, update distribution service, and receiving ECU. Possible design measures include asymmetric signatures, protected trust anchors, secure boot, version\/rollback controls, separate roles, minimized diagnostic exposure, authenticated service access, and recovery partitions when appropriate. Examine the security of provisioning, key rotation, revocation, emergency updates, and supply-chain processes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Valid and approvedInvalidDeveloper changeApproved release processProtected signing serviceSigned update manifest and imageDistribution \/ CDNECU verificationControlled installationReject, log, recover<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A cryptographic mechanism can only provide its intended protection if trust-anchor provisioning and key lifecycle management are correct. Network TLS alone does not prove that a firmware image was authorized by the product manufacturer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hands-on lab: Detect unauthorized file modification<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Create&nbsp;<code>firmware_integrity_lab.py<\/code>. This safe local exercise uses a synthetic firmware file and a hash. It illustrates integrity checking,&nbsp;<strong>not<\/strong>&nbsp;secure automotive firmware authorization.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">from hashlib import sha256\nfrom pathlib import Path\n\nimage = Path(<span class=\"hljs-string\">\"demo_firmware.bin\"<\/span>)\nimage.write_bytes(<span class=\"hljs-string\">b\"DEMO-FIRMWARE-V1\"<\/span>)\nexpected_digest = sha256(image.read_bytes()).hexdigest()\n\n&lt;em&gt;<span class=\"hljs-comment\"># In the exercise, an untrusted change occurs after the reference digest is recorded.&lt;\/em&gt;<\/span>\nimage.write_bytes(<span class=\"hljs-string\">b\"DEMO-FIRMWARE-V1-MODIFIED\"<\/span>)\nobserved_digest = sha256(image.read_bytes()).hexdigest()\n\n<span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"expected:\"<\/span>, expected_digest)\n<span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"observed:\"<\/span>, observed_digest)\n<span class=\"hljs-keyword\">print<\/span>(<span class=\"hljs-string\">\"integrity check:\"<\/span>, <span class=\"hljs-string\">\"PASS\"<\/span> <span class=\"hljs-keyword\">if<\/span> expected_digest == observed_digest <span class=\"hljs-keyword\">else<\/span> <span class=\"hljs-string\">\"FAIL\"<\/span>)\nassert expected_digest != observed_digest\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Run&nbsp;<code>python3 firmware_integrity_lab.py<\/code>&nbsp;or&nbsp;<code>py -3 firmware_integrity_lab.py<\/code>. The integrity check should report&nbsp;<code>FAIL<\/code>&nbsp;after alteration.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Critical security lesson:<\/strong>&nbsp;an attacker who controls both the image and an unprotected reference checksum can update both. A bare hash does not prove authenticity. A production OTA security architecture needs an authenticated trust chain, properly protected signing keys, authorization policies, and robust rollback\/recovery controls reviewed against project requirements.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Verify, validate, and make a security argument<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verification<\/strong>&nbsp;checks whether defined requirements and design properties were implemented correctly.&nbsp;<strong>Validation<\/strong>&nbsp;evaluates whether the integrated item achieves its cybersecurity goals in its intended operational environment. Evidence may include secure-code reviews, component tests, fuzzing where appropriate, interface tests, penetration tests by authorized specialists, signing-key process assessments, release pipeline review, and security regression tests.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Traceability might look like this:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Risk scenario<\/th><th class=\"has-text-align-left\" data-align=\"left\">Goal<\/th><th class=\"has-text-align-left\" data-align=\"left\">Requirement<\/th><th class=\"has-text-align-left\" data-align=\"left\">Test<\/th><th class=\"has-text-align-left\" data-align=\"left\">Evidence<\/th><\/tr><\/thead><tbody><tr><td>Forged OTA update<\/td><td>CYB-GOAL-01<\/td><td>CYB-REQ-01<\/td><td>Reject modified image\/signature<\/td><td>Signed test report<\/td><\/tr><tr><td>Release credential theft<\/td><td>CYB-GOAL-01<\/td><td>CYB-REQ-02<\/td><td>Review signer separation and approvals<\/td><td>Access architecture and audit log<\/td><\/tr><tr><td>Interrupted installation<\/td><td>Availability and safe recovery goal<\/td><td>CYB-REQ-03<\/td><td>Simulated interruption and restart<\/td><td>Recovery test record<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A cybersecurity case or documented argument links claims about protection to evidence and justified assumptions. A folder containing hundreds of test reports without traceable claims is difficult to assess.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Continue after production<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Production is not the end of automotive cybersecurity. Monitor disclosed vulnerabilities, analyze field incidents, obtain supplier security notices, reassess risks when threats change, update products through controlled processes, and plan decommissioning, credential disposal, and supported lifetimes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ISO\/SAE 21434 supports automotive cybersecurity engineering and can inform a cybersecurity management system; it is not identical to UNECE R155 type-approval obligations or to ISO 26262 safety compliance. Requirements depend on product, responsibilities, jurisdiction, and applicable customer contracts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Watch for these process failures<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TARA completed once and never revisited after architecture changes.<\/li>\n\n\n\n<li>Cybersecurity requirements not linked to tests or source artifacts.<\/li>\n\n\n\n<li>Supplier responsibilities assumed rather than agreed and reviewed.<\/li>\n\n\n\n<li>Firmware hashing mistaken for cryptographic authorization.<\/li>\n\n\n\n<li>Safety and cybersecurity work separated so completely that shared consequences are missed.<\/li>\n\n\n\n<li>Post-production vulnerability monitoring omitted from the lifecycle.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Engineer&#8217;s knowledge check<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong>&nbsp;What distinguishes TARA from HARA?&nbsp;<strong>A:<\/strong>&nbsp;TARA evaluates automotive cybersecurity threats and risks; HARA concerns functional safety hazards and risk classification.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong>&nbsp;Does passing a source-code scan prove the vehicle-level cybersecurity goal?&nbsp;<strong>A:<\/strong>&nbsp;No. It is one piece of evidence within system-level engineering and validation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong>&nbsp;Is the new ISO\/SAE 21434 edition already the published replacement?&nbsp;<strong>A:<\/strong>&nbsp;No. Confirm the ISO publication status and applicable project baseline before changing formal compliance claims.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Official references<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Published ISO\/SAE 21434:2021:\u00a0<a href=\"https:\/\/www.iso.org\/standard\/70918.html\">https:\/\/www.iso.org\/standard\/70918.html<\/a><\/li>\n\n\n\n<li>ISO\/SAE 21434 edition under development:\u00a0<a href=\"https:\/\/www.iso.org\/standard\/95437.html\">https:\/\/www.iso.org\/standard\/95437.html<\/a><\/li>\n\n\n\n<li>ISO integrated automotive cybersecurity\/information security publications:\u00a0<a href=\"https:\/\/www.iso.org\/publication\/PUB200434.html\">https:\/\/www.iso.org\/publication\/PUB200434.html<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A connected vehicle is a moving network of electronic control units, sensors, gateways, telematics services, diagnostic tools, mobile applications, and cloud infrastructure. Protecting just the cloud service&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-79564","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=79564"}],"version-history":[{"count":1,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79564\/revisions"}],"predecessor-version":[{"id":79565,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/79564\/revisions\/79565"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=79564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=79564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=79564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}