SlideShare a Scribd company logo
1 of 32
Download to read offline
Dhawal Kumar, 13-Nov-2019
SPARK / ADA FOR SAFE
AND SECURE FIRMWARE
DEVELOPMENT
2
SAFE HARBOR
Forward-Looking Statements
Except for the historical information contained herein, certain matters in this presentation including, but not limited to, statements as to: our strategies, growth, position,
opportunities, and continued expansion; the performance and benefits of our products and technologies; the state of affairs of firmware and C; consequences of software
vulnerability; the benefits and impact of, development challenges with, and adoption path for, SPARK; and other predictions and estimates are forward-looking statements
within the meaning of the Private Securities Litigation Reform Act of 1995. These forward-looking statements and any other forward-looking statements that go beyond
historical facts that are made in this presentation are subject to risks and uncertainties that may cause actual results to differ materially. Important factors that could
cause actual results to differ materially include: global economic conditions; our reliance on third parties to manufacture, assemble, package and test our products; the
impact of technological development and competition; development of new products and technologies or enhancements to our existing product and technologies; market
acceptance of our products or our partners’ products; design, manufacturing or software defects; changes in consumer preferences and demands; changes in industry
standards and interfaces; unexpected loss of performance of our products or technologies when integrated into systems and other factors. For a complete discussion of
factors that could materially affect our financial results and operations, please refer to the reports we file from time to time with the SEC, including our Form 10-K for the
annual period ended January 27, 2019 and our Form 10-Q for the quarterly period ended October 27, 2019. Copies of reports we file with the SEC are posted on our website
and are available from NVIDIA without charge. These forward-looking statements are not guarantees of future performance and speak only as of November 13, 2019, based
on information currently available to us. Except as required by law, NVIDIA disclaims any obligation to update these forward-looking statements to reflect future events or
circumstances.
3
Why SPARK for firmware?
Usage of SPARK at NVIDIA
Learn
Adoption Path
AGENDA
4
WHY SPARK FOR
FIRMWARE?
5
FIRMWARE: STATE OF AFFAIRS
Omnipresent (PCs, supercomputers, IOT devices, cellphones, cars etc)
Executes at elevated privilege (higher than rich OS)
Attractive target for attackers to implant malware (ransomware, rootkit)
With OS security advancements, focus shifted to firmware
Developed predominantly in C
6
C: STATE OF AFFAIRS
Security vulnerabilities continue to happen (or recur)
Memory corruption vulnerabilities (Buffer overflow, ROP etc)
Numeric truncation
Typos in ifdefs (ifdef READ_ABLE vs ifdef READABLE)
Regressions (security regressions usually invisible)
https://cve.mitre.org/ (Nov 10)
7
C: DID WE UNDER INVEST?
Security vulnerabilities continue to happen despite
Usage of static analysis tools such as coverity
Compiler hardening techniques such as stack canary, address sanitizer
HW countermeasures
Negative tests (ex: fuzzing)
Peer reviews
8
C: WHY DO PROBLEMS HAPPEN - 1
Static analysis tools
Do not cover enough
Get noisy as we try to extract more out of them and still fall short
HW countermeasures
Expensive
Can’t solve all issues
9
C: WHY DO PROBLEMS HAPPEN - 2
Fuzzing
Very time consuming
Tricky for firmware (crashes are costly)
Peer reviews
Not enough reviewers (practically unsolvable scalability problem)
Reviewers may not have domain knowledge
Humans get tired and less effective as code grows
10
C: WHY DO PROBLEMS HAPPEN - 3
Developers
Lack training (difficult to find courses on FW let alone FW security)
Lack the time for training
Lack the mindset
Attackers are getting smarter
Tools for reverse engineering becoming cheaper and widely available
11
CONSEQUENCES OF VULNERABILITY
Even a single incident could be disastrous
Millions of $s of penalty
Product recall
Man years lost in IR (Incident Response)
Brand damage
Lost sales
Lives lost
12
SPARK: A PROBLEM
SOLVER
13
SPARK
A language and a set of tools
Language is a large subset of Ada
Tool: GNATprove
Formal Verification
Built in goodness: AORTE / Silver
User contracts
14
SPARK: A PROBLEM SOLVER - 1
Static analysis
High quality
Low noise
[Peer] Reviews (automated)
Machine never gets tired
Reviewers freed up to focus on more important parts ➔ Scalability problem less severe
15
SPARK: A PROBLEM SOLVER - 2
HW countermeasures
No need to pay (for some of them)
And yet better results
Fuzzing
No fuzzing required
Significant machine hours savings
Reduced time to market
16
SPARK: A PROBLEM SOLVER - 3
Developers
Don’t need to know or test for many classes of attack
Gets even better with SPARK contracts
Regressions reduced
17
USAGE OF SPARK AT
NVIDIA
18
USAGE: TARGETS
SPs (Security Processors)
Falcon
RISCV
Hardware Targets (Platforms)
Security critical ucodes
Safety (ISO-26262) critical ucodes
Software Targets
19
WHAT DOES SP LOOK LIKE?
CPU
IMEM DMEM
SHA AES
20
WHERE ARE THESE SPs?
C
R
O
S
S
B
A
R
SP SP SP
Graphics /
Compute
E
E
P
R
O
M
Internal Bus External Bus
GPU Board
FB
Board / Die
21
DETAILED SP USAGE
Secure boot
Video decoding
DRM
Power management
Clock and voltage programming
And more...
22
HW TARGET: VARIATIONS
RISCV is brand new, falcon has been around since over a decade
Transition from falcon to RISCV underway and will take time
RISCV can address larger IMEM and DMEM
Does not mean space constraints have disappeared entirely (low power RAMs, EEPROM, boot perf)
RISCV uses native compiler while falcon uses CCG
23
SW TARGET: SAMPLE USER CONTRACTS
Simple / Mid level
If mutex has been acquired, it shall be released under all exit paths
Tainted data can not be consumed without sanitization (abstraction + contracts)
Advanced
Memory model: Whenre-sizing a protection region, every byte that was previously
Part of protection region but no longer is, shall be scrubbed
Not part of protection region, shall stay unchanged
24
DEVELOPMENT
CHALLENGES
25
DEVELOPMENT CHALLENGES - HW
Require highly optimized code
Space constraints (IMEM/DMEM, Low power RAMs, EEPROM)
Performance constraints
26
DEVELOPMENT CHALLENGES – SPARK - 1
New language (for Nvidia)
Need to find equivalent of every tool / trick being used with C
Safety cert makes it furthermore challenging
Need to study specs such as Cert-C and MISRA to craft equivalent rules + checkers
Small community
Lack of reviewers (“we don’t know what we don’t know”)
Engineering efficiency impacted
27
DEVELOPMENT CHALLENGES – SPARK - 2
Bit fields (Ada records converted to bit fields by CCG)
Not portable in C
Unbearable code bloat ➔ One of the grounds for SPARK rejection in a potential use case
Lack of support in popular IDEs (ex: Visual Studio)
Additional learning curve ➔ displeasure
28
ADOPTION STRATEGY
29
ADOPTION PATH
POC (Proof Of Concept) with handholding and mentorship
Ramping up on more FWs under mentorship
Started with boot firmware on falcon (but not all parts)
Added RISCV bootrom
Hope to convert more critical components from C to SPARK
Don’t expect to convert all FWs (not practical in near future)
30
SPARK SUMMARY
Very appealing for
Security and safety critical applications
Addressing scalability concerns (of critical expertise)
Not entirely free of challenges. So, pick the targets wisely
32
© 2019 NVIDIA Corporation. All rights reserved. NVIDIA and
the NVIDIA logo are trademarks and/or registered
trademarks of NVIDIA Corporation in the U.S. and other
countries. Other company and product names may be
trademarks of the respective companies with which they are
associated.

