웹방화벽 등의 고가의 보안 장비를 구입할 형편이나 예산이 되지 않는 중소기업의 웹 페이지는 늘 악성 공격에 위협을 받고 있다.
나름대로 이래저래 긴급 조치를 해보지만 보안 취약점을 원천적으로 해결하거나, 이미 악성 코드가 유입된 경우 이를 찾아 제거하기가 쉽지 않다. 특히 이런 악성코드는 일반 백신 소프트웨어로는 제대로 탐지가 되지 않아, 일일이 파일을 열어 확인하지 않는 이상 정확한 확인 조차 어렵다.
보통 윈도우 2000/2003 서버 운영체계를 사용하는 서버에서 보안 취약점 문제가 빈번하게 발생하는데, 그 중 윈도우 서버 관리자나 개발자라면 한번쯤음 들어봤음직 한 '웹셀'이란 해킹 툴이 가장 큰 문제다.
웹쉘은 해커 또는 크래커가 원격에서 웹페이지 형태의 탐색기 프로그램을 통해 해당 서버를 마음대로 주무를 수 있게 하는 해킹 툴이다. 즉 그 나쁜 놈(주로 중국 애들이다)들은 서버의 취약점(SQL Injection 등)을 이용해 이 웹셀 파일을 서버에 저장시킴으로써,
원격에서 인터넷 익스플로러를 통해 피해 서버의 파일, 폴더를 자유자재로 조작할 수 있게 된다. (윈도우 탐색기를 원격으로 사용하는 셈이다.)
- 웹쉘을 통해 인터넷 익스플로러만으로도 대상 서버의 파일, 폴더를 훤히 제어할 수 있다. (이런게 가능하다니 신기하기까지 하다.)
나 역시도 이 웹쉘 때문에 한동안은 쌩고생과 삽질을 해야 했다.
내노라 하는 백신 프로그램, 방화벽 프로그램 등을 통해 어느 정도 걷어내긴 했지만, 수십만개나 되는 윈도우 전체 파일을 하나하나 뒤져
웹쉘 소스가 사입된 걸 찾아내기란 삽질도 그런 삽질이 따로 없다.
결국 '언발에 오줌누는' 격으로 지금까지 웹쉘의 근본을 뿌리 뽑지 못하고 근근히 버티고 있던 터였다.
이처럼 충분한 웹 보안 장비를 마련할 수 없는 우리네 중소기업을 위해 '한국정보보호진흥원(이하 KISA)'에서는 다양한 정보와 툴을 제공하고 있다.
특히 KISA의 부설 센터인 '인터넷침해사고 대응지원센터(www.krcert.or.kr)'를 통해 무료 배포되는 웹 방화벽 프로그램인 '웹나이트' 역시 효율적으로 외부로부터의 공격을 차단해주어 '가뭄에 단비' 역할을 하고 있다.
('웹나이트' 웹방화벽 프로그램에 대해서도 조만간 포스팅 하도록 하겠다.)
KISA에서 우리같은 '중생'을 구제하기 위해 무료 공급하는 보안 프로그램이 두어개 더 있다.
하나는 서버 내 유입된 악성코드를 탐지해 주는 'MC-Finder'와 웹쉘 탐지용으로 최근에 배포된 'Whistl'이 그것. (편의상 Whistl은 '휘슬'로 표기하겠다.) 두 프로그램은 KISA와 보안 업체 개발자들이 모여 자체 개발한 순수 국산 무료 보안 프로그램이다.
무료라 해서 그냥 막 퍼주는 건 아니고, 인터넷침해사고 대응지원센터 홈페이지에서 신청양식을 다운로드 받아 이를 작성하여 관계자에게 메일로 신청해야 한다. 센터에 따르면 대기업이나 관공서 등보다는 주로 중소기업체를 대상으로 우선 배포한다 했다.
신청양식 문서는 이 포스트에 게시하였으니 다운, 작성 후 각각 mcfinder@krcert.or.kr과 whistl@krcert.or.kr로 발송 후 기다리면 된다.
이 포스트에서는 웹쉘 소스 탐지 프로그램인 '휘슬'에 대해 살펴보기로 한다.
사용신청서를 보낸 후 사용 적격으로 판정되면 하루 이틀 사이에 휘슬 설치 파일을 받을 수 있다.
휘슬은 현재 리눅스(커널 v2.4, 2.6)와 윈도우 운영체계만 지원하며, 실행 후 센터에서 함께 알려 준 아이디와 패스워드를 입력해야 최종 사용이 가능하다.
지원센터에서 보낸 파일은 총 2개다. 프로그램 압축 파일과 계정 인증을 위한 bin 파일(validate.bin)이다.
즉 프로그램 압축 파일을 푼 폴더에 인증용 bin 파일을 복사해 둬야 계정 로그인이 가능하다.
설치 압축 파일을 풀면 리눅스용과 윈도우용 압축 파일이 나오고 이 중 윈도우용 프로그램을 실행하면 된다.
프로그램은 설치하는 방식이 아니라 단발식 실행 방식이다.
whistl.exe 파일을 실행하면 아래와 같이 로그인 화면이 나오고, 센터에서 받은 계정을 입력하면 된다.
(계정은 회사 이름으로 정해지더라.)
로그인에 성공하면 제일 먼저 패턴 업데이트를 수행해야 한다. (업데이트는 자동 업데이트 설정이 가능하다.)
위와 같이 패턴 업데이트를 완료하면 이제 웹서버의 소스 파일 폴더를 지정하여 탐지를 시작한다. 윈도우 2000/2003 웹서버 환경이라면 대게 ASP 파일로 구성되겠지만, '휘슬'에서는 PHP나 JSP도 지원하고 있으므로 아래 화면과 같이 '환경설정' 메뉴에서 소스 파일 유형을 선택할 수도 있다.
자 이제 실제로 웹쉘 코드가 침투한 소스 파일이 있는지 떨린 마음으로 검색해 본다. 우리 회사 서버 환경은 윈도우2003의 IIS 기반 다중 웹서버에 소스 파일 서버를 따로 두어 폴더 공유를 하고 있다. 다행히도 휘슬은 웹서버의 로컬 폴더 뿐 아니라 원격공유 폴더도 검색할 수 있다.
위 그림에서 C:\는 웹서버 로컬, Z:\는 소스 파일 서버의 공유 폴더다. [검사시작] 버튼을 누르면 아래 그림과 같이 실제 스캔 작업이 진행된다.
검사를 마친 나는 결과를 보고 경악하지 않을 수 없었다. 나름대로 유수의 백신, 보안 프로그램으로 항상 체크하고 점검하고 있는데 위와 같이 웹쉘 소스가 유입된 파일이 11개가 나왔다. 어쩐지 잊을만 하면 한번씩 툭툭 증상이 나타나곤 하더라... 덴장... 휘슬은 해당 소스 파일에 유입된 웹쉘 소스도 분석할 수 잇도록 '파일보기' 기능을 넣어 두었다. 실제로 위 그림에서 하나의 파일을 선택 후 '파일보기'를 선택하면...
이렇게 나온다. 이 암호화된 웹쉘 소스가 특정 asp 파일에 떡하니 삽입되어 있으니 일반 백신으로는 잡아내지 못한다. 실제로 위 소스가 어떻게 작동하는지는 모르겠지만, 일단 악성 코드 패턴에 해당되는 내용이니 해당 asp 파일을 열어 남김없이 삭제해야 하겠다. 특히 위 검색 결과 그림에서 '7개 이상'의 웹쉘 코드가 발견된 파일은 집중 관리 대상이 되겠다. (결과 화면의 '수준' 탭에 나타난다.) 이 정도만 잡아낼 수 있으면 서버 관리자나 개발자에게 한결 수월하다. 현재 전체 서버에는 K사의 백신을 실시간으로 실행하고 있지만, 저렇게 이미 잡입돼 숨어있는 소스는 찾아내지 못하고 있다. (이런 툴을 무상 배포하는 KISA에 다시 한번 감사의 뜻을 전한다.) 이 밖에 휘슬은 주기적으로 웹쉘 소스를 탐색하도록 예약 검사도 지원하고 있다
이 휘슬은 앞서 언급한 '웹나이트' 웹방화벽과 함께 운영할 수 있다. 현재 우리 회사 환경에서도 그리 적용하여 운영중이다. 또한 감염 수정된 asp 파일은 따로 검염소로 격리 보관하며 유입 패턴과 소스 분석이 가능하도록 하고 있으며, 해당 감염 파일을 KISA 측으로 송부하여 신고하는 기능도 제공하고 있다. 일단 휘슬로 급한 불을 끌 수 있어 한시름 놓게 됐다. (요즘 '불' 얘기 하기가 좀 거시기 하다...) 물론 그렇다고 이것만 믿고 마냥 손놓고 있어도 안될 것이라 역시 관리자의 지속적인 관심과 주의가 필요할 것이다. 아울러 일주일에 한두번 정도는 KISA나 지원센터 홈페이지를 방문해 최신 보안 정보도 습득하는 습관도 필요하겠다. 한동안 우리 서버에서도 극성을 부리던 악성 코드와 웹쉘 프로그램이 지금은 다소 누그러진 추세다. 기존에 사용하던 웹나이트 웹방화벽도 최신 버전으로 교체했고, 앞서 말한 MC-Finder와 휘슬을 통해 매일매일 점검하며, 비교적 공신력 높다는 K사 백신으로도 매일 체크하면서 파일 상태를 모니터링 하고 있기 때문인 듯 하다. 역시 '시스템 보안'은 이를 관리하는 관리자의 보안 의식과 관심에서 시작됨을 다시 한번 통감하는 요즘이다.