45
융합소프트웨어 새로운 도전, 새로운 기회 2012.06.20 고려대학교 정형기법연구실 최진영 MATLAB EXPO KOREA 2012

IEEE 802.16 WiMAX Security - mathworks.com€¦ · 특징 -안전 수준 5등급 -class 3등급 -ASIL 4등급 -IEC 61508 기반 -SIL 4등급 -다른 SIL 사용 표준의 모태 -SIL

Embed Size (px)

Citation preview

융합소프트웨어 새로운 도전, 새로운 기회

2012.06.20

고려대학교

정형기법연구실

최진영

MATLAB EXPO KOREA 2012

2/45 MATLAB EXPO KOREA 2012

3/45 MATLAB EXPO KOREA 2012

목차

• 정보화 사회

• 컴퓨터 사회

• 인터넷 사회

• 스마트 사회

• 소프트웨어 위기와 소프트웨어 공학

• 소프트웨어 위기 – revisited

• Trustworthiness

• 결론

4/45 MATLAB EXPO KOREA 2012

정보화 사회의 진화

1기: 컴퓨터 시대

2기: 인터넷 시대

3기: 스마트 시대

5/45 MATLAB EXPO KOREA 2012

Electronic Numerical Integrator and Computer

• 1946년 2월 14일 발표

• University of Pennsylvania, USA

• 17,500여개의 진공관

• 초당 5000개의 덧셈, 300개의 곱셈

• Believed only ever 6 needed

• 2.6m x 0.9m x 26m

6/45 MATLAB EXPO KOREA 2012

컴퓨터 시대

IBM (International Business Machinary)

• 1911년 6월 16일 설립

• IBM 360/370 (마켓의 90% 점유)

• Large Computer

대용량 data processing: 인구조사, 산업계/소비자 통계, ERP, financial transaction system.

32bit 컴퓨터

7/45 MATLAB EXPO KOREA 2012

세상을 바꾼 기계

• 1980년도 말

• Digital world vs. Analog “Real” world

• Alvin Toffler, "Future Shock” “Third Wave”

• The future is digital!

• Internet and USENET

• Dependence upon computers.

• Computer a medium, not a machine.

8/45 MATLAB EXPO KOREA 2012

인터넷 시대

• Sir Tim Berners-Lee

• Director of the W3 Consortium

• Proposal in March 1989.

• CERN (European Organization for Nuclear Research) 에서 1991 시작

• WWW, W3, The Web

• System of interlined hypertext documents accessed via the internet

• Web browser 를 이용하여 web page를 볼 수 있음.

• Text, imags, videos, and other multimedias

• Hiperlinks.

9/45 MATLAB EXPO KOREA 2012

스마트 시대

• 하드웨어의 발전으로 소형화, 고성능화 됨.

• 소프트웨어가 탑제되어 기존의 제품의 성능을 향상시키거나, 또는 새로운 제품이 탄생하게 됨.

• 자동차 (70여개의 프로세서), 비행기, 장난감,

• 휴대폰 (전세계 휴대폰의 수는 PC의 수보다 많음)

• 이론적으로 어느 (가상) 물건도 임베디드 시스템이 될 수 있음.

• 무생명의 제품에 생명을 !

10/45 MATLAB EXPO KOREA 2012

소프트웨어 위기

• Projects running over-budget.

• Projects running over-time.

• Software was very inefficient.

• Software was of low quality.

• Software often did not meet

requirements.

• Projects were unmanageable and code

difficult to maintain.

• Software was never delivered.

It refers to the difficulty of writing correct,

understandable, and verifiable computer

programs.

Friedrich L. Bauer

11/45 MATLAB EXPO KOREA 2012 11

전통적 소프트웨어 공학

– 소프트웨어 공학 탄생기 (1945-1965)

– 소프트웨어 위기 (1965-1985)

– No Silver Bullet (1985-1989)

– 인터넷 소프트웨어 (1990-1999)

– 단순한 방법론 (1999- 현재)

12/45 MATLAB EXPO KOREA 2012

소프트웨어공학의 탄생 (1945-1965)

“…소프트웨어 공학이라는 용어는 1950년 말과

