보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

보안 위협 사례로 보는 오픈 소스

2016.05.04

12,276

 

 


1. 오픈 소스란?

 

1) 오픈 소스의 정의

 

그렇다면 오픈 소스가 정확히 무엇일까? 말 그대로 오픈 소스 소프트웨어(Open Source Software)는 저작권자가 소스코드를 공개하는 소프트웨어로써 자유 소프트웨어(Free Software)를 포함한 넓은 의미로 사용된다. 여기서 말하는 'Free' 는 무료를 의미하는 것이 아니라 소프트웨어에 대한 사용, 복제, 배포의 자유와 소스 코드에 대한 접근을 통해 학습, 수정, 개선할 수 있는 자유를 의미한다.


2) 비공개 소프트웨어와의 차이점


다음은 오픈 소스 소프트웨어와 비공개 소프트웨어의 차이점이다.

 

 구분

 비공개(Closed)

 공개(Open)

 공개성

소스코드 비 배포
이진형태의 실행코드만 배포 및 설치

소스 코드의 공개, 배포
이진형태의 실행파일 배포 및 설치

 사용조건

복제, 설치, 사용, 개작, 배포, 유통의 제약(Copyright)

복제, 설치, 사용, 개작, 배포, 유통의 자유(Copyleft)

 생산 및 개발 체계

독점 SW생산 및 개발체계
업체 중심의 개발자 참여
업체 중심의 개발자 참여 ​ 

개방적인 Community 형태로 개발
인터넷을 통해 수많은 Global 개발자가 자발적으로 참여

 대표 소프트웨어

MS의 Windows, Office, Oracle의 DBMS

리눅스 운영체제 커널 및 관련 소프트웨어, 아파치 웹서버, PostgreSQL DBMS, FireFox 웹브라우저, Android OS

 


비공개 소프트웨어의 경우 소스코드를 공개하지 않고, 실행파일만 배포하여 설치하는 형태이다. 또한, 유통의 제약사항이 있으며 독점과 폐쇄적인 개발 환경이 특징이다. 반면 공개 소프트웨어는 대조적인 차이점을 보이고 있으며, 가장 눈에 띄는 것은 소스코드의 공개 및 배포이다. 보안적인 측면에서 바라보더라도 소스코드가 공개되어 있지 않은 것 보다 공개되어 있는 소프트웨어가 취약점이 발견될 확률이 높다. 그럼에도 불구하고 기업에서는 종종 오픈 소스를 사용하고 있는데, 그 이유는 장점과 단점에서 찾아 볼 수 있다.


3) 오픈 소스의 장점과 단점

 

오픈 소스 소프트웨어와 비공개 소프트웨어를 비교할 때, 보안적인 측면을 고려하지 않고 생각해 본다면 오픈 소스 소프트웨어가 유리한 점이 많다. 특히 많은 기업에서 고려하지 않을 수 없는 점이 비용과 시간이다. 적은 비용과 시간으로 높은 수준의 결과물을 얻을 수 있는 건 엄청난 메리트임에 분명하다.

 

 구분

 장점

 단점

 기술적

높은 수준의 프로그램을 빠른 속도로 개발 가능
뛰어난 외부 개발자의 내재화
기술 격차 해소 가능
뛰어난 외부 개발자의 내재화​

분석 없는 무분별한 도입
소스코드 공개에 따른 취약점 도출
빈약한 문서
소스코드 공개에 따른 취약점 도출​

 경제적

저렴한 도입 비용 및 개발 비용
성공 사례를 소스 코드 레벨에서 재활용 가능
커스터마이징 가능
성공 사례를 소스 코드 레벨에서 재활용 가능​

비 숙련자의 사용에 대한 어려움
사유 소프트웨어의 표준
사유 소프트웨어의 표준​

 사업적

제품의 부족한 점을 빠른 시간 내 보완 가능
회사 브랜드 가치 제고
회사 브랜드 가치 제고​

취약점에 대한 무관심
지속적인 개발의 어려움
지속적인 개발의 어려움​

 


4) 오픈 소스의 대중화


많은 장점을 계단 삼아 오픈 소스는 이미 우리의 실생활에서 많은 부분을 차지하고 있다. 그림[1]은 스마트 사용자들의 운영 체제를 나타낸 것인데 오픈 소스 기반인 안드로이드를 사용(2015년 4분기, 80.72%)하고 있으며, 그림[2] 처럼 브라우저 역시 Chrome이 비중을 가장 많이 차지한다. 이처럼 사용자가 꾸준히 증가하고 다수의 사용자를 보유하고 있는 소프트웨어에 보안 취약점이 발견된다면 치명적일 것이다.

 

 

 

[그림 1] 2015년 4분기 사용자의 Android 점유

 

 

 

[그림 2] 사용자의 Browser 점유 변화

 


2. 오픈 소스와 보안 위협


그렇다면 오픈 소스는 보안 위협으로부터 안전하지 못한 것인가? 이 부분에 대해서는 의견이 갈리고 있다. 오픈 소스는 대다수의 사람에게 소스코드가 공개된 만큼 취약점이 더 쉽게 발견되어 비공개 소프트웨어보다 빠른 시일 내에 무결점 상태로 간다는 의견을 내놓지만 실제로 오픈 소스의 주요 취약점의 발생 시기를 살펴보면 그렇지도 않다. 다음은 오픈 소스에서 발생한 주요 취약점의 현황 및 발생 시기이다.

 

1) 오픈 소스 주요 취약점 현황


오픈 컴포넌트로 많이 사용된 오픈 소스 중 대표 취약점 현황은 다음과 같다.

 

