Home > 전체기사

메모리 안전 장치가 내포된 프로그래밍 언어에 대한 관심 높아진다

  |  입력 : 2022-12-07 14:27
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기 네이버 블로그 보내기
드디어 C와 C++의 시대가 저무는 걸까. ‘보안’을 이유로 구글에서는 오랜 시간 프로그래밍 업계에 군림했던 이 두 언어를 러스트나 C#, 자바스크립트와 같은 신진 세력들로 교체하기 시작했다. 왜? 메모리 안전 문제 때문이다. 취약점을 유형별로 나눠 통째로 없애가겠다는 게 구글의 계획이다.

[보안뉴스 문가용 기자] 소프트웨어 산업이 각종 취약점 공격에 대한 방어력을 강화하기 시작했다. 특히 ‘메모리 안전’ 문제와 관련이 있는 유형의 취약점들인 버퍼 오버플로우와 UaF 등에 대한 대처 방법이 하나 둘 늘어나고 있다고 한다. 가장 인기 높은 방법 중 하나는 메모리 안전 언어(memory-safe languages)인 자바, C#, 러스트(Rust) 등을 적극 활용하는 것이다. 언어만 살짝 바꿨을 뿐인데 메모리 안전 취약점들이 크게 감소했다고 한다.

[이미지 = utoimage]


지난 주 구글도 최근 들어 안드로이드 OS에 새로운 코드를 추가할 때 “대부분 메모리 안전 언어로 작성된 코드를 활용했다”고 밝혔다. 그 결과 지난 3년 동안 메모리 안전 관련 취약점이 223개에서 85개로 줄었다고 한다. 구글의 소프트웨어 엔지니어인 제프리 반더 스토에프(Jeffrey Vander Stoep)는 “취약점을 유형별로 나누고, 가장 위험한 유형부터 통째로 없애는 방안을 마련 중에 있다”고 설명한다. “프로그래밍 언어를 바꿈으로써 메모리 안전 취약점들이 눈에 띄게 줄어들었고, 이제 다음 유형의 취약점들을 공략하게 될 것입니다.”

지난 수십 년 동안 C와 C++는 소프트웨어 개발에 있어 ‘디폴트 언어’나 다름이 없었다. 여러 가지 장점을 가지고 있었기 때문이다. 하지만 약점도 있었으니, 바로 C#, 고, 자바, 파이선, 루비, 러스트, 스위프트와 같은 현대 언어들에 비해 메모리 보호 기능이 부족하다는 것이었다. 그럼에도 C와 C++는 꾸준히 사용됐고 그 결과 애플리케이션의 59%에서 메모리 관련 취약점들이 발견됐다. 자바스크립트로 만들어진 애플리케이션에서 메모리 관련 취약점은 9%, 파이선에서는 10%만 나올 뿐이었다.

버퍼 오버플로우와 워머블 취약점
C와 C++를 사용하는 것만으로도 메모리 안전 문제가 내포된 애플리케이션이 높은 확률로 탄생한다는 것인데, 이처럼 오류와 취약점이 있는 소프트웨어를 만들어 출시하는 게 너무나 간단한 일이라는 것은 모든 소프트웨어 회사들의 골칫거리였다. MS와 같이 큰 회사의 경우도 2018년까지 70%의 확률로 메모리 안전 문제가 포함된 소프트웨어를 출시하곤 했었다. 소프트웨어 엔지니어 알렉스 게이노(Alex Gaynor)는 “2020년 기준 여러 생태계에 걸쳐 메모리 안전 취약점이 60~70%에 달했다”고 설명하기도 한다.

베라코드(Veracode)의 CTO인 크리스 와이소팔(Chris Wysopal)은 “메모리 안전 취약점은 익스플로잇도 쉬운 편”이라고 지적한다. “이 때문에 여러 중대한 사건의 뿌리에 이런 류의 메모리 안전 취약점들이 존재하는 걸 자주 발견할 수 있습니다. 메모리 안전 오류는 최소 고위험군에 속하는 문제로, 공격자들이 임의의 코드를 실행함으로써 애플리케이션이나 장비를 완전히 장악하게 합니다. 심지어 워머블(자동 증식이 가능한 특성) 익스플로잇을 허용하기도 합니다.”