1960년 초에 사용되기 시작합니다. 이미 토목공학, 전기공학, 컴퓨터공학에 익숙한 프로그래머들은 소프트웨어공학이 무슨 뜻인지를 토론하기 시작합니다. 나토과학위원회는 소프트웨어공학 학술대회를 1968년, 1969년 개최합니다. 이 학술대회가 공식적인 소프트웨어공학의 전문영역을 인정한 것이라 전문가들은 생각하고 있습니다.…”

NATO Science Committee

The First Software Engineering

Conference

Conference Report

13/45 MATLAB EXPO KOREA 2012

소프트웨어 위기 (1965-1985)

“…수많은 프로젝트들이 예산 및 시간 초과문제가

생깁니다. 어떤 프로젝트는 재산상의 피해도 입히게 됩니다. 소수이긴 하지만 어떤 프로젝트는 인명에 피해를 입히기도 합니다. 처음에는 소프트웨어

위기는 생산성으로 정의를 했었으나, 후에 품질을

강조하게 됩니다. …”

“…10개 중 9 개 프로젝트는 50 ~100% 예산초과가 보고 됩니다. 이러한 보고는 5대륙 20국을 망

라하고 보고가 되었습니다.”

Software Engineering

Wikipedia.com

Source: US Government Data

14/45 MATLAB EXPO KOREA 2012

No Silver Bullet (1985-1989)

“오랫동안 소프트웨어 도구를 만드는 기업이나 연구자에게 소프트웨어 위기를 해결하는 것은 매우 중요한 과제였습니다. 그러나 어떠한 도구, 원칙, 정형기법, 프로세스,

전문성 그 어떤 것도 그것만으로는 해결책이 되지 못했습니다.”

도구 : Structured Programming, OOP, CASE 도구,..

정형기법: 정형적 공학 기법을 소프트웨어 개발에 활용

모든 프로그램은 옳다는 것을 증명해야 함.

프로세스: 프로세스와 CMM과 같은 방법론을 주장

전문성: 윤리, 자격증 등의 전문성

Frederick Phillips Brooks, Jr.

Software Engineering, 1986

15/45 MATLAB EXPO KOREA 2012

인터넷 (1990-1999)

“인터넷의 활용으로 프로그래머는 그림, 지도, 사진, 이미지, 에니매이션등 지금까지는 다루지 않았던 새로운

미디어를 활용해야 했습니다. 컴퓨터 바이러스가 생기고,

검색엔진이 발전하게 됩니다”

16/45 MATLAB EXPO KOREA 2012

단순한 방법론 (2000-현재)

“중소기업에서도 소프트웨어가 필요함에 따라

요구사항에서부터 배포에까지 간단하고 쉽게 소프트웨어를 개발할 수 있는 간단하고, 빠른 방법론을 활용할 수 있는 저비용의 소프트웨어 솔루션이 필요하게 됩니다. XP 가 한 예입니다.

17/45 MATLAB EXPO KOREA 2012

소프트웨어공학의 현 주소

- Aspect Oriented Programming

- Agile

- Experimental Software Engineering

- Model Driven Design

- Software Product Lines

2006년도 성장률, 연봉, 스트레스 정도, 시간 활용도, 업무환경, 창의성 등으로 평가할 때, 소프트웨어 엔지니어가 최고의 직종으로 평가되었다.

Best Jobs in America, MONEY Magazine,

2006.

18/45 MATLAB EXPO KOREA 2012

19/45 MATLAB EXPO KOREA 2012

소프트웨어의 위기 - revisited

20/45 MATLAB EXPO KOREA 2012

임베디드 시스템

Embedded System

특정 목적을 위해

개발 되어진 시스템

21/45 MATLAB EXPO KOREA 2012

임베디드 시스템의 특징

Platform

Diversity 플랫폼(HW, OS 등)이 매우 다양함

Generic Hw (single core or multi core)

HW Abstract Layer (HAL) (Boot Loader, Interrupt Handler …)

System Software (RTOS, Device Driver, Wince …)

Middleware (JVM, Protocol, COM …)

Application (Multimedia, Internet App …)

HW (Embedded Processor, FPGA, IO …)

Microkernel

Task1

(통신) Task2

(제어)

Task3

(신호

처리)

