이 시각 주요 뉴스

여백

소프트웨어 개발 전 단계에 걸친 보안 취약점 대응

다양한 보안 취약점 대응 기술과 방안 현황 이승윤 기자l승인2018.12.28 09:10:04l수정2018.12.24 11:23

크게

작게

메일

인쇄

신고

[CCTV뉴스=이승윤 기자] 최근 모바일 스마트 플랫폼과 함께 사물 인터넷 환경이 도래하면서 과거 서버와 클라이언트 PC의 네트워크 접속 환경에 많은 변화를 불러 일으켰다. 그 결과, 소프트웨어 이용 범위가 생활 전반으로 확대되었고 주요 침해사고 유발 경로인 소프트웨어 보안 취약점도 나날이 증가하고 있는 추세이다. 이에 많은 취약점 분석가들은 대응 기술을 개발하기 위해 노력하고 있다.

글 아이넷캅 유동훈 기술이사

근래에 소프트웨어 대상 보안 취약점 발굴 작업이 대중화되면서 악의적으로 타인의 전산망에 침입하는 공격자들과 함께 취약점 자체를 연구하고 발굴하는 선의적인 취약점 분석가들의 활약이 이어지고 있다. 특히 취약점 분석가들에 의해 대량의 소프트웨어를 대상으로 발굴 자동화 시도가 가능해지면서 공격자들이 접근하는 침입 경로를 조기에 차단하는 효과로 나타나고 있다.

이번 글에서는 보안 취약점에 대응하기 위해 시도됐던 기술적인 대응 방안과 정책적인 대응 현황에 대해 소개하고 나아가 향후 발전 방향에 대해 이야기하고자 한다.

과거 보안 취약점 대응 기술

보안 취약점 공격 기술이 대거 등장하면서 대중화된 시기는 과거 90년대 말로 거슬러 올라가는데, 당시 대부분의 공격 대응 기술은 소프트웨어에 광범위하게 영향을 주는 버퍼 오버플로우와 같은 메모리 변조 결함을 이용하는 것에 초점이 맞춰져 있었다. 대다수의 대응 기술은 버퍼 오버플로우 공격 기술이 대중화됐던 시기에 이미 등장하였으나, 실제 웜(Blaster)에 의한 공격 위협이 발생했던 2003년 이후부터 본격화됐다. 대표적인 보안 취약점 대응 기술들은 운영체제 커널에 적용되는 보호 기술과 바이너리나 라이브러리를 강화시키는 보호 기술, 컴파일러 수정을 통해 적용할 수 있는 보호 기술 등으로 분류할 수 있으며, 세부 내용은 [표 1]과 같다.

[표 1] 다양한 보안 취약점 대응 기술

운영체제 커널에 적용되는 보호 기술

고전 운영체제 아키텍처는 보안적 측면보다는 성능적 측면에 초점을 맞춰 설계되었기 때문에 데이터 영역일지라도 코드 실행을 허용하는 문제로 인해 버퍼 오버플로우나 메모리 변조 유형의 취약점 공격 시 주로 악용됐다. 스택이나 힙과 같은 데이터 영역에 코드를 올려놓고 실행하는 공격 기술에 대응하기 위해 운영체제 차원에서 데이터 영역의 코드 실행을 금지하는 다양한 보안 기술들이 대거 등장하게 되었다.

주로 커널 패치를 통해 적용할 수 있는 Openwall, PaX와 같은 프로젝트가 대중적으로 알려져 있으며, 기본 커널에 보안 기능으로 탑재된 ‘Exec-shield’ 등이 운영체제 커널에 적용된 보호 기술의대표적인 사례라고 할 수 있다. 해당 프로젝트의 공통 기술은 크게 두 가지로 데이터 영역 실행을 방지하는 DEP(Data Execution Prevention) 기술과 쉽게 공격 코드를 실행시키지 못하도록 메모리 주소 공간 배치를 난수화 시키는 ASLR(Address Space Layout Randomization) 기술이 있다.