More Related Content

What's hot

Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Kenji Taguchi
 
Cav Taguchi autosec china slides
Cav Taguchi autosec china slidesCav Taguchi autosec china slides
Cav Taguchi autosec china slidesKenji Taguchi
 
Prof.Marik @ Stanford University
Prof.Marik @ Stanford UniversityProf.Marik @ Stanford University
Prof.Marik @ Stanford UniversityVladimir Marik
 
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Kenji Taguchi
 
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance 19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance Intland Software GmbH
 
Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)NAED_Org
 
IEC 61511 introduction
IEC 61511 introduction IEC 61511 introduction
IEC 61511 introduction KoenLeekens
 
Cost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseCost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseIQPC
 
MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - Automotive IQ
 
D pduapi user-manual
D pduapi user-manualD pduapi user-manual
D pduapi user-manuallinhdoanbro
 
AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications vactivity
 
Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Stanford University
 
Introduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationIntroduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationISA Boston Section
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development StandardVittorio Giovara
 
AV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedAV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedStanford University
 
Safety Instrumentation
Safety Instrumentation Safety Instrumentation
Safety Instrumentation Living Online
 
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsSOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsTorben Haagh
 
HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.Marco Parodi
 
MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016Andrew Banks
 

What's hot (20)

Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)Safe & Sec Case Patterns (ASSURE 2015)
Safe & Sec Case Patterns (ASSURE 2015)
 
