시스템이야기2008. 11. 19. 18:40
서버에 접속한 유저가 어떤 명령을 내렸는지 실시간으로 확인하려면 어떻게 해야할까? history file을 뒤진다? 이건 너무 불편하다. 명령이 실행될 때마다 특정이벤트를 발생해서, 별도 저장해주면 효과적일 것이다. 그 것도 syslog를 통해서 명령이 저장된다면 원격지 서버에서 특정 서버의 실행 명령을 모조리 확인해볼 수 있을 것이다.

몇줄의 쉘 function으로 syslog로 실행명령을 보내는 방법을 알아보자.

function logging
{
        stat="$?"
        cmd=$(history|tail -1)
        if [ "$cmd" != "$cmd_old" ]; then
                logger -p local1.notice "[2] STAT=$stat"
                logger -p local1.notice "[1] PID=$$, PWD=$PWD, CMD=$cmd"
        fi
        cmd_old=$cmd
}
trap logging DEBUG

위 스크립트에서 중요한 부분은 logger와 trap이다.

1) logger는 지정한 메시지를 syslog로 보내주는 명령이다.
   위에서는 local1 서비스종류(facility)과 notice 레밸로 syslog로 메시지를 보내준다.
   logger의 활용에 대해서는 '여러 서버의 load를 터미널에서 실시간 모니터링' (글 좋은진호, 2008.2)
   중 '2. 미리 준비되어 있어야할 사항' 부분을 살펴보기 바란다.
2) trap은 bash내부 명령으로 특정시그널이 발생할 때 지정한 명령어가 실행된다.
   형식) trap "명령" 시그널
   위에서는 DEBUG 형태로, 명령이 실행될 때마다 logging function을 호출한다.

위의 스크립트를 global하게 적용하려면 /etc/profile 에 추가하거나 /etc/profile.d/cmd_logging.sh 로 저장하면 된다. 유저별로 적용하려면 $HOME/.bash_profile 또는 $HOME/.bashrc에 넣어둔다. 이제 적용됐는지 로긴해보자.

Sep 30 17:11:32 cnx1 coffeenix: [2] STAT=0
Sep 30 17:11:32 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=    7  ls -la
Sep 30 17:11:36 cnx1 coffeenix: [2] STAT=0
Sep 30 17:11:36 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=    8  vi get_stat.sh
Sep 30 17:15:24 cnx1 coffeenix: [2] STAT=0
Sep 30 17:15:24 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=    9  chmod 700 get_stat.sh
Sep 30 17:15:28 cnx1 coffeenix: [2] STAT=0
Sep 30 17:15:28 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=   10  ./get_stat.sh
Sep 30 17:15:35 cnx1 coffeenix: [2] STAT=0
Sep 30 17:15:35 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=   11  ls
Sep 30 17:16:31 cnx1 coffeenix: [2] STAT=0
Sep 30 17:16:31 cnx1 coffeenix: [1] PID=29168, PWD=/home/coffeenix, CMD=   12  cd /var/log
Sep 30 17:16:32 cnx1 coffeenix: [2] STAT=0
Sep 30 17:16:32 cnx1 coffeenix: [1] PID=29168, PWD=/var/log, CMD=   13  ls

시간표시를 자세히 보면 [2]가 먼저 저장되고, [1]이 그 다음에 저장된다. [2] 는 이전에 실행한 명령의 실행 결과 코드이며, [1]은 방금 실행한 명령이다. 방금 실행한 결과 코드는 다음 명령이 실행되어야 결과로 저장이 된다.

실행명령만 별도 로그로 저장하고 싶다면 /etc/syslog.conf 에 다음을 추가하고, syslogd 데몬을 재실행해주면 된다.

local1.notice                           /var/log/cmd.log

보다 자세한 것은 커피닉스에 써둔 '쉘에서 실행한 명령을 syslog로 자동 보내기'를 살펴보기 바란다.

Posted by 좋은진호
IT이야기2008. 4. 5. 02:39
중국의 한 정부기관 사이트 www.????????.gov.cn (주소는 아래 F-Secure 링크에 있음)가 iframe으로 숨겨진 악성코드가 들어가 있다. iframe속엔 다른 1개의 iframe이 있고, 또 이 iframe은 3개의 iframe속에 감춰져 있어서, 양파까듯이 파들어가야 한다. 최근 F-Secure버전은 Trojan-Downloader.Win32.Small.suu 으로 진단한다.

