최근, 조지아 공과대학의 보안전문가들이 노드 JS 기반의 어플리케이션을 공략하는 법을 개발했다.
이 방법은 내부 프로그램 메모리위치 정보를 추적하는데 사용되는 ‘숨겨진 특성들’을 조작하는 것으로, 원격의 공격자들이 노드 JS 프로그램들에 새로운 값을 주입하고 이를 내부 데이터인 것처럼 위장시키는 것이 핵심이다.
연구에 참여한 페이 시아오(Feng Xiao)는 “사용자 ID와 같은 프로그램 기능 등 특성이나 메모리 정보에 초점을 맞추는 것이 핵심”이라면서, “꽤나 흔희 나타날 수 있는 공격기법이지만 탐지하기가 쉽지않아 도구를 만들어 배포할 계획”이라고 설명했다.
이 공격은 자바스크립트 프로토타입 폴루션(JavaScript Prototype Pollution) 공격과 유사한데, 이는 공격자가 프로토타입 객체를 조작해 합침으로써 프로토타입의 특성이 바뀌고, 이렇게 바뀐 프로토타입이 다른 자바스크립트 객체의 기본 바탕으로써 계속 증식하도록 하는 것이다.
노드 JS는 자바스크립트 코드를 실행하는 플랫폼으로 개발자 사이에서 인기가 매우 높고 디펜던시에 대한 의존도가 높아서 자칫하면 다수를 감염시킬 위험이 따른다.
이 공격이 성립할 수 있는 이유는 아무 형태의 데이터가 특성으로써 추가될 수 있고, 따라서 공격자가 취약점이 증식하는 과정에도 개입하여 프로그램의 논리구조도 조작할 수 있다는 것이다.
링스는 이러한 공격 가능성을 탐지하는 도구이다. 이는 동적분석과 정적분석 기술 모두를 사용하며, 맞는 익스플로잇을 생성한다. 이 도구는 API 개발자들과 보안전문가들에게 특히 유용하여 안전한 개발이 가능하다고 한다.
[제작=서울여대 정보보호학과 학생회]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>