Cav Taguchi autosec china slides
Cav Taguchi autosec china slidesCav Taguchi autosec china slides
Cav Taguchi autosec china slides
 
Prof.Marik @ Stanford University
Prof.Marik @ Stanford UniversityProf.Marik @ Stanford University
Prof.Marik @ Stanford University
 
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
Waise 2021 Uber ATG Safety Case Framework and ANSI/UL 4600
 
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance 19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
19 Jun 2018 - Hazard Analysis and Functional Safety Compliance
 
Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)Smart Energy Management Systems (SEMS)
Smart Energy Management Systems (SEMS)
 
IEC 61511 introduction
IEC 61511 introduction IEC 61511 introduction
IEC 61511 introduction
 
Cost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety CaseCost Effective Outcomes from FPSO Safety Case
Cost Effective Outcomes from FPSO Safety Case
 
MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines - MISRA Safety Case Guidelines -
MISRA Safety Case Guidelines -
 
D pduapi user-manual
D pduapi user-manualD pduapi user-manual
D pduapi user-manual
 
AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications AI + Security: Military Technologies and Commercial Applications
AI + Security: Military Technologies and Commercial Applications
 
Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016Guardian Week 3 H4D Stanford 2016
Guardian Week 3 H4D Stanford 2016
 
Introduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL CertificationIntroduction to Functional Safety and SIL Certification
Introduction to Functional Safety and SIL Certification
 
Misra C Software Development Standard
Misra C Software Development StandardMisra C Software Development Standard
Misra C Software Development Standard
 
AV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons LearnedAV Combinator H4D 2020 Lessons Learned
AV Combinator H4D 2020 Lessons Learned
 
Safety Instrumentation
Safety Instrumentation Safety Instrumentation
Safety Instrumentation
 
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas InstrumentsSOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
SOTIF Conference 2019 - APTIV, Toyota, Delphi Tech, Texas Instruments
 
HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.HSSEQ-RECM Presentation.
HSSEQ-RECM Presentation.
 
Mynd company presentation
Mynd   company presentationMynd   company presentation
Mynd company presentation
 
MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016MISRA C Chairman - Device Developer Conference 2016
MISRA C Chairman - Device Developer Conference 2016
 

Similar to Spark / Ada for Safe and Secure Firmware Development

AMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckAMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckLow Hong Chuan
 
Safety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTSafety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTIoT613
 
Overview of software reliability engineering
Overview of software reliability engineeringOverview of software reliability engineering
Overview of software reliability engineeringAnn Marie Neufelder
 
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...Amazon Web Services
 
Embedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationEmbedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationAMD
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next HorizonAMD
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next HorizonAMD
 
Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security CA Technologies
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyPankaj Singh
 
wp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgawp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgaGautam Kavipurapu
 
Bilbro james
Bilbro jamesBilbro james
Bilbro jamesNASAPMC
 
Key Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales PresentationKey Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales Presentationrfragola
 
Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Salesforce Partners
 
G01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionG01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionSatya Harish
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Softwaregjuljo
 
20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopmentCISEC
 
Yakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah S
 

Similar to Spark / Ada for Safe and Secure Firmware Development (20)

AMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press DeckAMD Epyc 7Fx2 Press Deck
AMD Epyc 7Fx2 Press Deck
 
Safety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoTSafety reliability and security lessons from defense for IoT
Safety reliability and security lessons from defense for IoT
 
Overview of software reliability engineering
Overview of software reliability engineeringOverview of software reliability engineering
Overview of software reliability engineering
 
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
System z Mainframe Data with Amazon S3 and Amazon Glacier (ENT107) | AWS re:I...
 
