'침입탐지시스템'에 해당되는 글 4건

  1. 2011.04.29 개인정보 예방 정보보호 안전수칙 10계명
  2. 2011.01.14 Fwsnort: Application layer IDS/IPS with iptables
  3. 2009.02.25 Snort 네트워크 침입탐지 시스템(IDS) 구축 (Bridge 탐지)
2011. 4. 29. 09:17

개인정보 예방 정보보호 안전수칙 10계명

최근 돈벌이를 노린 범죄 집단이 온라인 게임 / 뱅킹 / 쇼핑몰 등을 해킹해 사용자의 개인정보 DB를 빼내거나 사용자 몰래 PC에 설치돼 개인정보를 빼내가는 악성코드나 스파이웨어를 유포하는 사례, 피싱(Phishing) 사이트나 보이스 피싱을 이용해 정보를 유출하는 일이 급증하고 있습니다. 안전한 인터넷 거래를 위해 각 업체들의 보안 강화는 물론 개인 사용자들도 보안 수칙을 준수하는 등 각별한 주의가 필요한 시점입니다. 

따라서 여러분들에게 안철수연구소는 개인, 기업, 정부 등 각 주요 부문에 대한 정보보호 안전수칙 10계명을 발표해 보안을 생활화하는 습관을 길러, 제 2의 피해가 없도록 해야겠습니다. 

<개인정보보호 수칙 10계명>----------------------------------------  

[개인]    

1. 자신이 가입한 사이트의 패스워드를 변경한다. 로그인 계정의 비밀번호는 영문/숫자 조합으로 8자리 이상으로 설정하며 주기적으로 변경한다. 타인이 쉽게 추정할 수 있거나 개인정보나 영문으로 유추하기 간단한 단어는 사용해서는 안 된다.    

2. 만약 본인이 주민등록번호가 유출됐다면, 신용정보 사이트를 통해 명의 도용 차단 서비스를 활용하는 것이 좋다. 또한 현재 가입된 이동통신사에 '가입제한' 등록 신청을 한다.    

3. 계좌정보까지 유출됐다면 전화 금융사기로 일컬어지는 ‘보이스 피싱’에 각별히 주의해야 한다. 보이스 피싱은 공공기관이나 은행 등을 사칭해 돈을 빼앗아가는 신종 사기 수법이다. 특히 요즘에는 상당히 지능적인 방법으로 돈을 갈취하기 때문에 자신의 개인 정보나 계좌 정보 등을 거론하며 걸려오는 전화는 일단 의심해보고 전화를 끊는 것이 좋다. ▲한국말이 어눌하거나 ▲경찰, 금융권, 공공기관 관계자라거나 ▲전화로 개인정보를 요구한다면 유의한다.  

4. 굳이 회원 가입을 하지 않아도 되거나, 자주 사용하지 않는 웹사이트에는 회원 가입을 자제하고, 지난 1개월 동안 한 번도 들어가지 않은 사이트가 있다면 탈퇴하는 것이 좋다. 가입한 곳을 북마크에 따로 관리하는 것도 한 방법이다. 

5. 해킹 피해자 모임에 가입할 때에는 믿을 수 있는 모임인지 확인한다. 피해자 모임에 가입하라는 이메일이나 전화를 받았을 경우, 자신의 정보를 유출하지 말고 해당 사이트에 직접 가입하여 확인한다.

6. PC방 등 누구에게나 개방된 컴퓨터에서는 온라인 쇼핑이나 인터넷 금융 거래를 하지 않는다. 불가피하게 사용할 경우 신뢰성 있는 백신 및 PC방화벽 등이 설치 실행되는 곳에서만 이용한다. 

7. 윈도 운영체계는 최신 보안 패치를 모두 적용하며, 해킹, 바이러스, 스파이웨어 등을 종합적으로 막아주는 통합백신 보안 제품을 하나 정도는 설치해둔다. 설치 후 항상 최신 버전의 엔진으로 유지하고 부팅 후 보안 제품이 자동 업데이트되도록 하고 시스템 감시 기능이 항상 작동하도록 설정한다.  

