소프트웨어 안전 없이 제4차 산업혁명도 없다
  • 진회승SW기반정책·인재연구실 책임연구원
날짜2018.10.26
조회수10151
글자크기
    • 요즘 세계 경제와 사회의 미래를 논함에 있어 가장 주요한 화두는 제4차 산업혁명이다. 제4차 산업혁명은 전 산업영역에 걸쳐 기존 산업이 소프트웨어와 융합하면서 새로운 형태의 산업과 기술, 시장을 창출해내는 것으로 상상을 할 수 없는 생산성과 기술적 진보를 가져다 줄 것으로 기대되고 있다. 이에 따라 제4차 산업혁명은 기존의 제조기술과 서비스산업에 한계를 느끼고 있는 세계 유수의 선진 국가들에게는 현재 누리는 경제적 풍요를 더욱 높일 수 있는 기회로, 그렇지 못한 후발 국가들에게는 그간의 산업사회에서 소외되어 온 열등감을 극복하고 도약케 하는‘알라딘의 램프’로 여겨지고 있다. 모든 국가들에게 활짝 열린 새로운‘희망 무지개’인 것이다.
    • 우리나라도 제4차 산업혁명이라는 거대한 전쟁에서 승자가 되기 위해 국가적 노력을 경주하고 있다. 범정부차원의「4차산업혁명위원회」를 출범시켜 국가적 과제를 선정하고 부처별로 과제를 체계적으로 추진해 나가고 있다. 이를 통해 소위 ABCi 즉 AI, Big Data, Cloud, IoT 기술 등을 제4차 산업혁명의 핵심기술로서 설정하고 발전방안을 마련하는 데까지 나아가고 있게 되었다.
    • 이렇게 온 나라가 제4차 산업혁명과 미래 성장 동력을 향해 달려가고 희망을 논하고 있는 상황인데, 필자에게는 마치 한쪽 바퀴가 빠진 버스가 달리는 것 같다는 느낌은 왜일까?
    • 최근의 제4차 산업혁명 기술들을 보면 우리나라뿐만 아니라 세계적으로 전방위 속도전을 방불케 하고 있다. 자율주행차, 블록체인, 스마트시티, 원격의료 등 정신을 차리기 어려울 정도로 다양한 분야에서 여러 기술들이 시도되고 있다. 그런데 아쉽게도 제4차 산업혁명의 핵심적 기술로 인정하기에는 뭔가 많이 부족하다는 것이 전문가들의 평가이다. 이의 원인에 대해서는 다양한 분석이 가능하겠지만 필자의 눈에는‘이것 한 가지’가 아직 미흡한 데 원인이 있는 것으로 보인다. 바로 소비자의 신뢰를 얻을 수 있는 수준의‘소프트웨어 안전’이 확보되지 못하고 있기 때문인 것이다.
    • 사실 제4차 산업혁명은 생산자의 기술적 진보도 중요한 요소이지만 소비자의 편의와 효율에 따른 소비자의 신뢰와 지지가 더 큰 요소이다. 즉 기술적 진보를 통해 개별 소비자가 원하는 제품과 서비스를 매우 낮은 비용으로 쉽고 빠르게 제공받는 데 소비자들이 열광하기 때문에 제4차 산업혁명이 가능하게 되는 것이다. 그런데 제품과 서비스, 이를 가능케 하는 소프트웨어가‘안전’하다는 대전제가 확보되지 않으면 소비자들의 신뢰와 지지는 기대하기 어려운 것이다.
    • 이렇듯 제4차 산업혁명에 있어서 소프트웨어 안전의 중요성에도 불구하고 소프트웨어 안전의 현실을 보면 아직 많이 미흡한 것이 실정이고 시간이 필요한 듯하다. 소프트웨어 오류는 하드웨어 오류보다 찾아내고 관리하기가 어려울 뿐만 아니라 하드웨어, 소프트웨어, 데이터 등 관련된 기술요소의 안전이 모두 보장되어야 하기 때문이다. 특히 제4차 산업혁명 기술들은 여러 기술이나 시스템이 복합적으로 연결되고 결합하므로 안전문제를 해결하기가 쉽지 않다. 예를 들어 자율자동차가 성공하려면 자동차시스템 뿐만 도로시스템 등 복합적으로 적용되는 모든 시스템의 안전이 소프트웨어에 의해 완벽히 확보되어야 한다. 과거 소프트웨어에서 생각하던 보안이나 품질 등의 개념과는 그 차원을 달리한다고 해도 될 정도로 소프트웨어 안전의 영역과 범위가 확장되고 있는 것이다. 다행히도 최근 소프트웨어 안전에 관련된 해외 학회나 비영리단체의 경향을 살펴보면, 시스템 안전 관련 컨퍼런스에서 소프트웨어 안전을 점차 비중이 있게 다루며 새로운 관점에서 소프트웨어 안전에 대한 연구가 증가하고 있는 것은 고무적이라 할 만하다.
    • 국제시스템안전협회(The International System Safety Society) 1 에서 40년 가까이 진행하고 있는 시스템안전컨퍼런스(International System Safety Conference, ISSC)의 경우, 2017년의 논의주제는 시스템 안전의 영역 확장인데, 하이퍼루프 2 처럼 각각의 시스템의 안전이 중요한 철도, 항공, 우주선 기능이 복합되어 만들어진 시스템에서 안전을 확보하는 문제 등이 그 예이다.
    • 그림 1 하이퍼루프 모형도
      [그림 1] 하이퍼루프 모형도
      ※ 출처 : 하이퍼루프 원 홈페이지
    • 또한 1991년에 시작한 SCSC(the Safety-Critical Systems Club) 3의 경우에는 자율시스템 안전, 데이터 안전 등 새로운 안전개념에 대한 논의가 제기되고 있고 품질, 신뢰성 학회에서는 기존의 품질, 신뢰성 논의에 소프트웨어 안전을 포괄하려는 시도가 이루어지고 있다. QRS(Software Quality, Reliability and Security)학회는 보안과 신뢰성 학회 4와 품질 학회 5를 합쳐서 소프트웨어 안전, 품질, 보안의 산업계와 학계 전문가들이 모여 아이디어, 연구결과, 경험 및 우수 사례를 교환하기 위해 2015년에 시작하였다. 품질, 신뢰성, 보안은 따로 생각하기 어렵다는 생각인 것이다. 신뢰성은 시스템의 능력이 중요하며, 안전은 사람의 생명이 더 중요한데 소프트웨어가 여러 도메인에서 사용되면서 신뢰성의 요소로서 안전, 안전의 요소로서 신뢰성을 통합적으로 봐야한다는 주장인 것이다.
    • 한편 소프트웨어 안전을 100% 해결하면 좋지만 이는 거의 불가능에 가까우므로 사회적으로 지지받기 위해 확보해야 할 최소한의 안전 수준이 얼마인가도 소프트웨어 안전에서 해결되어야 할 중요한 문제이다. QRS 2018에서 Jeffrey Picciotto는 소프트웨어 안전의 대체개념을 주장하였는데 바로 회복성(Resiliency) 개념이다. 완벽한 안전 확보는 쉽지 않으며, 약간의 사고가 있더라도 미션이 수행이 지속되는 수준에서 시스템이 운영되면 된다는 주장이다. 예를 들어 움직이는 자동차는 100% 안전이 보장될 수 없고 어느 정도의 사고는 예상되고 있지만, 자동차가 운영될 수 있을 정도의 사고를 최소화시키기 위한 노력이면 된다는 것이다. 즉 사이버 회복성은 비용, 성능, 효율성 등을 모두 고려하는 데 비해, 사이버 안전은 비용이나 효율성보다는 위험을 줄이는 데만 집중하면 된다고 주장하고 있다. 그렇지만 이는 소프트웨어 안전 기술 전문가들의 주장으로 결정할 수 없고 사회적 논의를 거쳐야 하는 문제이므로 앞으로 이 문제를 해결하기 위한 논의구조도 고민해야 한다.
    • 그림 2 사이버 안전, 사이버 회복성과 사이버 보안 비교
      [그림 2] 사이버 안전, 사이버 회복성과 사이버 보안 비교
      ※ 출처 : Jeffrey Picciotto, MITRE
    • 해외에서는 관련기관 간에 시스템 안전 분야를 소프트웨어 안전과 통합적으로 연구하고 기술을 공유하는 데 적극적인데 이는 소프트웨어 안전 문제 특성상 기본적이고 필수적인 접근법이다. 우리는 아직 이러한 수준에 미치지 못하고 있어 이를 발전시키는 것이 당장 필요한 과제이다. 요즘 소프트웨어 안전 포럼에 대한 요구가 늘어나 소프트웨어 안전 전문가와 도메인 관련 전문가가 모여 안전에 대한 연구와 기술 공유를 확대하는 문제가 논의되고 있는 것은 이런 점에서 무척 다행이라 하겠다. 이제 각 산업에 소프트웨어가 침투하여 하드웨어를 제어하는 방향으로 가는 것은 막을 수 없는 현실이다. 안전 산업에서 소프트웨어가 중요한 역할을 하며, 소프트웨어로 제어되는 시스템의 안전을 고려하는 것이 중요해졌다. 해외에서는 시스템 안전 관련 협회가 20~40년 가까이 활동을 하고 있는데, 국내에서도 시스템, 소프트웨어 안전 관련 전문가가 모여 각 도메인에 축적된 안전 기술과 확보 방법을 공유하고 발전시켜 나가야 한다. 이는 빠를수록 좋다.
    • 한편 이러한 노력과 함께 소프트웨어 안전의 발전기반 조성을 위해 조속히 해결해야 할 문제가 있다. 소프트웨어 안전이 무엇인지 그 정의에 대한 사회적 합의가 그것이다. 다행히 전면 개정 중인『소프트웨어산업 진흥법 개정안』 6 에서 소프트웨어 안전 정의가 제시되고 있어 본격적인 논의가 이루어질 예정이다. 동 법안에서는 소프트웨어 안전을‘외부로부터의 침해 행위가 없는 상태에서 소프트웨어의 내부적인 오동작 및 안전기능(사전 위험분석 등을 통해 위험발생을 방지하는 기능) 미비 등으로 인해 발생할 수 있는 사고로부터 사람의 생명이나 신체에 대한 위험의 발생을 방지하거나 이에 대한 충분한 대비가 되어 있는 상태’라고 정의하고 있다. SW안전 개념에 SW 오류뿐 아니라 위험분석 미비 등으로 인한 위험(Risk)을 줄여 사고를 방지할 수 있도록 안전기능 항목을 추가하고 있다.
    • 「소프트웨어산업 진흥법 개정안」의 소프트웨어 안전에 대한 정의가 불변이거나 완벽한 것이 아닐 수 있다. 소프트웨어 안전에 대한 요구나 다양한 생각을 법률로 한정하여 담는 데는 한계가 있는 것도 사실이다. 그러나 이에 대한 논의를 통해 품질, 보안 등과의 구분이 모호하고 혼란스러운 개념을 보다 명확히 하고 소프트웨어 안전의 역할을 분명히 하는 것은 소프트웨어 안전에 대한 사회적 공감을 높이고 소프트웨어 안전을 보다 체계적으로 확보할 수 있도록 하는 중요한 의미가 있다고 할 것이다. 이는 소프트웨어 안전을 위한 중요한 첫걸음이자 제4차 산업혁명을 뒷받침하는 주춧돌이 될 것이다.
    • 1 홈페이지, https://system-safety.org/
    • 2 하이퍼루프는 엘런 머스크의 아이디어로 진공상태의 관에 이동체를 이동시키며, 지상에서 공기압의 1/100이기 때문에 에너지가 적게 들어 경제적으로 구현 가능성이 큼
    • 3 SCSC 홈페이지, https://scsc.uk/, SCSC는 유럽을 중심으로 활동하고 있는데, 전문가에 의한 세미나, 워크샵, 교육을 진행하고 있으며, 홈페이지에 안전 관련 정보를 관리하고 있다. 매년 2월에 정기적 컨퍼런스를 개최하고 있으며, 가장 많은 발표주제가 자율시스템(Autonomous Systems)과 인공지능, 데이터 등 소프트웨어와 관련된 안전 부분이었다.
    • 4 SERE conference(IEEE International Conference on Software Security and Reliability)
    • 5 QSIC conference(IEEE International Conference on Quality Software)
    • 6 정부입법지원센터 홈페이지(https://www.lawmaking.go.kr/lmSts/govLmPln)에서 검색