사용자 삽입 이미지

F-Secure합법적 사이트에 iframe으로 악성코드를 넣는 방법이 요즘은 점점 보편화되는 것 같다고 얘기한다. www.sony.com.cn도 유사한 iframe이 포함되어 있었는데, 현재는 제거된 상태다.

4월 3일에 접속할 때 악성코드를 내포한 iframe이 있었는데, 지금도 존재한다. 사이트 관리자는 아직 인지하지 못하고 있다. (아직도 악성코드가 존재하니 주의 요함)
중국쪽에서는 F-Secure의 글을 잘 안보나. 누군가는 저 사이트 관리자에게 전달했을 법도 한데, 아직도 그대로다. 중국발해킹에서 보여줬던 중국해커의 날렵한 사냥솜씨(?)에 비하면, 사이트 운영자의 대응은 배가 부른 사자마냥 느릿하다.

그럼 우리는? 우리의 공공기관의 웹사이트 해킹에 대해서는 언론이나 해킹된 사이트 DB에서 봤을 것이다. 중국의 저 사이트와 비슷하게 며칠간 방치는 경우도 있다. 하지만, 이미 해킹당한 것은 당한 것이고, 다른 방문자의 피해를 줄이기 위해선 불구경은 그만하자. 해당 사이트 운영자에게 전달하는 '감시자의 역할'을 철처히 해야할 듯 싶다.

※ 3일 #coffeenix방에서 나눴던 얘기에 살을 붙여 정리했다.
Posted by 좋은진호
IT이야기2008. 3. 16. 00:20
CONCERT Forecast 세미나 내용을 크게 나누면 2가지로 묶을 수 있을 것 같다.

  •  DDoS 방어 & botnet 이해
  • 시스템 자체 보안 보다는 '개인정보보호', '조직 구성', '내부정보 유출 방지', '보안 사내 교육' 등 운영적인 면
사용자 삽입 이미지
            CONCERT Forecast 2008 시작전

세미나 내용 중 일부를 정리했다.

1. DDoS 공격 대응 (발표자 : '오늘과내일'의 홍석범)

   리눅스 서버에 조치를 취하는 보편적인 내용(ip_conntrack 튜닝, net.ipv4.route 튜닝 등)과 CDN서비스 활용, 장비 도입 등 다양한 말씀을 해주셨다.

  •  DNS 서버의 다중화 부분은 공감이 간다. DNS 서버를 1대 운영하거나 2대를 하나의 네트웍 대역에 두고 운영한다면, 다른 내역에 2대 이상의 DNS서버를 운영하기를 권장한다.
  • 'PC용 DDoS 공격 탐지 Agent 배포'를 대응방안도 제시한다. 좀비PC의 수를 줄여 공격 피해를 감소시킬 수 있는 근본적 대책 중의 하나일 것이다. 물론 이 부분은 정부와 보안업체들의 의지가 중요한 부분이다.
  • 공격을 당할 때 보통 공격 대상 IP를 Null routing 처리한다. 이 방법 대신 해당 IP를 TCP 80만 오픈하고 나머지는 막는 ACL 처리를 제시했다. 물론 장비가 ACL를 HW기반으로 처리해야 장비의 load가 올라가지 않을 것이다. 이런 ACL적용은 공격을 받는 곳보다 상위단에서 처리(IDC, VIDC, ISP)를 해줘야 하는데, 얼마나 협조를 잘 해줄지가 관건.
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

2. 'Stop security threats before they stop you' (발표자 : IBM의 이병화)

   botnet을 주 발표 내용으로 다뤘다.

   [ 2007 상반기 보안 위협 하이라이트 ]
사용자 삽입 이미지

   [ Commercial attack service ]
