2017년 4월 19일 수요일

<위험 분석> 범위 정의 예시

범위 정의에서는 대상 제어시스템(EUC)과 이를 제어하는 시스템의 경계를 결정하고, 위험원 및 위험 분석의 적용 범위를 명시하는 것이다 (예: 프로세스 위험원, 환경적 위험원 등).

이를 위해 다음과 같은 정보 및 활동이 필요하다. 그림은 범위 정의의 예시이다.

  • EUC 와 EUC 제어 시스템의 경계는 관련 위험원 및 유험한 사건과 연관된 모든 장비 및 시스템(해당되는 경우 인간을 포함)을 포함 
  • ECU 및 ECU 제어 시스템을 포함하여, 위험원 및 리스크 분석의 범위에 포함될 물리적 장비 
  • 위험원 및 리스크 분석에서 고려해야 할 외부적 사건 
  • 위험원 및 위험한 사건과 연관된 장비 및 시스템 
  • 고려가 필요한 사건 유발 유형(예: 위험한 사건을 유발할 수 있는 부품 고장, 절차상의 결함, 인적 오류, 종속적 고장 메커니즘 등) 
  • 얻은 결과와 정보를 문서화 

그림. 범위 정의 예시 

  • One Series Safety Transmitter 는 시스템 프로세스의 온도 또는 압력을 감지하고 안전하지 않은 상태가 발생하기 전에 해당 시스템을 모니터링하거나 종료하기위한 출력을 제공하는 2 선 송신기입니다.  
  • 4-20mA 출력은 안전 PLC 에서 사용하기위한 프로세스의 아날로그 표시를 제공하며,  솔리드 스테이트 세이프티 릴레이 출력은 프로그래밍 된 작동 모드 및 제한을 기반으로 최종 요소를 직접 제어하거나 셧다운하고, 스위치 상태 출력은 솔리드 스테이트 릴레이 출력의 기능 및 상태를 반영하는 개별 출력입니다. 
  • 현재 작동 중(IAW) 출력은 자체 진단을 기반으로 한 개별 출력이며 송신기 상태를 나타내고, 장애가 발생하면 결과를 오류 안전 상태로 전환합니다. One Series 안전 트랜스미터의 4 개 결과는 모두 안전에 중요한 결과물로 이용할 수 있으며 Trip-toTrip (DTT) 모드로 작동합니다. 
  • One Series 안전 트랜스미터는 하드웨어 결함 허용 오차가 0 인 IEC 61508 에 따라 유형 B1 장치로 분류됩니다. 

SW 위험 분석에 관한 일반적인 접근방식

SW 위험 분석 활동은 SW 수명주기에 걸쳐 잘 정의되어야 한다. 일반적으로 위험요인 분석은 시스템의 설계 분석 및 안전분석관련 정보를 제공 받으면서 시작되며, 그 설계 분석은 안전한 작동 영역의 허용치(안전무결성수준)를 결정하게 된다. 이 설계분석에서 SW 위험원 분석을 위한 출발점이 될 많은 다양한 정보들을 제공하게 된다. 여기에는 기술적 개발활동(요건, 구조, 설계, 코드), 확인 및 검증 활동, 위험원 분석 활동 등이 포함된다.

각 선행단계에서는 그림과 같은 하나 이상의 문서가 작성되어야 한다. 이 문서들이 다음 단계의 위험요인 분석을 수행하는데 필요하게 되며, 단계별 검증 및 확인의 대상이 된다.

그림. SW수명주기에 따른 SW 위험원 분석공정 


위에서 제시한 절차가 일반적으로 요구되지만, 실무에서는 사업에 따라 부분적으로 커스터마이징이 필요하다. SW 는 개발이 진행되면서 반복적인 위험 분석 활동이 필요하므로 절차를 반드시 준수해야 하는 것은 아니다. 

예를 들면, SW 요구사항에 대한 위험 분석이 이루어지기 전에 예비 위험원 분석이 필요한데, 그러한 분석 또는 다른 형태의 요구사항 분석 결과가 시스템 설계변경을 초래하여 예비위험원분석을 반복 수행해야 할 수도 있다. 

<위험 분석에 대한 접근> SW 설계의 일부로서 SW 위험 분석

