2020.01.13

강은성의 보안 아키텍트 | 보안공학과 보안 내재화

강은성 | CIO KR
미-중 무역전쟁 중에 불거진 화웨이 이슈는 공급망 보안(Supply chain security) 문제를 환기시켰다. 우리 회사가 구매, 구축, 개발하는 제품과 서비스에는 다른 회사에서 만든 제품이나 부품, 서비스가 있기 마련인데, 그것이 안전한지 고민하게 된 것이다. 대규모 공급망을 보유한 세계 자동차 업계에서는 완성차 업체가 보안 요구사항을 세부적으로 기술하고, 부품 업체에게 개발 프로세스나 출시 후 보안취약점의 처리 프로세스까지 요구한다. 특히 2015년 지프 체로키 사건으로 자동차의 주행장치까지 해킹 가능성이 입증된 후로는 더욱 까다로워지는 추세다. 글로벌 기업과 경쟁·협업하는 국내 완성차 기업이나 1차 부품 기업 역시 적극적으로 대응하고 있다. 

거칠게 말하면 이렇게 제품개발과 이용의 전체 생명주기에서 보안성, 안전성, 신뢰성을 확보하는 것이 보안공학(Security Engineering)의 목적이다. 소프트웨어 개발에 친숙한 분들은 소프트웨어 공학과 보안을 접목했다고 보면 이해하기 쉽다. 보안공학, 보안 내재화(Security by Design), 소프트웨어 개발 보안(SSDL: Secure Software Development Lifecycle) 등은 강조점은 조금 다르지만, 준비-요구사항 정의-설계-구현-검증-생산-출시-출시 후 활동에 이르는 제품 개발과 이용의 일부 또는 전체 단계에서 보안 활동을 정의하고 수행하고자 한다.

이제 웹 서비스나 모바일 앱과 같은 소프트웨어 제품이나 서비스뿐 아니라 무선인터넷이 가능한 각종 가전, 자동차를 개발·생산하는 웬만한 업체에서 모의해킹을 하는 것은 자연스럽다. 하지만 모의해킹은 담당자의 역량과 주어진 시간에 따라 결과의 차이가 있을 뿐 아니라 설계상의 취약점은 찾아내기 어려운 한계가 있다. 보안 내재화가 필요하다는 점은 다들 인정하는 분위기이다. 

정부에서도 보안 코딩(Secure coding)을 넘어서서 소프트웨어 개발 전체 단계에서의 보안 활동을 담은 「전자정부 SW 개발·운영자를 위한 소프트웨어 개발보안 가이드」(행정안전부, 한국인터넷진흥원, 2019.11)를 내놨고, 몇몇 기업의 관련 활동도 보인다. 그러나 앞서 예를 든 자동차 업계를 제외하고 국내 다른 업계의 보안 내재화 사례는 알려진 게 별로 없다.

기업에서 왜 보안 내재화가 잘 안 될까? 가장 큰 이유는 보안 내재화가 무엇을 의미하고, 어떻게 구현할지 모르기 때문이 아닐까 싶다. 보안 내재화나 소프트웨어 개발 보안에 관한 자료는 적지 않다. 마이크로소프트나 IBM 등 주요 기업의 이론과 적용 경험이 나와 있고, 관련 국제 표준이나 국제 인증도 있다. 하지만 그것들을 문서로 읽고 이해하는 것과 그것을 기업의 제품개발 프로세스에 적용하는 것은 완전히 다른 차원의 일이다. 그나마 모의해킹이 어느 정도 정착한 것은, 개인정보 유출 사고의 발생, 관련 법규의 강화 등 보안의 중요성이 강조되는 환경의 변화가 주요 동인이지만, 개발 프로세스 중 검증 단계에 별도의 과업으로 끼워 넣을 수 있어서 관여하는 조직이나 전체 개발 프로세스에 변화가 크지 않다는 점도 무시할 수 없는 요인이다.

