1. 증상
2010. 3. 4 오전 8:37:41 org.apache.tomcat.util.http.Parameters processParameters
경고: Parameters: Invalid chunk '' ignored.
2. 원인
Tomcat 에서 URL 주소에 '&&' 또는 '&=' 등이 들어가 있을 경우 발생되는 메시지이다.
3. 해결 방법
톰캣설치경로/conf/logging.properties 파일에서
org.apache.tomcat.util.http.Parameters.level = SEVERE
를 추가하고 tomcat을 재시작 한다.
※ 주의: SERVER(X)와 SEVERE(O) 를 혼돈하지 말것
위의 방법으로 해결되지 않을 경우
$JAVA_HOME/jre/lib/logging.properties 파일에 위의 내용을 추가한 후 tomcat을 재시작 한다.
2010년 3월 3일 수요일
2010년 2월 24일 수요일
2010년 1월 19일 화요일
서버 해킹 원리 이해
서버 해킹 원리 이해
1. 직접 대입
1) 사전 공격(Dictionary attack) : 사전에 있는 단어를 입력하여 패스워드를 알아내거나 암호를 해독하는데 사용되는 컴퓨터 공격 방법.
2) 무차별 공격(Brute forcing) : 사전적인 단어들로 구성된 아이디와 패스워드 리스트를 가지고 계속적으로 로그인을 시도하는 것. 크래커가 로그인에 성공하지 못하더라도 잦은 로그인 시도로 서버 부하를 발생시켜 차단하지 않으면 쓸데없는 시스템 자원이 낭비 된다.
2. 네트워크 공격 기법
1) spoofing : IP 주소 등의 정보를 속임으로써 권한을 획득하고 중요 정보를 가로채고 서비스 방해까지 행하는 공격.
3) Denial of Service(서비스 거부공격)
- DoS(Denial of Service) : 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함.
- DDoS(Distributed DoS) : 다수의 시스템을 통해 공격을 시도하며 다양한 방법을 통해 동시에 공격
3. 해킹 기법 들
1) Race Condition : 경쟁 상태란 장치나 시스템이 두 개 이상의 동작을 동시에 수행하려고 시도했을 때 발생하는 바람직하지 않은 상태. 그러나 장치나 시스템의 속성 때문에 이러한 동작들은 적절한 순서에 따라 바르게 완료되어야만 함.
임시 파일을 생성하는 프로그램에서 자주 사용하고 임시 파일을 만들어 쓰고 일이 끝났으면 지우는 과정에서 쓰기 바로 직전 경쟁조건을 이용하여 원하는 파일에 원하는 내용을 집어넣는 방식.
2) 버퍼 오버플로 : 메모리의 스택영역을 흘러 넘치게 해서 리턴되는 주소지를 변경하여 원하는 임의의 명령어를 실행시킨다.
해결책 : setuid bit 제거, non-exec stack 옵션 사용.
3) IFS : 환경변수를 이용한다. Internal Field Separator의 약자로 외부프로그램을 실행할 때 입력되는 문자열을 나눌 때 기준이 되는 문자를 정의하는 변수.
기본적으로 IFS는 공란(Space)으로 정의된다 - IFS=” “ 이 IFS를 슬러쉬[/]로 바꾸고 싶다면 csh인 경우에는 setenv IFS / , bash인 경우에는 export IFS=”/” 로 하면 변경된다.
4) amed, imapd, smbp, mountd, smtp 등 데몬의 취약성 이용
4. 새로운 공격 기법의 특징
1) 에이전트 화 : 원격 조정이 가능한 Agent를 설치하고 이를 이용하여 다른 시스템을 공격한다. 원격 조정으로 자신의 흔적을 지우는 번거로움을 없애주며, 많은 시스템을 이용하여 분산공격을 수행할 깨 매우 효율적임.
2) 분산화 : 많은 수의 시스템에서 단일 혹은 다수의 시스템을 공격함.
3) 자동화 : 웜 및 윈도우용 공격도구, 그리고 최근 침해사고에서 발견되는 자동 공격 스크립트의 증가는 공격도구들이 자동화되고 있음을 의미함. 이러한 자동화는 분산 네트워크 공격을 가능하게 함.
4) 은닉성 : 에이전트를 이용한 분산 공격기번은 침입탐지시스템을 무력화시키는 가장 효과적인 공격기법으로 공격자의 위치를 은닉시킬 수 있는 공격 기법. 에이전트와 공격자간의 통신은 암호화 및 터널링 기법을 사용하여 탐지가 어렵도록 함.
1. 직접 대입
1) 사전 공격(Dictionary attack) : 사전에 있는 단어를 입력하여 패스워드를 알아내거나 암호를 해독하는데 사용되는 컴퓨터 공격 방법.
2) 무차별 공격(Brute forcing) : 사전적인 단어들로 구성된 아이디와 패스워드 리스트를 가지고 계속적으로 로그인을 시도하는 것. 크래커가 로그인에 성공하지 못하더라도 잦은 로그인 시도로 서버 부하를 발생시켜 차단하지 않으면 쓸데없는 시스템 자원이 낭비 된다.
2. 네트워크 공격 기법
1) spoofing : IP 주소 등의 정보를 속임으로써 권한을 획득하고 중요 정보를 가로채고 서비스 방해까지 행하는 공격.
- Session Hijacking : 웹 브라우징시 세션 관리를 위해 사용되는 Session ID를 스니핑이나 무작위 추측 공격(brute-force quessing)을 통해서 도용하는 기법.
- IP Spoofing : 말 그대로 IP 정보를 속여서 다른 시스템을 공격하는 것. IP 스푸핑을 통해 서비스 거부 공격(TCP Syn flooding, UDP flooding, ICMP flooding)을 수행할 수도 있으며, 공격 대상 컴퓨터와 서버 사이의 연결된 세션에 대해서 세션 끊기도 가능함.
- DNS Spoofing : 질의한 도메인 이름에 대해 잘못된 IP를 응답으로 보내 이용자가 잘못된 사이트에 접속하도록 하는 공격
- ARP Spoofing : 로컬 네트워크에 사용하는 ARP 프로토콜의 특징을 이용하여 자신의 MAC 주소를 다른 컴퓨터의 MAC 주소로 변조하여 로컬상의 데이터를 스니핑하는 공격.
- Mail Spoofing : mail 주소를 위장해서 전송하는 것.
2) sniffing : 네트워크 패킷이나 버스를 통해 전달되는 중요정보를 엿보고 가로채는 공격을 하는 행위3) Denial of Service(서비스 거부공격)
- DoS(Denial of Service) : 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함.
- DDoS(Distributed DoS) : 다수의 시스템을 통해 공격을 시도하며 다양한 방법을 통해 동시에 공격
3. 해킹 기법 들
1) Race Condition : 경쟁 상태란 장치나 시스템이 두 개 이상의 동작을 동시에 수행하려고 시도했을 때 발생하는 바람직하지 않은 상태. 그러나 장치나 시스템의 속성 때문에 이러한 동작들은 적절한 순서에 따라 바르게 완료되어야만 함.
임시 파일을 생성하는 프로그램에서 자주 사용하고 임시 파일을 만들어 쓰고 일이 끝났으면 지우는 과정에서 쓰기 바로 직전 경쟁조건을 이용하여 원하는 파일에 원하는 내용을 집어넣는 방식.
2) 버퍼 오버플로 : 메모리의 스택영역을 흘러 넘치게 해서 리턴되는 주소지를 변경하여 원하는 임의의 명령어를 실행시킨다.
해결책 : setuid bit 제거, non-exec stack 옵션 사용.
3) IFS : 환경변수를 이용한다. Internal Field Separator의 약자로 외부프로그램을 실행할 때 입력되는 문자열을 나눌 때 기준이 되는 문자를 정의하는 변수.
기본적으로 IFS는 공란(Space)으로 정의된다 - IFS=” “ 이 IFS를 슬러쉬[/]로 바꾸고 싶다면 csh인 경우에는 setenv IFS / , bash인 경우에는 export IFS=”/” 로 하면 변경된다.
4) amed, imapd, smbp, mountd, smtp 등 데몬의 취약성 이용
4. 새로운 공격 기법의 특징
1) 에이전트 화 : 원격 조정이 가능한 Agent를 설치하고 이를 이용하여 다른 시스템을 공격한다. 원격 조정으로 자신의 흔적을 지우는 번거로움을 없애주며, 많은 시스템을 이용하여 분산공격을 수행할 깨 매우 효율적임.
2) 분산화 : 많은 수의 시스템에서 단일 혹은 다수의 시스템을 공격함.
3) 자동화 : 웜 및 윈도우용 공격도구, 그리고 최근 침해사고에서 발견되는 자동 공격 스크립트의 증가는 공격도구들이 자동화되고 있음을 의미함. 이러한 자동화는 분산 네트워크 공격을 가능하게 함.
4) 은닉성 : 에이전트를 이용한 분산 공격기번은 침입탐지시스템을 무력화시키는 가장 효과적인 공격기법으로 공격자의 위치를 은닉시킬 수 있는 공격 기법. 에이전트와 공격자간의 통신은 암호화 및 터널링 기법을 사용하여 탐지가 어렵도록 함.
유닉스 시스템 로그 설정과 관리
유닉스 시스템 로그 설정과 관리
1. acct/pacct : 사용자가 사용한 명령이나 프로세스 활동들을 기록한다. 바이너리 형태로 저장되며, 'lastcomm', 'acctcom', 'sa' 명령으로 확인할 수 있다.
# lastcomm
2. history : 사용자별 명령어를 기록하는 파일로 csh, tcsh, ksh, bash 등 사용자들이 사용하는 쉘에 따라 .history, .bash_history 파일 등으로 기록함. 이전 명령어 들을 찾기 쉽고 사용하기 보다 편하기 위해 만들어 졌기 때문에 로그 파일이라고 말하기 어렵다. 그래서 /var/log에 위치하지 않고 사용자의 홈 디렉토리에 사용자별로 존재한다.
3. lastlog : 각 사용자의 최종 로그인 정보. lastlog로 확인 가능함.
# lastlog
사용자명 포트 ~로부터 최근정보
root pts/3 23.30.31.139 목 12월 27 22:37:27 +0900 2007
bin **한번도 로그인한 적이 없습니다**
daemon **한번도 로그인한 적이 없습니다**
adm **한번도 로그인한 적이 없습니다**
lp **한번도 로그인한 적이 없습니다**
sync **한번도 로그인한 적이 없습니다**
shutdown **한번도 로그인한 적이 없습니다**......
4. loginlog
Solaris를 포함한 시스템 V계열의 유닉스에서 실패한 로그인 시도를 기록하는 파일기본적으로 존재하지않는파일, 수동생성해야함
실습
1) /var/adm/loginlog 파일을 생성
#touch /var/adm/loginlog
2) /etc/default/login 파일수정
RETRIES=5 부분의 주석 부분을 제거
5. messages : 부트 메시지 등 시스템의 콘솔에서 출력된 결과를 기록하고 syslogd에 의해 생성된 메시지도 기록. 로그 파일 중 가장 중요한 부분으로 로그인 기록부터 디바이스 정보, 시스템 설정오류, 파일 시스템, 네트워크 세션 기록 등 가장 다양한 정보를 가지고 있는 파일임. 침입자의 공격 형태가 어느 정도 기록되어 지기도 한다.
# cat messages
Jan 17 04:02:43 icscf syslogd 1.4.1: restart.
Jan 18 11:31:32 icscf ntpd[1825]: synchronized to 211.233.40.78, stratum 2
Jan 18 11:32:05 icscf ntpd[1825]: synchronized to 123.32.1.90, stratum 1
Jan 18 11:32:20 icscf ntpd[1825]: synchronized to 211.115.194.21, stratum 2
Jan 18 11:32:21 icscf ntpd[1825]: synchronized to 123.32.1.90, stratum 1
...
6. sulog : switch user(su 명령어) 관련 기록. 일반계정을 획득한 공격자는 su 명령을 이용하여 루트 권한으로 작업을 할 수 있다. 따라서 sulog를 조사하여 루트 권한으로 변환된 일반 사용자 계정이 있는지 살펴 보아야 함.
# cat sulog
SU 06/22 08:01 + pts/2 bbbb-aaaaa
SU 06/22 08:06 + pts/2 cccc-dddd.....
7. syslog : 메일 디버깅 정보.
8. utmp : 현재 로그인한 각 사용자의 기록, 바이너리 파일로 되어 있음.
(명령어 w., who, users, finger)
9. wtmp : 사용자의 로그인, 로그아웃 시간과 시스템의 종료 시간, 시스템 시작 시간 등을 기록, 바이너리 파일임. (last 명령으로 확인 가능)
10. Xferlog : FTP 서비스의 접근 기록
1. acct/pacct : 사용자가 사용한 명령이나 프로세스 활동들을 기록한다. 바이너리 형태로 저장되며, 'lastcomm', 'acctcom', 'sa' 명령으로 확인할 수 있다.
# lastcomm
2. history : 사용자별 명령어를 기록하는 파일로 csh, tcsh, ksh, bash 등 사용자들이 사용하는 쉘에 따라 .history, .bash_history 파일 등으로 기록함. 이전 명령어 들을 찾기 쉽고 사용하기 보다 편하기 위해 만들어 졌기 때문에 로그 파일이라고 말하기 어렵다. 그래서 /var/log에 위치하지 않고 사용자의 홈 디렉토리에 사용자별로 존재한다.
3. lastlog : 각 사용자의 최종 로그인 정보. lastlog로 확인 가능함.
# lastlog
사용자명 포트 ~로부터 최근정보
root pts/3 23.30.31.139 목 12월 27 22:37:27 +0900 2007
bin **한번도 로그인한 적이 없습니다**
daemon **한번도 로그인한 적이 없습니다**
adm **한번도 로그인한 적이 없습니다**
lp **한번도 로그인한 적이 없습니다**
sync **한번도 로그인한 적이 없습니다**
shutdown **한번도 로그인한 적이 없습니다**......
4. loginlog
Solaris를 포함한 시스템 V계열의 유닉스에서 실패한 로그인 시도를 기록하는 파일기본적으로 존재하지않는파일, 수동생성해야함
실습
1) /var/adm/loginlog 파일을 생성
#touch /var/adm/loginlog
2) /etc/default/login 파일수정
RETRIES=5 부분의 주석 부분을 제거
5. messages : 부트 메시지 등 시스템의 콘솔에서 출력된 결과를 기록하고 syslogd에 의해 생성된 메시지도 기록. 로그 파일 중 가장 중요한 부분으로 로그인 기록부터 디바이스 정보, 시스템 설정오류, 파일 시스템, 네트워크 세션 기록 등 가장 다양한 정보를 가지고 있는 파일임. 침입자의 공격 형태가 어느 정도 기록되어 지기도 한다.
# cat messages
Jan 17 04:02:43 icscf syslogd 1.4.1: restart.
Jan 18 11:31:32 icscf ntpd[1825]: synchronized to 211.233.40.78, stratum 2
Jan 18 11:32:05 icscf ntpd[1825]: synchronized to 123.32.1.90, stratum 1
Jan 18 11:32:20 icscf ntpd[1825]: synchronized to 211.115.194.21, stratum 2
Jan 18 11:32:21 icscf ntpd[1825]: synchronized to 123.32.1.90, stratum 1
...
6. sulog : switch user(su 명령어) 관련 기록. 일반계정을 획득한 공격자는 su 명령을 이용하여 루트 권한으로 작업을 할 수 있다. 따라서 sulog를 조사하여 루트 권한으로 변환된 일반 사용자 계정이 있는지 살펴 보아야 함.
# cat sulog
SU 06/22 08:01 + pts/2 bbbb-aaaaa
SU 06/22 08:06 + pts/2 cccc-dddd.....
7. syslog : 메일 디버깅 정보.
8. utmp : 현재 로그인한 각 사용자의 기록, 바이너리 파일로 되어 있음.
(명령어 w., who, users, finger)
9. wtmp : 사용자의 로그인, 로그아웃 시간과 시스템의 종료 시간, 시스템 시작 시간 등을 기록, 바이너리 파일임. (last 명령으로 확인 가능)
10. Xferlog : FTP 서비스의 접근 기록
피드 구독하기:
글 (Atom)