위험 분석의 궁극적인 목표는 부적합사항을 찾아서 시정하고, 필요한 안전조치를 위한 정보를 제공하는데 있다. SW 위험원 분석에서도 적절한 조치가 취해지지 않는다면, 분석의 의미가 없어지게 되므로, 적어도 다음 유형의 조치들이 상황에 맞게 적절하게 취해져야 한다.


  • 시스템 설계는 SW 에 의해 영향을 받거나, SW 로 적절하게 처리되지 않는 확인된 위험원들을 제거하려는 목적으로, 그 위험원을 허용 가능한 수준까지 줄이거나 확인된 위험원들이 심층방어 설계로써 제거될 수 있도록 시스템 구조를 변경할 수 있다. 
  • SW 설계는 확인된 위험원들을 없애거나, 그것들을 허용 가능한 수준까지 줄이려는 목적으로 변경될 수 있다. 
  • SW 품질은 허용 가능한 수준까지 특정 위험원의 발생 가능성을 줄여서 충분한 정도까지 나아질 수 있다. 
  • 응용 시스템은 만약 그 시스템이 너무 위험하다면 폐기될 수도 있다. 

2017년 4월 18일 화요일

소프트웨어 안전성 분석(2)

제4차 산업혁명이 나타나면서 각 산업에서 소프트웨어가 차지하는 비중이 점점 늘어나고 있어 소프트웨어의 안전성에 대한 이슈가 날로 커지고 있다. 지난 회에 이어 소프트웨어 안전성 분석에 대해 알아보고자 하며 지난 회에서는 소프트웨어 안전성 분석의 개념 중심으로 살펴봤고 이번 회에서는 실제 적용된 체계 중심으로 살펴본다.
소프트웨어 안전성 확보 체계
소프트웨어의 안전성을 확보하기 위한 노력은 최근에 이루어진 것은 아니다. 이미 오래 전부터 소프트웨어로 인한 대형 사고는 계속 발생하고 있다. ‘96년 4월에 유럽의 상업 우주선 아리안 5호는 발사한지 50여초 만에 공중에서 폭발했는데 사고의 원인을 소프트웨어 오류 때문이라고 결론 냈다. 64비트 숫자 값을 16비트 정수로 변환하는 과정에서 일어난 것으로 지금은 흔하게 알려져 있는 오버플로우 오류였고, 이로 인해 5억 달러 우주선이 폭파됐다. 가까운 일본의 최근 사례로 도요타는 ‘10년부터 차량 급발진 사례로 여러 번의 소송을 받아 왔고 결국 미국 법무부의 조사를 받았다. 조사 중 소프트웨어 전문업체를 통해 전자제어장치의 소프트웨어 오류로 급발진이 발생한다는 사실이 입증되었고 도요타는 12억 달러의 합의금을 내야했다. 이처럼 크지 않을 것 같은 소프트웨어 오류로 인한 피해는 앞으로 기하급수적으로 늘어날 것으로 예상되기 때문에 소프트웨어 안전성에 대한 철저한 검증과 관리가 필요하다.

소프트웨어 안전성 기준 확보

각 산업에서는 산업 고유의 안전성 확보를 위한 기준이 준비되어 있는데 전자나 기계적인 장치가 들어있는 경우 소프트웨어에 대한 내용도 포함되어 있는 경우가 대부분이다(표1). 각 기준에는 산업별로 안전성에 대한 확보, 검증, 관리에 대한 가이드라인이 포함되어 있어 소프트웨어와 관련된 가이드라인을 확인한다.

<표1> 산업별 안전성 기준

출처: 중소기업융합학회 논문 - 소프트웨어 개발 프로세스에서의 안전성 분석 및 관리활동의 적용방안

소프트웨어 안전성 보증 프로세스

소프트웨어를 개발할 때는 요구사항을 기준으로 체계적으로 반영될 수 있도록 준비하고 제대로 적용되었는지 확인하는 것이 기본이다. 소프트웨어의 안전성 확인도 개발 프로세스에 맞추어 준비를 하는 것이 가장 효율적이기 때문에 요구사항에서 안전성 관련된 부분을 발췌하여 정리하고 소프트웨어에 제대로 적용되는지 확인하도록 해야 한다(그림1).

<그림1> 소프트웨어 안전성 보증 프로세스의 예
출처: 2015 소프트웨어 안전성 컨퍼런스

다만 주의할 사항이 있는데, 그림1과 같은 방법은 소프트웨어 중심으로 만들어지는 프로세스로 볼 수 있고, 각 산업별로는 더 다양한 형태로 소프트웨어 안전성이 확보될 수 있도록 프로세스를 확인하고 적용해야 한다(그림2).

