Software Security Issues in the Industrial Internet

advertisement
3/16/2016
Software
Security Issues
in the Industrial
Internet
Dr. Bill Curtis
Executive Director
What is CISQ?
What Is CISQ ?
Co-founders
IT
Executives
OMG
Special
Interest
Group
January 1, 2016
CISQ
CISQ is chartered to define
automatable measures of
software size and quality
that can be measured in the
source code, and promote
them to become Approved
Specifications of the OMG®
Copyright © 2016 CISQ. All rights reserved.
Technical
Experts
CISQ Sponsors
2
1
3/16/2016
Medium
Issues
Standards
Policy
Who controls content,
links, storage, etc.
??
Message
Format, encryption,
exchange, etc.
DDS
Communication
Networks, Wifi, cables,
sensor hubs,
DDS
Software
Weaknesses,
vulnerabilities, etc.
CISQ
Hardware
Authentic, dependable
Manufacturer?
DDS Specification Family
2010
2013
2014
2014
DDS X‐Types
DDS-WEB
DDS
Security
IDL 3.5
 IDL 4.0
I
Approved
RPC over DDS
In progress
2015?
App
DDS
Implementation
App
DDS‐API‐C++
DDS‐API‐JAVA
2012
DDS Spec
2004
DDSI‐RTPS‐TCP
2015
DDSI‐RTPS
Wire Protocol
2006
DDS
Implementation
Network / TCP / UDP / IP
2
3/16/2016
CISQ/OMG Standards Process
Approved Measure
Specifications
Automated Function
Points
Reliability
CISQ
Exec
Forum
Performance
Efficiency
ISO
Fasttrack
OMG
Security
Deployment
Workshops
Maintainability
January 1, 2016
Copyright © 2016 CISQ. All rights reserved.
5
CISQ Measures Violations
CISQ Quality Characteristic Measures
Security
Example architectural and
coding violations composing
the measures
22 violations
(Top 25 CWEs)
•
•
•
SQL injection
Cross-site scripting
Buffer overflow
Reliability
29 violations
•
•
•
Empty exception block
Unreleased resources
Circular dependency
Performance
Efficiency
15 violations
•
•
•
Expensive loop operation
Un-indexed data access
Unreleased memory
Maintainability
20 violations
•
•
•
Excessive coupling
Dead code
Hard-coded literals
January 1, 2016
Copyright © 2016 CISQ. All rights reserved.
6
3
3/16/2016
CISQ







Confidential















CWE-22
CWE-78
CWE-79
CWE-89
CWE-120
CWE-129
CWE-134
CWE-252
CWE-327
CWE-396
CWE-397
CWE-434
CWE-456
CWE-606
CWE-667
CWE-672
CWE-681
CWE-706
CWE-772
CWE-789
CWE-798
CWE-835
Top 22 CWEs in the Security Measure
Path Traversal Improper Input Neutralization
OS Command Injection Improper Input Neutralization
Cross-site Scripting Improper Input Neutralization
SQL Injection Improper Input Neutralization
Buffer Copy without Checking Size of Input
Array Index Improper Input Neutralization
Format String Improper Input Neutralization
Unchecked Return Parameter of Control Element Accessing Resource
Broken or Risky Cryptographic Algorithm Usage
Declaration of Catch for Generic Exception
Declaration of Throws for Generic Exception
File Upload Improper Input Neutralization
Storable and Member Data Element Missing Initialization
Unchecked Input for Loop Condition
Shared Resource Improper Locking
Expired or Released Resource Usage
Numeric Types Incorrect Conversion
Name or Reference Resolution Improper Input Neutralization
Missing Release of Resource after Effective Lifetime
Uncontrolled Memory Allocation
Hard-Coded Credentials Usage for Remote Authentication
Loop with Unreachable Exit Condition ('Infinite Loop')
Robert Martin
MITRE
Common
Weakness
Enumeration
cwe.mitre.org
7
How Do CISQ Measures Relate to ISO?
•
•
•
•
•
ISO 25000 series replaces ISO/IEC 9126 (Parts 1-4)
ISO 25010 defines quality characteristics and sub-characteristics
CISQ conforms to ISO 25010 quality characteristic definitions
ISO 25023 defines measures, but not at the source code level
CISQ supplements ISO 25023 with source code level measures
CISQ defined automatable measures for quality characteristics highlighted in blue
January 1, 2016
Copyright © 2016 CISQ. All rights reserved.
8
4
3/16/2016
CISQ Measures the Technology Stack
Confidential
Multi-language, multi-layer Architecture
1
•
•
•
•
•
•
APIs
JSP
ASP.NET
Java
Java
Java
Web
Services
Hibernate
Ja
v
a
2
•
•
•
•
•
•
Messaging
Struts
.NET
Spring
Unit Level
Code style & layout
Expression complexity
Code documentation
Class or program design
Basic coding standards
Developer level
Technology Level
Single language/technology layer
Intra-technology architecture
Intra-layer dependencies
Inter-program invocation
Security vulnerabilities
Development team level
COBOL
PL/SQL
T/SQL
EJB
3
SQL
Server
Oracle








DB2
Sybase
IMS
System Level
Integration quality
Architectural compliance
Risk propagation
Application security
Resiliency checks
Transaction integrity
Function point,
Effort estimation
 Data access control
 SDK versioning
 Calibration across
technologies
 IT organization level
Technology Stack
January 1, 2016
CISQ
Copyright © 2016 CISQ. All rights reserved.
9
Challenges in the Technology Stack
Multi-language, Multi-layer Architecture
Confidential
Analyzing
transactions
and data
flows across
languages
and layers
Entry
APIs
JSP
ASP.NET
Java
Java
Java
Filtering,
Authentication
Web
Services
Hibernate
Messaging
Struts
.NET
Spring
COBOL
PL/SQL
Access
T/SQL
EJB
SQL
Server
Oracle
DB2
Sybase
IMS
Technology Stack
10
5
3/16/2016
CISQ
Observations on the Security Measure
Confidential
• High correlation between Security and Reliability
weaknesses
– Constructs that can crash the system can also provide
pathways to unauthorized access
– Poor quality code is insecure code (Carol Woody’s
research at SEI)
• Greater challenges in automated detection of
some security weaknesses compared to detecting
many other quality characteristics
11
Membership is Free www.it-cisq.org
Confidential
CISQ
12
6
Download