사용자 삽입 이미지

   botnet의 상업적 서비스에 대한 것이다. 해킹이 하나의 서비스로 진행되고 있다는 것은 언론이나 블로거들을 통해서 접했을 것이다. XSOS.NAME 등을 돈을 지불하고 구매하면, botnet 목록을 볼 수 있게 되고, 해당 bot을 조정하여 공격할 수 있다. 누구나 약간의 비용만으로도 공격을 할 수 있는 시대가 된 것이다.

   변종도 많고, 전세계 컴퓨터의 8%를 감염시켰던 Storm worm에 대한 얘기도 했다. 다른 발표자분도 Storm에 대해서는 언급을 했었다. Storm worm 분석은 fullc0de님( http://fullc0de.egloos.com/3572438 )의 글을 읽어보면 될 듯.

   발표자료에는 포함되어 있지 않지만 세미나 중간에 NetBot에 대한 얘기를 했었고, 발표 중간의 화면 캡쳐는 아마 http://www.hackeroo.com/move/netbot_attacker.html 에 있는 중국해커의 공격 데모였을 것으로 생각된다.

3. 세션 중간에 사무국장(?)의 얘기

   다들 '중국발', '중국발 해킹'하니깐 실제 국내 보안전문가가 중국에 가서 중국 해커 6명과의 만남을 가졌다고 한다. 그 때 나온 얘기들

  • 중국이 우리 나라를 해킹하는 것은, 일본이 당한 것에 비하면 아무 것도 아니라는 것. 일본은 더 심하다.
  • 최근 큰 이슈가 된 모 사이트 해킹은 고차원 방법이 아니었다. 저 6명중에 이 해킹사건과 관련이 있는 해커가 있는 것으로 판단.
  • 마피아와 해커가 손잡을 가능성. (이 내용은 SKT의 발표자 분의 자료에도 있다. '러시아 마피아와 연계되어 조직폭력배화 하려 하며, 정치적인 해킹시도로 변화가능성 존재')

4. 내부 정보 유출 방지와 문서 DRM (발표자 : 파수닷컴의 이승재)

   [ 내부 정보오출 피해사례 ]
사용자 삽입 이미지

   약 86%가 현직원과 퇴직자에 의해 피해가 발생했다.

   [ E-DRM 구조 ]
사용자 삽입 이미지

   C-DRM(Commercial DRM)과 E-DRM(Enterprise DRM)중에 문서보안인 E-DRM의 구조이다. 원격 접속에서 화면을 볼 때도 Screen Capture를 막을 수 있다고 말씀을 한다. (이부분은 개인적으로 확인해본적이 없어서 모름)

5. 보안조직 구성

   [ 보안 조직 현황 ]
사용자 삽입 이미지

   전담조직이나 인원이 적다는 것을 알 수 있다.

6. 엔드 포인트 보안의 지속적인 관리방안 (발표자 : 한국 MS의 백승주)

   IPSEC기술을 활용한 서버 및 도메인 고립 모델에 대해 발표를 했다. 데모 발표가 효과적이었다.
   발표자료는 '코알라의 하얀집'  블로그에서 볼 수 있다.

7. 2007/2008년 IT 보안위협동향 및 웹 보안의 중요성 (발표자 : SOPHOS 아시아의 배수한)

   상당히 좋은 자료를 많이 준비하셨고, 발표자의 전달력도 뛰어났다. 자료가 많아서, 글보다는 몇가지 PT자료를 살펴보는게 나을 것 같다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

세미나 아쉬운 점 하나 얘기한다.


Posted by 좋은진호
IT이야기2008. 2. 21. 13:04

IRC기반의 botnet이 아닌 웹기반의 botnet으로, 러시아의 해커가 만들었다. C&C(Command & Control) 서버(명령을 내리고, 조종하는 서버. BlackEnergy에서는 웹 페이지가 이에 해당)는 러시아나 말레이지아에 위치에 있으며, 주로 러시아를 공격 대상으로 한다.

BlackEnergy는 크게 2가지로 구성되어 있다.

1. 웹기반의 C&C를 제공한다. (php+MySQL)
2. DDoS공격 bot을 생성하는 툴(builder.exe)을 제공한다.
   builder.exe 툴을 이용하여 웹기반 bot관리 서버로 접속하는 바이너리파일을 생성할 수 있게 된다.

BlackEnergy screenshot
[ 이미지 출처 : 글 끝에 소개한 URL ]

bot 바이너리는 지정한 C&C서버로 접속하게 된다. 그리고, bot과 제어서버간의 명령은 웹을 통해서 이뤄지게 되며, 구조는 대략 이렇다.

1. bot은 C&C 서버의의 URL(예. http://웹서버/경로/stat.php )을 체크하게 된다. 이 때 id, build_id 값을 POST방식으로 넘긴다.
2. 서버에서는 명령 등의 상태 값을 BASE64 인코딩된 값으로 리턴을 한다. 그 값에 따라서 bot은 명령을 수행한다.
   다양한 공격 유형이 있는데, ICMP flood, TCP SYN flood, UDP flood, DNS flood, http 요청 등이 있다.
   'flood http foobar.com a.html' 명령을 내린다면 foobar.com/a.html을 계속 호출하게 되며, 'flood syn foobar.com 80'은 TCP SYN flood를 발생한다.

PC에 설치된 bot에 대한 작년 10월 백신 검사 결과를 보니 V3, clamAV, AVG, McAfee 등은 이 바이너리를 못 찾아내고, F-Secure, F-Prot, Kaspersky는 찾아냈다.

보다 자세한 정보는 'BlackEnergy DDoS Bot Web Based C&C'에서 볼 수 있다.

Posted by 좋은진호
시스템이야기2008. 2. 11. 23:22
리눅스 커널 2.6.17부터 2.26.24.1 까지의 vmsplice() 콜의 버그로 로컬에서 root 권한을 획득할 수 있다. KLDP에도 나와있듯이, milw0rm에는 2개의 local root exploit 코드가 공개되어 있다. 테스트결과 너무 쉽게 root 권한이 획득되었다.

$ uname -r
2.6.18-8.1.8.el5
$ ./exploit
-----------------------------------
 Linux vmsplice Local Root Exploit
 By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7ee1000 .. 0xb7f13000
[+] root
# id
uid=0(root) gid=0(root) groups=501(truefeel)
#

개인사용자나 외부 접근이 제한된 시스템은 그나마 다행인데, 커널 2.6.x을 사용하는 호스팅업체나 공동 사용 서버는 빨리 대처해야할 것이다. 커널 패치를 적용하여 리부팅을 해야할 것이나 재부팅할 수 없는 서버도 있을 것이다. 이 땐 임시 메모리 패치hkpco님의 방어 커널 모듈을 이용하면 된다.

* 관련글


------------------------------------------------------------------
[ 내용 추가 ]

*2.13(수) 현재 RHEL5, Cent5 패치 커널 나옴
http://lists.centos.org/pipermail/centos-announce/2008-February/014684.html
https://rhn.redhat.com/errata/RHSA-2008-0129.html

==================================================================== Package                 Arch       Version          Repository        Size
==================================================================== Installing:
kernel                  i686       2.6.18-53.1.13.el5  updates            13 M
kernel-devel            i686       2.6.18-53.1.13.el5  updates           4.7 M
Updating:
kernel-headers          i386       2.6.18-53.1.13.el5  updates           785 k
====================================================================

Posted by 좋은진호
시스템이야기2008. 1. 26. 03:10
라드웨어에서 준비한 '2008 Radware DDoS 보안 세미나'에 갔다왔다. 평점을 주면 5점만점에 3점 정도. 사례중심의 발표를 기대했지만, 보편적인 내용으로 흘러갔다. 저와 함께 참석했던 커피닉스( http://coffeenix.net/ )의 나머지 다섯분도 같은 의견이다.

생각난김에 DDoS 공격 유형따라 막을 수 있는지 여부를 정리했다.

국내 DDoS공격이 곳곳에서 터지기 시작한 2007년 초반에만 하더라도, DDoS공격을 막을 수 있느냐, 없느냐의 논의가 몇몇 커뮤니티에서 있었다. 그러나 요즘은 막을 수 없는 공격이 주를 이룬다는 것을 잘 알고 있다.

결론적으로는 회선 대역폭을 공격량보다 많이 확보( 보유한 회선 > 공격량 )해야 공격의 주를 이루는 UDP, ICMP flooding 공격을 버텨낼 수 있는 최소한의 조건을 만족한다. 이 때 네트웍장비의 CPU load 가 낮아야만, 사용자는 불편함없이 서비스를 이용하게 될 것이다. 10G, 20G 이상의 공격량이 많을 경우엔, 다른 고객사에게 피해를 주거나 연동망 장애를 가져올 수 있다. 이럴 경우 IDC나 ISP에서 먼저 차단할 것이다. 즉, 서비스 업체의 인프라만으로는 서비스의 완벽보장은 이뤄내기 힘들다.

UDP, ICMP이외에 공격 유형에 따라, 시스템(네트웍, 서버, 보안장비) 인프라가 되면 막을 수 있는 유형도 있다. Radware 세미나에서 제시한 공격유형 6가지 정도를 갖고 살펴보도록 하겠다.

사용자 삽입 이미지

1. HTTP Flood

  웹페이지를 과다하게 호출하여 서버의 load가 높아지거나 처리가능한 커넥션수를 초과하게 만드는 공격이다.
  '웹페이지 과다 호출 방식의 DDoS공격 사례' (글 좋은진호, 2008.1.23)를 참고하기 바란다.
  IPS, L4스위치의 성능, 웹서버의 설정을 통해서 막아 낼 수 있다.

  1) IPS없고, L4스위치도 없다면.
      몇대 안되는 웹서버를 로드밸런싱하고 있는데, 다량의 공격(세션이 몇만이상)이라면 서버 load가 높아져 서비스가 불가능할 것이다.
  2) IPS없고, 성능 좋은 L4스위치. 그리고 몇 십대의 웹서버를 L4에 물려 서비스 한다면.
      이 때는 '웹페이지 과다 호출 방식의 DDoS공격 사례'에 써진 것처럼 막아 낼 수 있는 방법을 찾을 수 있다.
      그러나 몇 십대에 분산되어 서버가 다 받아드리더라도, 세션이 몇만~몇십만의 공격일 때 L4의 처리한계로 서비스가 느려질 수 있다.
  3) IPS있다면, 웹서버의 설정까지 조합해서 가능

