많은 개발자가 애플리케이션이나 프로그램 개발을 위해 다양한 프로그래밍 언어를 사용한다. 또, 전문 개발자가 아니라도 많은 사람이 미래를 준비하기 위해 프로그래밍 언어를 배운다. 그러나 전문가나 아마추어 모두 프로그래밍 언어를 사용하면서 종종 간과하는 문제가 있다. 바로 프로그래밍 언어의 보안 문제이다.
일반 사용자는 물론이고, 전문 개발자도 인지하지 못할 수 있지만 여러 앱에는 프로그래밍 언어 코드와 관련해 발생한 보안 결함이 존재한다. 개발자 세계에서 사용하는 언어 중, 어떤 언어의 보안 문제가 가장 심각할까?
프로그래밍 언어, 어떤 보안 문제 지니고 있나?
미국 온라인 IT 매체 지디넷은 미국 컴퓨터 소프트웨어 보안 업체 베라코드(Veracode)의 통계를 인용, 전 세계에서 인기가 가장 많은 앱 13만 개에서 다양한 보안 문제가 감지됐다고 보도했다.
베라코드는 .NET, C , 자바, 자바스크립트, PHP, 파이썬 등 인기 프로그래밍 언어로 작성된 코드에 버그가 많다는 사실에 주목했다.
베라코드는 자바스크립트를 기반으로 작성된 앱 31.5%에 하나 이상의 XXS 결함이 존재한다고 밝혔다. PHP로 작성된 앱 중, XSS 결함이 감지된 앱은 74.6%로, 자바스크립트로 작성된 앱보다 훨씬 심각한 것으로 확인됐다.
.NET에서는 정보 유출 관련 버그가 가장 심각한 것으로 파악됐다. .NET으로 작성된 앱 중, 62.8%가 정보 유출 관련 보안 문제를 지니고 있었다. 자바에는 캐리지 리턴이나 라인 피드(Line Feed), CRLF 결함이 가장 많이 발견됐다.
베라코드는 각 프로그래밍 언어별 보안 결함 문제와 함께 C 기반 앱 59%와 PHP 기반 앱 52%의 보안 문제가 매우 심각하다는 것을 발견하며, 언어마다 보안 문제의 심각성이 다르다는 사실도 함께 파악했다.
반면, 자바스크립트로 작성된 앱은 다른 언어로 작성된 앱보다 보안 수준이 상대적으로 양호했다. 베라코드의 발표에 따르면, 자바스크립트 기반 앱 중, 심각한 보안 결함을 지닌 앱은 9.6%이다.

프로그래밍 언어 보안 결함, 해결하기 어렵다?
베라코드 수석 연구 관리자 크리스 엥(Chris Eng)은 프로그래밍 언어 보안 문제를 해결하기 어려울 것이라고 말한다. 그는 "지난 10년간 프로그래밍 언어와 관련된 보안 결함을 전혀 해결하지 못했다"라고 밝혔다.
이어, 그는 "평균적으로 개발자의 선택 빈도 및 언어의 인기에 따라 프로그래밍 언어에 변화가 발생한다. 일례로, C 에서 보안 결함의 감소 추세에 보안 수정을 위한 노력이 아닌 사용 빈도 감소가 영향을 미쳤다. 반면, 자바스크립트나 파이썬 등은 인기가 상승하면서 보안 결함 발견 사례가 증가했다"라고 지적했다.
더 심각한 점은 이미 발견된 프로그래밍 언어 관련 보안 문제를 해결하기 쉽지 않다는 점이다. 엥의 설명에 따르면, 개발자가 자신이 작성한 코드의 보안 문제를 수정하더라도 서드파티 라이브러리에 비슷한 보안 문제가 무수히 많이 존재하기 때문에 완벽히 해결하기 어렵다.
또, 그는 "패치 설치가 문제의 해결책이라고 생각할 수 있다. 그러나 개발자들은 기능적인 부분에서 크게 변경된 부분이 없다면, 라이브러리에서 자신이 사용하는 언어의 최신 버전 업데이트를 하지 않는다"라고 언급했다. 패치만으로 프로그래밍 언어 보안 문제를 해결하기 어려운 이유이다.
엥은 현재 수준에서 프로그래밍 언어의 보안 결함을 해결하기 위해, 항상 언어를 최신 버전으로 사용하고, 애플리케이션의 기술 혹은 보안 구성 문제를 수시로 확인하는 것이 최선이라고 전했다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]