보다 안전한 언어로 갈아타기
이런 상황에서 덜 안전한 언어를 고집한다는 건 그냥 아집일 뿐이다. 구글이 자사 개발자들에게 메모리 안전 언어로 전환하라고 촉구한 것은 너무나 당연한 일이다. 현재 구글에서 만들어지는 모든 새로운 코드 중 C와 C++로 만들어지는 건 반도 되지 않는다고 한다. 안드로이드 최신 버전인 13은 거의 대부분이 메모리 안전 코드로 작성됐다. C와 C++가 있던 자리에 러스트가 들어섰다고 구글은 설명한다. 현재 미국의 NSA조차도 메모리 안전 프로그래밍 언어의 사용을 권하고 있다.

이처럼 메모리 안전 언어로의 이동이 가시적으로 눈에 띄고 있다는 건 취약점을 줄인다는 면에서는 좋은 소식이다. 하지만 메모리 안전 언어만으로 모든 문제가 해결되는 건 아니다. 왜냐하면 모든 프로그램들마다 약점이 있고, 메모리 보호 기능의 수준도 제각각이기 때문이다. 그래서 NSA는 다양한 애플리케이션 보안 도구들을 같이 활용해 가며 개발하라고 권하고 있기도 하다.

“보안이 강화된 언어를 찾아 프로그래밍을 한다는 건 너무나 좋은 방향임이 확실합니다. 하지만 언어 자체가 소프트웨어 보안 도구는 아니지요. 우리는 보안을 위해 뭔가 변화를 꾀하고, 그 변화에 적잖은 노력이 들어갈 때 보안이 꽤나 튼튼해진다고 생각하려는 경향이 있습니다. 내가 힘들었으니 보안이 잘 되었겠지, 라고 여기는 겁니다. 사실 비논리적이죠. 내가 힘든 것과 보안이 튼튼한 건 아무런 상관이 없어요. 언어를 바꿔서 보안을 강화했다면, 그 다음의 절차를 밟아 여전히 빈 곳을 보충해야 합니다. 그래서 언어를 바꾼 데 이어 보안 도구들을 활용하라고 NSA가 권하는 것이죠.” 와이소팔의 설명이다.

3줄 요약
1. 코드하면 떠오르던 C와 C++은 메모리 보호 기능이 취약함.
2. 그래서 이 언어들로 앱 만들면 메모리와 관련된 취약점들이 자주 생김.
3. 이 때문에 최근에 메모리 안전 프로그래밍 언어들로 많이 바꿔가는 편.

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

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

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

  •  SNS에서도 보안뉴스를 받아보세요!! 
시큐아이 에스케어 파워비즈 배너 2022년 3월15일 시작~ 12개월 23년 1월12일 수정 위즈디엔에스 2018
설문조사
보안전문 기자들이 뽑은 2023년 보안 핫키워드 10개 가운데 가장 주목되는 키워드는?
보안에서 진짜 ‘핫’한 제로트러스트와 공급망 보안
전문화, 분업화로 더욱 심해지는 랜섬웨어 공포
2023년 클라우드 생태계를 위협할 다양한 보안이슈들
전 국민이 사용하는 스마트폰, 2023년 해커의 집중 타깃
피싱 공격, 새로운 서비스형 위협 ‘PhaaS’로 더 악랄해지다
2022년 말에 터진 서명키 탈취사건, 2023년의 서막에 불과하다
밀집도 모니터링, 지능형 CCTV와 영상분석 트렌드 주도
주 52시간 근무제 달라지나? 정부 정책 따라 출입·근태 인증 보안 시장 요동
메타버스, 주목받는 만큼 증가하는 보안위협
스마트농업 육성 본격화, 보안과 안전 기반 하에 추진돼야