바이너리, 라이브러리 강화를 통한 보호 기술

운영체제 커널에 적용하는 보호 기술의 경우 적용 자체가 불가한 경우도 있기 때문에 어플리케이션 레벨에서 보호할 수 있는 다양한 기술이 함께 제안됐다. 먼저 스택가드(Stackguard)는 프로세스 흐름에 영향을 주는 복귀 주소 근처에 보안 쿠키(canary)를 삽입해 바이너리를 강화시키는 기술로 초기에 제안되었으며 스텍실드(Stackshield)의 경우 복귀 주소가 변조되었는지 프로세스 흐름을 검증하는 CFI (Code Flow integrity) 기술을 최초로 도입해 버퍼 오버플로우와 같은 결함에 효과적으로 대응할 수 있었다. 또한, 버퍼 오버플로우 결함에 대응하는 것뿐만 아니라 포맷 스트링 결함에 대응할 수 있는 ‘Formatguard’, ‘Libformat’ 같은 프로젝트도 2000년 초기에 등장하였으며 ‘Libsafe’와 ‘Propolice’와 같이 연구로만 끝나지 않고 실제 시스템에 기본으로 적용된 사례들이 존재한다.

컴파일러 수정을 통한 보호 기술

과거 컴파일러 수정을 통한 보호 기술은 ‘Cyclone’, ‘Ccured’ 프로젝트가 널리 알려져 있는데 프로그램 컴파일 시점에 C언어 매개변수에 대한 안전성 검증을 추가해 프로그램 동작 시 공격을 방지하는 기술이다. 근래에 들어서 스택, 힙과 같은 데이터 영역을 보호 하기 위한 유사 보안 기능이 컴파일러 내에 기본적으로 포함되었으며 메모리 취약점을 유발할 수 있는 함수를 사용하지 않도록 컴파일 시점과 런타임 시점에 경고 메시지를 띄우는 방식으로 적용돼 있다.

개발 설계 단계의 보안 취약점 대응 방안

소프트웨어 개발 설계 단계에서 제안되고 있는 보안 취약점 대응 방안 중 대표적인 사례는 마이크로소프트에서 제안하고 있는 SDL(Secure Develop Lifecycle)제도이다. 해당 제도는 2002년 1월 부터 운영되고 있으며 소프트웨어 개발 프로세스를 전반적으로 개선해 효과를 보고 있다. SDL 제도는 소프트웨어 개발 이전 단계부터 설계, 구현을 거쳐 배포와 운영 단계, 시험과 검증 단계까지 발생할 수 있는 보안 취약점을 최소화하기 위한 목적으로 만들어졌다.

먼저 소프트웨어 설계 단계에서 위험 모델을 개발하고 구현 단계에서 코드 스캐닝을 위한 정적 분석 도구 사용, 검증 단계에서 코드 검증과 보안성 시험 작업이 업무에 기본으로 포함됐으며, 개발된 소프트웨어는 출시하기 전에 개발팀과는 별도의 팀에서 최초 보안 검증을 거치도록 운영하고 있다. 교육 단계, 요구사항 단계, 설계 단계, 구현 단계, 검증 단계, 배포 단계, 대응 단계로 구성된 SDL 제도의 주요 내용은 다음 [표 2]와 같다.

[표 2] 마이크로소프트 SDL제도 단계별 세부내용

마이크로소프트의 통계 자료에 따르면 운영체제 발표 이후 1년간 공개된 취약점 수를 비교했을 때 SDL 제도 적용 이전 119개(윈도우XP 기준) 였던 취약점이 SDL 제도 적용 이후 66개(윈도우 비스타 기준)로 45% 정도 줄어든 효과를 확인할 수 있었다고 한다. 또한 SQL 서버 2000에서 발견된 취약점은 34개였던 것에 비해 SDL 제도 적용 이후 SQL 서버 2005에서 발견된 취약점은 단 3개로 91%의 보안 취약점이 감소한 것으로 확인됐다.

