Sources of Vulnerabilities

Preview:

DESCRIPTION

Sources of Vulnerabilities. CSEM02 University of Sunderland. Reference. P. Neumann, 1995, Computer-Related Risks, Addison-Wesley, ISBN: 0-201-55805-X. System conceptualization Miss-assessment of the technology. Requirements definition - PowerPoint PPT Presentation

Citation preview

Sources of Vulnerabilities

CSEM02University of Sunderland

Reference

• P. Neumann, 1995, Computer-Related Risks, Addison-Wesley, ISBN: 0-201-55805-X

Vulnerabilities in Development

• System conceptualization – Miss-assessment of the

technology. • Requirements definition

– Erroneous, incomplete, or inconsistent requirements.

• System design – Fundamental

misconceptions or flaws. • Implementation

– Various errors. • Support systems

– Faulty or poor tools.

• System analysis – False assumptions or

erroneous models. • Testing

– Incomplete or erroneous testing.

• Evolution – Sloppy maintenance and

upgrades. • Decommission

– Premature removal; removal of components

used elsewhere.

Vulnerabilities in Use• Environment

– Earthquakes, floods, fires, etc.

• Animals – E.g., squirrelcide.

• Infrastructure – Loss of power, air conditioning

• Hardware – Malfunction due to ageing or transients

• Software – Bugs

• Communications – Outages, interference, and jamming

• Human Limitations – Installation or misuse

Note Well…• Vulnerabilities are not just security…

• However, security vulnerabilities:– Tend to involve insiders– Tend to involve human behavior– Sometimes result from unwarranted assumptions

– Often are due to design errors or incomplete understanding of a system or technology

System Conceptualization

• Misunderstanding of the technology– Too far– Not far enough

• Cost overruns• Schedule overruns• Lack of FeasibilityExample—MIFASS (Marine Fire and Air Support System). The agency direction was to use a CPU somewhat slower than a first generation Apple II. There was no recovery.

Requirements Definition

• Erroneous requirements• Incomplete requirements• Inconsistent requirementsExtremely common and expensive. Missing requirements are the worst problem. Agile methods attempt to address this.

System Design• Fundamentally false assumptions

– E.g., infinite speed of light• Erroneous modelsExample: the FAA’s Advance Automation System. The contractor assumed that the average statement in Ada generated 5 machine instructions (actually it was 10) and that the speed of a 10 MHz machine was (with parallelism) 20 MHz (actually it was 12 MHz). There was no recovery.

Implementation

• Various and varied.– Chip fab– Wiring– Programming bugs– Trojan horses– VirusesWe will discuss this.

Support Systems• Faulty or poor tools

– Language choice– Compiler/debugger– Bad tools– EdittingCASE tools never met their expectations…Sometimes reflect failure to meet standards.Sometimes are deliberate on the part of a vendor.

System Analysis

• False assumptions about– World– Operating environment– Human behavior

• Erroneous models and simulationsPrototypes help here.

Testing

• Incomplete testing• Erroneous testing• Faulty code verificationWhat is a testable requirement? One way of addressing this is Test-Driven Development (TDD), where you write the unit tests first.

Evolution• Sloppy maintenance and upgrades.• Misconceptions• New flaws• Loss of design coherencyMaintenance organizations do not attract the best engineers. Design your system so it can be maintained by entry-level staff.

Decommission• Premature removal.• Removal of components needed elsewhere.

• Hidden dependencies• Replacement not done in time• Hardware and software end of life

• Vendor profiteering

Environment

• Earthquake• Flood• Fire• Temperature extremes• EMI• Etc…

Animals• Sharks (underwater cables)• Squirrels (enjoy fibre and cabling)• Monkeys (inquisitive)• Birds (watch your neighborhood telephone poles)

• Horses (enjoy practical jokes)• Cattle• Pigs• Etc.

Infrastructure

• Power• Air Conditioning• Physical Security

Hardware

• Ageing• Transients• Environmental problems• Errors in Design

Software

• Bugs of many sorts– System development– Change implementation– Maintenance

Communications

• Outages• Natural interference• Jamming

– Intentional– Accidental

• Tapping• Other

Human Error

• Installation• Misuse

– Intentional– Unintentional

Adverse Effects

• A myriadDiscuss…

Recommended