HW (Micro Controller, IO)

Firmware

HW (Embedded Processor, FPGA, IO …)

Virtual Machine Monitor

OS

adaptation

OS

adaptation

Generic OS (Wince, Linux)

RTOS

emulation

<Generic Framework> <Microkernel Based

Framework>

<Virtual machine

Based Framework>

<Non-OS Framework>

- 특정한 테스트 방법론 하나로 다양한 플랫폼의 임베디드 시스템을 테스팅 할 수 없다.

- 목적 시스템에 적합한 테스트 방법론이 요구된다.

기존의 범용시스템의 테스팅 기법이 그대로 적용되기 어렵다.

22/45 MATLAB EXPO KOREA 2012

Therac-25

• AECL (Atomic Energy of Canada Limited) 사의 방사선치료기.

• 개발기간 6년, 1983년부터 2년간 무사고.

• 치료양의 100배이상의 방사선 피폭으로 다수의 사고가 보고됨.

• 6명 사망, 다수 중상.

• 사고원인

• 제어소프트웨어 오류

• 신뢰성 (Reliability) ≠ 안전성 (Safety)

• 적절한 SE 부족

• 고안전성시스템 (safety-critical system)의 소프트웨어제어의 위험성이 인식됨.

23/45 MATLAB EXPO KOREA 2012

세계 종말의 버그

• 1983년 9월 26일 0시

• 대한항공 격추 3주 후

• NATO Able Archer 83 훈련 중 (핵전쟁 훈련)

• 스타니슬라프 페트로프 (Stanislav Petrov)

• 소련 공군 소령

• 소련 핵발사 조기경보 인공위성 및 핵발사 관제센터 근무

• 미국 ICBM 5발이 소련으로 발사되었다고 경보울림

• 수칙에 의하면 즉각 반격을 해야 함.

• 그런데…

• 정말 미국이 소련을 향해 핵전쟁을 시작한 것일까? 라는 단순한 질문으로 생각을 함. 정말이라면 왜 5발?

• 잘못된 경고라고 판단

• 후에 시스템 소프트웨어 버그로 판정

• 이것이 소련 조기 경보시스템 소프트웨어에 오류가 있다는 것을 유출하는 계기가 됨.

• 1994년 세계시민의 상을 수상 ($1000)

24/45 MATLAB EXPO KOREA 2012

만약에 여러분이?

• 1000억을 기부해서 많은 사람을 폐암의 공포로 부터 해방시키고 싶다면 기부금을 어떻게 활용하시겠습니까?

25/45 MATLAB EXPO KOREA 2012

만약에 당신이?

1000억을 기부해서 많은 사람을 고속도로의 교통사고의 공포로 부터 해방시키고 싶다면 기부금을 어떻게 활용하시겠습니까?

26/45 MATLAB EXPO KOREA 2012

만약에 당신이?

• 1000억을 기부해서 많은 사람을 소프트웨어오류의 공포로 부터 해방시키고 싶다면 기부금을 어떻게 활용하시겠습니까?

27/45 MATLAB EXPO KOREA 2012

내가 만든 소프트웨어에 에러가 있을 수 있을까?

28/45 MATLAB EXPO KOREA 2012

나는 C Program의 귀신인데 그래도 내가 만든 소프트웨어에 에러가 있을

수 있을까? 설마~

29/45 MATLAB EXPO KOREA 2012

여러분께 드립니다,

단, ABS SW를 여러분이 구현하셔야 합니다.

30/45 MATLAB EXPO KOREA 2012

• Remarks by Bill Gates

• “… When you look at a big commercial software company like Microsoft, there's actually as much testing that goes in as development. We have as many testers as we have developers. Testers basically test all the time, and developers basically are involved in the testing process about half the time…”

• “… We've probably changed the industry we're in. We're not in the software industry; we're in the testing industry, and writing the software is the thing that keeps us busy doing all that testing.”

• “…The test cases are unbelievably expensive; in fact, there's more lines of code in the test harness than there is in the program itself. Often that's a ratio of about three to one.”

30

[자료출처 : 17th Annual ACM Conference on Object-Oriented Programming, Seattle, Washington, November 8,

2002]

에러 없는 소프트웨어