[ Apache Struts2 ]
2013년 Apache에서 개발한 'Struts2' 에 존재하는 보안 취약점을 이용한 공격 도구가 만들어지면서 시작되었다. 공격자는 특정 매개변수를 통해 공격 구문을 전송할 수 있으며, 원격 명령 및 파일 생성으로 시스템 권한을 획득할 수 있다.

 

 

 

[그림 3] JPCERT/CC에 접수된 피해 신고 건수의 추이

 

 

 

[그림 4] 툴을 이용한 원격 명령 실행

 

 

[ OpenSSL (Heartbleed) ]

OpenSSL은 PC와 서버간에 데이터를 주고 받을 때 통신내용의 암호화를 지원한다. HeartBleed는 공격자가 정해진 크기보다 많은 데이터를 요청함으로써 발생하며, 그림[6]와 같이 대상 서버 메모리의 특정 시점에서 민감한 정보를 획득할 수 있다.

 

 

 

[그림 5] SSL 사용 및 취약한 사이트의 통계

 

 

[그림 6] 서버 메모리 정보


[ 워드프레스 ]

워드프레스는 누구나 무료로 내려받아 설치형 홈페이지를 만들 수 있는 오픈 소스 소프트웨어이다. 또한, 개방 커뮤니티에 공개된 플러그인, 테마를 추가하여 운영할 수도 있다. 쉽고 빠르게 시스템에 적용할 수 있지만 그림[7]에서 볼 수 있듯이 현재까지도 많은 취약점이 보고되고 있다.

 

 

[그림 7] 워드프레스 취약점 데이터베이스


2) 오픈 소스 취약점


다음은 오픈 소스에서 발생한 취약점의 배포시점과 발견시점이다.

 

 

 Apache Struts2

 하트브리드

 쉘쇼크

 Freak

 고스트

 베놈

 배포시점

 2006

2011

1989 

1990

2000 

2004 

 발견시점

 2013

2014

2014

2015 

2015 

2015 

 Component

 Struts

 OpenSSL

 Bash

 OpenSSL

 GNU C Library

 QEMU

 


오픈 소스는 소스코드가 공유되어 있기 때문에 많은 코드 리뷰에 의해 취약점이 빠르게 검토되어 제거될 것이다라는 예상과는 달리 실제로는 그렇지 않다는 것을 위의 표에서 알 수 있다. 그렇다! 바로 오픈 소스의 최대 장점인 '여러 개의 눈'이 제대로 동작하지 않는 것이다. 이러한 소프트웨어를 무분별하게 배포되어 사용되어진다면 결국 피해자는 사용자일 것이다. (그렇다면 얼마나 오랫동안 많은 사용자들이 취약점에 노출된 것일까?)

 


3. 안전하게 사용할 수 있는 오픈 소스 방안


비공개 소프트웨어 역시 보안 취약성 기술분야(Fuzzing, Zero-day Intrusion Protection System signatures, 정기적인 취약점 관리)에서 급속도로 발전하고 있는 상황으로 볼 때 소프트웨어의 속성으로 보안성을 판단하는 것은 성급하다고 생각한다.
오히려 공개된 소프트웨어의 특성을 살려 장점이 더욱 부각될 수 있다고 생각한다. 그렇다면 어떻게 사용해야 장점을 살리고 안전성을 높일 수 있을까?


1) 가시성 확보


2015년 블랙 덕의 조사에 따르면, 매년 오픈 소스에 대한 취약점이 4,000개 이상이 발표되지만 98%의 회사가 자신들이 사용하는 오픈 소스에 대해 알지도 못하고 67% 회사들이 보안 취약점에 대해 감시하지 않는다고 한다.
따라서 기업들은 오픈 소스 코드의 분류와 추적, 각 제품에 사용된 오픈 소스 리스트 작성, 외주 용역의 오픈 소스 리스트 관리 등의 가시성 확보가 필요하다.


2) 투자와 집중

하트블리드 사태 이후 변화가 일어났다. 리눅스 재단을 후원하는 CII(Core Infrastructure Initiative) 라는 비영리 협의체가 설립된 것이다. 이 단체의 목적은 오픈 소스 안성성과 질을 평가하는 것이다.
이 단체의 수익 대부분은 유명 IT업체에서 내놓은 후원금으로 운영된다. 이 후원 활동을 통해 기업은 신뢰 점수를 쌓을 수 있으며 유력 개발자와 훨씬 쉽게 친분을 쌓아 우수 인력을 채용할 수 있는 것이다.
취약점 발굴을 활성화하기 위해 우리나라에서도 미래창조과학부와 한국인터넷진흥원 주관하에 취약점 신고포상제가  운영되고 있다. 아직은 첫걸음 단계라 내용과 홍보면에서 많이 미흡한 부분이 보이지만, 향후 보안 관련 사고예방과 직결되는 만큼 기업에서는 이러한 활동에 대해 더욱 꾸준한 투자를 진행하고 전사적인 관심을 표현하는 것이 바람직하다고 생각한다.

 

 


[그림 8] 후원 활동으로 얻은 IT 대기업의 신뢰도

 


* 참고 자료


[1]  오픈 소스의 정의, 위키백과
[2]  Worldwide Smartphones Sales to End Users Operating System, Gartner
[3]  Top 9 Desktop, Mobile & Tablets Browsers from 2012 to 2016, StatCounter
[4]  Apache Struts2 취약점 피해 신고 건수의 추이, https://www.jpcert.or.jp
[5]  SSL 사용 및 취약한 사이트의 통계, TREND MICRO
[6]  WPScan Vulnerability Database, https://wpvulndb.com
[7]  2015 Future of Open Source Survey Results, Black Duck Software
[8]  Number of Open Source foundations supported, NETWORKWORLD
​