2. SYN Flood, TCP Flag Flood, Half-Open Flood

  방화벽, L4스위치(SYN proxy기능을 갖는 L4. 그러나 SYN proxy기능을 이용하려면 DSR구성 방식은 불가능함), IPS등으로 막아낼 수 있다.

3. UDP Flood, ICMP Flood

  초기에 얘기했던 것처럼 공격량보다 많은 회선을 확보하지 못하면 어떠한 장비를 도입하더라도 막아낼 수 없다.  본인의 백본보다 상위단의 백본을 관리하는 곳(IDC, 호스팅 등)에 요청하여 dest. IP를 차단해달라고 요청해야할 것이다.

  작년 초에는 방화벽, ISP의 장비 업체의 실력있는 엔지니어들도 '우리 장비는 막을 수 있을 것 같다.'라고 얘기하는 경우도 있었다. UDP는 포트가 오픈되어 있지 않더라도 백본까지는 UDP 트래픽이 들어온다는 것(백본에서 UDP를 막았을 때)을 알면서도 저렇게 생각하고 있는 경우가 있었다. 요즘은 국내의 DDoS공격이 주위 사람에게만 뒤져봐도 흔하게 일어나는 안타까운 현실 때문에, 업체에서도 저런 얘기를 하는 경우는 줄었을 것이다.

  참고로 UDP는 주로 80포트와 53(DNS) 포트로 공격하지만 이외에 1024이하의 임의로 포트로 공격하는 경우도 있다.