Embedded Platforms Launch Press Presentation
Embedded Platforms Launch Press PresentationEmbedded Platforms Launch Press Presentation
Embedded Platforms Launch Press Presentation
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next Horizon
 
AMD Next Horizon
AMD Next HorizonAMD Next Horizon
AMD Next Horizon
 
Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security Ten Things You Should not Forget in Mainframe Security
Ten Things You Should not Forget in Mainframe Security
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional Safety
 
wp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpgawp-01070-hardware-software-coverification-fpga
wp-01070-hardware-software-coverification-fpga
 
Bilbro james
Bilbro jamesBilbro james
Bilbro james
 
Key Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales PresentationKey Resources - z/Assure Sales Presentation
Key Resources - z/Assure Sales Presentation
 
Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)Platform Encryption for ISVs (February 23, 2016)
Platform Encryption for ISVs (February 23, 2016)
 
G01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protectionG01.2012 magic quadrant for endpoint protection
G01.2012 magic quadrant for endpoint protection
 
Resume_01
Resume_01Resume_01
Resume_01
 
Model-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical SoftwareModel-Driven Development for Safety-Critical Software
Model-Driven Development for Safety-Critical Software
 
20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment20140121 cisec-safety criticalsoftwaredevelopment
20140121 cisec-safety criticalsoftwaredevelopment
 
eBook: Commercial vs Industrial SSD Storage - Advantech
eBook: Commercial vs Industrial SSD Storage - AdvantecheBook: Commercial vs Industrial SSD Storage - Advantech
eBook: Commercial vs Industrial SSD Storage - Advantech
 
Making Network Security Relevant
Making Network Security RelevantMaking Network Security Relevant
Making Network Security Relevant
 
Yakaiah_Resume_9Yrs
Yakaiah_Resume_9YrsYakaiah_Resume_9Yrs
Yakaiah_Resume_9Yrs
 

More from AdaCore

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?AdaCore
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesAdaCore
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic libraryAdaCore
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsAdaCore
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verificationAdaCore
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofAdaCore
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsAdaCore
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationAdaCore
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaCore
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologyAdaCore
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareAdaCore
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsAdaCore
 
Ada 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAda 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAdaCore
 
Verification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsVerification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsAdaCore
 
An Alternative Approach to DO-178B
An Alternative Approach to DO-178BAn Alternative Approach to DO-178B
An Alternative Approach to DO-178BAdaCore
 
MISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureMISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureAdaCore
 
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...AdaCore
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkAdaCore
 

More from AdaCore (20)

RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Have we a Human Ecosystem?
Have we a Human Ecosystem?Have we a Human Ecosystem?
Have we a Human Ecosystem?
 
Rust and the coming age of high integrity languages
Rust and the coming age of high integrity languagesRust and the coming age of high integrity languages
Rust and the coming age of high integrity languages
 
SPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic librarySPARKNaCl: A verified, fast cryptographic library
SPARKNaCl: A verified, fast cryptographic library
 
Developing Future High Integrity Processing Solutions
Developing Future High Integrity Processing SolutionsDeveloping Future High Integrity Processing Solutions
Developing Future High Integrity Processing Solutions
 
Taming event-driven software via formal verification
Taming event-driven software via formal verificationTaming event-driven software via formal verification
Taming event-driven software via formal verification
 
Pushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program ProofPushing the Boundary of Mostly Automatic Program Proof
Pushing the Boundary of Mostly Automatic Program Proof
 
RCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standardsRCA OCORA: Safe Computing Platform using open standards
RCA OCORA: Safe Computing Platform using open standards
 
Product Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configurationProduct Lines and Ecosystems: from customization to configuration
Product Lines and Ecosystems: from customization to configuration
 
Adaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR ArchitectureAdaptive AUTOSAR - The New AUTOSAR Architecture
Adaptive AUTOSAR - The New AUTOSAR Architecture
 
Software Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar TechnologySoftware Engineering for Robotics - The RoboStar Technology
Software Engineering for Robotics - The RoboStar Technology
 
The Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling SoftwareThe Application of Formal Methods to Railway Signalling Software
The Application of Formal Methods to Railway Signalling Software
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Multi-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical SystemsMulti-Core (MC) Processor Qualification for Safety Critical Systems
Multi-Core (MC) Processor Qualification for Safety Critical Systems
 
