2016년 8월 30일 화요일

위협 모델링(Threat Modeling)과 사물인터넷


                                                 영상 보러가기


위협 모델링(Threat Modeling)은 마이크로소프트사에서 대중화한 개념으로, 어떤 시스템의 보안이 우려될 때 그 시스템을 더 잘 이해할 수 있게 도와주는 프로세스입니다.

● 발생 가능한 위협을 모델링하는 것이 아니라 시스템의 특성을 이해하고 시스템이 위협에 대응하는 방식을 모델링하는 것
● 공격 당할 가능성이 있는 시스템 상의 공격 측면(Attack Surfaces)을 찾아 내고 해당 측면의 취약점을 해결
● 보호해야 하는 자산이 무엇이고, 그 자산이 어디에 있는지 파악하고, 이를 보호할 수 있는 방법에는 어떤 것이 있는지 이해함


이들은 현재 아키텍처 분석 및 설계 언어(Architecture Analysis and Design Language, AADL) 위협 모델링 프로젝트를 진행하고 있는데 주로 취약점 발견(Vulnerability Discovery)에 집중하고 있습니다. 물론 사물 인터넷 장치에서도 취약점 발견 위협 모델링을 적용하고 있습니다.

위협 모델링에서는 사물 인터넷 장치에 대해 직접 분석하는 것이 아니라 해당 장치의 취약한 부분을 화이트보드에 정리하고, 정리하는 과정 내내 대화를 나누면서 취약점을 찾아내고 있습니다. 그런데 이렇게 해서 발견한 취약점들을 살펴보면 대부분 올해 보안 회의에서 발표한 연구서에서 이미 소개된 것들 입니다. 이렇게 다른 연구를 활용하는 방법이 편리한 이유는 각 장치를 완벽하게 이해할 필요가 없다는 점입니다. 문제점을 깊이 관찰하고 논리적인 취약점을 스스로 찾아내는 사고 실험(Thought experiments) 방식을 적용하는 것만으로 발견한 취약점과 해결책을 테스트 절차나 공급 업체 선택 등에 적용할 수 있기 때문입니다.

또한 위협 모델링은 매우 운영이 편리하다는 점도 강조하고 싶습니다. 보안 버그나 취약점에 대한 보고서를 받으면 협조 공개 프로세스(Coordinated Disclosure Process)를 통해 이를 관찰한 다음, 치료 소프트웨어를 사용하고 취약점을 공개하여 관련 피해를 최소화합니다.

사물 인터넷 시대에는 더 많은 사물들이 서로 연결됩니다. 수십 년 간 훌륭한 제품을 생산해 온 제조사들도 수많은 네트워크가 연결된 작은 내장 컴퓨터에 앞에서는 당황하기 마련입니다. 네트워크가 연결되고 나면, 업데이트가 필요하고 최신 소프트웨어가 필요하게 되는데, 여기서 취약점이 발생하는 것입니다. 대부분의 제조사는 제품에 네트워크를 연결해 놓고는 기본적인 위협 모델링을 수행하지 않습니다. 하지만, 매우 간단한 위협 모델링 만으로도 디버깅 포트가 켜져 있다 거나, 패스워드를 변경하지 않는다 거나 하는 아주 기본적인 취약점을 찾아낼 수 있습니다.

위협 모델링을 적용할 수 있는 새로운 영역으로는 운송 수단, 항공 전자 공학과 같이 이미 정부의 규제를 받는 산업이 있습니다. 이 산업에는 이미 안전 규칙이 수립되어 있습니다만, 앞으로는 코어 네트워크와 컴퓨터 보안도 안전 규칙의 일부로 생각해야 합니다. 따라서 표준화나 도구에 관한 보안 규칙에 위협 모델링을 적용하는 작업을 정부 규제 기관과 함께 진행해야 합니다.


깃(Git) 사용으로 인한 소프트웨어 개발 효율화

소프트웨어 개발에서는 소스코드의 관리가 매우 중요하다. 완성된 소스코드는 물론이고 완성되기 전까지 만들어졌던 다양한 버전과 변경 사항, 그리고 협업을 위한 저장이나 공유 방법도 소프트웨어 개발에서는 매우 필요한 요소 중 하나다. 2명 이상의 개발자가 참여하여 프로젝트를 진행할 경우, 소스코드 관리의 중요성은 더 강조되고 있다. 이번 회에서는 깃(Git)을 이용하여 팀 프로젝트를 관리하는 방법에 대해 CJ O쇼핑 해외사업부 개발팀 곽대기 팀장을 만나 자세한 사항을 들어본다.


Q: 본격적인 이야기 전에 형상관리를 해야 하는 이유에 대해 설명을 부탁 드립니다.

일반적으로 형상 관리에서 관리되는 것은 (1)형상에 대한 변경과 버전 관리를 수행하고, (2)배포 도구를 통해 변경 사항을 배포, (3)만들어지는 형상을 버전 별로 저장소에 저장을 합니다(그림1). 형상 관리는 소프트웨어의 생명 주기에 필요한 소스코드나 산출물 등을 체계적으로 통제한다는 장점이 있지만, 프로젝트의 규모나 목적에 따라 불필요한 업무가 될 수도 있습니다. 프로젝트 시작 시점에 적절한 형상 관리 방법을 찾는 것이 필요합니다.

<그림1> 형상 관리의 역할

출처: eGovFrame


더보기       

빅데이터 사례 연구 - 시각화

거의 모든 산업에서 빅데이터를 분석하는 것은 이제 흔한 일이 되었다. 그만큼, 빅데이터의 중요도와 활용도가 인정 받았다는 뜻이기는 하지만, 빅데이터 분석 결과를 해석하거나 표현하는 방법은 크게 고민하지 않고 있는 것이 사실이다. 이번 회에서는 분석된 빅데이터를 정보화하고 누구나 직관적으로 이해할 수 있도록 표현하는 빅데이터 시각화에 대해 살펴본다. 효율적인 시각화 방법을 통해 빅데이터의 활용도가 높아지길 기대한다.


시각화의 정의

데이터 시각화(Data Visualization)

데이터 시각화는 빅데이터 분석 결과를 쉽게 이해할 수 있도록 시각적 수단을 활용하여 나타내는 것을 말한다. 도표, 이미지, 통계 그래프 등을 통해 빅데이터 안에 있는 정보를 전달한다. 수많은 데이터를 한두 장의 그림으로 표현해야 하기 때문에 해당 비즈니스를 잘 아는 전문가가 만들어야 한다고 생각하지만, 비즈니스 전문가들은 원하는 결과를 미리 유추하면서 만드는 경향이 있을 수 있어 객관적인 결과를 만들지 못하는 경우도 종종 나타날 수 있기 때문에 가급적이면 객관화된 시각화 도구를 활용하는 것이 좋다. 그림1은 “한눈에 보는 2012년 서울시 예산”을 나타내고 있다. 일반적으로, 이러한 데이터를 보여줄 때는 그림1 좌측의 엑셀과 같이 나열식으로 보여주는 경우가 많았지만 이것을 그림1의 우측과 같이 데이터 시각화로 변형할 경우 한눈에 알아보기 쉽게 표현된다.


<그림1> 빅데이터 시각화의 예

정보를 보는 사람은 너무나 많은 정보로 인해 해석에 어려움을 느끼고 보는 것만으로도 괴로움을 느낄 정도로 데이터가 쏟아지고 있다. 짧은 시간에, 적은 양의 자료를, 해석하기 쉬운 형태로 보여주는 데이터 시각화는 이러한 점을 해소하기 위해 가장 적합한 방법이라고 할 수 있다.