DDoS 대응 장비로 거론되는 것은 다음 3가지 정도일 것이다.

1. 시스코의 Guard & Detector
   - 대규모 사이트에서 위의 2~3번 유형 대처할 때 적합
   - 초기 훈련을 통해 평상시의 트래픽을 인지하는 방식이라서 1번의 유형을 대처할 수도 있다.
      확인해본 적이 없어서 ^^
   - 1G 장비
   - 어플라이언스 제품과 Catalyst 6500시리지의 모듈형이 있다.
2. 라드웨어의 DefensePro(DP)
   - 대규모 사이트에서 1~3번 유형 대처할 때 적합
   - DP6000의 경우 10G모듈이며, 5~6G정도 공격은 커버 가능
3. 기가핀네트웍스의 Slimline, Flowline
   - 소규모 사이트에서 2번 유형을 대처할 때 적합
   - 약간 두꺼운 책 한 권 크기 정도이며, 가격이 저렴하다.
   - 1G UDP모듈만 제공(역시 소규모 사이트를 위한 제품임을 알 수 있음)했으나
     최근에 Flowline 500-F를 통해 광모듈 지원 장비도 나왔다.

시스코장비나 라드웨어 장비가 3번 유형을 막아준다고 표시해뒀는데, 유해한 UDP를 필터로 걸러내고 하위로 보내준다는 의미이지 보유한 회선을 넘는 공격을 막아낸다는 의미는 아니다.

