'시스템보안'에 해당되는 글 2건

  1. 2009.09.07 터미널 서비스 보안
  2. 2009.09.06 중급 : Apache 웹서버의 디렉토리 노출 취약점 제거 문제
카테고리 없음2009. 9. 7. 17:03

문제
1. 중요한 데이터를 클라이언트에서 서버로, 그리고 서버에서 클라이언트로
전송되는 데이터를 128Bit로 암호화 하고 기본 윈도우 인증 체계를 사용하도록
설정하시오. (암호화 수준 : 높음)

2. 기본적인 터미널 서비스 포트 3389/tcp를 10004포트로 변경하시오.

step 1

제어판 - 관리 도구 - 터미널 서비스 구성 - 연결 - RDP-Tcp 더블 클릭
(암호화 수준을 '높음'으로 수정하고, '표준 Windows 인증 사용' 체크)


step 2

내 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrnetControlSet\Control\Terminal Server\WinStations\RDP-Tcp
내 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrnetControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
('PortNumber'를 10004로 수정)


침해사고 피해시스템을 분석하는 중, 외부 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