보안뉴스 창간 17주년을 축하합니다!!

Home > 전체기사

자바와 닷넷으로 만들어진 애플리케이션에 더 많은 취약점 존재

입력 : 2023-01-17 12:45
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기
프로그래밍 언어들마다 특징이 있다. 그 특징이 애플리케이션의 취약점이란 형태로 발현되기도 한다. 자바와 닷넷이라는 오래된 언어의 경우, 취약점이 발견될 확률이 훨씬 높은 것으로 조사됐다.

[보안뉴스 문가용 기자] 자바와 닷넷으로 만들어진 애플리케이션들 중 3/4에서 최소 한 개 이상의 ‘OWASP 10위권’ 취약점이 발견되고 있다고 한다. OWASP 10위권에 속한 취약점은, 현존하는 소프트웨어들에서 가장 흔하게 발견되는 취약점 10개를 말한다. 개발 과정에서 이 10개 취약점만 주의 깊게 제거해도 애플리케이션 생태계는 훨씬 안전해질 것이라는 게 보안 전문가들의 의견이다.

[이미지 = utoimage]


보안 업체 베라코드(Veracode)는 최근 76만 개에 달하는 애플리케이션들을 분석했고, 그 결과 자바와 닷넷으로 만들어진 애플리케이션들의 20% 정도에서 최소 1개 이상의 고위험군 및 초고위험군 취약점이 나왔다고 한다. “어떤 언어로 작성됐든, 애플리케이션 전체로 보자면 한 달에 한 번 이상 취약점이 발견될 확률은 평균 27%인 상황이고, 공격자들이 자주 스캔을 하는 앱들이라면 이 수치가 크게 높아질 수 있다는 사실도 조사 중에 발견할 수 있었습니다.” 베라코드 측의 설명이다.

또 베라코드의 부회장 팀 자렛(Tim Jarrett)은 “덜 숙련된 개발자가 만든 앱과 훈련이 잘 된 개발자가 만든 앱 사이의 취약점 발견 확률에도 유의미한 차이가 있었다”며 “개발 과정 중간중간에 보안이라는 요소가 추가되는 것이 얼마나 중요한지 다시 한 번 증명하는 결과”라고 짚었다. “특히 개발자 스스로가 보안 훈련을 받아 시큐어 코딩을 실시할 경우 취약점이 발생할 확률이 크게 줄어든다는 것을 알 수 있었습니다. 엉성하게 만들어진 애플리케이션들이 출시 이후 잦은 패치를 실시해야 한다는 것까지 고려하면 개발자가 보안 훈련을 받는 게 비용 면에서도 큰 장점이 됩니다.”

그렇지만 아직 전체적으로 봤을 때 취약점과 오류를 애플리케이션에서부터 제거한다는 건 쉬운 일이 아닌 것이 분명하다. 개발자들과 오픈소스 프로젝트 관리자들이 오류를 찾아내고 해결하는 데 걸리는 시간이 짧아지고 있긴 하지만, 여전히 절반 이상의 취약점들이 수개월이 지나야 겨우 발견되는 게 현실인 것으로 조사됐기 때문이다. “길어야 수주, 짧게는 수일 안에 발견되고 해결이 되는 게 이상적인 상황에서 단위 자체가 ‘개월’이라는 건 아직 갈 길이 멀다는 뜻입니다.”

애플리케이션 출시 이후 시간이 지나면서 각종 패치를 통해 코드가 추가되면서 용량이 커지고 구조가 복잡해지기도 하는데, 이것이 보안에 꽤나 좋지 않은 영향을 미친다는 것도 이번 조사를 통해 드러났다. “생애주기를 거쳐 애플리케이션들은 대략 40%의 코드를 덧입는 것으로 조사됐습니다. 그리고 그런 과정에서 취약점이 추가될 가능성도 높은 것으로 밝혀졌습니다. 2년 이상 된 애플리케이션에서 취약점이 발견된 건 약 54%, 5년이 넘은 애플리케이션에서는 약 69%였거든요.”