8. 웹사이트에 접속했을 때 악성코드나 스파이웨어가 다운로드되는 경우가 있으니 안철수연구소가 무료로 제공하는 ‘사이트보안’(http://secuon.vitzaru.com/blu2/home/home.do) 서비스를 이용해 예방한다.  

9. 웹 서핑 때 액티브X '보안경고' 창이 뜰 경우에는 신뢰할 수 있는 기관의 서명이 있는 경우에만 프로그램 설치에 동의하는 '예'를 클릭한다. 잘 모르는 프로그램을 설치하겠다는 경고가 나오면 ‘예’ ‘아니오’ 중 어느 것도 선택하지 말고 창을 닫는다.  

10. 메신저 프로그램 사용 시 메시지를 통해 URL이나 파일이 첨부되어 올 경우 함부로 클릭하거나 실행하지 않는다. 메시지를 보낸 이가 직접 보낸 것이 맞는지를 먼저 확인해본다.  

[기업]    

1. 기업 및 기관에서는 사용자 안전과 개인 정보보호가 필수적인 최우선 과제라는 보안의식을 갖고 신뢰할 수 있는 웹사이트 및 홈페이지 구축과 함께 항상 최상의 보안상태를 유지하도록 관리해야 한다. 정기적인 서버 보안점검, 모의 해킹, 보안장비 로그 점검 등 전담 인력을 배치해 주기적으로 보안 시스템을 점검한다.  

2. 중요 시스템의 데이터에 대한 사전 백업 시스템을 구축하고 사이버 테러 발생 시 보안 대응 지침 실천을 위한 교육을 수시로 실시한다.  

3. 보안 문제 발생 시에 대비해 비상 연락 체계를 구축한다. 보안관제 서비스를 받고 있는 경우는 해당 보안관제 업체의 24시간 상황실 연락망을 공유하고 자체 보안관제 시스템을 운영하는 경우 자체 비상 연락망을 공유한다.  

4. 네트워크 안전을 위한 네트워크 통합 위협관리장비나 방화벽의 설정을 통해 불필요한 포트를 차단한다.  

5. 사용하지 않는 서버의 네트워크를 분리하고 침입차단시스템, 침입탐지시스템 등의 보안 솔루션의 감시 기능을 설정한다.  

6. 서버에서 불필요한 사용자 계정 및 서비스를 제거한다.  

7. 개인 사용자의 아이디와 패스워드를 주기적으로 점검한다.  

8. 운영체제(OS)의 최신 보안 패치를 적용한다.  

9. 사내 PC의 보안 솔루션이 최신 버전인지, 작동이 정상적으로 되고 있는지 상황을 수시로 점검하고 감염이 자주 되는 PC를 특별 관리한다.  

10. 신뢰할 수 있는 보안 관련 사이트를 방문해 최신 보안 정보를 수시로 확인한다.   

[국가]  

1. 개인정보보호법 등 사용자 안전을 위한 법 제도를 신속히 제정해 국민들의 인터넷 사용 안전 대책을 마련한다. 개인정보가 유출될 경우 이를 개인정보 주체에게 알리도록 의무화하거나, 기업이나 기관이 개인정보와 고객정보 보호를 위한 웹사이트나 홈페이지 할 수 있는 법을 마련해야 한다.    

2. 포털, 게임 등 개인 정보보호에 필수적인 웹사이트 안전에 대한 '정보보호 안전진단' 제도의 실효성을 강화한다. 인터넷 보안취약성 점검이나 모의해킹 등을 통해 실제 해킹 여부를 확인하고, 안전진단을 실시하는 업체들의 관리 감독을 엄격히 실시한다.   

3. 해킹 예방과 사이버 범죄 수사를 위해 다른 나라들과의 공조체계를 마련한다.  

4. 정보보호 전문가를 육성할 전문적 교육체계를 마련하고 중요 국가시설에는 보안전문가들이 상시 관리 감독하도록 한다. 국가적 차원에서 실질적으로 사이버 안전체계를 강화하기 위해서는 전문보안업체의 인력 양성 및 수급이 중요하며, 기업 및 기관 등에도 보안 전문가 육성이 필요하다.    

5. 국가 중요 시설의 경우 정보보호계획 수립을 의무화해 체계적으로 관리한다.  

6. 국가적인 사이버 재난 및 사이버 전쟁에 대비한 국가 사이버 안전 대책을 일원화하여 일관성 있게 계획하고 추진할 수 있는 국가 CSO(Chief Security Officer 최고 보안책임자) 직책을 마련한다.

7. 주민등록번호 등 과도한 개인정보를 입력하도록 하는 국내 웹사이트 회원 등록에 대해 대안 마련과 개선을 한다.  

8. 포털 등 웹사이트 회원 가입 시 1인당 아이디(ID)를 여러 개 가입할 수 있는 관행은 인터넷 역기능과 사이버 범죄 악용 가능성을 감안해 폐지할 수 있도록 한다.  

9. 보안은 안전한 인터넷 생활의 인프라라는 관점에서 개인정보보호 등 보안에 대한 투자를 선진국 수준인 10% 이상으로 확대한다. 국가 시설이나 공공 기관의 경우 반드시 일정 수준의 정보보호시스템을 갖추도록 의무화한다.  

10. 국민들에 대한 보안의식 제고를 위한 범국가적인 지속적인 계도 및 캠페인을 실시하고 학교 교육부터 보안교육을 의무화한다. 


출처 : 안철수연구소 


Trackback 0 Comment 0
2011. 1. 14. 02:13

Fwsnort: Application layer IDS/IPS with iptables

Fwsnort parses the rules files included in the Snort intrusion detection system and builds an equivalent iptables ruleset for as many rules as possible.

Fwsnort utilizes the iptables string match module (together with a custom patch that adds a --hex-string option to the iptables user space code which is now integrated with iptables) to detect application level attacks.
Fwsnort 1.5 now is available for download. This is a major release that moves to using the iptables-save format for instantiating the fwsnort policy, and this allows the run time for adding the fwsnort policy to the kernel to be drastically reduced.

Fwsnort now splices in the translated Snort rules into the iptables policy in the running kernel at the time of translation. So, any updates to the iptables policy that are made after fwsnort is executed and before fwsnort.sh is run would be lost. Hence, it is advisable to execute fwsnort.sh soon after running fwsnort.

This is a reasonable tradeoff though considering the performance benefit as seen below - which gives an example of how long it takes to add an fwsnort iptables policy via the old strategy of executing one iptables command at a time vs. implementing the same policy with iptables-restore.


Trackback 0 Comment 0
2009. 2. 25. 11:20

Snort 네트워크 침입탐지 시스템(IDS) 구축 (Bridge 탐지)

작성일시: 2008년 2월 1일
작성자   : 박재영(jypark@secuwiz.net)

Snort는 네트워크 침입탐지 프로그램으로 libpcap 라이브러리를 사용하여 네트워크 패킷을 검사하여 불법적인 네트워크 접근이나 스니핑, 스캔 등등 네트워크 공격을 탐지하는 툴이다. 전세계적으로 가장 많이 사용되는 IDS로써 사실표준(De facto)이다. (자세한 정보: http://www.snort.org/)

네트워크 구성

네트워크 구성도

위와 같이 DMZ 구역에 설치 할 예정이며 외부에서 들어온 패킷들 중 방화벽을 통과한 트래픽에 대하여 침입탐지를 수행하게 된다.

필요한 라이브러리
libpcap(패킷 캡춰 라이브러리) 다운로드: http://www.tcpdump.org
pcre(Perl 호환 정규식 라이브러리) 다운로드: http://www.pcre.org

어플리케이션
Snort 다운로드: http://www.snort.org
Snortrules 다운로드: http://www.snort.org
Apache 다운로드: http://www.apache.org 
PHP 다운로드: http://www.php.org 
MySQL 다운로드: http://www.mysql.org
ADODB(php로 작성된 ADO객체): http://sourceforge.net/projects/adodb/
BASE 다운로드: http://sourceforge.net/projects/secureideas/

동작방식을 간단히 보면 Snort가 libpcap을 사용하여 패킷을 캡춰하고 정규식으로 작성된 룰을 기반으로 pcre를 사용하여 매칭을 한다. 공격으로 판단된 로그는 MySQL DB에 남기게 되고 사용자는 PHP로 작성된 BASE로 접속하여 웹페이지에서 로그를 쉽게 볼 수 있게된다.

1) 라이브러리 설치
libpcap과 pcre설치는 아래와 같은 명령으로 설치 할 수 있다.
/usr/local/src 밑에서 압축을 해제 한 다음 아래와 같이 명령어를 입력한다.
> ./configure
> make && make install

2) 어플리케이션 설치
MySQL 설치는 생략한다. 웹 문서에도 많이 나와 있으며 홈페이지에서도 쉽게 나와 있으므로 참조를 하자.

