"사물인터넷(IoT) 시대에는 한 기기에서 발생한 보안 취약점이 다른 기기에 영향을 줄 수 있다. 안전한 IoT 사용자 경험을 제공하려면 제품 설계 단계부터 체계적인 소프트웨어(SW) 개발보안 검토가 이뤄져야 한다. 개발보안활동 프로세스를 체계화하고 검증을 자동화해야 한다."
삼성전자 삼성리서치 보안팀 황용호 랩장은 지난 31일 제8회 SW 개발보안 컨퍼런스 'IoT를 위한 SW개발보안 체계 및 검증 자동화' 강연 중 이같이 말했다. 그는 수동으로 이뤄지는 SW개발보안 절차 한계를 극복하려면 관리시스템과 취약점분석 자동화 시스템이 필요하다고 봤다.
최근 IoT 기기가 사이버보안의 주요 변수로 떠올랐다. IoT 기기를 감염시켜 분산서비스거부(DDoS) 공격 봇넷을 만드는 악성코드 '미라이'와, 보안취약점을 가진 무선인터넷 공유기를 감염시켜 접속한 기기를 공격하는 악성코드가 세계각지에 피해를 입혔다. 악성코드는 기기의 SW 보안취약점을 파고들어 감염, 확산하고 있다. SW 보안취약점 피해를 최소화하려면 제품을 내놓기 전 개발과정에 취약점을 제거해야 한다.
현재 SW개발과정에는 오픈소스 프로젝트의 코드가 널리 쓰이는 추세다. 삼성전자 삼성리서치에서도 타이젠 운영체제(OS), 스마트기기용 프레임워크, 오픈스택 클라우드 인프라 구축솔루션과 IoT 단말용 프레임워크 아이오티비티(IoTivity), 하이퍼레저 블록체인 프레임워크, 인공지능(AI) 관련 프레임워크 텐서플로, 카페, 오픈CV, 아파치 스파크 등 다양한 오픈소스를 활용하고 있다.
그런데 오픈소스 특성상, 특정 버전 SW 코드에서 모든 취약점을 일일이 파악해 제거하지 못한 채 그 코드를 가져와 새로운 SW를 만드는 경우가 많다. 새로운 SW가 업그레이드되더라도 포함된 오픈소스 코드가 낡은 버전일 경우, 그 보안취약점이 해결되지 않고 출시될 때까지 남아 있다가 해커에게 악용될 수 있다.
황 랩장은 미국 국립표준기술연구소(NIST) 분석자료를 근거로 제품의 유지보수 비용은 '설계' 단계 대비 '구현' 시점에 5배, '테스팅' 시점에 10배, 운영 및 유지보수 시점에 '30배'로 불어난다고 지적했다. 플랫폼 대상 공통보안취약점공개항목(CVE) 보고서 기준으로 70%의 취약점이 설계, 구현상 실수라고 지적했다.
이어 "제품 개발 단계에서 취약점을 제거하면 보안 유지보수 비용을 효율화할 수 있다"고 말했다. 외부 오픈소스 코드를 포함해 조직 안에서 대규모 개발팀 인력들이 공유 저장소를 중심으로 SW개발을 진행하는 시스템에서는 모든 개발 단계에 걸쳐 취약점 점검을 자동화, 체계화해야 한다고 강조했다. 이를 위한 보안개발수명주기(SDL) 개념을 소개했다.
■ SDL 프로세스 기반 보안개발 관리시스템 자체 구현
SDL은 제품에 발생할 수 있는 잠재 보안 취약점을 계획, 분석 및 설계, 구현 및 테스팅, 운영 및 유지보수 등 SW개발 단계별로 제거하는 보안수행 절차다. 계획 단계엔 요구사항 식별과 명세화, 설계 단계엔 위협 모델링과 보안 설계 및 검토, 구현 단계엔 시큐어코딩과 코드 보안 진단 및 개선, 테스팅 단계엔 취약점 진단과 모의침투, 출시 이후엔 모니터링과 보안 패치 등 활동을 포함한다는 설명이다.
삼성전자 삼성리서치는 이 SDL 개념을 자체 보안개발 관리시스템으로 구현했다. 시스템 이름은 '삼성 시큐리티 매니지먼트 시스템(SSMS)'이다. SSMS는 개발자와 보안검토자에게 사업부 제품의 보안 진단, 취약점 관리, 보안점검 데이터 관리 기능을 제공한다. 개발팀의 프로젝트리더, 보안담당자, 개발자가 SDL 활동을 수행하면 그 내역을 보안팀 매니저와 리뷰어가 검토해 승인하는 과정을 지원한다.
황 랩장의 설명에 따르면 SSMS는 개발자에게 개발중인 SW의 현재 보안활동과 취약점 현황 정보를 대시보드 및 프로젝트 요약 UI로 제공한다. SDL 활동을 수행하는것 외에도 보안검증 자동화, 개발관리 시스템과 연동된다. 자동취약점분석시스템(AVAS)의 자동화서비스 지원과 신규 취약점 등록, 녹스(Knox) 포털의 업무요청 메일처리, 프로젝트관리시스템(PLM)과의 데이터 동기화 기능을 포함한다.
취약점분석을 자동화해 주는 AVAS와의 연동이 비중있게 소개됐다. SSMS 관리시스템에서 위협 모델링 이후 단계인 소스코드 보안검토 시점에 AVAS는 그 취약점을 탐지한다. 이후 보안성테스트 시점에 AVAS는 바이너리 및 시스템 취약점을 탐지한다. 취약점 탐지 동작은 미국 NIST 산하 국제취약점데이터베이스(NVD)와 연동되는 자체 취약점DB의 소스코드, 시그니처, 패치, 취약점 데이터를 활용한다.
삼성전자의 취약점분석 자동화시스템 AVAS는 지난 2월 9일 서울 고려대학교 안암캠퍼스 '제2회 IoT큐브컨퍼런스'에서 먼저 소개된 바 있다. 사내 개발자들이 여러 오픈소스 코드를 포함한 SW를 탑재해 제품을 만들면서, 사용중인 코드와 CVE 정보를 수작업으로 대조해 취약점을 찾고 해결하는 부담을 줄이기 위해 개발됐다. [☞관련기사 바로가기]
■ 취약점분석 자동화시스템 AVAS로 SDL 보안검증 자동화
AVAS는 CVE 정보 대조와 취약점 보완 작업의 효율을 높여 SSMS를 통한 SDL 활동을 지원한다. 5가지 특징을 갖췄다. 자동화시스템, 낮은 오탐율, 오픈소스 버전 및 프로젝트명 관리부담 제거, CVE를 수정해야 할 정확한 위치 안내, 탐지된 취약점에 맞춰 안정성 문제 유발하지 않는 수정 기법 정보 제공 등이다. CVE를 찾는 스캐너 기능뿐아니라 미확인 취약점을 탐지하는 퍼저(Fuzzer) 기능도 지원한다.
황 랩장은 "SW 개발 단계에서 체계적인 보안검증 활동이 필요하고 개발 단계별 활동이 매우 중요하다"며 "체계적인 보안 활동이 가능하고 분석 및 대응 현황을 제공하는 개발보안 활동 프로세스 시스템화가 필요하다"고 말했다. 또 "보안활동 중 수작업(manual) 검증은 매우 제한적이기 때문에 자동화 기능 연구개발이 반드시 수행돼야 한다"고 덧붙였다.
이날 행사는 SW개발단계부터 보안취약점을 없애 전자정부의 안전성을 높인다는 취지로 마련됐다. 행정안전부 주최, 한국인터넷진흥원(KISA) 주관, 한국정보보호학회 후원으로 진행됐다. 'SW중심 4차산업혁명 속 SW개발보안'이란 주제를 내걸고 행정·공공기관 담당자, 개발자, 정보보호 전문가를 대상으로 SW보안기술이 소개됐다.
IoT를 위한 SW개발보안 주제를 발표한 황 랩장 외에도 고려대학교 최진영 교수가 '4차산업혁명 속 SW개발보안의 중요성' 강연을, 국민대학교 윤명근 교수가 '정보보호 기반 딥러닝 연구사례 및 분석 기술' 강연을 진행했다. 최용 시큐어플러스 대표는 '정보보호 사전점검제도'를 소개했다. NSHC 문해은 부장은 'SW기반 사고사례 및 분석방법론'을 제안했다.
관련기사
- "초연결사회는 SW개발 보안이 중요"2018.11.01
- '8회 SW개발 보안 컨퍼런스' 31일 열린다2018.11.01
- 삼성전자, 오픈소스 취약점분석 자동화했다2018.11.01
- IoT시대 SW개발보안, 요람서 무덤까지 안전하려면2018.11.01
행정안전부 김혜영 정보기반보호정책관은 "랜섬웨어 등 최근 급증하고 있는 사이버 공격에 효과적으로 대처하기 위해서는 개발단계부터 SW보안약점을 제거하는 것이 중요하다"며 "앞으로 개발자 및 공무원을 대상으로 교육을 확대하고, 각 기관에 대한 기술지원을 강화하는 등 SW개발보안 제도가 더욱 활성화 되도록 노력하겠다"고 말했다.
현장에선 제5회 SW개발보안 경진대회 시상식도 진행됐다. 대회는 올해 '웹사이트'와 '모바일앱' 2개 분야로 나뉘어 진행됐다. 웹사이트에 287명 151팀, 모바일앱에 143명 79팀의 대학생이 참가했고 12팀이 최종 수상했다. 웹사이트 분야에서 '오타쿠(경기대 박한울, 한국교원대 나동빈, 충북대 유명성)'팀 그리고 모바일 분야에서 'Explorer(전남대 윤이삭, 전세옥)'팀이 각각 대상(행안부장관상)을 수상했다.