※ 위의 모든 내용은 공격유형의 이름만 세미나에서 뽑아왔을 뿐이지 세미나 내용과는 전혀 무관하다.

세미나 내용중 흥미있는 슬라이드 2장만 올린다.

사용자 삽입 이미지
[ 공격대상 사이트가 시기별로 차이가 있으며 다양하다는 것을 보여줌 ]

사용자 삽입 이미지
[ 공격하겠다는 메일 ]
Posted by 좋은진호
IT이야기2008. 1. 24. 00:15
2주전에 정통부는 DDoS 공격 대응책 마련에 올해 20억원을 책정했다는 기사가 보도되었다. 20억이라는 금액은 누가 봐도 너무 적은 금액이라는 것을 알 것이다.
장비 몇대 또는 10여대면 끝날 금액으로 IX 3곳에 나누어 설치하는데, 이걸로 뭘할까 싶다.

20억 투자가 계획대로 진행되더라도, 구축체계 가동까지는 12월이다. 12월까지는 정부차원의 특별한 대응책('빨리 협조하여 대응한다'는 말뿐인 대응말고.)은 없어 보인다.

2 월 : 주요 ISP를 대상으로 사업설명회 (기사 외에도 KT관계자를 통해서도 들었음)
7 월 : DDoS 대응체계 구축 네트워크 설계
8 월 : DDoS 대응 시스템 도입 추진
10월 : 대응 시스템 시범 구축·운영
12월 : 대응 시스템을 본격 가동 예정

대조적으로 VeriSign은 타이탄(Titan) 프로젝트명으로 인프라확충에 2010년까지 1억달러 이상을 투자한다. (작년 4월에 쓴 '.com & .net 도메인 수수료 인상과 Titan 프로젝트'을 참고하세요.) 작년 2월에 root DNS의 공격을 받은 것이 큰 계기가 되었다.

21일 나온 기사에 따르면( 인터넷침해 대응체계 구축, 디지털타임스), 지난 5년간 경제적으로 약 5조3000억원의 침해사고에 대한 피해손실 예방 효과를 거두었다고 발표했다.

KISA측은 "이러한 노력의 결과로 1ㆍ25 대란이 발생한 2003년도에는 전 세계 침해사고 피해액 대비 국내 피해액 비율이 10% 수준이었으나 5년이 지난 현재 3% 수준으로 감소했다" 면서 "이를 경제적으로 추산하면 약 5조3000억원의 피해손실을 예방한 것" 이라고 말했다..

많이도 막았다고 자랑할 때가 아니다. 2000년 2월 야후, 이베이, 아마존 등이 DDoS공격에 의한 직접적 피해액만 1조 5천억원으로 산정한다.
현재 DDoS의 타켓이 국내 대형 포털이 아니지만 언제 포털이나 정부기관이 될지 모른다. 2000년의 해외 교훈을 잘 생각하자. 큰 손실을 막았다고 자랑하지 말고 더 큰 손실을 줄이기 위해 20억이 아니라, 200억을 한번에 투입해도 부족한 때이다.

인터넷에 고속도로만 뚫는게 전부가 아니다. 안전장치를 늘려 대형 사고를 줄여야 한다는 것을 잊지 말자.

* 정부, DDoS 공격 대책 마련 나선다 (2008.1.8, 아이뉴스24)
http://news.empas.com/show.tsp/cp_in/20080108n17198/

※ 올해에도 웹하드 업체의 DDoS공격이 심심치 않게 들려온다.



