Chap 3. 웹서버 해킹 & Chap 4. 애플리케이션 조사 [Hacking Exposed] 웹 기획. 운영자를 위한 해킹과 보안중에서 Chap 3. 웹서버 해킹 & Chap 4. 애플리케이션 조사 최병선 한남대학교 컴퓨터공학과 네트워크 실험실
목차 3장 4장 Part I : 플랫폼에 의한 일반적인 취약점 Part II : 자동화된 취약점 스캐닝 소프트웨어 Part III : 수동적으로 애플리케이션 검사하기 4장 Part IV : 조사를 자동화하는 도구들 Part V : 일반적인 대응방법
Part I : 플랫폼에 의한 일반적인 취약점
아파치(Apache) 1.3 시리즈의 경우, 안정된 보안 및 성능을 가지고 있음 아파치의 취약점 발견 모듈(module)이라는 추가 구성요소안에 있음 긴 슬래시 디렉토리 리스팅 mod_negotiate, mod_dir, mod_autoindex 모듈을 통하여 전달되는 긴 URL은 디렉토리 컨텐트를 목록화함 아파치 버전 1.3.19에서 Martin Kraemer에 의해 발견 아파치는 8,000 문자 이상의 URL 모두를 처리할 수 없음 아파치 1.3.19에서 수정됨 컴파일시, 제거
아파치(Apache) 멀티뷰 디렉토리 리스팅 아파치는 서버 관리자로부터 명백한 퍼미션이 없는 경우 디렉토리 목록을 제공하지 않음 멀티뷰 기능에 의한 디렉토리 목록화 취약점 발견 중요한 파일은 어떠한 디렉토리에서도 제공하지 않아야 함
아파치(Apache) 디렉토리 리스팅 Indexes 제거
아파치(Apache) 디렉토리 리스팅 기능 제거
아파치(Apache) mod_rewrite 파일 접근 m0d_auth_*sql 취약한 서버는 완전한 경로 이름에 의하여 참조되는 로컬 페이지와 URL을 연결하는 RewriteRule을 가지고 있음 서버가 mod_rewrite을 사용하고 있거나, 구성이 취약한 경우, 식별하기 어려움 일반 경로 이름을 사용하는 RewriteRule을 설정함 m0d_auth_*sql 사용자로 하여금 임의의 SQL 명령어를 생성하도록 함 사이트의 인증을 속일수 있음 m0d_auth_*sql 패키지를 업그레이드함
IIS(Internet Information Server) 마이크로소프트 사의 웹서버 플랫폼 오랫동안 공격 대상이 되어옴 최근 IIS 버전(버전 5)에서 대부분 패치 새로운 취약점이 계속 발생하고 있음
IIS(Internet Information Server) ISAPI DLL 버퍼 오버 플로우 Internet Server Application Programming Interface 인터넷 상의 IIS 서버는 코드레드나 님다 웜에 의해 공격당함 ISAPI DLL의 버퍼 오버플로우 취약점에 기반함 ISAPI DLL 소스 노출 취약점 ISAPI DLL의 버그와 관련되어 있음 IIS Admin 툴 안에서 취약한 애플리케이션 맵핑 제거 마이크로소프트 서비스 팩 및 hot fix를 통한 업데이트 취약한 서버에 대한 정기적인 스캔 IISLockdown 사용 마이크로소프트 사에서 제공하며, 보안 구성을 적용하는 자동화된 유틸리티
IIS(Internet Information Server) IISLockdown 익명의 사용자에 대한 츠.exe와 같은 시스템 유틸리티에 대한 접근 방지 컨텐트 디렉토리의 기록을 방지 설치 후, 결과내용
IIS(Internet Information Server) unicodeloader.pl Echo/redirect 기법을 사용하는 펄스크립트 Upload.asp와 upload.ini를 이용하여 침입자가 원하고자하는 무언가를 업로드하기 위하여 사용
IIS(Internet Information Server) 권한 상승 윈도우 NT와 윈도우 2000에서 발생 IUSER를 SYSTEM으로 상승 IIS 5에서 패치되었음
IIS(Internet Information Server) 파일시스템 전달 대응 방법 보안 패치의 유지 시스템 드라이브와 다른 드라이브에 웹폴더 설치 UrlScan.ini 구성 파일 수정을 통한 URL 인코딩 정규화
Netscape Enterprise Server NES는 소수의 공표된 취약점만을 가진 가장 유명한 전자상거래 및 인트라넷 플랫폼 NES 버퍼 오버플로우 NES 3.6 에서 나타남 패치를 적용하여 해결 NES의 디렉토리 인덱싱 URL에 다양한 명령 태그를 추가하여 디렉토리 목록을 얻을 수 있음 NES 자체에서 디렉토리 인덱싱 기능을 사용불능으로 만들어야 함
Netscape Enterprise Server NES Web Publisher Administrative 인터페이스 공격 디폴트로 /publisher 디렉토리에 설치 인증이 되면, 엔터프라이즈 서버 컨텐트의 디렉토리 목록 표시 Access Control Module을 사용 /publisher 디렉토리에 시스템 ACL 적용
Part II : 자동화된 취약점 스캐닝 소프트웨어
웹 취약점 스캐너 Whisker twwwscan/arirang Stealth HTTP Scanner Typhon WebInspect AppScan FonudScan Web Module
Whisker
Typhon
Typhon
Stealth HTTP Scanner
Part III : 수동적으로 애플리케이션 검사하기
애플리케이션 조사 애플리케이션의 연구 목적 사이트에 대한 조사 입력의 유효성 SQL 삽입과 같은 잠재적인 취약적 발견 페이지 이름 페이지에 대한 전체 경로 페이지가 인증을 필요로 하는가? 페이지가 SSL을 필요로 하는가? GET/POST 인수 조사 주석
수동 분석 대상 디렉토리 구조 도움말 파일들 자바 클래스와 애플릿 HTML 주석고 내용 질의문
수동 분석 디렉토리 구조 도움말 파일 정적인 내용은 /html 디렉토리 안에 있고, 동적인 내용이 /jsp에 있다면? cgi 스크립트는 /cgi 디렉토리에 있을꺼라 추측 도움말 파일 자바스크립트 파일 XML 스타일 시트 CSS(Cascading Style Sheet)
수동 분석 자바클래스와 애플릿 역컴파일을 통한 분석 내부 함수 분석을 통해 데이터베이스와 입출력에 관한 정보를 얻어냄
수동 분석 HTML 주석과 내용 폼(Forms) <-- 문자로 html은 주석을 표시함 사용자 패스워드들을 포함할 수도 있음 SQL 질의에 대한 데이터베이스 테이블의 설명이 있을수도 있음 폼(Forms) 폼은 모든 애플리케이션의 근간 폼의 안정성이 중요시됨 중요한 구성요소 메소드 패스워드 필드 자동완성 입력제한
수동 분석 질의문 사용자 확인 세션식별 데이터 베이스 질의 질의 검색 /login?userid=24601 /menu.asp?sid=89CD9A9347 데이터 베이스 질의 Dbsubmit.php?sTiltle=Ms&iPhone=8675309 질의 검색 /search?q=*&maxret=100&sort=true Open.pl?template=simple
Part IV : 조사를 자동화하는 도구들
자동화된 조사 도구 lynx wget Teleport Pro Black Window WebSleuth
lynx
Part V : 일반적인 대응방법
일반적인 대응방법 주의 디렉토리 보호 Include 파일 보호 올바른 보안 습관 유지
Part VI : Q & A