SlideShare a Scribd company logo
Towards trustable software engineering...
Slipshod software practices...
… will turn our computers into spies, murderers & thieves
Slipshod software practices...
… will turn our computers into spies, murderers & thieves
● Most people using software don’t understand the risks
● Most people producing software don’t understand the job
● We have no consistent or reliable measures for software
risks, quality, productivity, or costs
Maybe your company/project/software is better … but I doubt it
Just some of the most recent stories...
● NIST
● Deloitte
● Equifax
● Google Mini touch
● Hyatt
● WPA2 KRACK
● Infineon RSA
Identity is fundamental to trustability
● Most of our identifying data is already online
● Once the data has leaked, it can’t be un-leaked
● Yet this will still be the content of ‘security questions’
● Passwords are a ridiculous way to secure systems
● Pin codes are worse
● Biometrics are even worse
○ not secret
○ easily stolen
○ not protected by law
○ hard to repudiate
Multi-factor authentication is the only way to go
Legals and insurance for this topic are nowhere near ‘done’ yet
The hole is so deep we ignore it
● Everybody has knowledge gaps, people still get jobs, they muddle through
● In mature critical industries there are norms, standards, regulations
● Work is checked, both by the implementing organisation and independently
● Software has grown to be pervasive + critical without norms/regulations/ checks
● All software, including critical software, has bugs and vulnerabilities
● So we are all at risk of financial/emotional/physical harm from software issues
● When we suffer harm there are no normalised paths for redress/improvement
We need to raise the bar for everyone...
● pre-existing legacy systems/software
● open source communities
● hardware manufacturers
● cloud/infrastructure/IT providers
● operating systems vendors
● software platform providers
● applications developers
● non-technical users, managers and executives
The nagging voice in my head...
● Even with regulations, we will still be at risk
● It’s already too late - setting standards now won’t make any difference
● Most people don’t and won’t care, until their account gets emptied, their car
decides to crash, or the power grid goes down, or their hospital gets hacked
● Many software people/organisations continue to pretend they know what they
are doing, resist ‘standards’ and blame deadlines/pressure
● The pressure to innovate outweighs the pressure to provide guarantees
● Executives have no incentive to fix, so long as the problem is ‘software’
● Easiest strategy is to charge ahead til sh** happens, blame someone else
Ultimately this is all about risk.
Risk is normally addressed by insurance.
Insurance has no ability to measure software risks yet.
We need measurable engineering for software.
Towards trustable software ENGINEERING
Partial solution topics (from Trustable Mailing List discussion)
● training and education
● measurement and evidence of work processes
● pervasive version control with archived history, including identity and reviews
● proof of software provenance and reproducible builds
● fuzzing
● continuous integration for everything (requirements to deployment and mtce)
● automation of (continuous) compliance
● mathematical methods for formal verification of tools and software
● model-based engineering
Safe-secure C studygroup
● Deep expert community
● Highlights the friction/politics between ISO and MISRA
● So much software (e.g. Linux, Android) doesn’t involve either approach
● Most engineers don’t read the standards, let alone apply them
Arguably most of the problems are outside the domain the group is discussing
https://lists.trustable.io/cgi-bin/mailman/listinfo/c-safe-secure-studygroup
Trustable software engineering process pipeline
● Can we establish an accounting audit metaphor for software process?
● In accounting, we check
○ P&L
○ Balance sheet
○ Transaction logs
○ Bank statements
● There are checks and balances
○ double-entry book-keeping - if the balances don’t match up, something is wrong
○ Bank statements represent an external log - if they don’t match up, something is wrong
● In software
○ If source SHAs don’t line up, something is wrong
○ If built artifact cache-keys don’t line up, something is wrong
○ If test results do not meet expectations something is wrong
○ Reproducible builds would be another checkpoint
We collect evidence of project history continuously. At each CHECK point we capture
● Timestamp
● Author identity and Committer identity
● Independent review (with Reviewer identity)
● Appropriate signoff
CHECK 1: evidence of evolution of problem/scope (requirements, standards and verification criteria)
CHECK 2: evidence of evolution of solution/architecture
CHECK 3: evidence of selection/production of software (including tests)
CHECK 4: evidence of evolution of tests, test results and satisfaction of validation criteria
CHECK 5: evidence of traceability back through all previous phases
CHECK 6: evidence that maintenance changes/upgrades are being applied to the whole pipeline, not just code
scope architecture
regulations
architecture architecture architecture architecturearchitecture development validation deployment maintenance
requirements
CHECK 2 CHECK 4CHECK 1 CHECK 3 CHECK 5 CHECK 6
scope architecture
requirements
regulations
architecture architecture architecture architecturearchitecture development validation deployment maintenance
scope architecture
regulations
architecture architecture architecture architecturearchitecture development validation deployment maintenance
requirements
architectureBlack Box
Outsourced sw is still in a pipeline, somewhere...
Goals
● Ability to reproduce outputs so we can guarantee the target is the target
● Ability to trace what happened so we can at least figure out what went wrong
● Ability to update so we can repair and/or replace
● Proof of identity so we can establish who did what
● Business level traceability so executives can’t just blame ‘evil engineers’
… in a trustable engineering process.
And beyond the engineering...
● outlaw systems that rely only on passwords and pins
● outlaw reliance on biometrics and security questions
● more encryption, but don’t bet the farm on any one algorithm
● use multiple baskets, multiple locks, diverse algorithms
trustable.io
trustablesoftware.com

