조사단은 현재까지 SK텔레콤의 리눅스 서버 3만여 대에 대해 4차례에 걸친 점검을 진행했다. 4차례에 걸친 강도 높은 조사는 1차 점검에서 확인한 BPFDoor 계열 악성코드의 특성(은닉성, 내부까지 깊숙이 침투할 가능성 등)을 감안해 다른 서버에 대한 공격이 있었을 가능성을 확인하기 위한 목적으로 진행되고 있다. 4차 점검은 국내외 알려진 BPFDoor 악성코드 변종 202종을 모두 탐지할 수 있는 툴을 적용해 진행되고 있다.
1∼3차 점검은 SK텔레콤이 자체 점검 후 조사단이 이를 검증하는 방식으로 진행됐다. 4차 점검은 조사단이 한국인터넷진흥원(KISA)의 인력을 지원받아 직접 조사를 진행했다.
=
아...진작에 저렇게 좀 하면 좋았을 것을요...
sk가 제일 못한 상태라고, 확신할 수 없어요...
챗지피티 :
BPFDoor에 감염되었다면, 단순히 악성 프로세스를 종료하거나 파일만 삭제하는 것으로는 근본적인 해결이 불가능합니다. 이 악성코드는 커널 수준에서 숨겨진 활동을 하고, 시스템을 지속적으로 장악하려 하기 때문에, 재감염 우려가 큽니다.
커널 수준에서 지속적으로 장악하려면 실행파일이 있어야하는데 그걸 발견한거에요.
커널 수준에서 지울수 없게 하려면 커널 자체에 심어야해서 그러면 커널 컴파일을 해야하는데 커널 컴파일하면 리부팅해야돼서 로그파일에 안남을수가 없어요.
커널 해킹은 리부팅 없이도 가능하며, 기술적으로 숙련된 공격자가 설치한 루트킷은 거의 탐지되지 않게 설계됩니다.
[리부팅 없이 커널을 해킹하는 방법]
- LKM (Loadable Kernel Module) 삽입
리눅스 커널은 모듈을 **런타임에 삽입(insmod)**할 수 있습니다.
이 과정을 통해 공격자는 루트 권한으로 커널에 코드를 주입할 수 있고, 시스템 콜도 후킹할 수 있습니다.
예: insmod rootkit.ko → 사용자 명령이나 네트워크 요청을 감시하거나 숨김.
- /dev/kmem 또는 /dev/mem 직접 조작 (구형 커널)
메모리에 직접 접근해서 커널 데이터 구조를 조작할 수 있음.
현재는 대부분 비활성화됨.
- eBPF 취약점 악용 <==
eBPF는 커널에 유저 코드를 로딩할 수 있게 하는 기능인데, 검증이 불완전할 경우 권한 상승 및 RCE가 가능합니다.
공격자는 이를 통해 커널 공간에서 악성 루틴 실행 가능.
[그런데 왜 사용자가 모를 수 있나?]
- 루트킷이 로그, 프로세스, 포트를 숨김
ps, netstat, lsmod, top 등을 후킹해 공격자가 삽입한 흔적을 감춤.
사용자나 관리자도 일반적인 방법으로는 눈치채기 어려움.
- 리부팅 필요 없음
대부분의 공격은 런타임 중 실행 가능. 재부팅이 필요 없다면 시스템 운영 중 침해 사실을 모를 수 있음.
- 모듈 이름 위장
insmod로 모듈 삽입 시 일반적인 시스템 모듈 이름으로 위장하거나 /proc/modules 목록에서 삭제해버림.
제가 말하는 리부팅이 필요한 영역은 커널모듈이 아니고 커널 그 자체에요.
파일 삭제하고 재부팅하면 치료되지는 않아요. 잠재적 위협이 있는 상태에서 리부팅은 더 위험합니다.
그리고 루트킷은 너무나 정교하고 교묘해서 시스템 점검의 대부분을 무력화 시킬 수 있습니다.
문제는 수년이 지나서야 알게되었다는 것이고, 무슨 정보가 전송됐는지도 알지 못한다는 건데...
이 정도면 시스템 관리 측면에서 재앙과 같은 상황입니다.
루트킷이 복잡해졌기 때문에 그걸 발견하는 시스템이 있어요. 바이러스토탈이나 비슷한 솔루션에 프로그램 올리면 해당 프로그램이 윈도우나 리눅스에서 메모리에 어떤 정보를 보내고 어떤 인스트럭터를 실행시키는지까지 자동으로 분석해줘요. 바이너리를 컨테인하고 행동사항까지 전부 파악할수 있어요. 그걸 통해서 위험한 바이너리 해시를 알리는거고요.
skt를 위한 특정한 루트킷이라면 새롭게 분석되어야하겠지만 그렇지 않아도 기존해시와 다르기 때문에 감염되었다는건 알수 있죠.
시스템 관리쪽에서는 더이상 할수 있는 일은 없죠. 네트워크 감시를 좀더 정교하게 설계해야겠죠.