Posted by 좋은진호
시스템이야기2007. 6. 11. 22:18
ModSecurity 는 아파치(apache)에서 사용하는 대표적인 웹방화벽 모듈이다. 아파치에 모듈을 설치하고, 룰(Rule) 설정을 통해 설정한 조건에 맞는 경우 차단을 할 수 있다. modsecurity 2.x 을 기준으로한 간단한 예이다.

- 웹서버명을 숨기거나 속인다.

SecServerSignature "lighttpd"

- 특정 메소드의 사용만 허용한다. (POST, GET, OPTIONS, HEAD 메소드만 허용)

SecRule REQUEST_METHOD "!^((?:(?:POS|GE)T|OPTIONS|HEAD))$" \
    "phase:1,log,auditlog,status:501,msg:'Method is not allowed by policy', severity:'2',,id:'960032',"

- 요청한 HTTP 프로토콜 버전이 1.0, 1.1이 아닐 경우 차단한다.

SecRule REQUEST_PROTOCOL "!^HTTP/(1\.[01])$" \
    "t:none, deny,log,auditlog,status:505,msg:'HTTP protocol version is not allowed by policy', severity:'2',,id:'960034',"

- GET, HEAD 메소드는 Content-Length가 0이 아닌 경우는 차단하고, POST는 Content-Length header가 없으면 차단한다.

SecRule REQUEST_METHOD "^(GET|HEAD)$" "chain,deny,log,auditlog,status:400,msg:'GET or HEAD requests with bodies', severity:'2',,id:'960011',"
SecRule REQUEST_HEADERS:Content-Length "!^0?$"

SecRule REQUEST_METHOD "^POST$" "chain,deny,log,auditlog,status:400,msg:'POST request must have a Content-Length header',,id:'960012',severity:'4'"
SecRule &REQUEST_HEADERS:Content-Length "@eq 0"

오픈소스 IDS인 snort에 기본 룰을 제공하는 것처럼 ModSecurity 에서도 modsecurity-core-rules 이름으로 룰 파일을 제공하고 있으니 참고하기 바란다. 룰에 대해서는 이만하고 원래 꺼내려한 얘기거리로 들어가자.

이런 룰 설정을 웹페이지를 통해서 할 수 있는 REMO(Rule Editor for ModSecurity) beta버전을 6월에 발표했고, Howtoforge에 Introducing Remo - An Easy Way to Secure an Insecure Online Application with ModSecurity 제목으로 REMO 다루는 방법에 대한 글이 올라왔다. 자세한 글은 Howtoforge에 글을 보시고, 간단하게 설명하면 이렇다.

REMO를 사용하기 위해서는 ruby 1.8.2이상, irb, sqlite3-ruby 환경이 필요하다. 또한 ModSecurity 모듈이 설치되지 않은 테스트나 개발 서버, 개인 PC 등에 설치해도 무관하다. 다음과 같이 실행한 후 http://서버:3000/main/index 로 접속하면 설정화면을 볼 수 있다.

wget http://remo.netnea.com/files/remo-0.2.0.tar.gz
tar xvzf remo-0.2.0.tar.gz
cd remo-0.2.0
ruby script/server

사용자 삽입 이미지
[ 이미지 출처 : 위 howtoforge URL ]

REMO화면에서 메소드와 URI등을 새로 입력한 다음, 원하는 조건을 정의한다. 그 후 'generate' 버튼을 누르면 파일로 룰셋 파일을 다운로드 받을 수 있다. 받은 룰셋을 다음과 같이 apache 설정에서 include해주면 된다.

<IfModule mod_security2.c>
    Include /파일경로/rulefile.conf
</IfModule>

REMO툴은 ModSecurity 룰 생성의 모든 것을 제공해주지는 않는다. modsecurity-core-rules 룰 파일을 보면 룰 설정이 쉽지않다는 것을 알 수 있다. 이 툴은 이런 복잡한 룰을 보고 고개를 설레설레 젓지 않도록 보조적인 역할을 하는 툴로 여기면 된다.
Posted by 좋은진호
IT이야기2007. 5. 31. 14:22
SSL 사이트는 웹페이지의 보안을 위해서 서버와 클라이언트(PC)의 브라우저간에 데이터가 암호화되어 전송되는 사이트를 말한다.
URL에 http 대신에 https로 표시되고, 브라우저 하단에 자물쇠모양의 표시가 나온 것을 본적이 있을 것이다. 이 표시가 된 사이트는 전송되는 데이터는 암호화되어 안전하게 인터넷을 즐길 수 있다. 주로 결제, 로긴, 회원정보 변경등이나 기타 보안이 필요한 페이지에서 봤을 것이다.

