SW 안전성 + SW 보안성 ISO 26262:202X 로보는 SW 보증방향 고려대학교 최진영 Choi@formal.korea.ac.kr 2017-11-02 소프트웨어안전성보증연구센터 1
강사소개 서울대컴퓨터공학과학사 University of Pennsylvania 박사 고려대컴퓨터학과교수 ( 전 ) 고려대사이버국방학과교수 ( 현 ) SW 개발보안연구센터장 ( 전, 행자부지원 ) 융합 SW 연구센터장 ( 전 ), ITRC (IITP 지원 ) 정형기법연구실책임교수 관심분야 : 정형기법 ( 정형명세, 정형검증 ) 시큐어소프트웨어공학, 소프트웨어및공급망보증 (SSCA, Software and Supply Chain Assurance) 안전필수, 기능필수시스템 2017-11-02 소프트웨어안전성보증연구센터 2
순서 1. 들어가기 2. ISO 26262 이전 3. 제어기와전자장치 4. IEC 61508 탄생 : 전기 / 전자 / 프로그램가능한기기의안전성 5. ISO 26262 탄생 : 자동차의안전성 6. ISO 26262 의미래 : 자동차안전성과보안성 7. 안전성과보안성의통합 8. 결론 2017-11-02 소프트웨어안전성보증연구센터 3
들어가기 : 자동차는기계공학? 전자공학? 소프트웨어공학? 2017-11-02 소프트웨어안전성보증연구센터 4
ISO 26262 이전 : 기계산업 신뢰성 (Reliability) 어떤부품 / 소재나제품시스템등이주어진조건 ( 사용, 환경조건 ) 하에서고장없이일정기간 ( 시간, 거리, 사이클 ) 동안최초의품질및성능을유지하는특성. 신뢰성이라는단어는 1816 년탄생 현대의신뢰성개념은 1940 년대미군에의해정립됨. 특징 : 일정시간이지나면, 기계가마모가되어신뢰성은감소함. 안전성과의관계 : 신뢰성은고장과관련이있으므로, 신뢰성과안전성은서로연관되어있음, 즉, 신뢰성이높으면안전성도높다. 신뢰성이높은기계제품을만드는기술은오랜경험과연구로확보되어있음. 참조 : 디자인정글 2017-11-02 소프트웨어안전성보증연구센터 5
전자장치의출현 참조 : www.conceptcarz.com GM 캐딜락세빌에처음으로모토롤라 6802 기반트립컴퓨터탑재 (1978) 디지털속도계와디스플레이. 기계식트립컴퓨터는스웨덴택시메터생산기업에서생산 (1950s) 2004 년아큐라 TL 트립컴퓨터 평균속도 (MPH) 평균마일리지 (MPG) 주어진기간동안주행거리 2017-11-02 소프트웨어안전성보증연구센터 6 사진 : S. Howard
제어기기사고 참조 :http://hackaday.com/2015/10/26/killed-by-amachine-the-therac-25/ Thera-25 사고 AECL 방사선암치료기 1982 년 SW 내장형제어모듈탑재후서비스개시 1985 년 ~ 1987 년 : 6 번의사고 3 명사망 치사량을초과하는 X 선에암환자가노출 SW 오류로인명이살상이된첫사례 제어프로그램의오류 소프트웨어의안전성에대한충분한분석이없이하드웨어안전장치제거 SW 공학에 Safety 개념도입 소프트웨어내에재난으로이어지는에러 / 오류가없음 Software Engineering 10 th edition, Ion Sommerville, 2016 Reliability Safety 단, 100% 신뢰성을가진시스템은안전성이보장됨. IEC 61508 제정 Functional safety of electrical/electronic/programmable electronic safety-related systems 2017-11-02 소프트웨어안전성보증연구센터 7
100% 신뢰할수있는소프트웨어? 소프트웨어의 ( 이론적 ) 100% 신뢰성 명세에서정의된모든입력에대해소프트웨어어가정의된서비스를수행하면됨 문제점 입력의개수가너무방대하다 입력의정수변수 10 개인경우 (2^32)^10 개의입력이가능 실시간시스템의경우시간이입력이되기에 100% 실행하기불가능 동시성이존재하는경우그의미론적해석으로상태폭발이발 반응형시스템 (Reactive System, 주로임베디드소프트웨어 ) 은종료가되지않으며또한입력이환경에영향을받음. 결론 100% 신뢰성소프트웨어는일반적으로불가능함 모든소프트웨어는오류를포함함 소프트웨어개발시잠재된오류를최소가되도록노력필요. 특히숨어있는오류로안전성이문제가됨 2017-11-02 소프트웨어안전성보증연구센터 8
SW 안전성 (SW Safety)? 시스템안전성 (Safety) 정의 Freedom from those condition that can cause death, injury, occupational illness, or damage to or loss of equipment or property to the environment Air Force System Safety Handbook, 2000, MIL-HDBK-336B 기능안전 Part of the overall safety that depends on a system or equipment operating correctly in response to its inputs, including the safe management of likely operator errors, hardware failure and environmental changes. Focus Topics: Functional Safety, TUV SUD, 2016 Safety-critical ( 안전필수, 고안전, 안전중심 ) 정의 A term applied to a condition, process or item of whose proper recognition, control performance, or tolerance is essential to safe operation or use; e.q., safety, critical function,, safety critical path.. Air Force System Safety Handbook, 2000 소프트웨어안전성 : 소프트웨어시스템이재앙 ( 인명의손상, 시스템의파괴등 ) 없이작동하는능력 소프트웨어내에시스템을재앙으로이끄는오류가없는정도 Software Engineering 10 th edition, Sommerville, 2016 2017-11-02 소프트웨어안전성보증연구센터 9
IEC 61508 전기 / 전자 / 프로그램가능한전자안전관리시스템의기능안전규칙의국제표준 기능안전 E/E/PE 안전관련시스템의정확한기능, 다른기술안전관련시스템과외부적인위험감소설비에의존하는제어대상장비와제어대상장비를제어하는시스템관련된부분적또는전반적인안전 컴퓨터기반시스템은점차안전기능에도이용되고있음. 안전생명주기포함 IEC 61508 에서보는위험 (risk) 위험은항상존재 (Zero risk can be never reached) 안전은개발초기부터고려되어야함 허용되지않는위험은줄어야한다. Safety integrity level (SIL) 2017-11-02 소프트웨어안전성보증연구센터 10
ISO 26262:2011 목적 자동차분야에서안전성생명주기 ( 관리, 개발, 생산, 운영, 서비스, 폐기 ) 를제공하며이러한생명주기에서발생하는필요엑티비티를자세히제공 전개발주기에서기능안전성를포함 ( 요구사항, 설계, 구현, 통합, 검증, 확인, 형상등 )( ASIL (Automotive Safety Integrity Levels) 제공 자동차관련위함기반분석 ASIL 을이용하여허용할수있는위험정도를구현하기위해필요한안전요구사항을명세 구현될충분하고허용가능한안전성레벨을확인및확중을위한요구사항제공 표준화일정 2009 년 7 월 : 국제표준드래프트배포 (dis) 2011 년 4 월 : 최종국제표준프래프트배포 (FDIS) 2011 년 11 월 : Part 1 ~ 9 국제표준으로확정 2012 년 8 월 : Part 10 국제표준으로확정 2018 년 1 월 : 2 nd 에디션공식배포예정 2017-11-02 소프트웨어안전성보증연구센터 11
Verification and Validation (ISO 26262) Verification( 검증 ) : 올바르게만들고있는가? Validation ( 확인 / 검정 ) : 올바른것을만들었는가? 2017-11-02 소프트웨어안전성보증연구센터 12
MISRA-C MISRA (Motor Industry Software Reliability Association) 목적은임베디드시스템의관점에서 SW 안전성 (Safety), 보안성 (Security), 이식성 (Portability), 신뢰성 (Reliability) 등을높이기위함. 현재는자동차분야뿐만이아니라, 우주항공, 통신분야, 의료기기, 철도분야, 등다양한분야에활용이되고있음 방사청무기체계내장형코딩규칙의기초가됨. 지속적발전을하고있음. MISRA C:1998 MISRA C:2004 MISRA C:2012 MISRA C:2016 Amendment 1 MISRA C:201X MISRA C:202X 2017-11-02 소프트웨어안전성보증연구센터 13
자동차와소프트웨어 제너널모터스올스모빌토로나도 (1977) 역사상첫임베디드소프트웨어가내장된자동차 ECU 를이용하여전자식점화시간제어 50,000 라인의소프트웨어 (1981) F-22 Raptor : 170 만라인 F-35 JSF (Joint Strike Fighter) : 570 만라인 JSF C++ Coding standard 보잉 787 : 650 만라인 벤즈 S-Class : 1 억라인 ECU 수 : 100 네트워크수 : 5 케이블길이 : 2 마일 OS 수 : 10+ 비용 : 전체비용의 50% 테슬라로드스터 (2008), 모델 S (2012) 소프트웨어활용의새로운혁신 리눅스기반컴퓨터시스템이대부분의기능제어 소프트웨어업데이트는 3G 통신망으로 버그수정 새로운기능탑재 2017-11-02 소프트웨어안전성보증연구센터 14
소프트웨어신뢰성 vs. 안전성 신뢰성안전성비고 범위전체 SW 일부분 요구사항분석 요구사항분석 기능안전분석 명세비정형 / 준정형정형기법 설계비정형 / 준정형정형기법 코딩 방어적프로그램 ( 코딩규칙 ) 방어적프로그램 ( 코딩규칙 ) 테스팅중요오류삽입테스트 보증 새기법 SW 품질보증 (SW Quality Assurance) SW 안전보증 (SW Safety Assurance) Safety Case 2017-11-02 소프트웨어안전성보증연구센터 15
자동차와소프트웨어 : 새로운시대 현대아이오닉엔진룸 2015 Tesla Model S P85D 테슬라로드스터 (2008), 모델 S (2012) 소프트웨어활용의새로운혁신 리눅스기반컴퓨터시스템이대부분의기능제어 소프트웨어업데이트는 3G 통신망으로 버그수정 새로운기능탑재 소프트웨어기반전자식파워트레인 듀얼모터 P85D (2014) : 전방후방모터사이의토크를 10-3 초단위로조절. 트윈터보 V-12 엔진이상 691 마력, 3.1 초에 60MPH 가속 유투브동영상 : https://youtu.be/9ca1doo_9h8 자동차제조사는소프트웨어기업 2017-11-02 소프트웨어안전성보증연구센터 16
자동차의새로운위협 : 사이버시큐리티 한국일보, 2015 년 8 월 2 일, 올해최약의해킹사례 12 건, IT 인터넷, 2015, 12 2017-11-02 소프트웨어안전성보증연구센터 17
사이버시큐리티 101 개발시보안성 ( 시큐리티 ) 를고려하지않은시스템은 100% 해킹가능하다. 자동차개발시 ISO 26262 최고의 ASIL 을받았다고해킹에안전한것은아니다. 즉, Safety Security 그렇지만, 해결방법은매우비슷하다. 2017-11-02 소프트웨어안전성보증연구센터 18
소프트웨어보안성 (Security) 소프트웨어보안성 실수또는고의의외부침입으로부터시스템을보호할수있는능력 The ability of the system to protect itself against accidental or deliberate intrusion. Software Engineering 10 th edition, Sommerville, 2016. 소프트웨어보안 (Software Security) 의다른정의 소프트웨어가포함하고있는취약점 ( 보안약점 ) 의밀도 소프트웨어보안의어려운점 제로데이취약점을줄여야함. 취약점의원인이되는보안약점을줄여야함. 프로그래밍언어의의미론이명확하지않아, 모르는보안약점이존재함. 공격자는새로운보안약점을지속적으로찾아내고, 이를활용하여제로데이취약점 ( 사이버무기 ) 를개발하고있음. 명세에정의된영역의입력이아닌정의가안된범위의입력을사용 예 ) SQL 삽입공격, 버퍼오버플로공격등 즉, 일반적인테스트방법과다른방법이활용 2017-11-02 소프트웨어안전성보증연구센터 19
소프트웨어보안은보안소프트웨어로? 2017-11-02 소프트웨어안전성보증연구센터 20
( 일반적인 ) 버그 vs. 보안약점 소프트웨어로인한자동차고장 / 사고의원인 일반적인소프트웨어버그 외부사이버공격 ( 취약점, 보안약점 ) ( 일반적인 ) 버그 정상적작동중에설계 / 코딩등의잘못으로발생하는버그 명세에정의된범위내의입력으로발생 SW 품질, 신뢰성, 안전성저하 Therac 25 사고, Arian 5 사고, 세계종말버그 ( 구소련레이더장비버그 ) 보안약점 (Weakness) 공격자의의도로악용가능한버그 명세에정의된범위가아닌입력으로발생 사이버공격에사용 스턱스넷, 해킹, 하트블리드 2017-11-02 소프트웨어안전성보증연구센터 21
Software Weakness ( 보안약점 ) 보안약점이란, 소프트웨어내에있는 1. 소프트웨어구현, 코딩, 설계, 구조에내포된 2. Bug, flaw, fault, error, mistake. - cwe.mitre.org 임베디드 SW 용 ( 특히자동차용 ) 보안약점이연구중 2017-11-02 소프트웨어안전성보증연구센터 22
Software Vulnerability ( 취약점 ) 취약점이란, 소프트웨어내에있는 1. Bug, flaw, error, mistake, weakness ( 보안약점 ) 으로 2. 공격자가이러한 weakness 에접근하여 3. 시스템의정보보증을위태롭게함. - wikipedia.com 임베디드소프트웨어용 ( 특히자동차용 ) 보안취약점연구중 2017-11-02 소프트웨어안전성보증연구센터 23
소프트웨어안전성 VS 소프트웨어보안성 소프트웨어버그로인한안전성사고는확률로결정되나 소프트웨어취약점이있는경우는항상 (100%) 공격이가능 2017-11-02 소프트웨어안전성보증연구센터 24
MISRA-C 2012: Amendment 1 MISRA C;2012 에 MISRA 가이드라인에서요구하는시큐리티커버리지를포함하는시큐어코딩룰을포함 MISRA 프로그래밍언어가이드라인의모든문서와호환성을가지고있음 미래 MISRA C 가이드라인의방향성과일치함 본가이드라인을활용하면개발자는보안취약점을파생시킬수있는코딩방식을피할수있게해줌. 또한코드를더욱읽기편하고관리편하게해줌 14 개의새로운 C 코딩룰 : ISO C Secure 가이드라인에서중요시하는시큐리티관련분야를커버함. 시큐리티취약점과관련이있는신뢰할수없는데이터 (untrustworthy data) 에관련된이슈를지적함. 2017-11-02 소프트웨어안전성보증연구센터 25
미래방향 : 안전성과보안성을만족하는효율적통합개발 파워트레인 에너지효율 예상하지못한속도변경 운전자보조장치 자율운전 신호의혼란 연결 (connectivity) 24 기간연결 갑작스런운전자방해 2017-11-02 소프트웨어안전성보증연구센터 26
소프트웨어신뢰성, 안전성, 보안성에서통합속성으로 신뢰성 안전성 보안성 비 고 범위전체 SW 일부분전체 SW 요구사항분석 요구사항분석 + 기능안전분석 + 보안요구사항분석 명세비정형 / 준정형정형기법 (SIL4) 위협모델 / 위험분석 설계비정형 / 준정형정형기법 (SIL4) 시큐어설계 코딩 방어적프로그램 ( 코딩규칙 )/ 정적분석 1) 방어적프로그램 ( 코딩규칙 )/ 정적분석 2) 시큐어코딩 / 정적분석 테스팅중요오류삽인테스트보안테스트 보증 SW 품질보증 (SW Quality Assurance) SW 안전보증 (SW Safety Assurance) SW 보안보증 (SW Security Assurance) 새기법 Safety Case Security Case 통합보증기법 SW Assurance 2017-11-02 소프트웨어안전성보증연구센터 1) 명세에정의된입력범위 27 2) 명세에정의된입력범위이외
MISRA-C 발전 MISRA-C SW 안전성중심에서 SW 안전성, 보안성중심으로변화하는중 SEI CERT C Coding Standard 초기에는 SEI CERT C Secure Coding 으로시작 SW 보안성중심에서 SW 보안성, 안전성중심으로변화하는중 최종에는모든코딩표준 / 규칙은 신뢰성, 안전성, 보안성을포함하는규칙으로발전하고있음 MISRA-C:202X 는보안성을포함하는코딩표준으로발전예상 2017-11-02 소프트웨어안전성보증연구센터 28
ISO 26262 발전예상 2018 년 ISO 26262 에 SW 시큐리티언급 202X 년 ISO 26262 에 Safety 와 Security 를함께구현하는 Integrated 엔지니어링기법예상. Features vs. Assets Hazard/Risk Analysis vs. Threat/Risk Analysis Safety Goal vs. Security Objective (Goal) Functional Safety Requirement vs Security Functional Requirement 2017-11-02 소프트웨어안전성보증연구센터 29
새로운요구사항분석 위협분석 안전 오동작으로인한부상 재정 브랜드이미지손상으로인한판매감소 운전성능 문이잠겨야함. 개인정보 / 준법 개인정보유출 ECU 소유권 2017-11-02 소프트웨어안전성보증연구센터 30
자동차제조기업의성숙도 (BSIMM) 현재는 Automotive SPICE 활용중 보안관련엑티비스부족 BSIMM = 일종의 CMMI 로기업의소프트웨어보증성숙도 ( 신뢰성 + 안전성 + 보안성 ) Building Security in Maturity Model (BSIMM, bee simm 으로읽음 ) BSIMM 은소프트웨어보안의현재상태를반영함. 4 개의도메인 관리 정책및메트릭 준수및정책 교육 정보 공격모델 보안특징및설계 표준및요구사항 소프트웨어개발생명주기 touchpoints 아키텍처분석 코드리뷰 보안테스팅 배포 침입테스팅 소프트웨어환경 형상관리및취약점관리 2017-11-02 소프트웨어안전성보증연구센터 31
새로운속성 : Resilience ( 지속성 ) 센터에변조된입력값을제공 US 록히드마틴 RQ-170 사건 GPS 신호를조작하여이란공항에착륙하게함. 자동차도다양한센터가있고, 안전성, 봉안성이만족을해도외부입력자체가조작된경우해결할수없음. 다양한센터를이용하여해킹된센서입력을확인하여공격을받았음을인지하고지속적으로운항가능하게함. 2017-11-02 소프트웨어안전성보증연구센터 32
결론 "Those who will be able to conquer software will be able to conquer the world. -- Tadahiro Sekimoto, president, NEC Corp. 2017-11-02 소프트웨어안전성보증연구센터 33