Offcanvas

개발자 / 보안 / 애플리케이션 / 오픈소스 / 운영체제

유닉스 BSD의 생존 가능성은?··· 패치 속도로 파악한 BSD의 미래

2018.02.01 J.M. Porup  |  CSO
지난 12월 말 독일 라이프치히에서 열린 34c3에서 IO액티브(IOAactive)의 침입 테스트 책임자 일리야 본 스프룬델은 오픈소스인 유닉스 BSD(Berkeley Software Distribution) 버전에 대해 그 코드를 주시하는 사람들이 부족하고, 이로 인해 보안에 악영향이 초래되고 있다고 지적했다.

본 스프룬델은 발표된 BSD 커널 취약점의 수가 리눅스보다 적다는 사실을 인식하고, 지난해 여름 BSD 소스코드를 조사했다. 본 스프룬델은 "매년 발표되는 BSD 보안 커널 버그가 소수에 불과한 이유가 궁금했다. BSD가 훨씬 더 안전해서인지, 아니면 버그를 찾는 사람들이 없어서인지 궁금했다"고 말했다.

본 스프룬델은 FreeBSD와 OpenBSD, NetBSD에서 각각 30개, 25개, 60개씩 총 115개의 커널 버그를 쉽게 찾을 수 있었다. 상당수는 비교적 쉽게 해결할 수 있는 버그들이었다. 그는 즉시 이들 버그에 대한 정보를 제공했다. 그러나 이후 6개월이 지났지만, 패치되지 않은 상태로 남아있는 버그들이 많다.

본 스프룬델은 "리눅스 커널의 경우, 보안 취약점의 '생명'이 길지 않다. 아주 빨리 발견, 패치된다는 의미다. 그러나 BSD는 다르다. 아주 오래된 버그들을 다수 발견했다"고 말했다. 10년이 넘은 버그들도 많았다.

보안만 놓고 보면, OpenBSD가 가장 좋다
본 스프룬델은 "OpenBSD가 지난 20년 간 보안을 중시했다는 점이 코드에서 드러났다. 보안에 대한 지식이 가장 높은 개발자들이 OpenBSD 개발자들로 판단된다"고 말했다.
한 가지 유념할 점이 있다. OpenBSD의 코드 기반이 작다는 것이다. 코드가 290만 줄이다. 반면 FreeBSD와 NetBSD는 각각 900만 줄, 730만 줄이다.

본 스프룬델은 "코드 기반의 크기가 일정 역할을 한다. 코드 기반의 크기와 버그 수는 정비례한다. 코드 기반이 작은 것은 우연일 수 있다. OpenBSD에 자신이 원하는 기능을 구현하려 시도한 개발자가 많지 않았다는 의미다. 또 의도한 결과일 수도 있다. 많이 사용되지 않는 구형 장치와 아키텍처에 대한 지원을 중단하는 방식 등으로 공격 표면을 줄인 결과일 수도 있다는 의미다"고 설명했다.

본 스프룬델은 OpenBSD 코드의 품질도 높이 평가했다. 그는 "정수 오버플로우 같이 해결하기 쉬운 버그를 대부분 없앴다. OpenBSD 품질이 가장 일관되게 우수했다"고 말했다. 그러나 OpenBSD는 인기가 없다. 이것이 이 운영체제 보안에 악영향을 초래하고 있다. 본 스프룬델은 "쉽게 버그를 찾을 수 있다. OpenBSD를 주시하는 사람들이 더 많다면, 보고되는 버그 수도 증가할 것이다"고 말했다.

OpenBSD를 만든 테오 드 라트도 본 스프룬델의 지적에 동의했다. 드 라트 또한 OpenBSD를 감시하는 눈이 많아지면 운영체제가 더 안전해질 것이라고 말했다. 드 라트는 본지와의 이메일 인터뷰에서 "그가 작은 API 오용이 초래하는 영향에 대해 설명한 첫 번째 슬라이드를 기억한다. 그는 불행히도 인력과 관련된 코드 볼륨(크기) 문제다. 모든 코드에서 100% 버그를 없애고, 예외적인 조건들을 빠짐없이 처리하기란 아주 어렵다"고 설명했다.

본 스프룬델에 따르면, OpenBSD는 응답과 대응도 빨랐다. 드 라트는 1주일 이내에 응답했고, 며칠 내에 취약점을 패칭했다.
드 라트는 "처음부터 일리야와 커뮤니케이션을 했고, 그가 발견한 버그를 팀이 다루도록 만들었다. 약 1주 이내에 모든 문제를 해결했고, 중요한 버그에 대한 패치를 배포했다. 개인적인 경험에 비춰봤을 때, '자발적인' 성격의 소프트웨어 프로젝트에서 유일한 대응책은 문제 해결을 지연시키지 않는 것이다. 계속 관심을 갖도록 만들기 위해, 가능한 빨리 문제를 다뤄야 한다"고 강조했다.

