보안

일반적인 악성코드와 다르다…BPF도어 감염 점검 방법은?

김보민 기자
지난달 30일 서울 송파구 한국인터넷진흥원(KISA) 상황실에서 유심보호서비스 등 보안공지가 떠오르고 있다. [ⓒ연합뉴스]
지난달 30일 서울 송파구 한국인터넷진흥원(KISA) 상황실에서 유심보호서비스 등 보안공지가 떠오르고 있다. [ⓒ연합뉴스]

[디지털데일리 김보민기자] SK텔레콤 해킹 사고를 계기로 'BPF도어(BPFDoor)' 악성코드가 주목을 받고 있다. 보안 업계에서는 관련 설정 현황을 확인하는 것만으로 악성코드 감염 여부를 확인할 수 있을 것으로 보고 있다.

3일 보안업계에 따르면, 금융보안원은 지난달 29일 금융사를 대상으로 '민간업체 해킹 악성코드 분석 결과'를 배포했다. 해당 자료는 BPF도어 악성코드 샘플과 감염 여부 점검 방법을 분석한 결과를 담고 있다.

BPF(Berkeley Packet Filter)는 시스템 핵심(이하 커널) 영역에 설치돼, 외부 신호(이하 패킷)를 사용자 프로그램으로 필터링하는 기법이다. 커널 단에서 동작하기 때문에, 외부 통신이 들어올 때 외부 포트를 여는 대신 BPF모듈을 활용하는 것이 특징이다.

BPF도어는 이러한 환경을 악용한 악성코드다. BPF로 외부 신호를 가로채 보안 시스템 검사를 우회하고, 시스템에 은닉해 동작이 가능하다. 관련 위협은 2021년 PWC 위협 보고서에서 처음 공개됐는데, 특정 패킷에만 반응하고 시스템 커널에 설치돼 공격 명령을 필터링하기 때문에 일반적인 서버 방화벽, 모니터링 시스템에서 차단이 어렵다. 시스템 프로세스 위장, 공격자 명령채널 허용(포트포워딩), 역방향 명령제어 채널(리버스 커넥션) 등 은닉 및 우회 기법을 활용하기도 한다.

금융보안원 자료에 따르면, 공격자는 악의적인 명령어를 실행해 SK텔레콤 데이터베이스(DB)에 접근해 정보를 탈취한 것으로 추정된다. 공격자는 취약점 등을 악용해 서버에 침투한 뒤, BPF도어와 필터를 설치해 방화벽 등 보안 대책을 우회했을 것으로 보인다. 아울러 원격 채널을 통해 악의적인 명령어를 전송하고, 원격 명령을 실행했을 가능성도 배제할 수 없다. 원격 명령 실행으로 DB 접속에 성공해, 공격자 서버로 유심(USIM) 등 고객 정보가 유출됐을 것으로 추정된다.

금융보안원은 BPF 악성코드 감염 여부를 점검하기 위해 BPF 필터를 점검할 것을 제안했다. 위장 프로세스명과 점검용 명령어를 실행한 뒤, 출력되는 화면을 통해 감염 여부를 확인하는 방식이다. 사전 정의 문자열을 탐색하는 것도 방법이다. 위장 프로세스명과 점검용 명령어는 금융보안원 등 담당자로부터 전달받을 수 있다.

악성코드 내 문자열을 검색하거나, 리스닝 포트를 점검하는 것도 확인 방법으로 거론됐다. 리스닝 포트는 운영 체제 내에서 실행 중인 프로그램이나 서비스가 네트워크 통신을 위해 대기하는 지점을 뜻한다. 자료에 따르면 악성코드 기능 중에는 공격자가 전송한 명령어에 따라 방화벽 해제 및 특정 포트를 열고 대기하는 기능이 존재한다. 해당 포트 대역을 열고 대기하는 프로세스가 존재하는지 확인이 필요한 이유다.

한편 SK텔레콤은 이번 보안 사고와 관련해 대책이 마련되기 전까지 신규 고객 상담을 중단하고 유심 교체 업무에 집중할 방침이다. 아울러 고령층 및 장애인 고객을 우선으로 유심보호서비스 가입을 도울 계획이다. 지난 2일 기준, 유심보호서비스에 가입한 고객은 1442만명이다.

김보민 기자
kimbm@ddaily.co.kr
기자의 전체기사 보기 기자의 전체기사 보기
디지털데일리가 직접 편집한 뉴스 채널