배포 이후 단계의 보안 취약점 대응 방안

소프트웨어 배포 이후 단계에서 제안되고 있는 보안 취약점 대응 방안은 버그 바운티(취약점 발견자 보상제도)가 대표적인데 소프트웨어에서 취약점을 발견한 사람에게 신고를 받아 그에 합당한 보상금을 지급하는 제도이다. 버그 바운티 제도는 1995년 넷스케이프의 웹 브라우저 취약점 신고 제도부터 최초로 시작되었으며 2010년 이후부터 다양한 기업들이 자사가 개발한 소프트웨어에서 발견된 보안 취약점에 대해 보상금을 지급하고 있다. 현재 소프트웨어 버그 바운티 제도를 운영하고 있는 회사는 다음 [표 3]와 같다.

[표 3] 버그 바운티 제도를 적극적으로 활용하는 기업

해당 제도의 효과를 보여주는 사례는 꽤 다양한데, 리눅스 운영체제를 배포하는 레드헷의 경우 내부 직원에 의해 보안 취약점이 발견되는 경우는 전체의 17% 수준인데 반해 외부 사용자에 의해 취약점이 발견되는 경우가 전체의 73%를 차지하고 있다. 이렇듯 내부자의 점검에 의한 보안 취약점 발견 사례보다 외부 사용자들에 의한 발견 사례가 더 많은 비중을 차지하고 있음을 알 수 있다.

‘버그 바운티’ 제도 빠르게 성장하고 있어

최근 몇 년 동안 버그 바운티 플랫폼을 전문적으로 다루는 스타트업들이 대거 등장했다. 이들 스타트업들은 전 세계적으로 버그 바운티 제도의 중요성을 알리고 관련 서비스가 올바르게 자리 잡고 확립될 수 있도록 다양한 아이디어를 제시하고 있다. 기존 버그 바운티 제도의 문제점 중 하나는 기업이 취약점 발굴 인력과 버그 바운티 업무 프로세스를 신뢰하지 못한다는 점이다. 최근 제안되고 있는 버그 바운티 플랫폼은 이러한 종래 버그 바운티 제도의 문제점을 보완하고 신뢰 보장을 위한 제도 개선으로 맹점을 해결하려고 노력하고 있다. 다양한 소프트웨어 보안 취약점에 효과적으로 대응하기 위한 목적의 버그 바운티 플랫폼 운영 프로그램은 [표 4]와 같으며 하루가 다르게 매년 급속도로 성장하고 있는 추세이다.

[표 4] 버그 바운티 플랫폼을 운영하는 해외 전문 기업

#소프트웨어#보안 취약점#바이너리#개발설계#버그바운티

이승윤 기자  hljysy@cctvnews.co.kr
<저작권자 © CCTV뉴스, 무단 전재 및 재배포 금지>

이승윤 기자의 다른기사 보기
여백
여백
여백
여백
여백
여백
여백
여백
여백
매체소개공지사항보안자료실기사제보광고문의불편신고개인정보취급방침청소년보호정책이메일무단수집거부    [기사ㆍ기고 문의 : desk@cctvnews.co.kr]
(주)테크월드 08507 서울특별시 금천구 가산디지털1로 168, 1012-1호 (가산동, 우림라이온스밸리 C동)  |  제호: 씨씨티브이뉴스  |  발행일: 2009년 2월 19일
대표전화 : 02)2026-5700  |  팩스 : 02)2026-5701  |  이메일 : webmaster@techworld.co.kr  |  청소년보호책임자 : 박지성
통신판매업신고번호 : 제 2008-서울금천-0415 호  |  발행·편집인 : 박한식  |  인터넷신문등록번호 : 서울, 아 00607  |  등록일 : 2008.06.27
Copyright © 2019 CCTV뉴스. All rights reserved .