코드 품질이 가장 낮은 것은 NetBSD
NetBSD는 오랜 기간 가능한 많은 하드웨어를 지원하는 것에 초점을 맞췄다. 그러나 이런 목적 때문에 품질이 천차만별인 수많은 레가시, 바이너리 호환성 코드를 포함시켰다. 본 스프룬델은 "이로 인해 NetBSD의 보안 코드 품질이 미흡한 결과라 초래됐다"고 지적했다.

스프룬델이 통보한 버그에 대한 NetBSD의 대응에는 긍정적인 부분, 부정적인 부분 모두가 존재한다. 그는 "한편으로는 아주 짧은 시간에 알려준 버그 대부분을 바로 잡았다. 그러나 또 다른 한편으로는 6개월이 지난 지금까지 사용자에게 패치를 배포하지 않고 있다. 최신 코드에 기반을 둔 빌드를 운영하는 경우를 제외하고, NetBSD 머신은 여전히 취약한 상태다"고 말했다.

NetBSD 개발자들은 스프룬델이 잘못 알고 있다고 반박했다. 이들에 따르면, 스프룬델이 발견한 보안 문제에 대한 패치가 포함된 NetBSD 7.1.1을 (스프룬델이 34c3에서 프레젠테이션을 하기 1주 전인) 12월 22일 배포했다. NetBSD 재단 이사 테일러 캠벨은 "그가 알려준 버그 중에는 원격 취약점을 초래하지 않는 바이너리 호환성 계층의 버그가 많았다. 누군가 코드를 실행하려면 어떻게든 시스템에 접속해야 한다는 의미다"고 설명했다.

본 스프룬델이 발견한 수많은 버그, 느린 대응은 NetBSD의 미래를 걱정하게 만든다. 본 스프룬델은 프레젠테이션에서 BSD 보안 관련 업무를 처리했던 센서스 IT 시큐리티 웍스(Census IT Security Works)의 보안 연구원 패트르크로스 아지로디스의 말을 인용해, "NetBSD는 사실상 죽었다. 과거에는 상업적으로 이를 지원하려 시도한 회사들이 일부 존재했지만, 지금은 없다"고 주장했다.

NetBSD 설립자들인 캠벨과 데이빗 맥스웰은 NetBSD가 풀타임 개발자가 없는 자발적인 오픈소스 프로젝트이지만, 아지로디스의 확신에 찬 비관론에는 근거가 없다고 반박했다. 맥스웰은 "우리는 깔끔한 아키텍처로 핵심 시스템을 구현하는 데 목적을 두고 있다. 새로운 플랫폼으로 쉽게 이식할 수 있는 시스템이다. 따라서 전통적으로 강점을 갖고 있는 부분에서 계속 입지를 유지할 수 있을 것으로 판단하고 있다"고 설명했다. 캠벨은 "우리의 큰 단점이 마케팅이라는 점도 기억해야 한다"고 덧붙였다.

기술적으로 가장 발달한 BSD, FreeBSD
오랜 기간 네트워크 스택 성능을 높이 평가받고 있는 FreeBSD는 3대 BSD 가운데 가장 인기가 높으며, 넷플릭스(Netflix)와 왓츠앱(WhatApp) 등 여러 애플리케이션에 활용되고 있다. 스프룬델은 "최신 성능 테스트에서 FreeBSD의 성능은 리눅스와 비슷하거나, 이를 조금 뛰어넘는 것으로 인정받았다. 리눅스를 구현할 수 있다면 FreeBSD도 구현할 수 있다고 봐야 한다. FreeBSD는 많은 곳에 구현되어 있다"고 설명했다.

FreeBSD는 약 1주 이내에 30개의 커널 버그에 대해 응답을 하고, 소스코드 레포지토리에서 소수 버그의 문제를 해결했다. 그러나 소수만 해결됐고, 나머지는 아직까지도 처리 여부가 불확실한 상태다.

한편 FreeBSD는 스프룬델의 주장을 반박했다. FreeBSD 핵심 팀 구성원이자 프로젝트 개발 책임을 맡고 있는 에드 메이스테는 "한 가지 문제가 있다. 발견된 다양한 문제 중에는 실제 악용될 가능성이 없는 문제들이 많다. 우리는 이를 보안 문제가 아닌 단순한 버그로 간주해 처리했다"고 설명했다.

개발자가 부족한 것이 FreeBSD 보안에 악영향을 주고 있다. 버그 보고에 제때 적절히 대응하지 못하고, 업계의 새로운 기준으로 부상한 보안 기능들을 도입해 구현하지 못하는 것이다. 아지로디스는 "가장 인기있고, 가장 기술적으로 발전한 BSD가 FreeBSD이다. 그러나 리눅스와 비교했을 때, 개발자가 많지 않다. 보안 기능 측면에서는 리눅스에 뒤쳐져 있다"고 말했다.