회사의 개발 프로세스에 MS-SDL(Security Development Lifecycle)을 전면 도입한다고 하면 완전히 양상이 달라진다. 기업 제품 개발의 거의 모든 과정이 영향을 받게 되므로 경영진의 의사결정이 필요한 상황이 될 수 있다. 좀 더 상세하게 살펴보면, 보안 내재화는 개발 프로세스에 보안 활동을 내재화하는 일(seamless integration)과 제품 보안취약점에 대한 보안대책을 내재화하는 일로 구분되는데, 특히 전자가 어렵다. 

개발 프로세스를 잘 이해하는 보안 담당자가 드물기도 하고, 기존 개발 과정에서 보안 담당자와 개발자가 협업할 일이 거의 없어서 협업의 방식과 내용도 서로 낯설다. 예를 들어 MS-SDL에서 위협 모델링은 설계 단계에서 시행되므로 그 결과는 설계 결과에 반영되어야 하는데, 잘못하면 이로 인해 설계가 일정 수준 이상 늦어져서 제품 개발 일정이 상당히 지연될 수 있다. 

그래서 보안 내재화를 위해서는, 소프트웨어 공학 담당자(또는 소프트웨어 개발 프로세스 담당자), 소프트웨어 개발자(또는 소프트웨어 아키텍트), 소프트웨어 보안 담당자(기업보안 담당자가 아님), 보안공학 담당자가 협업해야 한다. 품질 관리자나 테스터의 역할도 있다. 하지만 어떤 기업에 이런 역할을 맡은 담당자나 전문가가 없을 수 있고, 개발 프로세스가 제대로 정립되어 있지 않을 수도 있다. 경영진이 제품 보안의 중요성을 인식하고 추진하려고 해도 실무진에서 만일 “개발기간이 1.5배로 늘어난다”고 보고하면, 의지가 있는 경영진도 고민하게 된다. 제품 보안은 실무진의 전문성과 협업 역량이 매우 중요한 분야다. 
 
필자는 2015년부터 2년 동안 LG전자 CTO 부문 SW보안 고문으로 일하면서 담당 조직과 함께 전사 표준 소프트웨어 보안 개발 프로세스인 LG-SDL(LG Secure Development Lifecycle)을 수립하여 전사에 적용하였다. 지금은 준비 단계부터 출시 후 활동까지 어느 정도 뿌리를 내린 상태다. CEO, CTO 등 탁월한 경영진의 의지와 이미 작동하고 있던 제품 개발 프로세스, CTO 부문 SW보안 담당 조직의 열성적인 노력, 사업부 제품보안 조직의 뛰어난 실무 역량이 결합한 성과이다. 필자 역시 소프트웨어 개발자로서 소프트웨어 제품과 펌웨어 개발뿐 아니라 국책연구소와 제조 대기업, 보안기업, 인터넷서비스기업에서 다양한 개발 프로세스를 수립하거나 경험했고, 오랫동안 보안 분야에 천착하였기 때문에 나름 기여할 수 있지 않았나 싶다. 

인공지능과 사물인터넷, 5G 시대가 열리고 있다. 네트워크로 연결된 사물이 실시간으로 판단하고 작용하는 시대다. 웹과 모바일에서의 보안 위협도 여전한데, 점차 보안 없는 연결이 재앙이라는 말이 현실이 되고 있다. 더는 보안 내재화가 구호로 그치지 말아야 한다. 경영진의 의지와 전문 실무 역량, 전사 협업을 통한 보안 내재화가 현실이 되어야 할 시기다. 

참고로 소프트웨어 개발 보안에 관한 세부적인 내용에 관심이 있으신 분들은 필자의 기존 칼럼을 읽어 보시기 바란다.

소프트웨어 보안과 보안개발 프로세스(1)  
소프트웨어 보안과 보안개발 프로세스(2)  
사물인터넷과 사물인터넷 보안(2)  

* 강은성 대표는 보안전문업체 연구소장과 시큐리티대응센터장을 거치고, 인터넷 포털회사에서 최고보안책임자(CSO)를 역임한 국내 최고의 보안전문가다. CISO Lab을 설립하여 보안컨설팅과 보안교육을 진행하였고, 지금은 암호화폐 개발업체인 블록체인오에스의 CISO로 일하고 있다. 저서로 IT시큐리티(한울, 2009)와 CxO가 알아야 할 정보보안(한빛미디어, 2015)가 있다. ciokr@idg.co.kr