※ 브라우저 하단의 자물쇠 모양의 표시
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
( 앞에서 부터 IE6, 파이어폭스2, 파이어폭스1.x )


Netcraft의 5월 15일 발표자료( http://news.netcraft.com/archives/2007/05/15/internet_passes_600000_ssl_sites.html )에 따르면 인터넷의 SSL사이트 수가 5월에 처음으로 60만개를 넘은 것으로 확인됐다. 통계를 시작한 1996년 11월에 3,283개부터 시작하여, 평균 매년 65%의 성장률을 보였다. Netcraft에 공개된 SSL통계 몇개를 살펴본 결과, 다음과 같은 수치를 확인할 수 있었다.

사용자 삽입 이미지
[ 이미지 출처 : netcraft ]

1996년 11월 3,283개
2006년 05월 384,732개
2006년 06월 393,332개
2007년 05월 600,000개

국내 보안서버 인증서 시장전자신문 작년 11월 기사에 따르면 최대 3만장으로 추정하는데, 단순 계산시 전세계 60만 사이트와 국내 3만 사이트를 비교하면 5%의 비율이다. 우리 나라의 보안서버(SSL 서버+응용프로그램을 통한 암호화) 보급률이 전세계 43위에 비하면 너무 높다. 3만장의 의미는 웹서버의 SSL인증서 + 응용프로그램인증서(코드사이닝 인증서, ActiveX인증용) 등을 통합했을 때의 수치가 아닐까 싶다.

SSL서버를 구성하는 웹서버 종류별 비율과 업체별 SSL 인증서 시장을 살펴보자.

2006년 4월 자료(최근 발표 자료 없음)에 따르면 SSL 서버는 apache가 44.0%, MS의 IIS가  43.8%로 양분하고 있다. 지금쯤이면 그래프의 흐름상 apache의 점유율은 점점 증가하여 50%정도가 됐을 것으로 추측한다.

또한 SSL 인증서 시장은 2006년 5월(최근 발표 자료 없음)에 Verisign이 45.4%, GeoTrust가 26.7%를 차지하고 있다.

사용자 삽입 이미지
[ 이미지 출처 : netcraft ]

마지막으로 개인적인 용도나 회사 내부에서만 사용하는 웹서버에 SSL인증서를 설치할 때 구매를 해야하냐는 질문을 가끔 받는다. 답은 구매할 필요없이 사설 인증서를 만들어 사용하면 된다. 내부적으로만 사용하는 건데 굳이 공인인증서를 구매해서 사용할 필요가 없다. 돈 쓰지마라.


Posted by 좋은진호
IT이야기2007. 4. 5. 22:19
올블로그에 'Linux,FreeBSD, *NIX 운영자/사용자의 쉼터' 이름의 블로그 카페를 개설했습니다. 올블로그에 블로그를 등록하는 리눅스, 유닉스 사용자분이 계시면 가입하시어, 관련 정보를 모이는 블로그 카페를 만들어 봅시다.

http://cafe.coffeenix.net/
사용자 삽입 이미지


다음과 같은 블로거의 가입을 환영합니다.

- 리눅스, FreeBSD, 그외 유닉스 계열을 운영 및 이용하는 블로거
- 웹서버를 운영하시는 블로거
- 보안, 해킹에 대해 정보를 다루시는 블로거
- 웹2.0 등 IT이야기를 다루시는 블로거
- 이분야 관심있는 블로거
- 좋은진호와 커피닉스를 아는 블로거

이성적인 정보만 모이면 딱딱하겠죠? 감성이 느껴지는 인맥만들기가 이뤄지길 원합니다.
hanirc의 #coffeenix 방에 오시면, 운영자와 커피닉서분들을 만날 수 있습니다.

Posted by 좋은진호