최근에야 유저랜드(UserLand)에서 ASLR(Address Space Layout Randomization)을 지원하기 시작했다. 그러나 아직도 KASLR(Kernel Address Space Layout Randomization)은 지원하지 않는다. 아지로디스는 또한 FreeBSD 네트워크 스택이 아직도 '킬러' 기능인지 의문을 제기했다.

아지로디스는 "10년 전에는 FreeBSD의 성능, 네트워크 스택 등이 훨씬 우수했을지 모른다. 그러나 지금도 그런지 확신할 수 없다. 여기에 대한 의구심이 많다"고 말했다.
메이스테는 이런 주장을 반박했다. 메이스테는 "리눅스보다 훨씬 적은 수의 개발자들이 양과 질 모두에서 놀라운 성과를 일궈낼 수 있다. 개발자가 부족해 미래가 밝지 않다는 주장은 사실과 동떨어진 주장이다"고 강조했다.

FreeBSD 커널 취약점, OS X에 영향을 줄까
맥 OS X에는 FreeBSD 코드가 많다. 그리고 FreeBSD 보안 팀은 이의 공개와 관련, 애플과 조율한다. 그러나 보고된 취약점이 애플 노트북 컴퓨터에 얼마나 큰 악영향을 초래하는지 불확실하다. 약 15년 전, FreeBSD에서 다윈 커널이 분리되어 나왔다. 그 동안 수많은 보안 연구원들이 OS X의 보안을 더 엄격히 주시해 조사했으며, 지금도 그렇게 하고 있다.

본 스프룬델은 "FreeBSD 담당자는 버그에 대한 정보를 받은 후 '애플에 보내도 될까요?'라고 물었다. 따라서 애플 보안 팀도 버그 리스트를 갖고 있을 것이다. 그렇지만 이 가운데 얼마나 많은 버그가 애플에 적용되는지 모른다. 적용되는 버그가 몇 개 있을 것으로 생각한다"고 말했다.

애플은 답변을 거부했다. 메이스테 또한 추측하기 싫다면서, "해당 질문에 대한 답은 애플만 알고 있다"고 말했다. NetBSD의 맥스웰은 OX에 FreeBSD는 물론 NetBSD, OpenBSD 코드도 포함되어 있다고 말했다.

BSD는 죽어가는 중인가
인기가 보안에 영향을 미치는 것으로 밝혀졌다. 코드를 주시하는 눈이 많아야 버그의 수명도 단축된다. 개발자가 많아야 사용자가 더 빨리 새로운 보안 기능을 입수할 수 있다. BSD는 사람들의 마음을 얻는 전쟁에서 리눅스에 패배했다. 이는 BSD가 앞으로도 안전하면서 효율적인 운영체제로 남는 것을 크게 방해하는 문제다.

본 스프룬델은 "리눅스 커널 코드를 조사 평가하는 사람들이 훨씬 더 많다. 조사 결과에 따르면, 코드 품질만으로 BSD와 리눅스의 버그 수 차이를 설명할 수 없다"고 말했다.

아지로디스는 "FreeBSD보다 인기가 없는 OpenBSD가 살아남을 확률이 더 높을 수 있다. OpenBSD는 더 집중된 사용사례를 갖고 있고, 초점이 명확하다는 점에서 생존 확률이 더 높다. 반면 FreeBSD의 생존 확률은 OpenBSD보다 낮다"고 주장했다.

그러나 메이스테는 BSD의 인기를 측정하기 어렵다는 점을 유념해야 한다고 강조했다. 메이스테는 "FreeBSD 등 BSD는 눈에 잘 보이지 않는 형태로 애플리케이션에 사용되고 구현된 경우가 많다. 따라서 인기도를 측정, 또는 정량화 하기 어렵다. FreeBSD '파생물'에 기반을 제품과 어플라이언스를 예로 들 수 있다"고 설명했다.

NetBSD의 맥스웰은 "BSD 라이선스는 퍼미시브 라이선스(permissive license)이기 때문에 그 인기를 정량화하기가 더 힘들다. 최종 사용자에 코드 라이선스는 중요하지 않다. 하지만 임베디드 시스템, 제품 개발자에게는 코드 라이선싱이 아주 중요하다"고 말했다.

아지로디스는 BSD의 미래를 비관적으로 판단한다. 아지로디스는 "개인적으로 BSD 코드 기반을 좋아한다. 따라서 FreeBSD가 리눅스보다 더 인기있고, 충분히 생존력을 갖고 있다고 말하고 싶다. 그러나 그럴 수가 없다. 결국은 개발자가 부족한 것이 문제다"고 말했다. editor@itworld.co.kr  
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.