Ada 202x A broad overview of relevant news
Ada 202x A broad overview of relevant newsAda 202x A broad overview of relevant news
Ada 202x A broad overview of relevant news
 
Verification and Validation of Robotic Assistants
Verification and Validation of Robotic AssistantsVerification and Validation of Robotic Assistants
Verification and Validation of Robotic Assistants
 
An Alternative Approach to DO-178B
An Alternative Approach to DO-178BAn Alternative Approach to DO-178B
An Alternative Approach to DO-178B
 
MISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the futureMISRA C – Recent developments and a road map to the future
MISRA C – Recent developments and a road map to the future
 
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
HIS 2015: Prof. Phil Koopman - A Case Study of Toyota Unintended Acceleration...
 
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest linkHIS 2015: Prof. Ian Phillips - Stronger than its weakest link
HIS 2015: Prof. Ian Phillips - Stronger than its weakest link
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Spark / Ada for Safe and Secure Firmware Development

  • 1. Dhawal Kumar, 13-Nov-2019 SPARK / ADA FOR SAFE AND SECURE FIRMWARE DEVELOPMENT
  • 2. 2 SAFE HARBOR Forward-Looking Statements Except for the historical information contained herein, certain matters in this presentation including, but not limited to, statements as to: our strategies, growth, position, opportunities, and continued expansion; the performance and benefits of our products and technologies; the state of affairs of firmware and C; consequences of software vulnerability; the benefits and impact of, development challenges with, and adoption path for, SPARK; and other predictions and estimates are forward-looking statements within the meaning of the Private Securities Litigation Reform Act of 1995. These forward-looking statements and any other forward-looking statements that go beyond historical facts that are made in this presentation are subject to risks and uncertainties that may cause actual results to differ materially. Important factors that could cause actual results to differ materially include: global economic conditions; our reliance on third parties to manufacture, assemble, package and test our products; the impact of technological development and competition; development of new products and technologies or enhancements to our existing product and technologies; market acceptance of our products or our partners’ products; design, manufacturing or software defects; changes in consumer preferences and demands; changes in industry standards and interfaces; unexpected loss of performance of our products or technologies when integrated into systems and other factors. For a complete discussion of factors that could materially affect our financial results and operations, please refer to the reports we file from time to time with the SEC, including our Form 10-K for the annual period ended January 27, 2019 and our Form 10-Q for the quarterly period ended October 27, 2019. Copies of reports we file with the SEC are posted on our website and are available from NVIDIA without charge. These forward-looking statements are not guarantees of future performance and speak only as of November 13, 2019, based on information currently available to us. Except as required by law, NVIDIA disclaims any obligation to update these forward-looking statements to reflect future events or circumstances.
  • 3. 3 Why SPARK for firmware? Usage of SPARK at NVIDIA Learn Adoption Path AGENDA
  • 5. 5 FIRMWARE: STATE OF AFFAIRS Omnipresent (PCs, supercomputers, IOT devices, cellphones, cars etc) Executes at elevated privilege (higher than rich OS) Attractive target for attackers to implant malware (ransomware, rootkit) With OS security advancements, focus shifted to firmware Developed predominantly in C
  • 6. 6 C: STATE OF AFFAIRS Security vulnerabilities continue to happen (or recur) Memory corruption vulnerabilities (Buffer overflow, ROP etc) Numeric truncation Typos in ifdefs (ifdef READ_ABLE vs ifdef READABLE) Regressions (security regressions usually invisible) https://cve.mitre.org/ (Nov 10)
  • 7. 7 C: DID WE UNDER INVEST? Security vulnerabilities continue to happen despite Usage of static analysis tools such as coverity Compiler hardening techniques such as stack canary, address sanitizer HW countermeasures Negative tests (ex: fuzzing) Peer reviews
  • 8. 8 C: WHY DO PROBLEMS HAPPEN - 1 Static analysis tools Do not cover enough Get noisy as we try to extract more out of them and still fall short HW countermeasures Expensive Can’t solve all issues
  • 9. 9 C: WHY DO PROBLEMS HAPPEN - 2 Fuzzing Very time consuming Tricky for firmware (crashes are costly) Peer reviews Not enough reviewers (practically unsolvable scalability problem) Reviewers may not have domain knowledge Humans get tired and less effective as code grows
  • 10. 10 C: WHY DO PROBLEMS HAPPEN - 3 Developers Lack training (difficult to find courses on FW let alone FW security) Lack the time for training Lack the mindset Attackers are getting smarter Tools for reverse engineering becoming cheaper and widely available
  • 11. 11 CONSEQUENCES OF VULNERABILITY Even a single incident could be disastrous Millions of $s of penalty Product recall Man years lost in IR (Incident Response) Brand damage Lost sales Lives lost
  • 13. 13 SPARK A language and a set of tools Language is a large subset of Ada Tool: GNATprove Formal Verification Built in goodness: AORTE / Silver User contracts
  • 14. 14 SPARK: A PROBLEM SOLVER - 1 Static analysis High quality Low noise [Peer] Reviews (automated) Machine never gets tired Reviewers freed up to focus on more important parts ➔ Scalability problem less severe
  • 15. 15 SPARK: A PROBLEM SOLVER - 2 HW countermeasures No need to pay (for some of them) And yet better results Fuzzing No fuzzing required Significant machine hours savings Reduced time to market
  • 16. 16 SPARK: A PROBLEM SOLVER - 3 Developers Don’t need to know or test for many classes of attack Gets even better with SPARK contracts Regressions reduced
  • 17. 17 USAGE OF SPARK AT NVIDIA
  • 18. 18 USAGE: TARGETS SPs (Security Processors) Falcon RISCV Hardware Targets (Platforms) Security critical ucodes Safety (ISO-26262) critical ucodes Software Targets
  • 19. 19 WHAT DOES SP LOOK LIKE? CPU IMEM DMEM SHA AES
  • 20. 20 WHERE ARE THESE SPs? C R O S S B A R SP SP SP Graphics / Compute E E P R O M Internal Bus External Bus GPU Board FB Board / Die
  • 21. 21 DETAILED SP USAGE Secure boot Video decoding DRM Power management Clock and voltage programming And more...
  • 22. 22 HW TARGET: VARIATIONS RISCV is brand new, falcon has been around since over a decade Transition from falcon to RISCV underway and will take time RISCV can address larger IMEM and DMEM Does not mean space constraints have disappeared entirely (low power RAMs, EEPROM, boot perf) RISCV uses native compiler while falcon uses CCG
  • 23. 23 SW TARGET: SAMPLE USER CONTRACTS Simple / Mid level If mutex has been acquired, it shall be released under all exit paths Tainted data can not be consumed without sanitization (abstraction + contracts) Advanced Memory model: Whenre-sizing a protection region, every byte that was previously Part of protection region but no longer is, shall be scrubbed Not part of protection region, shall stay unchanged
  • 25. 25 DEVELOPMENT CHALLENGES - HW Require highly optimized code Space constraints (IMEM/DMEM, Low power RAMs, EEPROM) Performance constraints
  • 26. 26 DEVELOPMENT CHALLENGES – SPARK - 1 New language (for Nvidia) Need to find equivalent of every tool / trick being used with C Safety cert makes it furthermore challenging Need to study specs such as Cert-C and MISRA to craft equivalent rules + checkers Small community Lack of reviewers (“we don’t know what we don’t know”) Engineering efficiency impacted
  • 27. 27 DEVELOPMENT CHALLENGES – SPARK - 2 Bit fields (Ada records converted to bit fields by CCG) Not portable in C Unbearable code bloat ➔ One of the grounds for SPARK rejection in a potential use case Lack of support in popular IDEs (ex: Visual Studio) Additional learning curve ➔ displeasure
  • 29. 29 ADOPTION PATH POC (Proof Of Concept) with handholding and mentorship Ramping up on more FWs under mentorship Started with boot firmware on falcon (but not all parts) Added RISCV bootrom Hope to convert more critical components from C to SPARK Don’t expect to convert all FWs (not practical in near future)
  • 30. 30 SPARK SUMMARY Very appealing for Security and safety critical applications Addressing scalability concerns (of critical expertise) Not entirely free of challenges. So, pick the targets wisely
  • 31.
  • 32. 32 © 2019 NVIDIA Corporation. All rights reserved. NVIDIA and the NVIDIA logo are trademarks and/or registered trademarks of NVIDIA Corporation in the U.S. and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.