Snort를 /usr/local/src에 압축을 해제하고 아래와 같은 명령어를 입력한다. 이때 --with-mysql 옵션은 MySQL이 설치된 디렉토리를 지정한다.(위치가 다를 수 있으니 확인)
> ./configure --with-mysql=/usr/local/mysql --enable-dynamic
> make && make install

snort라는 그룹과 사용자를 등록하고 룰과 로그를 남길 디렉토리를 만든다.
> groupadd snort
> useradd -g snort snort -s /sbin/nologin
>
> mkdir -p /etc/snort/rules
> mkdir /var/log/snort
>
> cp etc/* /etc/snort

snortrules는 /etc/snort에 압축을 해제하면 된다.

MySQL 설정은 다음과 같이한다. 다른 이름으로 줘도 상관없다.
User: snort
PW: snort
DB: snort

사용자 계정과 패스워드를 지정하고 snort라는 DB를 생성하여 사용자가 snort라는 DB에 권한을 가지도록 설정한다. 기본적인 내용이므로 이 문서에는 설명하지 않도록 하겠다.

snort 소스파일에 schems/create_mysql이라는 DB 덤프 파일이 들어 있다. 아래의 명령어로 테이블들을 생성한다.

> mysql -u snort -p snort < create_mysql
Enter password: *****


snort DB를 확인해보면 테이블들이 생성된 것을 확인 할 수 있다.

Apache 와 PHP 설치
아파치를 /usr/local/src에 압축 해제 후 다음 명령어로 설치를 진행하자

> ./configure --prefix=/usr/local/apache \
 --enable-so \
 --enable-cgi \
 --enable-info \
 --enable-rewrite \
 --enable-speling \
 --enable-usertrack \
 --enable-deflate \
 --enable-ssl \
 --enable-mime-magic
> make && make install

빌드 옵션에 대한 내용은 Apache홈페이지의 Document에 자세하게 나와 있으니 참조하자

PHP를 /usr/local/src에 압축 해제 후 아래와 같이 입력하자

> ./configure \
 --with-apxs2=/usr/local/apache/bin/apxs \
 --with-mysql=/usr/local/mysql \
 --prefix=/usr/local/apache/php \
 --with-config-file-path=/usr/local/apache/php \
 --enable-force-cgi-redirect \
 --disable-cgi \
 --with-zlib \
 --with-gettext
> make && make install
> cp -p php.ini.recommended /usr/local/apache/php/php.ini


Apache와 PHP가 설치 되었으면 /usr/local/apache/conf/httpd.conf파일을 아래와 같이 수정한다.

# Make sure there's only **1** line for each of these 2 directives:
# Use for PHP 4.x:
#LoadModule php4_module        modules/libphp4.so
#AddHandler php-script   php

# Use for PHP 5.x:
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php

# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php

AddType text/html       php

# PHP Syntax Coloring
# (optional but useful for reading PHP source for debugging):
AddType application/x-httpd-php-source phps

ADODB와 BASE를 /usr/local/apache/htdocs에 압축을 해제하면 모든 설치가 완료 되었다.

마지막으로 snort와 BASE의 환경 설정만 남았다. /etc/snort/snort.conf 파일을 자신의 환경에 맞게 설정한 후 다음의 내용을 추가한다.

var RULE_PATH=/etc/snort/rules
output database:log,mysql,user=snort password=snort dbname=snort host=localhost


/usr/local/apache/htdocs/base/base_conf.php.dist 파일을 base_conf.php파일로 복사한 다음 수정한다.

$DBlib_path="/usr/local/apache/htdocs/adodb";
$DBtype="mysql";

$alert_dbname="snort";
$alert_host="localhost";
$alert_port="3306";
$alert_user="snort";
$alert_password="snort";

설정이 완료 된 후 MySQL을 실행하고 Apache를 실행하고 snort를 실행한 후 http://[설치된IP]/base로 접속하면 다음과 같은 화면이 보일 것이다.

> /usr/local/mysql/bin/mysqld_safe &
> /usr/local/apache/bin/apachectl start
> snort -i eth0 -c /etc/snort/snort.conf -D
-i 옵션은 감시할 NIC카드를 선택하고 -c는 설정파일을 지정하고 -D는 데몬으로 띄우겠다는 옵션이다.



다른 호스트에서 스노트가 설치된 PC로 nmap으로 포트 스캐닝을 수행하고 로그가 남는지 확인해 보자
> nmap -O -sS [snort IP]

자 이제 모든 설치가 완료 되었고 정상적으로 수행하는 것도 확인을 했다. 이제 마지막으로 남은 것은 브릿지 유틸을 사용하여 NIC카드 2개를 브릿지 한다음 snort가 브릿지를 탐지하도록 설정하면 완료가 된다. brctl을 사용하여 브릿지를 구성한 후 snort를 실행할 때 -i [브릿지 이름] 옵션을 주면 된다.

bridge-utils는 NIC(Network Interface Card) 두개를 하나로 묶어 브릿지로 만들어 주는 역할을 한다. 정식 프로젝트 명칭은 IEEE 802.1d ethernet bridging으로 IEEE의 표준 이더넷 브릿지의 구현이다.

이더넷 브릿지 구성 후의 네트워크 구성도


위의 그림은 네트워크를 절제한 후 bridge를 적용한 상태의 모습이다. 네트워크 일부분을 절제한 후 브릿지로 구성된 머신을 삽입한 상태이다. 브릿지는 방화벽이나 IPS, IDS에서도 사용되는 기술로 네트워크 일부분에 삽입하여 공격을 차단하거나 탐지하여 트래픽을 조정 할 수 있도록 해주는 방식이다. 예를 들어 iptables와 bridge를 사용하면 브릿지 방식의 방화벽이 되고 snort와 bridge를 사용하면 inline방식의 IDS를 구축할 수 있다.

과거 linux kernel 2.4 버전에서는 bridge를 사용하기 위해서는 kernel patch를 사용하여 커널 모듈을 올리고 커널 컴파일을 하는 과정이 필요하였으나. 요즘에 나오는 배포판 리눅스(kernel 2.6 이상)에서는 대부분 기본으로 지원하고 있다. 만일 커널 옵션을 살펴봐서 bridge에 관련된 모듈이 설치되어 있지 않다면 모듈을 선택하고 커널을 새로 컴파일 하는 것만으로도 브릿지를 위한 커널을 생성할 수 있다.

Network options --->
<*> 802.1d Ethernet Bridging                                                            
    [*]   netfilter (firewalling) support

* 대부분 위와 같이 커널 옵션 설정을 마칠 수 있는데 일부 커널 버전에서는 다를 수도 있다.

http://sourceforge.net/project/showfiles.php?group_id=26089 에서 bridge-utils를 다운로드 받을 수 있다. 다운로드 받은 후 아래와 같은 명령으로 설치 할 수 있다.

> tar -xvzf bridge-utils-1.4.tar.gz
> cd bridge-utils-1.4
> autoconf
> ./configure
> make && make install
* autoconf가 설치되어 있지 않을 경우에는.... 그냥 autoconf를 설치하자.. 그게 확실히 간단하다.

브릿지를 구성하기 위해서는 최소 2개의 NIC가 필요하다. 서버 장비의 경우에는 포트가 10~20개인 것도 있지만 일반 PC의 경우 대부분 하나의 NIC만 있을 것이다. 어떻게든 구해서 2개를 달고 드라이버를 설치해주면 두개의 장치를 볼 수 있을 것이다. 설명을 간단하게 하기 위해 2개의 NIC가 있는 상태를 가정하고 eth0, eth1이라고 명명하겠다.

브릿지 설정
> modprobe bridge         // bridge를 커널 모듈 형식으로 작성했을 경우에만 적재해 주면 된다.
> brctl addbr br0            // br0의 이름으로 브릿지를 생성한다.
> brctl addif br0 eth0      // br0브릿지에 eth0을 추가한다.
> brctl addif br0 eth1      // br0브릿지에 eth1을 추가한다.
> brctl stp br0 off           // Spanning-Tree Protocol 사용 유무를 설정. 자신의 상황에 맞게 설정 하자

* STP(Spanning-Tree Protocol)란 브릿지를 redundancy구성을 할 경우. 즉, 이중화 할 경우 브릿지 loop가 발생할 수 있는데 이를 제거하거나 형상(Topology) 관리를 할 때 사용하는 프로토콜로써 이중화 하지 않았을 경우에는 off로 설정하자.
 
IP 설정
> ifconfig eth0 0.0.0.0     // eth0를 0.0.0.0으로 초기화
> ifconfig eth1 0.0.0.0     // eth1을 0.0.0.0으로 초기화
> ifconfig br0 <IP_ADDR> netmask <NETMASK> up
> route add -net 0/0 gw <GATEWAY>

* IP를 꼭 부여할 필요는 없다. 단순히 ifconfig br0 up 만으로도 통신은 브릿지 통신은 가능하나 브릿지 머신에 접속하기 위해서 IP를 부여한 것이다.

자 이 것으로 브릿지의 모든 구성은 완료되었다. 네트워크를 절제 한 후 브릿지 장비를 집어넣고 통신이 되는지 확인만하면 모든것이 완료된다.

Trackback 0 Comment 0