[칼럼]널리 사용되는 오픈소스에도 취약점 존재
상태바
[칼럼]널리 사용되는 오픈소스에도 취약점 존재
  • 데이터넷
  • 승인 2018.05.18 15:16
  • 댓글 0
이 기사를 공유합니다

오픈소스, 취약점 찾기 쉬워 공격자 악용 가능성 높아…취약점 패치 미뤄서는 안돼
<강태진 인사이너리 대표이사>

오픈소스는 운영체제, 생산성 향상 소프트웨어, 관리, 개발 툴 속에 존재하고, 기업과 제3의 소프트웨어 제조사 들이 소프트웨어를 개발하는 데 이용하는 코드 라이브러리 안에도 존재한다. 그 때문에 요즘은 오픈소스 요소를 포함하지 않은 소프트웨어를 찾기가 어렵다.

오픈소스 지지자들은 오픈소스 환경이 버그를 더 빨리 찾아낼 수 있다고 주장한다. 오픈소스는 코드 접근성과 투명성이 높기 때문에 기업의 품질관리팀, 화이트 해커, 오픈소스 프로젝트 그룹 등과 같은 ‘선한 사람들’에 의해 빠르게 버그를 바로잡을 수 있다고 강조한다. 비판적인 이들은 더 많은 공격자들이 코드를 검사하고, 취약점을 악용하는 사고도 많아진다고 반박한다.

지지하는 쪽이든 반대하는 쪽이든 오픈소스 커뮤니티는 취약점을 찾는데 매우 빠르다는데에는 동의한다. 선한 사람들은 이를 해결하기 위해 노력하고 공격자들은 이를 이용해 불법적인 이익을 취하려고 할 것이다. 선한 사람들이 모인 커뮤니티에서는 보안 위험 요소가 발견되면 이를 카탈로그화해서 해당 취약점을 보완하는 패치를 제공한다.

리눅스재단이 집계한 바에 따르면 310억 줄 이상의 코드가 오픈소스 리포지터리에 등재됐다. 오픈소스가 늘어나면서 취약점도 늘어난다. 미국 정부는 ‘일반 보안 취약점과 노출(CVE)’ 리스트와 ‘국립 취약점 데이터베이스(NVD)’를 지원하는 방식으로 급증하는 취약점을 추적해왔다. 2017년 CVE 리스트는 역대 가장 많은 1만4712개의 새로운 취약점을 추가했다.

‘우량’ 소스코드에도 취약점 존재 가능

더 심각한 문제는 ‘우량’ 오픈소스 코드가 여러 다른 방식으로, 광범위한 스펙트럼의 애플리케이션들에 이용될 수 있다는 점이다. 우량 오픈소스 코드에 보안상 오류가 포함되었다면 이 코드를 사용한 다수의 플랫픔과 소프트웨어 애플리케이션까지 모두 해킹에 취약해질 수 있다.

이미 알려진 보안 취약점이 코드 안에 ‘숨어’ 있을 수도 있다. 이용자들은 그들이 사용하는 코드 안에 보안 위협이 도사리고 있으며, 따라서 해커의 공격은 시간문제일 뿐이라는 사실을 인지하지 못한다.

알려진 보안 취약점은 어떻게 오픈소스를 활용한 애플리케이션, 플랫폼, 그리고 장비에 숨어 생존할 수 있을까?

보안 취약점이 발견돼 오픈소스 구성 요소들이 업데이트되더라도, 기업 내부의 소프트웨어 개발팀과 외주 개발자들은 내부에서 자체 개발한 코드와 외부에서 가져온 코드가 복잡하게 통합된 시스템 환경 때문에 모든 오픈소스 소프트웨어의 구성 요소를 효과적으로 추적하기가 어렵다.

소프트웨어 개발, 보안, 그리고 구매 팀들은 코드 지문 감지 방식을 사용한 ‘바이너리 코드 스캐너’를 이용해 문제를 해결할 수 있다. 이들 툴은 조사할 바이너리 코드로부터 ‘지문(fingerprints)’을 추출한 뒤, 이를 잘 알려진 오픈소스 구성 요소들의 데이터베이스에 수집되어 등재된 지문과 비교한다. 그 구성 요소와 버전이 이 지문 감식을 통해 식별되면, 개발 팀과 보안팀은 NVD 같은 취약점 데이터베이스를 이용해 해당 구성 요소에 포함되었다고 알려진 보안 취약점을 찾아낼 수 있다.

취약점을 수정할 수 있는 시간 할당이 중요

엔지니어링 팀이 새로운 소프트웨어 수정본을 개발하는 과정에서, 이들은 패치돼야 할 잠재적인 보안 취약점을 보고 받는다. 소프트웨어 개발 업계는 취약점에 대한 패치를 우선 위에 두지 않는 위험한 경향을 보여 왔다.

이처럼 시급성이 결여되다 보니 패치는 다음 소프트웨어 업데이트 때로 지연되고, 실시간 패치 관리도 제대로 이뤄지지 않는다. 이런 관행 탓에 알려진 보안 취약점조차 상당히 오랫동안 패치되지 않은 채 방치돼 기업의 보안 위험을 더욱 악화시킨다.

오픈소스는 앞으로도 계속 널리 채택되고, 놀라운 혁신의 단초로 기여할 것이다. 그러나 날로 증가하는 코드의 보안 취약점은 그런 채택 속도와 혁신에 걸림돌로 작용할 공산이 크다. 이런 위협을 막을 수 있는 최선의 방법은 소프트웨어 개발자, 배급업자, 그리고 이용자들이 자신들이 가진 코드를 이해하고, 그 안에 포함된 오류를 찾아내서, 미리 적극적으로 치유 대책을 마련하는 것이다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.