2020.01.13

강은성의 보안 아키텍트 | 보안공학과 보안 내재화

강은성 | CIO KR
미-중 무역전쟁 중에 불거진 화웨이 이슈는 공급망 보안(Supply chain security) 문제를 환기시켰다. 우리 회사가 구매, 구축, 개발하는 제품과 서비스에는 다른 회사에서 만든 제품이나 부품, 서비스가 있기 마련인데, 그것이 안전한지 고민하게 된 것이다. 대규모 공급망을 보유한 세계 자동차 업계에서는 완성차 업체가 보안 요구사항을 세부적으로 기술하고, 부품 업체에게 개발 프로세스나 출시 후 보안취약점의 처리 프로세스까지 요구한다. 특히 2015년 지프 체로키 사건으로 자동차의 주행장치까지 해킹 가능성이 입증된 후로는 더욱 까다로워지는 추세다. 글로벌 기업과 경쟁·협업하는 국내 완성차 기업이나 1차 부품 기업 역시 적극적으로 대응하고 있다. 

거칠게 말하면 이렇게 제품개발과 이용의 전체 생명주기에서 보안성, 안전성, 신뢰성을 확보하는 것이 보안공학(Security Engineering)의 목적이다. 소프트웨어 개발에 친숙한 분들은 소프트웨어 공학과 보안을 접목했다고 보면 이해하기 쉽다. 보안공학, 보안 내재화(Security by Design), 소프트웨어 개발 보안(SSDL: Secure Software Development Lifecycle) 등은 강조점은 조금 다르지만, 준비-요구사항 정의-설계-구현-검증-생산-출시-출시 후 활동에 이르는 제품 개발과 이용의 일부 또는 전체 단계에서 보안 활동을 정의하고 수행하고자 한다.

이제 웹 서비스나 모바일 앱과 같은 소프트웨어 제품이나 서비스뿐 아니라 무선인터넷이 가능한 각종 가전, 자동차를 개발·생산하는 웬만한 업체에서 모의해킹을 하는 것은 자연스럽다. 하지만 모의해킹은 담당자의 역량과 주어진 시간에 따라 결과의 차이가 있을 뿐 아니라 설계상의 취약점은 찾아내기 어려운 한계가 있다. 보안 내재화가 필요하다는 점은 다들 인정하는 분위기이다. 

정부에서도 보안 코딩(Secure coding)을 넘어서서 소프트웨어 개발 전체 단계에서의 보안 활동을 담은 「전자정부 SW 개발·운영자를 위한 소프트웨어 개발보안 가이드」(행정안전부, 한국인터넷진흥원, 2019.11)를 내놨고, 몇몇 기업의 관련 활동도 보인다. 그러나 앞서 예를 든 자동차 업계를 제외하고 국내 다른 업계의 보안 내재화 사례는 알려진 게 별로 없다.

기업에서 왜 보안 내재화가 잘 안 될까? 가장 큰 이유는 보안 내재화가 무엇을 의미하고, 어떻게 구현할지 모르기 때문이 아닐까 싶다. 보안 내재화나 소프트웨어 개발 보안에 관한 자료는 적지 않다. 마이크로소프트나 IBM 등 주요 기업의 이론과 적용 경험이 나와 있고, 관련 국제 표준이나 국제 인증도 있다. 하지만 그것들을 문서로 읽고 이해하는 것과 그것을 기업의 제품개발 프로세스에 적용하는 것은 완전히 다른 차원의 일이다. 그나마 모의해킹이 어느 정도 정착한 것은, 개인정보 유출 사고의 발생, 관련 법규의 강화 등 보안의 중요성이 강조되는 환경의 변화가 주요 동인이지만, 개발 프로세스 중 검증 단계에 별도의 과업으로 끼워 넣을 수 있어서 관여하는 조직이나 전체 개발 프로세스에 변화가 크지 않다는 점도 무시할 수 없는 요인이다.

