오픈소스 보안회사인 ‘화이트소스’는 지난 19일(미국현지시각) 컴퓨터 프로그래밍 언어의 보안에 대한 보고서를 발표했다. 오픈소스 진영에서 가장 많이 사용하는 7개의 언어( C, Java, JavaScript, Python, Ruby, PHP, C ++)가 분석 대상이었다.

이 회사는 10년 동안 취약점이 가장 많이 발견된 언어가 무엇인지, 시간에 따라 어떻게 달라지는지 발표했다.

조사에 따르면, 가장 많은 취약점이 발견된 언어는 C언어였다. 발견된 취약점의 47%가 C언어에서 나왔다. 그 뒤는 php(17%)가 이었으며, 자바(12%), 자바스크립트(11%), 파이썬(6%), C++(6%), 루비(5%) 순이었다.

출처 : 화이트소스

이에 대해 취약점이 많이 발견된 언어가 가장 보안에 취약한 언어라고 단정할 수는 없다고 화이트소스는 설명했다. 역사가 오래되고 작성된 코드가 많을 수도록 취약점이 많이 발견될 수 있다는 것이다. 회사 측은 “C언어는 다른 언어보다 훨씬 오래 사용돼 왔고 우리가 사용하는 대부분의 제품과 플랫폼의 핵심에 있다”면서 “때문에 나머지 언어보다 더 많이 알려진 취약점이 있을 수 있다”고 전했다.

모든 프로그래밍 언어에서 시간이 지날수록 발견된 취약점이 늘어나고 있음을 이 보고서에서 확인할 수 있었다. 2009년에는 발견된 취약점이 C언어 62개, 자바 23개, PHP 10개에 불과했다. 그러나 각각의 수치는 10년 동안 10배 이상 증가했다. 2018년 기준으로 C언어의 취약점은 713개, 자바는 446개, php는 338개였다.

출처 : 화이트소스

눈길을 끄는 것은 2017년이다. 매년 일관된 추세로 증가하던 취약점 수가 2017년 갑자기 급증하는 모습을 나타냈다. 그러나 심각한 취약점을 기준으로 보면 양상은 좀 다르다. C언어에서 발견된 취약점이 급증한 2017년에도 심각한 취약점은 7%에 불과했다. 반면 C++의 경우 지난 5년간 평균 36%로 심각한 취약점 수가 증가했다. 자바스크립트는 10년간 취약점 수가 지속적으로 증가한 것이 언어다.

화이트소스 측은 “알려진 오픈소스 취약점을 극복하고 사용하고 있는 프로그래밍 언어의 강점과 약점을 이해하는데 시간을 투자해야 한다”고 설명했다.

글. 바이라인네트워크
<심재석 기자>shimsky@byline.network