<그림2> 산업별 소프트웨어 안전성 기준
출처: 2015 소프트웨어 안전성 컨퍼런스

각 소프트웨어 안전성 보증 프로세스에 맞춰 개발을 진행할 때도 메인 프로세스가 각 산업에 있다고 하더라도 소프트웨어는 안전성 보증 프로세스에 맞추는 것이기 때문에 단 번에 끝내는 것이 아니라 안전성 수준에 따라 점진적(Increment), 반복적(Iteration) 프로세스를 도입하는 것도 좋은 방법이다. 더 보기 >>>

모바일 기기 확대로 인한 회사들의 보안 문제

거의 모든 회사원들에게 모바일 기기가 보급되면서 모바일을 이용하여 업무를 수행하도록 하는 회사들이 지속적으로 늘어나면서 회사 업무 보안에 대한 관심도가 증가하고 있지만 이보다 더 임직원들을 통해 회사 안으로 들어오는 모바일 자체에 대한 보안 문제는 고민거리를 더 안겨주는 추세다. 이번 회에서는 단국대학교 보안연구실의 연구원들, 글로벌테크 이성규 이사와 함께 모바일의 확대로 인해 늘어가는 회사들의 고민거리에 대해 알아보기로 한다.

Q: 안녕하세요. 최근에 스마트폰의 등장으로 기업에서 스마트폰을 이용하여 업무 영역을 확대하는 사례가 늘고 있습니다. 모바일과 관련된 기업들의 움직임에 대해 먼저 부탁합니다.

회사 내에서 스마트폰이 없는 사람은 아마 거의 없을 겁니다. 스마트폰 자체를 거부하는 일부 피쳐폰 사용자 말고요. 그러다 보니 기업의 경영자 입장에서는 스마트폰을 이용하여 업무의 편의성을 제공하려 한다지만 어떻게 보면 더 타이트한 업무 범위를 강조하는 것일 수 있지요. 회사에 도움이 되지 않는데 일부러 비용을 들여서 적용할 필요는 없기 때문이죠. 이메일도 더 빨리 볼 수 있고 결재도 더 신속히 결정되고 근태도 스마트폰으로 신청할 수 있고요. PC 앞에서 처리하던 것들을 스마트폰으로 할 수 있으니 업무 관점의 신속성이 더 높아진 것이죠.

<그림1> 기업 내 업무 커뮤니케이션 설문 결과



출처: 이스트소프트

그림1을 보면 스마트폰으로 업무를 활용하는 수치가 지금도 계속 증가하고 있습니다. 우리가 스마트폰으로 흔히 이용하는 메신저나 이메일 뿐만 아니라 자료 공유나 문서 작성에도 많이 활용하고 있다는 것이 눈에 띄는 변화입니다. 그리고 다소 사용률이 떨어질 것 같은 중년층의 경우도 지속적으로 늘어가고 있고 사장이나 임원들이 더 적극적으로 활용하고 있는 추세이기 때문에 증가하는 속도는 더 빨라질 것으로 보입니다.

Q: 업무에 스마트폰을 활용하는 경우가 계속 증가하고 있는 것은 부정할 수 없는 사실이긴 한데 업무에 도움이 많이 되기 때문인가요?

논란이 있기는 하지만 도입한 회사들의 경우 커뮤니케이션에는 상당히 도움이 된다는 보고가 나오고 있기는 합니다만 사용자인 직원들은 불만 섞인 피드백이 많이 나오는 것도 사실입니다. 시도 때도 없이 울려대는 스마트폰 때문에 회사 안과 밖의 경계가 없어진 때문이겠죠. 긍정적인 면을 본다면 담당자와 한시도 떨어지지 않는 스마트폰은 업무 공백을 없애주는 핵심 요소이기 때문에 업무에 도움을 준다고 봐야겠지요.

<그림2> 모바일 오피스의 예
출처: 삼양데이타시스템

예전에 그룹웨어(Groupware)가 유행하던 현상과 비슷하다고 보시면 되지요. 그룹웨어도 처음에는 이메일이나 회사 게시판 정도가 운영되다가 화상 회의나 일정 관리, 주요 거래선 관리, 결국 회사 전용 메신저도 추가되었고 구글 드라이브와 같은 문서 공유 솔루션도 만들어졌지요.

Technical Debt as a Core Software Engineering Practice

