재우니의 블로그

 

요즘 웹쉘이라는 툴을 이용하여 해킹하는 사례가 많다고 한다.

웹서버에 파일을 올리는 기능은 첨부파일 업로드 툴이며, 여기서 첨부파일 확장자명을 체크하여 차단해야 한다. 또는 첨부된 파일 폴더를 실행 및 스크립트 실행 권한을 주지 않고 읽기 권한을 제공해야 한다. 그리고 특수문자 '",- 를 필터링 하여 SQL Injection 공격을 방지하고, 제일 좋은건 웹보안 솔루션을 도입하는 것이다. 기존 네트워크와 서버 보안 체계에서 웹셀 탐지가 쉽지 않기 때문이다. 방호벽의 경우 허용된 IP나 포트로 부터 공격을 막기엔 어려움이 있다. 네트워크 계층에서 유해성 검사 또한 IDS/IPS 경우에는 APPLICATION 취약성 공격을 막는건 거의 불가하다고 한다.

 

 

krCert/CC 인터넷침해대응센타에서 제공한 캐슬(CASTLE) 의 웹방화벽무료 배포

 


https://www.krcert.or.kr/kor/webprotect/webprotect_03.jsp

 

 

 

[부분발췌]

또한, asp, cgi, php, jsp 등의 확장자명을 가진 웹셸을 이용하여 웹 서버에 명령을 실행해 관리자 권한을 획득한 후, 웹페이지 소스코드 열람, 서버내 자료 유출, 백도어 프로그램 설치 등의 추가공격으로 피해정도가 커질 수 있다.


웹셸 공격에 대한 예방책으로는 △파일 업로드 시 안전한 확장자만 허용하여 파일업로드 취약점 제거 △파일업로드 폴더의 파일 실행 제한 △사용자 입력 창에 특수문자[’ ” ; , - (space) 등]을 필터링하여 SQL Injection 방지 △웹보안 솔루션 도입 등이 있다.

 

 

[웹쉘의 4가지 유형 부분발췌]

 

웹셸은 4가지 유형으로

△ 파일이나 디렉토리를 조작하거나 DB를 조작할 수 있는 기본형

△ 암호가 설정되어 업로드 한 사람만 조작 가능한 유형

△ 변종으로 기존 웹서버 악성코드를 수정해 기능을 추가할 수 있는 유형

△ 암호화 된 웹서버 악성코드 유형

 

 

[아래는 웹셀 솔루션을 제공하는 업체들이다.]

 

 

 

 

 

박해룡 한국인터넷진흥원 팀장은 “웹셸은 한번 업로드되면 그 피해가 치명적인데도 불구하고 국내 사이트 관리자들이 웹셸에 그다지 관심을 기울이지 않는다”며 “백신에서도 웹셸 업로드 여부를 진단할 수 있으며 KISA에서 무료로 배포하는 웹셸 탐지도구인 휘슬(WHISTL) 등을 이용해 간단히 진단이 가능하니 꾸준한 관심으로 웹셸을 제거해야 한다”고 말했다.

 

 


[휘슬 소개] 휘슬(WHISTL)이 무엇인가요? 공격자가 웹서버에 설치한 백도어 프로그램인 웹쉘 및 악성코드 은닉사이트를 탐지하는 프로그램입니다.

○ 휘슬(WHISTL)은 어떤 뜻인가요? WHISTL은 Web Hacking Inspection Security TooL의 머리글자 모음입니다. 또한 발음으로는 Whistle와 동일하여 호루라기, 경적을 의미합니다. 이는 해당 프로그램이 웹쉘 및 악성코드 은닉 사이트를 탐지하는 경우 관리자에게 알려주어 대응을 하도록 한다는 의미로서 WHISTL을 명명하였습니다.

○ WHISTL은 어떻게 동작하나요? 반드시 웹 서버에 WHISTL을 설치 또는 복사하여 사용합니다. 또한 점검 대상 서버가 다수인 경우 개별 서버에 모두 프로그램을 복사해야 합니다. WHISTL은 웹서버가 운영중인 컴퓨터에서 웹문서 디렉토리에 존재하는 모든 웹문서 파일의 소스코드를 점검하는 방식으로 동작합니다.