회사의 개발 프로세스에 MS-SDL(Security Development Lifecycle)을 전면 도입한다고 하면 완전히 양상이 달라진다. 기업 제품 개발의 거의 모든 과정이 영향을 받게 되므로 경영진의 의사결정이 필요한 상황이 될 수 있다. 좀 더 상세하게 살펴보면, 보안 내재화는 개발 프로세스에 보안 활동을 내재화하는 일(seamless integration)과 제품 보안취약점에 대한 보안대책을 내재화하는 일로 구분되는데, 특히 전자가 어렵다. 

개발 프로세스를 잘 이해하는 보안 담당자가 드물기도 하고, 기존 개발 과정에서 보안 담당자와 개발자가 협업할 일이 거의 없어서 협업의 방식과 내용도 서로 낯설다. 예를 들어 MS-SDL에서 위협 모델링은 설계 단계에서 시행되므로 그 결과는 설계 결과에 반영되어야 하는데, 잘못하면 이로 인해 설계가 일정 수준 이상 늦어져서 제품 개발 일정이 상당히 지연될 수 있다. 

그래서 보안 내재화를 위해서는, 소프트웨어 공학 담당자(또는 소프트웨어 개발 프로세스 담당자), 소프트웨어 개발자(또는 소프트웨어 아키텍트), 소프트웨어 보안 담당자(기업보안 담당자가 아님), 보안공학 담당자가 협업해야 한다. 품질 관리자나 테스터의 역할도 있다. 하지만 어떤 기업에 이런 역할을 맡은 담당자나 전문가가 없을 수 있고, 개발 프로세스가 제대로 정립되어 있지 않을 수도 있다. 경영진이 제품 보안의 중요성을 인식하고 추진하려고 해도 실무진에서 만일 “개발기간이 1.5배로 늘어난다”고 보고하면, 의지가 있는 경영진도 고민하게 된다. 제품 보안은 실무진의 전문성과 협업 역량이 매우 중요한 분야다. 
 
필자는 2015년부터 2년 동안 LG전자 CTO 부문 SW보안 고문으로 일하면서 담당 조직과 함께 전사 표준 소프트웨어 보안 개발 프로세스인 LG-SDL(LG Secure Development Lifecycle)을 수립하여 전사에 적용하였다. 지금은 준비 단계부터 출시 후 활동까지 어느 정도 뿌리를 내린 상태다. CEO, CTO 등 탁월한 경영진의 의지와 이미 작동하고 있던 제품 개발 프로세스, CTO 부문 SW보안 담당 조직의 열성적인 노력, 사업부 제품보안 조직의 뛰어난 실무 역량이 결합한 성과이다. 필자 역시 소프트웨어 개발자로서 소프트웨어 제품과 펌웨어 개발뿐 아니라 국책연구소와 제조 대기업, 보안기업, 인터넷서비스기업에서 다양한 개발 프로세스를 수립하거나 경험했고, 오랫동안 보안 분야에 천착하였기 때문에 나름 기여할 수 있지 않았나 싶다. 

인공지능과 사물인터넷, 5G 시대가 열리고 있다. 네트워크로 연결된 사물이 실시간으로 판단하고 작용하는 시대다. 웹과 모바일에서의 보안 위협도 여전한데, 점차 보안 없는 연결이 재앙이라는 말이 현실이 되고 있다. 더는 보안 내재화가 구호로 그치지 말아야 한다. 경영진의 의지와 전문 실무 역량, 전사 협업을 통한 보안 내재화가 현실이 되어야 할 시기다. 

참고로 소프트웨어 개발 보안에 관한 세부적인 내용에 관심이 있으신 분들은 필자의 기존 칼럼을 읽어 보시기 바란다.

소프트웨어 보안과 보안개발 프로세스(1)  
소프트웨어 보안과 보안개발 프로세스(2)  
사물인터넷과 사물인터넷 보안(2)  

* 강은성 대표는 보안전문업체 연구소장과 시큐리티대응센터장을 거치고, 인터넷 포털회사에서 최고보안책임자(CSO)를 역임한 국내 최고의 보안전문가다. CISO Lab을 설립하여 보안컨설팅과 보안교육을 진행하였고, 지금은 암호화폐 개발업체인 블록체인오에스의 CISO로 일하고 있다. 저서로 IT시큐리티(한울, 2009)와 CxO가 알아야 할 정보보안(한빛미디어, 2015)가 있다. ciokr@idg.co.kr

X