참석자
Ipek Ozkaya - At the SEI she is the deputy lead for the Architecture Practices initiative.
요약
---
기술 채무 (Technical Debt): 소프트웨어 개발 프로젝트를 진행할 때, 초기에 제대로 처리하지 않은 일이 반복 주기에서는 문제점으로 나타나고, 이러한 문제점이 다른 수정사항이나 또 다른 문제를 나타낼 수 있어 원금에 이자까지 지불해야 하는 상황이 온다는 개념
---

이번 이야기는 기술 부채와 소프트웨어에서의 의미에 관한 것입니다. 수년에 걸쳐서 우리는 레거시 현대화, 애자일 적용, 아키텍처가 충분히 많은지, 어떤 것을 바꿔야 기술이 바뀌는지 문제를 겪은 많은 고객과 함께 했습니다.
다양한 고객과 다양한 문제에 걸쳐 한 가지 사실은 있습니다. 실제로 시스템에 남는 것을 표현할 수 없다는 것입니다. 예를 들어, 정말로 레거시를 업그레이드 해야 합니까? 정말로 아키텍처를 다시 만들어야 합니까? 그리고 어떻게 트레이드-오프를 결정해야 합니까? 결국 마지막에는 비즈니스 결정만 아니라 디자인 결정을 해야 한다는 것입니다. 하지만 일단 비용 측면을 고려하면서 트레이드-오프를 이야기하면 계속 반복될 겁니다. 그것은 커뮤니케이션 메커니즘뿐만 아니라 연관된 여러 연구 과제에서 기술적 부채를 찾는 시작입니다. 이것이 프로젝트의 착수 방법입니다.

2017년 4월 17일 월요일

<위험 분석에 대한 접근> 시스템 안전 분석의 일부로서 SW 위험 분석

SW 는 시스템의 일부분으로 위험 분석은 전체 시스템의 설계 맥락에서 수행되어야 한다. SW 그 자체만으로는 안전성 문제를 발생시키지 않고, SW 가 시스템의 일부분으로 구성될 때 비로소 문제가 발생한다. 따라서 SW 안전성은 HW 와 결합되는 지점부터 위험분석이 시작되어야한다. 또한 관련된 HW, 주변 환경, 그리고 사람 등을 고려해야 한다. 때문에 SW 위험 분석을 수행하는 분석가는 시스템 안전 기능의 수행과 시스템 제어 및 감시 기능의 수행에 있어서 SW 역할을 이해해야 하고, 해당 시스템 안전성 달성에 있어서 SW 가 시스템에 미치는 영향을 잘 파악해야 한다.

시스템 설계에 있어 안전 특성들은 기본적으로 품질, 다양성, 그리고 심층방어의 세 가지 설계 원칙으로 결정된다. 이 원칙들이 여러 계층의 설계에 적용될 수 있으며, 어디에 어떻게 적용할 것인지를 결정하는 것이 설계 공정의 중요한 활동이고, 세 가지 원칙은 다양한 형태의 공정제어 장치에 적절하게 적용 가능하다.

물리적인 관점에서 심층방어 개념을 예를 들어 살펴보면, 핵분열 생성물의 누출을 통제 하기 위해 세 계층의 심층방어 설계가 마련되어 있다. 각 계층은 어느 정도 심각한 수준의 방사선으로부터 일반 대중의 피폭을 방지할 수 있어야 한다. 첫 번째 계층은 핵연료봉이 그 피복재로 싸여져 있다. 두 번 째 계층은 핵연료봉에서 세어나온 핵분열 생성물이 E/E/PES 시스템냉각재장치(RCS)에 의해 격리된다. 세 번째 계층은 E/E/PES 시스템 건물이 E/E/PES 시스템 냉각재 장치를 에워싸고 있다. 이들 각 계층은 기본적으로 서로 다른 설계이며, 각 계층마다 다양성을 부여하고 있다.

계측제어 관점에서 살펴본 심층방어 개념으로는 각 기능이 여러 개의 독립적인 시스템들에 의하여 작동될 수 있다. 예를 들면, 제어봉은 제어 장치, E/E/PES 시스템보호장치, ATWS 완화 장치, 공학적안전설비 작동 장치(ESFAS)에 의해 자동 또는 수동으로 작동될 수 있다. 또한 컴퓨터 기반 제어 및 보호장치들을 포함한 신형 E/E/PES 시스템 설계에서는 적어도 두 개의 자동시스템이 각 안전 기능을 개시할 수 있어야 한다. 그리고 운전원이 각 안전 기능을 시작, 가동, 종료할 수 있도록 충분한 정보와 수동 제어기능을 마련하여야 한다.