예상을 뛰어넘은 자바스크립트
놀랍게도 자바스크립트로 만들어진 애플리케이션들의 경우 취약점 스캔에서 괜찮은 성적을 거두었다. 자바와 닷넷으로 만들어진 애플리케이션들 중 80%에서 취약점이 발견된 것에 반해 자바스크립트는 56%를 기록한 것이다. 자바/닷넷 앱에서 발견된 취약점 중 20%가 고위험군으로 분류됐는데, 자바스크립트 앱에서 발견된 고위험군 취약점은 10%도 되지 않았다.

자렛은 “자바스크립트는 두 언어보다 더 최근에 나온 것이고, 따라서 보안 기능을 더 많이 가지고 있다”고 설명한다. “또한 오픈소스이기 때문에, 여러 명이 점검을 한다는 장점도 가지고 있지요. 전 세계 수많은 사람들이 자바스크립트의 팬을 자처하고 있고, 그러면서 여러 측면에서 지원을 아끼지 않고 있습니다. 취약점 점검도 자발적으로 하는 사람이 많고요. 그런 것들이 유리하게 작용하는 듯합니다.”

새로운 프로그래밍 언어들
그나마 다행인 점은 취약점 많은 애플리케이션을 만드는 데 일조하고 있는 자바의 경우 프로그래머들이 그리 선호하는 언어가 아니라는 것이다. 베라코드의 조사에서 54%의 개발자가 자바를 싫어한다고 답했다. 자바를 선호한다고 답한 응답자는 46%였다. 개발자들이 가장 좋아하는 언어는 러스트(Rust)였고 그 뒤를 고(Go), 다트(Dart), 플러터(Flutter) 등이었다.

하지만 현실에서 가장 많이 스캔되는 애플리케이션은 자바로 만들어진 애플리케이션들이다. 언급된 인기 높은 신규 언어 4가지로 만들어진 애플리케이션은 거의 스캔되지 않으며, 개발자들이 6번째로 좋아하는 언어인 파이선이 스캔되는 경우는 4%도 되지 않는다고 한다. 자렛은 그 이유에 대해 “아직도 기업들은 정식 애플리케이션을 만들 때에는 충분한 시간 인증된 언어들로 만들어하고 싶기 때문”이라고 분석한다. 공격할 만한 가치가 높은 애플리케이션들은 개발자 개개인들의 선호도와 상관 없이 보다 유명하고 오래된 언어들로 만들어진 경우가 많다는 것이다.

“고, 러스트, 다트 등은 프로그래밍 역사라는 바다 전체를 보면 이제 막 해변에 생겨난 거품과 같은 존재들입니다. 이제 막 생겨났고, 앞으로 어떻게 될 것인지가 매우 불투명하죠. 누군가는 그 거품에서 여러 가지 매력과 새로움을 느낄 수 있지만, 그럼에도 보다 진지하게 뭔가를 만들어내려면 더 깊은 바다에서 물을 끌어올리게 되어 있습니다. 언젠가 새 언어들도 바다로 쓸려 가면 주류가 될 것이고, 그러면 더 많은 애플리케이션들이 이 언어들로 작성될 것입니다.”

3줄 요약
1. 자바와 닷넷으로 만들어진 애플리케이션에 취약점 있을 확률 가장 높음.
2. 개발자들이 선호하는 언어는 신규 언어들이지만, 기업들은 자바 등 오래된 언어 선호하는 듯.
3. 보안 훈련된 개발자들이 만든 애플리케이션의 보안성이 훨씬 강력.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
 하이젠 파워비즈 23년 11월 16일~2024년 11월 15일까지 아스트론시큐리티 파워비즈 2023년2월23일 시작 위즈디엔에스 2018 넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지
설문조사
2023년 주요 보안 위협 가운데, 올해 말까지 가장 큰 피해를 끼칠 것으로 예상되는 위협은?
공급망 공격
다크웹 기반 랜섬웨어 조직
북한/중국/러시아 등 국가 지원 해킹그룹 활동
스마트폰을 노린 보안 위협
OT 타깃 공격
피싱 공격
기타(댓글로)