'/dev/null'에 해당되는 글 1건

  1. 2009.09.06 중급 : Apache 웹서버의 디렉토리 노출 취약점 제거 문제

침해사고 피해시스템을 분석하는 중, 외부 IP(200.200.200.1)에서 지속적으로
telnet 접속했던 것이 확인되었다. 해당 피해시스템은 Apache 웹서버이고 웹서버의
option 설정은 디폴트로 되어 있었다. 조사결과 침입자는 웹서버의
디렉토리 리스팅 취약점을 이용하여 passwd, shadow 파일을 읽은 후
패스워드를 크랙한 것으로 추정된다. 비인가된 재접속을 막기 위하여
다음과 같이 보안조치를 하시오.

1. 웹서버 Option 설정변경 : Server-side includes(exec 기능 제외) 기능만
가능하도록 설정
2. 패스워드 정책변경 : passwd 유효기간을 8주, 8자리 이상으로 강제함
3. 공격IP에서의 접근제한 설정 : ipfilter를 이용하여 200.200.200.1에서의 접근을
제한

2> /dev/null의 의미알기

/dev/null의 의미는 아무것도 아닌곳을 의미한다. null 장치라고 보면된다.


1의 의미는 STDOUT(standard output)
2의 의미는 STDERR(standard error)

STDOUT은 표준출력으로 정상적인 메시지를 출력하고
STDERR은 표준에러로 에러메시지를 출력하는것이다.

위의 의미는 STDOUT 또는 STDERR 출력을 /dev/null로 redirection한다는 의미이다.

문제풀이
웹서버 설정 파일 경로를 찾아서 내용을 찾아서 수정하고 httpd 데몬을 재시작한다
# find / -name httpd.conf 2> /dev/null
/usr/local/apache/conf/httpd.conf
# vi /usr/local/apache/conf/httpd.conf
# This may also be "None", "All", or any combination of "Indexes",
# "Includes", "FollowSymLinks", "ExecCGI", or "MultiViews".
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
Options IncludesNOEXEC
# pkill httpd
# /usr/local/apache/bin/httpd start

패스워드 정책을 변경해준다.
# vi /etc/default/passwd
#ident  "@(#)passwd.dfl 1.3     92/07/14 SMI"

MAXWEEKS=8
MINWEEKS=0
WARNWEEKS=1
PASSLENGTH=8

공격자 IP를 접근제한을 해주고, ipfilter를 재시작 해준다.

# vi /etc/opt/ipf/ipf.conf
#
# The following routes should be configured, if not already:
#
route add 211.241.82.54 localhost 0
#

block in log quick from any to any with ipopts
block in log quick proto tcp from any to any with short
pass out on eri0 all head 250
block out from 127.0.0.0/8 to any group 250
block out from any to 127.0.0.0/8 group 250
block out from any to 211.241.82.54/32 group 250
pass in on eri0 all head 200
block in from 127.0.0.0/8 to any group 200
block in from 211.241.82.54/32 to any group 200

# block reserved networks
block in quick from 192.168.0.0/16 to any
block in quick from 172.16.0.0/12 to any
block in quick from 10.0.0.0/8 to any
block in quick from 200.200.200.1/32 to any

# block Back Orifice and NetBus
block in quick proto tcp from any to any port = 12345
block in quick proto tcp from any to any port = 12346
block in quick proto tcp from any to any port = 20034
block in quick proto udp from any to any port = 31337
# pkill  ipmon
# /usr/sbin/ipmon start