More Related Content

Similar to HIS 2017 Paul Sherwood- towards trustable software

DevOpsRoadTrip San Francisco Final Speaking Deck
DevOpsRoadTrip San Francisco Final Speaking Deck DevOpsRoadTrip San Francisco Final Speaking Deck
DevOpsRoadTrip San Francisco Final Speaking Deck
VictorOps
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
Ambassador Labs
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
Rogue Wave Software
 
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Cory Scott
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
Rogue Wave Software
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer Risks
Kevo Meehan
 
Agile Secure Development
Agile Secure DevelopmentAgile Secure Development
Agile Secure Development
Bosnia Agile
 
Security engineering 101 when good design & security work together
Security engineering 101  when good design & security work togetherSecurity engineering 101  when good design & security work together
Security engineering 101 when good design & security work together
Wendy Knox Everette
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
gjdevos
 
Pusheando en master, que es gerundio
Pusheando en master, que es gerundioPusheando en master, que es gerundio
Pusheando en master, que es gerundio
Isidro José López Martínez
 
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
Simone Onofri
 
DevSecOps 101
DevSecOps 101DevSecOps 101
Applying formal methods to existing software by B.Monate
Applying formal methods to existing software by B.MonateApplying formal methods to existing software by B.Monate
Applying formal methods to existing software by B.Monate
Mahaut Gouhier
 
Agile Software and DevOps Essentials
Agile Software and DevOps EssentialsAgile Software and DevOps Essentials
Agile Software and DevOps Essentials
Narayanan Subramaniam
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
ICS
 
Break Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus MerrellBreak Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus Merrell
Sauce Labs
 
Building Security Teams
Building Security TeamsBuilding Security Teams
Building Security Teams
Astera Esther Schneeweisz
 
Software Quality for Developers
Software Quality for DevelopersSoftware Quality for Developers
Software Quality for Developers
Maira Bay de Souza
 
The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2
Bonitasoft
 
IT Metrics in Real Life
IT Metrics in Real LifeIT Metrics in Real Life
IT Metrics in Real Life
Fabio Cicerchia
 

Similar to HIS 2017 Paul Sherwood- towards trustable software (20)

DevOpsRoadTrip San Francisco Final Speaking Deck
DevOpsRoadTrip San Francisco Final Speaking Deck DevOpsRoadTrip San Francisco Final Speaking Deck
DevOpsRoadTrip San Francisco Final Speaking Deck
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
 
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
 
Programming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT worldProgramming languages and techniques for today’s embedded andIoT world
Programming languages and techniques for today’s embedded andIoT world
 
Reduce Third Party Developer Risks
Reduce Third Party Developer RisksReduce Third Party Developer Risks
Reduce Third Party Developer Risks
 
Agile Secure Development
Agile Secure DevelopmentAgile Secure Development
Agile Secure Development
 
Security engineering 101 when good design & security work together
Security engineering 101  when good design & security work togetherSecurity engineering 101  when good design & security work together
Security engineering 101 when good design & security work together
 
Shift Left Security
Shift Left SecurityShift Left Security
Shift Left Security
 
Pusheando en master, que es gerundio
Pusheando en master, que es gerundioPusheando en master, que es gerundio
Pusheando en master, que es gerundio
 
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...OWASP AppSec EU 2016 - Security Project Management -  How to be Agile in Secu...
OWASP AppSec EU 2016 - Security Project Management - How to be Agile in Secu...
 
DevSecOps 101
DevSecOps 101DevSecOps 101
DevSecOps 101
 
Applying formal methods to existing software by B.Monate
Applying formal methods to existing software by B.MonateApplying formal methods to existing software by B.Monate
Applying formal methods to existing software by B.Monate
 