○ 지원하는 웹 서버의 종류 및 개발 언어는 어떤것인가요? 현재 WHISTL은 ASP, JSP, PHP로 제작된 웹쉘을 탐지합니다. 그리고 웹 서버의 종류는 WHISTL의 구동과 관련이 없으므로 Apache, IIS 등 모든 웹서버에서 WHISTL을 사용하실 수 있습니다. ○ WHISTL은 어떤 운영체제를 지원하나요? 현재 Microsoft의 윈도우 서버 계열, 리눅스 커널 2.4/2.6을 지원합니다. 아직까지 유닉스(Solaris, HP-UX, IBM-AIX)는 지원하지 않고 있습니다.

○ 윈도우, 리눅스 웹서버를 다수 운영중인데 버전마다 신청서를 따로 작성 해야 하나요? 신청은 1 회만 신청하면 됩니다. 그리고 배포시 첨부하는 WHISTL 프로그램은 윈도우 버전 및 리눅스 2.4, 2.6버전 모두를 포함하고 있으니 관리자가 선택하여 사용할 수 있습니다. ○ WHISTL과 웹 방화벽의 차이는 무엇인가요? WHISTL은 공격자가 설치한 웹쉘 및 악성코드 은닉사이트를 탐지하는 프로그램입니다. 이에 반해 웹방화벽은 공격자의 공격을 실시간으로 차단하는 기능을 가지고 있습니다. WHISTL을 통해서 웹쉘 및 악성코드 은닉사이트가 발견되는 경우 공격자의 공격 지점을 파악하고 홈페이지 소스코드 수정, 웹 방화벽의 보안 정책 설정을 통해서 보안을 강화하셔야 합니다.

○ WHISTL이 웹쉘을 찾아냈다면 홈페이지가 해킹되었다고 판단해야 하나요? 꼭 그렇지는 않습니다. 일반적으로 모의해킹과 같은 취약점 점검시에도 시험적으로 웹쉘을 업로드하는 공격을 하기도 합니다. 그리고 공격자가 웹쉘 업로드는 성공 하였지만 실행권한이 없어서 공격이 성공하지 못하는 경우도 있습니다. 그러므로 웹쉘이 발견되면 해당 서버가 공격을 당했는지 침해사고 분석을 진행하여 최종 판단을 해야 합니다.

○ 정보보호에 관심이 많은 개인 사용자입니다. 홈페이지 관리자가 아니라 개인 사용자도 WHISTL을 사용할 수 있나요? WHISTL의 개발은 기업환경에서 홈페이지 관리자의 보안점검을 돕기 위함이 주요 목적입니다. 그러므로 현재 개인사용자의 연구용으로 보급되지 않고 있습니다.

○ 최초 사용자 등록시 발급받은 아이디와 패스워드를 수정하고 싶습니다. 어디에서 수정할 수 있나요? 기존에 발급된 아이디/패스워드를 사용자가 직접 수정은 지원하지 않습니다. 변경하고자 하시면 whistl2010@krcert.or.kr로 메일을 주시기 바랍니다.

○ 프로그램의 업데이트가 필요한 이유는 무엇인가요? 그리고 인터넷이 되 지 않는 환경에서도 WHISTL을 사용할 수 있나요? WHISTL은 공격자의 웹쉘 및 악성코드 은닉사이트를 탐지하는 프로그램입니다. 만일 공격자가 WHISTL에 탐지되지 않도록 신규로 웹쉘 및 악성코드를 생성하였 다면 이를 탐지하지 못하는 경우가 발생합니다. 이는 신규 바이러스에 대해서 백신 프로그램이 탐지하지 못하는 것과 동일한 경우입니다. 이를 위해서 한국 인터넷진흥원은 지속적으로 웹쉘 및 악성코드 은닉사이트에 대한 정보를 수집하여 최신패턴을 적용하고 업데이트를 하도록 개발하였습니다. 그러므로 최신의 패턴을 사용하기 위해서는 주기적으로 업데이트를 실행하셔야 합니다. WHISTL은 인터넷이 되지 않는 환경에서도 프로그램 구동에는 전혀 문제가 되지 않습니다. 다만 실행시 최신웹쉘 및 악성코드 은닉사이트 탐지 패턴이 업데이트가 되지 않으며, 이 경우 가장 최근에 업데이트한 웹쉘 및 악성코드 은닉사이트 탐지 패턴이 점검에 사용합니다.