31/45 MATLAB EXPO KOREA 2012

에러 없는 소프트웨어

Training

• Core training

Requirements

•Define quality gates/bug bar

• Analyze security •and privacy risk

Design

• Attack surface analysis

•Threat modeling

Implementation

• Specify tools • Enforce banned

functions • Static analysis

Verification

•Dynamic/Fuzz testing

•Verify threat models/attack

surface

Release

•Response plan •Final security

Review •Release archive

Response

•Response execution

FxCop SDL Threat

Modeling Tool

SDL Process

Template for VSTS

Code Analysis for

C/C++ Code Analysis

Tool .NET v1 CTP

32/45 MATLAB EXPO KOREA 2012

에러의 의한 비용

• 미 상무성 산하 국립기술표준연구소(NIST) 조사 자료

• 설계과정에서 만들어지는 에러가 개발완료 후에 발견된다면, 설계단계에서 에러를 수정하는 비용보다 30배 추가지출 발생

• 통합과정에서 만들어지는 에러가 개발완료 후에 발견된다면, 통합과정에서 수정하는 비용보다 20배 추가지출 발생.

32

설치 단계 발견 코딩 단계 발견 통합 단계 발견 베타제품에서

발견

개발완료/제품출시 후 발견

설계과정 에러 1 x 5 x 10 x 15 x 30 x

코딩과정 에러 1 x 10 x 20 x 30 x

통합과정 에러 1 x 10 x 20 x

[자료출처 : The Economic Impacts of Inadequate Infrastructure for Software Testing http://www.nist.gov/director/prog-ofc/report02-3.pdf ]

33/45 MATLAB EXPO KOREA 2012

V - Model

34/45 MATLAB EXPO KOREA 2012

왜 정형명세 ?

35/45 MATLAB EXPO KOREA 2012

왜 모델 기반 디자인?

36/45 MATLAB EXPO KOREA 2012

왜 정적분석?

37/45 MATLAB EXPO KOREA 2012

안전필수 S/W 관련 표준 비교

표준 DO-178C (12) IEC 62304 (06) ISO 26262 (11) IEC 61508 (98) EN50128(01)

개정 일자 2012 2006 2011 1998 2001

분야 항공 의료기기 자동차 임베디드 시스템 철도

특징 -안전 수준 5등급 -class 3등급 -ASIL 4등급

-IEC 61508 기반

-SIL 4등급

-다른 SIL 사용

표준의 모태

-SIL 5등급

-IEC 61508 기반

테스팅 -정적 분석

-동적 분석

-정적 분석

-동적 분석

-정적 분석

-동적 분석

-정적 분석

-동적 분석

-정적 분석

-동적 분석

기타사항 -정형기법 권고

Level A 필수

미FDA는

Assurance Case

권고

Semi-formal

methods

-정형기법 권고

SIL 4 필수

-정형기법 권고

SIL 4 권고

38/45 MATLAB EXPO KOREA 2012

Trustworthiness

39/45 MATLAB EXPO KOREA 2012

40/45 MATLAB EXPO KOREA 2012

보안 솔류션 사용 ?

41/45 MATLAB EXPO KOREA 2012

취약점 (Vulnerability) 란?

다음의 세가지 요소를 만족

- 시스템내의 허점, 오류, 에러

– 공격자가 그 결점에 접근할 수 있어야 함.

– 공격자가 정보를 수정하거나 획득할 수 있

어야 함. (exploit)

42/45 MATLAB EXPO KOREA 2012

취약점 없는 소프트웨어 만들기

에러, 버그등 약점(weakness)이 항상 취약점은 아니지만,

에러, 버그등이 없으면 소프트웨어에 취약점이 없다.

43/45 MATLAB EXPO KOREA 2012

미래는?

• 시큐어 소프트웨어

• Dependability (기능 신뢰성)

• Trustworthiness (보안 신뢰성)

• Survivability (혹은 Resilience) (생존성)

[미 국토안보부 정의]

• Software Assurance

• Assurance Case

43

44/45 MATLAB EXPO KOREA 2012

끝내기 전 간단한 퀴즈

위 프로그램을 실행했을 때 출력은?

45/45 MATLAB EXPO KOREA 2012