Agile Software and DevOps Essentials
Agile Software and DevOps EssentialsAgile Software and DevOps Essentials
Agile Software and DevOps Essentials
 
Bridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory TeamsBridging the Gap Between Development and Regulatory Teams
Bridging the Gap Between Development and Regulatory Teams
 
Break Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus MerrellBreak Up the Monolith- Testing Microservices by Marcus Merrell
Break Up the Monolith- Testing Microservices by Marcus Merrell
 
Building Security Teams
Building Security TeamsBuilding Security Teams
Building Security Teams
 
Software Quality for Developers
Software Quality for DevelopersSoftware Quality for Developers
Software Quality for Developers
 
The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2The magic ingredient for successful automation - Chapter 2
The magic ingredient for successful automation - Chapter 2
 
IT Metrics in Real Life
IT Metrics in Real LifeIT Metrics in Real Life
IT Metrics in Real Life
 

More from jamieayre

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
jamieayre
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
jamieayre
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
jamieayre
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
jamieayre
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
jamieayre
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
jamieayre
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
jamieayre
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
jamieayre
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
jamieayre
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
jamieayre
 
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification SolutionsAdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
jamieayre
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
jamieayre
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
jamieayre
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
jamieayre
 
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers LibraryAdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
jamieayre
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
jamieayre
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
jamieayre
 

More from jamieayre (17)

HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
HIS 2017 Mark Batty-Industrial concurrency specification for C/C++
 
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
HIS 2017 David Oswald- Your car is not a safe box - breaking automotive keyle...
 
HIS 2017 Robert Martin- assured software a journey and discussion-final
HIS 2017 Robert Martin- assured software  a journey and discussion-finalHIS 2017 Robert Martin- assured software  a journey and discussion-final
HIS 2017 Robert Martin- assured software a journey and discussion-final
 
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted DeviceHIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
HIS 2017 Marie Moe- Unpatchable-Living with a Vulnerable Implanted Device
 
HIS 2017 Jonathan Pallant- Delivering quality, time after time
HIS 2017 Jonathan Pallant-  Delivering quality, time after timeHIS 2017 Jonathan Pallant-  Delivering quality, time after time
HIS 2017 Jonathan Pallant- Delivering quality, time after time
 
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software DevelopmentHIS 2017 Peter Ladkin-  Rigorous-Assurance Points in Software Development
HIS 2017 Peter Ladkin- Rigorous-Assurance Points in Software Development
 
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmannedHIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
HIS 2017 Dewi Daniels- bridging the gap between manned and unmanned
 
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded SystemsHIS 2017 Roderick chapman- Secure Updates for Embedded Systems
HIS 2017 Roderick chapman- Secure Updates for Embedded Systems
 
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
AdaCore Paris Tech Day 2016: Jerome Lambourg - Cross and BareBoard Team Insid...
 
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification SolutionsAdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
AdaCore Paris Tech Day 2016: Eric Perlade - Verification Solutions
 
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
AdaCore Paris Tech Day 2016: Elie Richa - Integrated Unit Testing for a Trust...
 
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
AdaCore Paris Tech Day 2016: Pierre-Marie Rodat - Libadalang, New Generation ...
 
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking AheadAdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
AdaCore Paris Tech Day 2016: Cyrille Comar - Looking Ahead
 
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers LibraryAdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
AdaCore Paris Tech Day 2016: Fabien Chouteau - Making the Ada Drivers Library
 
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro RoadmapAdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
 
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market PerspectiveAdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
AdaCore Paris Tech Day 2016: Jamie Ayre - Market Perspective
 

Recently uploaded

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 

Recently uploaded (20)

Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 

