아카마이의 스튜어트 숄리는 지난 1년 동안 XOR 봇넷이 증가했으며, 대규모 디도스 공격을 감행할 수 있는 단계에 도달했다고 설명했다.
XOR은 리눅스 시스템을 감염시키는 '트로이의 목마'다. 통상 공격자의 SSH 세션 주입, 또는 취약한 앱이나 시스템 운영자 등 2차 공격 표면을 통한 시스템 감염 후 설치된다.
XOR이 설치되면, 시스템이 봇넷에 추가된다. 그리고 봇마스터가 이를 이용해 '온디맨드' 공격을 감행한다.
숄리는 "XOR은 공격자가 감염된 리눅스 시스템을 이용한 봇넷으로 초점을 옮겼음을 보여주는 사례"라고 설명했다.
과거 봇마스터가 가장 좋아했던 시스템은 윈도우 시스템이었다. 그러나 시대가 변하면서 공격도 변했다.
데이터센터에서 도입이 크게 확대된 리눅스 기반 네트워크가 주된 표적이 됐다. 시스템 관리자들이 리눅스 또한 유지관리가 필요하다는 사실을 망각하는 경향이 있기 때문이다.
리눅스는 복원성이 뛰어나다. 이런 이유로 패칭, 운영, 유지관리에 있어 '문제가 없다면'이라는 사고방식이 만연해있다.
다른 리눅스 기반 봇넷으로는 스파이크(Spike) 툴킷, IptabLes, IptabLex 악성코드를 예로 들 수 있다.
아카마이 SIRT의 조사 결과에 따르면, XOR 기반 디도스 공격은 1자리 Gbps 공격에서 시작해 150Gbps 이상의 공격으로 진화한다. 게임 산업이 표적이 되는 사례가 가장 많다. 다음은 교육 기관이다.
일평균 20회의 XOR 공격이 발생하고 있다. 90%는 아시아 지역이다. 최근에는 179Gbps의 공격이 발생했다. 이후 발생한 공격은 109Gbps였다. 대부분의 공격이 SYN 및 DNS 플러드였다.
감염 징후
표적으로 삼은 운영 시스템의 바이너리를 실행시키기 위해서는 루트 권한이 필요하다. 바이너리가 실행되면 /boot 디렉토리에 10자리의 무작위 알파벳으로 구성된 파일 이름을 가진 복사본 하나, /lib/udev에 udev라는 파일 이름을 가진 복사본 하나가 생성된다.
악성코드는 지속 공격을 감행하기 위해 메인 프로세스가 실행되고 있는지 확인하는 '단명'의 프로세스를 여럿 수행한다. 메인 프로세스가 실행되고 있지 않다면, /boot에 10자리의 무작위 알파벳으로 구성된 파일 이름을 가진 새 복사본을 생성해 실행시킨다.
그리고 흔한 루트킷 기법을 이용해 프로세스를 은닉한다. 악성코드는 실행되고 있는 프로세스를 보여주는 툴을 이용, 스스로를 일반적인 리눅스 툴(top, grep, ls, ifconfig 등) 이름으로 은닉한다. 또 무작위의 플래그를 곁들여 바쁜 시스템에 섞여 들어간다.
리부팅 후 지속 공격을 위해, /etc/init.d 디렉토리에 /boot와 동일한 이름일 가진 시작 스크립트를 생성한다.
아카마이는 NOC에서 윈도우가 실행되고 있다 할지라도 100% 안전하지는 않다고 결론내리고 있다. 공격자들은 봇넷과 디도스 공격에 이용할 목적으로 설정과 유지관리가 미흡한 리눅스 시스템을 표적으로 삼고 있다.
10년 전, 리눅스는 윈도우 환경보다 안전하다는 평가를 받았다. 당시 윈도우는 공격에서 큰 비중을 차지했었다. 이에 기업들은 보안을 강화하기 위해 리눅스를 도입했다.
그러나 리눅스 환경의 수가 증가하면서, 범죄자들이 이를 표적으로 삼을 기회, 이렇게 했을 때 보상도 커졌다. 공격자들은 앞으로도 계속 전술과 도구를 발전시켜 나갈 것이다. 보안 전문가들 또한 여기에 대처하기 위해 리눅스 기반 시스템의 보안을 강화해야 한다. editor@itworld.co.kr