Node.js를 활용하는 Lu0Bot 악성코드
최근 SFX 압축 파일 형태로 유포되는 “Lu0Bot” 악성코드가 발견됐다. 해당 악성코드는 C&C 서버의 명령을 받아 동작하는 봇 악성코드이며, Node.js 인터프리터와 암호화된 JavaScript를 포함하고 있다. “Lu0Bot”을 실행하면, 스스로 압축을 해제 후 Node.js를 사용해 암호화된 JavaScript를 복호화 및 실행한다.
Node.js는 플랫폼에 구애 받지 않고 JavaScript 코드를 실행할 수 있게 해주는 프로그램으로 다양한 기능을 지원하는 라이브러리를 내장하고 있기 때문에 “Lu0Bot”은 별도의 외부 소스 없이 다양한 동작을 수행할 수 있다. 다만, 현재 해당 악성코드는 PE 파일로 유포되고 있어 Windows에서만 실행되지만, Node.js의 활용은 Linux 등의 다른 플랫폼으로 공격 대상이 확장될 수 있음을 나타낸다.
먼저, “Lu0Bot” 악성코드를 실행하면 압축된 파일을 해제해 [그림 1]과 같이 1개의 BAT 파일과 6개의 DAT 파일이 추출되는 것을 확인할 수 있다.
추출된 BAT 파일은 “eqnyiodbs”라는 이름의 DAT 파일 4개를 합쳐 Node.js 인터프리터 파일을 생성하고, 해당 인터프리터를 사용해 “lknidtnqmg.dat” 파일을 실행한다.
“lknidtnqmg.dat”는 암호화된 데이터 파일로 디버거를 사용하면 인터프리터가 복호화한 원본 코드를 얻을 수 있다. 해당 원본 코드는 JavaScript 언어로 작성됐으며 난독화가 적용된 것을 확인할 수 있다.
[그림 3]의 JavaScript가 실행되면, 감염된 PC의 시스템 정보와 프로세스 정보를 수집한다.
이후, C&C 서버와 연결하고 수집한 정보를 서버로 전송한다. 단, 분석 시점에서 서버가 응답하지 않아 추가 데이터 교환이 발생하지 않는다.
한편, “Lu0Bot”은 시작프로그램 폴더에 Node.js 인터프리터 및 스크립트를 실행하는 LNK 파일을 생성해 자동 실행을 등록함으로써 지속성을 획득한다.
“Lu0Bot” 악성코드는 감염된 PC에서 시스템 정보를 수집하며, 서버의 명령에 따라 추가 악성 동작을 수행할 수 있다. 또한, Node.js를 활용하는 방식은 다른 플랫폼으로 공격 대상의 확장 가능성이 있어 주의가 필요하고, 백신 프로그램과 OS를 항상 최신버전으로 유지할 것을 권고한다.
상기 악성코드는 잉카인터넷 안티바이러스 제품 TACHYON Internet Security 5.0에서 진단 및 치료가 가능하다.