HIS 2017 Paul Sherwood- towards trustable software

  • 1. Towards trustable software engineering...
  • 2. Slipshod software practices... … will turn our computers into spies, murderers & thieves
  • 3. Slipshod software practices... … will turn our computers into spies, murderers & thieves ● Most people using software don’t understand the risks ● Most people producing software don’t understand the job ● We have no consistent or reliable measures for software risks, quality, productivity, or costs Maybe your company/project/software is better … but I doubt it
  • 4.
  • 5. Just some of the most recent stories... ● NIST ● Deloitte ● Equifax ● Google Mini touch ● Hyatt ● WPA2 KRACK ● Infineon RSA
  • 6. Identity is fundamental to trustability ● Most of our identifying data is already online ● Once the data has leaked, it can’t be un-leaked ● Yet this will still be the content of ‘security questions’ ● Passwords are a ridiculous way to secure systems ● Pin codes are worse ● Biometrics are even worse ○ not secret ○ easily stolen ○ not protected by law ○ hard to repudiate Multi-factor authentication is the only way to go Legals and insurance for this topic are nowhere near ‘done’ yet
  • 7. The hole is so deep we ignore it ● Everybody has knowledge gaps, people still get jobs, they muddle through ● In mature critical industries there are norms, standards, regulations ● Work is checked, both by the implementing organisation and independently ● Software has grown to be pervasive + critical without norms/regulations/ checks ● All software, including critical software, has bugs and vulnerabilities ● So we are all at risk of financial/emotional/physical harm from software issues ● When we suffer harm there are no normalised paths for redress/improvement
  • 8. We need to raise the bar for everyone... ● pre-existing legacy systems/software ● open source communities ● hardware manufacturers ● cloud/infrastructure/IT providers ● operating systems vendors ● software platform providers ● applications developers ● non-technical users, managers and executives
  • 9. The nagging voice in my head... ● Even with regulations, we will still be at risk ● It’s already too late - setting standards now won’t make any difference ● Most people don’t and won’t care, until their account gets emptied, their car decides to crash, or the power grid goes down, or their hospital gets hacked ● Many software people/organisations continue to pretend they know what they are doing, resist ‘standards’ and blame deadlines/pressure ● The pressure to innovate outweighs the pressure to provide guarantees ● Executives have no incentive to fix, so long as the problem is ‘software’ ● Easiest strategy is to charge ahead til sh** happens, blame someone else
  • 10. Ultimately this is all about risk. Risk is normally addressed by insurance. Insurance has no ability to measure software risks yet. We need measurable engineering for software.
  • 12. Partial solution topics (from Trustable Mailing List discussion) ● training and education ● measurement and evidence of work processes ● pervasive version control with archived history, including identity and reviews ● proof of software provenance and reproducible builds ● fuzzing ● continuous integration for everything (requirements to deployment and mtce) ● automation of (continuous) compliance ● mathematical methods for formal verification of tools and software ● model-based engineering
  • 13. Safe-secure C studygroup ● Deep expert community ● Highlights the friction/politics between ISO and MISRA ● So much software (e.g. Linux, Android) doesn’t involve either approach ● Most engineers don’t read the standards, let alone apply them Arguably most of the problems are outside the domain the group is discussing https://lists.trustable.io/cgi-bin/mailman/listinfo/c-safe-secure-studygroup
  • 14. Trustable software engineering process pipeline ● Can we establish an accounting audit metaphor for software process? ● In accounting, we check ○ P&L ○ Balance sheet ○ Transaction logs ○ Bank statements ● There are checks and balances ○ double-entry book-keeping - if the balances don’t match up, something is wrong ○ Bank statements represent an external log - if they don’t match up, something is wrong ● In software ○ If source SHAs don’t line up, something is wrong ○ If built artifact cache-keys don’t line up, something is wrong ○ If test results do not meet expectations something is wrong ○ Reproducible builds would be another checkpoint
  • 15. We collect evidence of project history continuously. At each CHECK point we capture ● Timestamp ● Author identity and Committer identity ● Independent review (with Reviewer identity) ● Appropriate signoff CHECK 1: evidence of evolution of problem/scope (requirements, standards and verification criteria) CHECK 2: evidence of evolution of solution/architecture CHECK 3: evidence of selection/production of software (including tests) CHECK 4: evidence of evolution of tests, test results and satisfaction of validation criteria CHECK 5: evidence of traceability back through all previous phases CHECK 6: evidence that maintenance changes/upgrades are being applied to the whole pipeline, not just code scope architecture regulations architecture architecture architecture architecturearchitecture development validation deployment maintenance requirements CHECK 2 CHECK 4CHECK 1 CHECK 3 CHECK 5 CHECK 6
  • 16. scope architecture requirements regulations architecture architecture architecture architecturearchitecture development validation deployment maintenance scope architecture regulations architecture architecture architecture architecturearchitecture development validation deployment maintenance requirements architectureBlack Box Outsourced sw is still in a pipeline, somewhere...
  • 17. Goals ● Ability to reproduce outputs so we can guarantee the target is the target ● Ability to trace what happened so we can at least figure out what went wrong ● Ability to update so we can repair and/or replace ● Proof of identity so we can establish who did what ● Business level traceability so executives can’t just blame ‘evil engineers’ … in a trustable engineering process. And beyond the engineering... ● outlaw systems that rely only on passwords and pins ● outlaw reliance on biometrics and security questions ● more encryption, but don’t bet the farm on any one algorithm ● use multiple baskets, multiple locks, diverse algorithms