(펌: http://cafe.naver.com/dnspro.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=8018)

모든 일이 그렇듯 방화벽도 정책을 어떻게 선언하느냐가 중요합니다.

 

많은 방화벽을 보면서  정책에 대한 확립이 얼마나 중요한지 절실히 느꼈답니다.

 

그래서 오늘은 방화벽정책에 대한 이야기를 해보겠습니다.

어쩌면 이 부분은 대 부분의 방화벽 엔지니어들이 알고 있는 부분입니다.

 

그러나 너무나도 지켜지지 않고 있기에 이렇게 작성을 해보렵니다.

 

방화벽 정책

원칙

방화벽 정책은 "작은rule 큰policy"를 기본 원칙으로 합니다.

이 말은 rule 정책이 선언된 후 나머지 정책이 policy  에 의해 필터링 된다는것을 나타냅니다.

 

그리고 rule이 작아야 방화벽의 병목현상을 완화시킬수 있기때문입니다.

(rule이 길어지만 길어질 수록 많은 패턴이 그 rule 을 읽고 filter 되야 하기때문에)

- 이것은 모든 방화벽의 기본 filter 방법이고 원칙입니다.

 

위의 원칙으로 방화벽 정책은 두 가지로 나뉘게 됩니다.

(선 부분이 rule 후 부분이 plicy 라고 판단하시면 이해가 되실 것입니다.)

 

1. 선 DROP 후 ACCEPT

- 방화벽 rule 정책이 DROP 으로 선언되고 나머지 패턴에 대해선 모두  ACCEPT 하는 정책입니다.

이 정책은 DROP할 rule이 작을때 사용하는 정책입니다.

나머지에 대한 부분은 ACCEPT되기 때문에신중하게 사용해야하는 정책입니다.

(실제로 이 정책은 기본적으로 허용되어 있는 상태에서 필요에 따라 rule를 추가하여 막는 방법과 같습니다.

그렇다 보니 기본적인 허용부분이 편리로 이해될 수도 있지만 자칫 공격의 open으로 적용될 수도 있습니다.)

 

요즘 같이 많은 패턴의 공격이 있을 경우에는 적합하지 않는 정책이라 할 수 있습니다.

2. 선 ACCEPT 후 DROP

- 방화벽 rule 정책이 ACCEPT 로 선언되고 나머지 패턴에 대해선 모두 DROP 하는 정책입니다.

이 정책은 ACCEPT할 rule이 작고 대 부분을 DROP 할 때 사용됩니다.

실제 요즘 방화벽은 이 방화벽정책을 거의 이용합니다.( 이용해야하는데 안되는것들이 많아서 이렇게 글을 쓰고 있는거지요.)

 

이 장점은 기본적인 DROP으로 안전으로 다가갈 수가 있습니다.  하지만 그것이 단점이 될 수도 있습니다.

단점으론 rule의 초기화 같은 기술적 문제가 발생했을 경우 모든것이 DROP 될 수있다는 것입니다.

 

 

위의 방화벽정책은 rule의 견고성  이 받여줘야합니다.

 

그럼 rule의 견고성이라는 것은 어떻게 해서 생길 까요.

 

1. rule에 원칙을 입히자

- 가끔 방화벽 rule을 들여다 보면 누더기가 되어있는 곳들이 있습니다.

   (주위의 요청에 의해 라든지...  아무튼 이해는 가지만 방화벽만큼 정책은 꼭 지켜져야 할 부분입니다.)

  policy가 ACCEPT인 방화벽에서 특히나 많이 발생하는데요.

  회사의 방화벽 rule을 직접 확인 해보세요. 혹시 기본적책이 ACCEPT인데 ACCEPT rule을 올려놓은것은 없나요?

  혹은 DROP인데  방화벽 rule에 DROP이 올라가 있지는 않나요.

 

  이 부분은 rule의 의미가 무용지물이여서가 아니라 rule의 길이가 길어져 네트워크의 지연을  야기합니다.

 

2. rule에 책임추적성을 입히자

- 여러분의 방화벽은 rule  하나 하나에 누구의 요청에 의해서 무슨 이유로 된 rule  인지 문서화 되어있나요?

   이 부분은 제가 본 회사 거의 대부분에 문제였습니다.

  

   제가 강의를 하다 들은  일화입니다.

   그분은 외국의 요청에 의해 PIX 장비셋팅을 하러 갔다고 합니다.

   rule셋팅에 일주일이 걸렸다고 하시면서 하시는 말씀이 그 곳에선 rule을 open해 줄때 요청자, 사유, 중요성

   에 대한 문서를 받는다고 합니다.

   우리가 외국 따라 해야한다는것이 아니라 저게 원칙입니다.

   우리의 방화벽에 올라와 있는 어느 rule에 의해서 문제가 발생시 그에 따른 조치에 대해서 구체적으로 선언되어있나요?

  

 

방화벽이라는 도구가 나온지 벌써 10년이 넘었습니다.

방화벽은 이제 기본이 되었습니다.  여러분의 기본은 얼마나 지켜지고 있나요?

(펌: http://blog.naver.com/helpboys?Redirect=Log&logNo=40036667969)

방화벽을 통해 어떤 서비스들이 어떤 방향으로 허용되는지를 명시하는 서면 문서가 있어야 한다. 디폴트는 열린 것인지 닫힌 것인지도 규정한다, 어떤 서비스가 정책에 명시되어 있지 않다면, 이것이 허용된다는 것을 의미하는가 혹은 그렇지 않다는 것을 의미하는가? 이것은 관리자의 서명을 받아야 하며, 그러지 않으면 "모든 사람들이 다루어졌다고 생각했던" 구멍을 통해 보안이 침해될 경우 방화벽 관리자는 매우 곤란한 입장에 처할 것이다. 다음은 인터넷 방화벽을 위한 정책의 예시이다:

인터넷 방화벽 정책 ()

보안 요구사항:

1. 접근 통제

·         사내 네트웍으로부터의 모든 인터넷 접속은 방화벽에 있는 프락시를 통해서 발생해야만 한다.

·         디폴트 구성: 명시되지 않은 모든 서비스들은 금지된다.

·         모든 사용자들은 인터넷 사용자들과 이메일을 교환할 있다.

·         R&D 부서 사용자들은 WWW, ftp real audio 사용할 있다. 다른 사람들은 인가가 필요하다.

2. 보증

·         방화벽과 프락시 시스템들은 민감한 호스트로서 설치되어야 한다. 불필요한 모든 서비스들은 운영체제에서 중지한다. 사용자들은 시스템들에 직접 로그온 없어야 한다.

·         방화벽 정책과 구성은 정확하게 문서화 되어야 한다.

·         방화벽 시스템들에 대해 정기적인 모니터링과 연례 감사를 실시해야 한다.

·         사용잗르과 방화벽 관리자들은 각자의 책임을 인지하고 있어야 하고 이러한 책임들을 있도록 교육을 받아야 한다.

3. 로깅

·         상세 로그를 보존해야 한다 (가능하다면 별개의 서버에).

·         자동적으로 분석되어야 하고, 치명적인 에러는 알람을 발생시켜야 한다.

·         로그는 적어도 1년간 보관해야 한다.

·         의미 있는 로그 엔트리들은 매일 검사해야 한다.

·         방화벽 사용량에 대한 통계를 얻을 있어야 한다.

4. 가용성

·         방화벽은 높은 가용성을 제공해야 하고 그에 관해 필요한 일들을 수행해야 한다 (백업/복원 )

·         변경 관리와 사고 대응을 위한 프로세스가 있어야 한다.

5. 필요한 기능:
나가는 (outgoing) 서비스:

다음 서비스들은 특정한 내부 호스트로부터 (e.g. 프락시를 통해) 인터넷으로 나가는 것이 필요하다:
1. Email, WWW (HTTP), ftp, telnet, SSH
2. DNS (resolve Internet names)
3. News (NNTP)
4. Real Audio

들어오는 (incoming) 서비스:

다음의 인터넷 서비스들은 특별히 보호되는 서브넷 상에 구성된 프락시 호스트들을 통해 안으로 들어오는 것이 허용되어야 한다:
1. Email:
모든 사용자들은 안전한 게이트웨이를 통해 인터넷 이메일을 받을 있어야 한다
.
2. News (NNTP)
3. Secure Logins (
소수의 규정된 사람들에 대해): SecurID + SSH 통해


다른 인터넷 서비스들을 필요로 하는 시스템들은 모두 특별한 외부 (안전하지 않은) 서브넷에 두어야 한다. 이들은 인터넷에 직접 연결되도록 한다. 호스트들로부터 내부 네트웍으로의 접근에 대해서는 인터넷 호스트의 접근에서와 같은 규칙이 적용된다.
인터넷에 제공되는 서비스들:

다음 서비스들은 인터넷에 제공되어야 한다 (보호되는 영역내의 안전한 서버들에 의해):

1. 방화벽/ 프락시 시스템의 DNS resolution.
2. WWW
서버
.
3. Anonymous ftp
서버
.
4.
특별한 프로젝트/ 다른 회사들과의 협력을 위한 사용자 FTP 서버 .
 

[출처] 방화벽 정책|작성자 제천최고

펌(http://cafe.naver.com/nsis.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=24041)

방화벽 정책 수립 시 프로토콜 가이드 내용 입니다.  

방화벽 관련 업무 하시는 분에게 좋을 듯합니다.  수고하셔요.

service 위험도
 level
설 명
BGP 4 인터넷환경이 보안적으로 여러 위험성에 노출되기 이전에 고안되었기에 데이터를 조작하거나 삭제하는 등 네트웍 라우팅에 좋지 않은 영향을 미칠 가능성이 있는 여러 가지 공격 방법에 대처하는 메커니즘을 가지고 있지 않다. SYN packet을 이용하여 SYN FLOODING을 일으길 경우 bgp port(TCP 179)가 DRDoS의 target이 된다.
DHCP-relay 4 세그먼트간의 지점간에 위치하여 다른 DHCP에서 IP를 받을 수 있도록 포워드하는 기능이다. Address assignment가 유출될 경우 man-in-the-middle 공격 등에 노출된다. ( UDP 67)
DNS 4 잘 알려진 포트이므로 공격자의 주요목표가 된다. 불필요한 사용자에게 DNS Zone Transfer를 허용하지 말아야 한다. 해당 도메인의 Zone에 대한 복사본을 얻기 위해 Primary Name Server로부터 Zone 데이터베이스를 끌어오는 작업을 Zone Transfer라 하는데, 이는 Primary Name Server가 다운될 경우 Secondary Name Server가 그 역할을 대신하게 되기 때문에 양쪽 서버간의 정보를 일관성 있게 유지시키기 위해 수행되는 작업이다. 일반적으로 Zone Transfer는 Second Name Server에서만 Zone Transfer를 할 수 있도록 하면 된다. 허가되지 않는 사용자에게 Zone Transfer를 허용할 경우 DNS 서버의 중요한 정보가 유출되게 된다. 즉, 공격자는 전송 받은 Zone 정보를 이용하여 호스트 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있게 된다. 대부분의 공격도구(주로 취약점 스캐너)는 공격하고자 하는 시스템의 IP 리스트를 얻기 위해 Zone Tranfer를 이용한다. 대부분의 사이트에서 DNS 서버를 디폴트로 설치할 경우 임의의 사용자가 Zone Transfer 를 할 수 있도록 설정된다. DNS 코드 취약점을 이용하여 DNS 서버에게 교묘히 조작된 패킷을 보냄으로써 버퍼 오버플로우를 발생시켜  공격자가 원하는 코드를 실행시키거나 루트 쉘을 얻을 수 있다. (TCP, UDP 53)
FINGER 3 로그온한 사용자, operating system에 대한 정보 제공한다. (TCP 79)
FTP 5 읽고 쓰기가 가능하여 시스템의 손상, 파괴가 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.(TCP 20,21)
FTP-GET 5 읽기가 가능하여 시스템의 정보 유출이 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.
FTP-PUT 5 쓰기가 가능하여 시스템의 손상, 파괴가 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.
GOPHER 5 고퍼는 웹 서비스가 개발되기 이전까지는 인터넷의 가장 쉬운 인터페이스로 사용되었다. 고퍼는 정보의 내용을 주제별 또는 종류별로 구분하여 메뉴로 구성함으로써, 인터넷에 익숙하지 않은 사람도 쉽게 정보를 찾아볼 수 있게 만들었다. 고퍼는 인터넷의 다른 기능들, 즉 원격접속(telnet), 파일전송(ftp), 뉴스(news)등의 기능을 고퍼 메뉴 속에서 실행할 수 있고, 고퍼 서버들끼리 서로 연결되어 있어서 여러 개의 고퍼 서버를 이동하면서 자신이 필요로 하는 정보를 쉽게 찾을 수 있다. 고퍼로 FTP session을 맺을 경우, 서버의 ftp directory로 접속을 제한할지라도 bounce attack(제삼의 서버를 이용하여 공격대상의 네트워크를 스캐닝할 수 있는)에 이용될 수 있다. (TCP 70)
H.323 4 그 자체가 정의된 하나의 규약(protocol)이 아니라 각종 규약들(H.224, H.245 등)을 모아놓은 프로토콜 스택이다. H.323은 음성 및 영상 데이터를 TCP/IP,UDP 등의 패킷 교환 방식의 네트워크를 통해 전송하기 위해 채택된 표준으로, 이러한 패킷 방식의 데이터 전송의 예가 VoIP이다. 양방향으로 설정 필요하며, 다수의 포트 허용으로 보안에 취약하다.
HTTP 4 Web Server의 개방성과 CGI/JAVA/PHP등의 content script의 취약점에서 오는 원격 해킹의 가능성이 존재하며, 이런 코드들의 보안성 점검이 필요하다. 정보유출과 루트 권한의 획득이 가능하다. Web server log의 개인 정보가 적절한 인증없이 조회되지 않도록 해야한다. (TCP 80)
HTTPS 4 SSL을 사용하기 때문에 HTTP 프로토콜보다는 보안상 안전하나, content script의 취약점에서 오는 원격 해킹의 가능성이 존재하며, 이런 코드들의 보안성 점검이 필요하다. 정보유출과 루트 권한의 획득이 가능하다. (TCP 443)
ICMP-INFO 4 remote host 가 ICMP_MASKREQ query 에 응답하여 netmask 등의 정보를 보내준다. 공격자는 네트웍이 어떻게 구성되고 라우팅 되는지에 관한 정보를 얻을 수 있다. 위험도는 높지 않다.
ICMP-TIMESTAMP 4 remote host가 ICMP timestamp request에 응답한다. 이것은 공격자가 그 host의 세팅된 시간정보를 알려줌으로 시간에 기초한 인증 protocols를 통과하도록 돕는다. ICMP timestamp requests와 outgoing ICMP timestamp replies를 필터링해야 하며 위험도는 높지 않다.
IKE 3 IPSec을 하는 장비간에 암호화 알고리즘과 인증방식을 서로 설정한다.
IMAP 3 POP3와 유사한 취약성을 가지고 있다. 로그인하지 않은 상태에서 버퍼 오버플로우를 발생시켜 유저네임이나  패스워드를 변경할 수 있으며, 로그인된 상태에서 여러 버퍼 오버플로우 공격을 할 수 있다. (TCP 143)
INTERNET LOCATER SERVICE 5 LDAP, LDAP over SSL/TSL, user locater service를 포함한다.
IRC 4 일련의 규칙과 약속이 관련되어 있는 채팅 시스템으로, 동시에 여러 사용자의 태화를 제공하는 클라이언트/서버 구조의 소프트웨어이다. 어떤 흔적도 남기지 않은 채(영수증없는 금융거래처럼)  파일전송이 이루어질 수 있다. (TCP 6660-9)
L2TP 5 인터넷 표준인 L2TP (RFC 2661)는 인터넷에서 remote access VPN을 구성하는데 널리 사용되는 클라이언트/서버 기반의 Tunneling Protocol이다. Layer 2의 PPP 트래픽에 대한 Encapsulation을 통해 두 지점간의 터널을 생성, 관리, 소멸시켜주는 것이 기본 기능이며, 보안은 대부분 PPP에서 제공하는 보안기능에 의존하므로 보다 강한 보안을 위해 IPSEC을 사용해야 한다. Layer 2 Tunneling은 크게 tunnel initiator에 따라 Voluntary Tunneling과 Compulsory Tunneling으로 나눌 수 있다. Voluntary Tunneling은 client-initiated Tunneling으로 클라이언트가 직접 Tunnel 서버(보통의 Remote Access Server(RAS), IETF 용어로는  PPTP/L2TP Network Server(PNS/LNS)로 불림)와 Tunnel을 형성하므로 클라이언트간의 End-to-End Tunnel이 형성되며, 클라이언트에 PPTP/L2TP 프로토콜이 탑재되어 있어야 한다. 반면 Compulsory Tunneling은 ISP-initiated Tunneling으로 인터넷 서비스 제공자(ISP) Remote Access Switch가 클라이언트를 대신해서 터널을 열어 주는 경우로 클라이언트에 Tunneling Protocol이 탑재되어 있지 않은 경우나, ISP에서 VPN 서비스를 제공해 주는 경우에 사용되며, PAC/LAC-PNS/LNS간에 Tunnel이 형성된다. L2TP는 Packet-Oriented Point-to-Point 접속을 제공하는 네트웍만 보장되면, 어떤 전송 프로토콜 상에서도 사용 가능하다 (e.g. IP, Frame Relay PVCs, ATM VCs 등). Multiple- Tunnel을 허용하여 QoS에 따라 서로 다른 Tunnel을 이용할 수 있다. L2TP는 헤더 압축 및 Tunnel-End-Point 인증 (패킷단위의 인증이 아니라, Tunnel End-Point들의 Identity에 대한 인증) 기능을 제공한다. 서로 완전한 신뢰관계에 있는 제한된 host 사이에서만 허용한다.
LDAP 4 TCP/IP 상에서 수행하는 디렉토리 서비스 프로토콜로서,  조직이나, 개체, 그리고 인터넷이나 기업 내의 인트라넷 등 네트웍 상에 있는 파일이나 장치들과 같은 자원 등의 위치를 찾을 수 있게 해준다. LDAP 디렉토리 서비스 모델은 엔트리(entry)에 기반한다. 엔트리는 distinguished name (DN)이라고 불리는 속성(attribute)을 포함하는 속성들의 집합으로 되어 있으며, DN은 유일한 엔트리를 찾기 위해서 이용된다. LDAP은 디렉토리에 대한 질의와 갱신 연산을 정의하고, 디렉토리로부터 엔트리를 추가 또는 삭제하고, 엔트리를 변경하고 엔트리의 이름을 변경하는 연산이 제공된다. LDAP 탐색(search) 연산은 탐색 필터에 명시된 일치 기준에 맞는 엔트리를 찾기 위해 디렉토리의 일부를 찾을 수 있다. LDAP server는 주요정보를 담고 있어, 비인가된 접근은 철저히 차단되어야 한다. (TCP 389)
NETMEETING 4 주로 H.323 을 이용하여 서비스한다.
NFS 5 Port Mapper외에 파일 송수신을 위해 다수의 포트를 가변적으로 허용되어야 하며, 공격자가 NFS client로 작동하는 applets를 씀으로 접근제어를 통과하는 등 심각한 취약점이 다수 존재한다.(TCP, UDP 2049,111)
NNTP 4 유즈넷 뉴스그룹 상에 올려진 글들을 관리하기 위해 컴퓨터들(클라이언트와 서버 모두)에 의해 사용되는 store and forward 프로토콜이다. NNTP는 원래 유즈넷 프로토콜이었던 UUCP (UNIX-to-UNIX Copy Protocol)를 대체한 것이다. NNCP 서버는 수집된 유즈넷 뉴스그룹들의 네트웍을 관리하고, 인터넷 액세스 제공자가 제공하는 서버를 전체의 일부로서 포함시킨다. NNTP 클라이언트는 넷스케이프나, 인터넷 익스플로러, 오페라 또는 다른 웹브라우저의 일부로서 포함될 수 있으며, 뉴스리더라고 불리는 별도의 클라이언트 프로그램을 사용할 수도 있다. 포트가 오픈 유즈넷서버를 찾아내기 위해 사용된다. 대체적으로 정상적 커넥션이 이루어져 위험도는 높지 않다.(TCP 119)
NTP 3 NTP variables를 질의함으로 remote host의 OS descriptor, time settings등의 정보를 얻을 수 있다. NTP peer relationships를 알아냄으로 네트웍 세팅에 대한 정보를 알아낼 수 있다. 위험도는 높지 않다.(UDP 123)
ORACLE-LISTENER 5 Client상에서 DB의 접근이 가능하기 때문에 일반계정으로 접근 후 루트 권한의 획득이 가능할 수 있다. 
OSPF 4 독립적인 네트웍 내에서 라우팅 정보 관리를 위해 광범위하게 사용된다. DRDoS의 target이 된다. 
PC-anywhere 5 원격제어 및 파일전송이 가능하며, 접근이 성공되었을 경우 PC와 같은 세크먼트에 존재하는 모든 네트워크 장비들은 스니핑이 가능하다. (UDP 5632, 22 TCP 5631)
PING 3 remote host의 상태가 dead or alive인지 정보를 준다. 위험도는 적다 .
POP3 3 client가 e-mail서버에 접근하기 위해 사용된다. 로그인하지 않은 상태에서 버퍼 오버플로우를 발생시켜 유저네임이나  패스워드를 변경할 수 있으며, 로그인된 상태에서 여러 버퍼 오버플로우 공격을 할 수 있다. (TCP 110)
PPTP 5 Microsoft 사의 PPTP는 인터넷에서 remote access VPN을 구성하는데 널리 사용되는 클라이언트/서버 기반의 Tunneling Protocol이다. PPP 트래픽을 encapsulation하기 때문에, IP, IPX, NetBEUI, AppleTalk 등의 다양한 상위 로컬 네트웍 프로토콜을 사용할 수 있으며 transit internetwork이 IP 네트웍일 것을 요구한다. End-Point들 사이에 하나의 Tunnel만을 지원하며 사용자 인증(PAP, CHAP, MS-CHAP, EAP)이나 데이터 암호화/압축 (CCP, ECP) 등의 보안 기능은 PPP에서 제공하는 것을 사용한다. 완전한 신뢰관계에 있는 제한된 host 사이에서만 허용한다. (TCP 1723)
REAL MEDIA 3 video straming과 audio service를 제공한다. Client가 server로부터 audio streams을 받을 때는 UDP포트로, control connection은 TCP 7070 포트를 사용한다.
RIP 4 독립적인 네트웍 내에서 라우팅 정보 관리를 위해 광범위하게 사용된다. DRDoS의 target이 된다. 
RLOGIN 5 rlogin은 client와 server 사이의 데이터가 암호화되지 않은 상태로 흐르기 때문에 스니핑이 가능하며 이는 login ID와 PASSWORD도 포함된다. 신뢰관계가 잘못 설정된 경우 패스워드의 입력없이 바로 서버로 접근이 가능하며 심감한 보안취약점으로 인해 신뢰관계를 설정하여 루트 권한으로의 접근이 가능하다.
SMTP(MAIL) 4 향상 최신의 패치한 상태로 서비스를 하여야 하며, 메일 Relay기능을 제한한다. 인터넷에 공개되어 있고, e-mail routing이 복잡하여 보고된 취약점(루트권한의 획득 가능)이 많다.(TCP 25)
SNMP 5 네트워크 장비의 상황을 볼 수 있는 인테페이스를 제공하며 관리 데이타의 분석, 장애관리 등의 기능수행을 위한 데이타베이스를 구축하고 있다. Get : 장비의 상태 및 가동시간등의 관리 정보를 읽어 들인다. 특정 장비의 정보를 읽으려면 메시지의 송신자로서 관리자는 그 장비를 표시하는 작은 프로그램인 에이전트에 조회를 한다. 관리자는 MIB의 트리구조를 이용해 필요한 정보를 찾는 객체를 알아내고 응답을 해석한다. Set : 장비의 MIB을 조작하여 장비를 제어한다. 관리자는 요청을 보내 다시 초기화 시키거나, 프로그램에 따라 스스로를 다시 재구성한다. Trap : 관리자에게 보고하는 Treshold나 Event를 말한다. 장비 에이전트는 경고, 고장통지등 관리자가 미리 설정한 유형의 보고서를 생성한다. SNMP의 Community String은 manager와 agent사이의 메시지를 인증하기 위해 사용되는데, 알기쉬운(Public, Private, 회사이름등…) 이름이나 Brute-force 공격으로 알아낼 수 있는 쉬운 조합으로 만들 경우 Set/Get 명령어등으로 접근할 수 있으며, 현재까지 서비스거부공격, 버퍼오버플로우공격 등 여러 취약점이 있다.(TCP, UDP 161,162)
SSH 5 Telnet보다 강한 인증기능을 가지고 다른 컴퓨터에 로그온 할 수 있으나, SSH host 의 domain을 스캔당할 수 있으며, 일반계정으로의 접근 후 OS상에 존재하는 취약점을 이용하여 루트권한의 획득이 가능하다. (TCP 22)
SYSLOG 3 log를 기록하는 전용 데몬( 항상 떠 있어서, 다른 프로그램의 요청에 응답하는 것)이다.
UDP Flood등의 DoS 공격의 대상이 될 수 있다. (UDP 514)
TALK 3 visual communication을 제공한다. 알려지지 않은 유저에 의해 정보가 유츨될 수 있다. (UDP 517, 518)
TCP-ANY 6 모든 TCP 포트를 허용하므로 Incoming 정책에 사용 불가하다. (임시적으로만 사용, 출발지/목적지등을 제한할 경우에 한하여 사용)
TELNET 5 일반계정으로의 접근 후 OS상에 존재하는 취약점을 이용하여 루트권한의 획득이 가능하다. telnet은 client와 server 사이의 데이터가 암호화되지 않은 상태로 흐르기 때문에 스니핑이 가능하며, 이는 login ID와 PASSWORD도 포함된다. (TCP 23)
TFTP 5 remote user가 login(ID와 패스워드의 인증)없이 파일을 읽고, 쓸 수 있어 위험도가 높다.  펌웨어를 업그레이드등의 경우에 주로 사용된다. TCP wrapper를 사용하며 접근을 제한하며, root directory로 아닌 subdirectory로 접근하게 하여 필요이상의 파일 접근을 피하도록 해야한다. (UDP 69)
TRACEROUTE 4 특정 호스트에 접근하기 위한 path의 정보를 제공한다. (UDP 33400-34000)
UDP-any 6 모든 UDP 포트를 허용하므로 Incoming 정책에 사용 불가하다. (임시적으로만 사용, 출발지/목적지등을 제한할 경우에 한하여 사용)
UUCP 5 시스템들 간에 파일을 복사, 실행될 명령어들을 전송할 수 있다. (UDP 540)
VDO-LIVE 3 video straming service를 제공한다. (UDP 7000-7010)
WAIS 4 특정 데이타베이스 등을 키워드로 고속 검색하여 액세스하는 환경을 제공한다. (TCP 210)
WINFRAME 4 서버에 연결된 컴퓨터 워크스테이션이 윈도우 프로그램과 데이터를 사용할 수 있도록 환경을 제공한다. (TCP 1494)
X-WINDOW 5  리눅스를 비롯해 대부분의 유닉스에 채용되어 있으며, 대상 host의 그래픽 환경 기반 window를 제공한다. TCP 다수의 포트(6000-6063)를 허용한다. (TCP 6000-6063)
BGP 3 인터넷환경이 보안적으로 여러 위험성에 노출되기 이전에 고안되었기에 데이터를 조작하거나 삭제하는 등 네트웍 라우팅에 좋지 않은 영향을 미칠 가능성이 있는 여러 가지 공격 방법에 대처하는 메커니즘을 가지고 있지 않다. SYN packet을 이용하여 SYN FLOODING을 일으길 경우 bgp port(TCP 179)가 DRDoS의 target이 된다.
DHCP-relay 2 세그먼트간의 지점간에 위치하여 다른 DHCP에서 IP를 받을 수 있도록 포워드하는 기능이다. Address assignment가 유출될 경우 man-in-the-middle 공격 등에 노출된다. ( UDP 67)
DNS 2 잘 알려진 포트이므로 공격자의 주요목표가 된다. 불필요한 사용자에게 DNS Zone Transfer를 허용하지 말아야 한다. 해당 도메인의 Zone에 대한 복사본을 얻기 위해 Primary Name Server로부터 Zone 데이터베이스를 끌어오는 작업을 Zone Transfer라 하는데, 이는 Primary Name Server가 다운될 경우 Secondary Name Server가 그 역할을 대신하게 되기 때문에 양쪽 서버간의 정보를 일관성 있게 유지시키기 위해 수행되는 작업이다. 일반적으로 Zone Transfer는 Second Name Server에서만 Zone Transfer를 할 수 있도록 하면 된다. 허가되지 않는 사용자에게 Zone Transfer를 허용할 경우 DNS 서버의 중요한 정보가 유출되게 된다. 즉, 공격자는 전송 받은 Zone 정보를 이용하여 호스트 정보, 네트워크 구성 형태 등의 많은 정보를 파악할 수 있게 된다. 대부분의 공격도구(주로 취약점 스캐너)는 공격하고자 하는 시스템의 IP 리스트를 얻기 위해 Zone Tranfer를 이용한다. 대부분의 사이트에서 DNS 서버를 디폴트로 설치할 경우 임의의 사용자가 Zone Transfer 를 할 수 있도록 설정된다. DNS 코드 취약점을 이용하여 DNS 서버에게 교묘히 조작된 패킷을 보냄으로써 버퍼 오버플로우를 발생시켜  공격자가 원하는 코드를 실행시키거나 루트 쉘을 얻을 수 있다. (TCP, UDP 53)
FINGER 2 로그온한 사용자, operating system에 대한 정보 제공한다. (TCP 79)
FTP 5 읽고 쓰기가 가능하여 시스템의 손상, 파괴가 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.(TCP 20,21)
FTP-GET 2 읽기가 가능하여 시스템의 정보 유출이 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.
FTP-PUT 5 쓰기가 가능하여 시스템의 손상, 파괴가 가능하다. 버퍼 오버플로우를 일으켜 root권한을 획득하거나 DOS 공격하는 등 취약점이 다수 존재한다.
GOPHER 2 고퍼는 웹 서비스가 개발되기 이전까지는 인터넷의 가장 쉬운 인터페이스로 사용되었다. 고퍼는 정보의 내용을 주제별 또는 종류별로 구분하여 메뉴로 구성함으로써, 인터넷에 익숙하지 않은 사람도 쉽게 정보를 찾아볼 수 있게 만들었다. 고퍼는 인터넷의 다른 기능들, 즉 원격접속(telnet), 파일전송(ftp), 뉴스(news)등의 기능을 고퍼 메뉴 속에서 실행할 수 있고, 고퍼 서버들끼리 서로 연결되어 있어서 여러 개의 고퍼 서버를 이동하면서 자신이 필요로 하는 정보를 쉽게 찾을 수 있다. 고퍼로 FTP session을 맺을 경우, 서버의 ftp directory로 접속을 제한할지라도 bounce attack(제삼의 서버를 이용하여 공격대상의 네트워크를 스캐닝할 수 있는)에 이용될 수 있다. (TCP 70)
H.323 2 그 자체가 정의된 하나의 규약(protocol)이 아니라 각종 규약들(H.224, H.245 등)을 모아놓은 프로토콜 스택이다. H.323은 음성 및 영상 데이터를 TCP/IP,UDP 등의 패킷 교환 방식의 네트워크를 통해 전송하기 위해 채택된 표준으로, 이러한 패킷 방식의 데이터 전송의 예가 VoIP이다. 양방향으로 설정 필요하며, 다수의 포트 허용으로 보안에 취약하다.
HTTP 2 Web Server의 개방성과 CGI/JAVA/PHP등의 content script의 취약점에서 오는 원격 해킹의 가능성이 존재하며, 이런 코드들의 보안성 점검이 필요하다. 정보유출과 루트 권한의 획득이 가능하다. Web server log의 개인 정보가 적절한 인증없이 조회되지 않도록 해야한다. (TCP 80)
HTTPS 2 SSL을 사용하기 때문에 HTTP 프로토콜보다는 보안상 안전하나, content script의 취약점에서 오는 원격 해킹의 가능성이 존재하며, 이런 코드들의 보안성 점검이 필요하다. 정보유출과 루트 권한의 획득이 가능하다. (TCP 443)
ICMP-INFO 2 remote host 가 ICMP_MASKREQ query 에 응답하여 netmask 등의 정보를 보내준다. 공격자는 네트웍이 어떻게 구성되고 라우팅 되는지에 관한 정보를 얻을 수 있다. 위험도는 높지 않다.
ICMP-TIMESTAMP 2 remote host가 ICMP timestamp request에 응답한다. 이것은 공격자가 그 host의 세팅된 시간정보를 알려줌으로 시간에 기초한 인증 protocols를 통과하도록 돕는다. ICMP timestamp requests와 outgoing ICMP timestamp replies를 필터링해야 하며 위험도는 높지 않다.
IKE 2 IPSec을 하는 장비간에 암호화 알고리즘과 인증방식을 서로 설정한다.
IMAP 2 POP3와 유사한 취약성을 가지고 있다. 로그인하지 않은 상태에서 버퍼 오버플로우를 발생시켜 유저네임이나  패스워드를 변경할 수 있으며, 로그인된 상태에서 여러 버퍼 오버플로우 공격을 할 수 있다. (TCP 143)
INTERNET LOCATER SERVICE 2 LDAP, LDAP over SSL/TSL, user locater service를 포함한다.
IRC 2 일련의 규칙과 약속이 관련되어 있는 채팅 시스템으로, 동시에 여러 사용자의 태화를 제공하는 클라이언트/서버 구조의 소프트웨어이다. 어떤 흔적도 남기지 않은 채(영수증없는 금융거래처럼)  파일전송이 이루어질 수 있다. (TCP 6660-9)
L2TP 5 인터넷 표준인 L2TP (RFC 2661)는 인터넷에서 remote access VPN을 구성하는데 널리 사용되는 클라이언트/서버 기반의 Tunneling Protocol이다. Layer 2의 PPP 트래픽에 대한 Encapsulation을 통해 두 지점간의 터널을 생성, 관리, 소멸시켜주는 것이 기본 기능이며, 보안은 대부분 PPP에서 제공하는 보안기능에 의존하므로 보다 강한 보안을 위해 IPSEC을 사용해야 한다. Layer 2 Tunneling은 크게 tunnel initiator에 따라 Voluntary Tunneling과 Compulsory Tunneling으로 나눌 수 있다. Voluntary Tunneling은 client-initiated Tunneling으로 클라이언트가 직접 Tunnel 서버(보통의 Remote Access Server(RAS), IETF 용어로는  PPTP/L2TP Network Server(PNS/LNS)로 불림)와 Tunnel을 형성하므로 클라이언트간의 End-to-End Tunnel이 형성되며, 클라이언트에 PPTP/L2TP 프로토콜이 탑재되어 있어야 한다. 반면 Compulsory Tunneling은 ISP-initiated Tunneling으로 인터넷 서비스 제공자(ISP) Remote Access Switch가 클라이언트를 대신해서 터널을 열어 주는 경우로 클라이언트에 Tunneling Protocol이 탑재되어 있지 않은 경우나, ISP에서 VPN 서비스를 제공해 주는 경우에 사용되며, PAC/LAC-PNS/LNS간에 Tunnel이 형성된다. L2TP는 Packet-Oriented Point-to-Point 접속을 제공하는 네트웍만 보장되면, 어떤 전송 프로토콜 상에서도 사용 가능하다 (e.g. IP, Frame Relay PVCs, ATM VCs 등). Multiple- Tunnel을 허용하여 QoS에 따라 서로 다른 Tunnel을 이용할 수 있다. L2TP는 헤더 압축 및 Tunnel-End-Point 인증 (패킷단위의 인증이 아니라, Tunnel End-Point들의 Identity에 대한 인증) 기능을 제공한다. 서로 완전한 신뢰관계에 있는 제한된 host 사이에서만 허용한다.
LDAP 2 TCP/IP 상에서 수행하는 디렉토리 서비스 프로토콜로서,  조직이나, 개체, 그리고 인터넷이나 기업 내의 인트라넷 등 네트웍 상에 있는 파일이나 장치들과 같은 자원 등의 위치를 찾을 수 있게 해준다. LDAP 디렉토리 서비스 모델은 엔트리(entry)에 기반한다. 엔트리는 distinguished name (DN)이라고 불리는 속성(attribute)을 포함하는 속성들의 집합으로 되어 있으며, DN은 유일한 엔트리를 찾기 위해서 이용된다. LDAP은 디렉토리에 대한 질의와 갱신 연산을 정의하고, 디렉토리로부터 엔트리를 추가 또는 삭제하고, 엔트리를 변경하고 엔트리의 이름을 변경하는 연산이 제공된다. LDAP 탐색(search) 연산은 탐색 필터에 명시된 일치 기준에 맞는 엔트리를 찾기 위해 디렉토리의 일부를 찾을 수 있다. LDAP server는 주요정보를 담고 있어, 비인가된 접근은 철저히 차단되어야 한다. (TCP 389)
NETMEETING 2 주로 H.323 을 이용하여 서비스한다.
NFS 5 Port Mapper외에 파일 송수신을 위해 다수의 포트를 가변적으로 허용되어야 하며, 공격자가 NFS client로 작동하는 applets를 씀으로 접근제어를 통과하는 등 심각한 취약점이 다수 존재한다.(TCP, UDP 2049,111)
NNTP 2 유즈넷 뉴스그룹 상에 올려진 글들을 관리하기 위해 컴퓨터들(클라이언트와 서버 모두)에 의해 사용되는 store and forward 프로토콜이다. NNTP는 원래 유즈넷 프로토콜이었던 UUCP (UNIX-to-UNIX Copy Protocol)를 대체한 것이다. NNCP 서버는 수집된 유즈넷 뉴스그룹들의 네트웍을 관리하고, 인터넷 액세스 제공자가 제공하는 서버를 전체의 일부로서 포함시킨다. NNTP 클라이언트는 넷스케이프나, 인터넷 익스플로러, 오페라 또는 다른 웹브라우저의 일부로서 포함될 수 있으며, 뉴스리더라고 불리는 별도의 클라이언트 프로그램을 사용할 수도 있다. 포트가 오픈 유즈넷서버를 찾아내기 위해 사용된다. 대체적으로 정상적 커넥션이 이루어져 위험도는 높지 않다.(TCP 119)
NTP 2 NTP variables를 질의함으로 remote host의 OS descriptor, time settings등의 정보를 얻을 수 있다. NTP peer relationships를 알아냄으로 네트웍 세팅에 대한 정보를 알아낼 수 있다. 위험도는 높지 않다.(UDP 123)
ORACLE-LISTENER 2 Client상에서 DB의 접근이 가능하기 때문에 일반계정으로 접근 후 루트 권한의 획득이 가능할 수 있다. 
OSPF 2 독립적인 네트웍 내에서 라우팅 정보 관리를 위해 광범위하게 사용된다. DRDoS의 target이 된다. 
PC-anywhere 2 원격제어 및 파일전송이 가능하며, 접근이 성공되었을 경우 PC와 같은 세크먼트에 존재하는 모든 네트워크 장비들은 스니핑이 가능하다. (UDP 5632, 22 TCP 5631)
PING 2 remote host의 상태가 dead or alive인지 정보를 준다. 위험도는 적다 .
POP3 2 client가 e-mail서버에 접근하기 위해 사용된다. 로그인하지 않은 상태에서 버퍼 오버플로우를 발생시켜 유저네임이나  패스워드를 변경할 수 있으며, 로그인된 상태에서 여러 버퍼 오버플로우 공격을 할 수 있다. (TCP 110)
PPTP 5 Microsoft 사의 PPTP는 인터넷에서 remote access VPN을 구성하는데 널리 사용되는 클라이언트/서버 기반의 Tunneling Protocol이다. PPP 트래픽을 encapsulation하기 때문에, IP, IPX, NetBEUI, AppleTalk 등의 다양한 상위 로컬 네트웍 프로토콜을 사용할 수 있으며 transit internetwork이 IP 네트웍일 것을 요구한다. End-Point들 사이에 하나의 Tunnel만을 지원하며 사용자 인증(PAP, CHAP, MS-CHAP, EAP)이나 데이터 암호화/압축 (CCP, ECP) 등의 보안 기능은 PPP에서 제공하는 것을 사용한다. 완전한 신뢰관계에 있는 제한된 host 사이에서만 허용한다. (TCP 1723)
REAL MEDIA 2 video straming과 audio service를 제공한다. Client가 server로부터 audio streams을 받을 때는 UDP포트로, control connection은 TCP 7070 포트를 사용한다.
RIP 2 독립적인 네트웍 내에서 라우팅 정보 관리를 위해 광범위하게 사용된다. DRDoS의 target이 된다. 
RLOGIN 2 rlogin은 client와 server 사이의 데이터가 암호화되지 않은 상태로 흐르기 때문에 스니핑이 가능하며 이는 login ID와 PASSWORD도 포함된다. 신뢰관계가 잘못 설정된 경우 패스워드의 입력없이 바로 서버로 접근이 가능하며 심감한 보안취약점으로 인해 신뢰관계를 설정하여 루트 권한으로의 접근이 가능하다.
SMTP(MAIL) 2 향상 최신의 패치한 상태로 서비스를 하여야 하며, 메일 Relay기능을 제한한다. 인터넷에 공개되어 있고, e-mail routing이 복잡하여 보고된 취약점(루트권한의 획득 가능)이 많다.(TCP 25)
SNMP 2 네트워크 장비의 상황을 볼 수 있는 인테페이스를 제공하며 관리 데이타의 분석, 장애관리 등의 기능수행을 위한 데이타베이스를 구축하고 있다. Get : 장비의 상태 및 가동시간등의 관리 정보를 읽어 들인다. 특정 장비의 정보를 읽으려면 메시지의 송신자로서 관리자는 그 장비를 표시하는 작은 프로그램인 에이전트에 조회를 한다. 관리자는 MIB의 트리구조를 이용해 필요한 정보를 찾는 객체를 알아내고 응답을 해석한다. Set : 장비의 MIB을 조작하여 장비를 제어한다. 관리자는 요청을 보내 다시 초기화 시키거나, 프로그램에 따라 스스로를 다시 재구성한다. Trap : 관리자에게 보고하는 Treshold나 Event를 말한다. 장비 에이전트는 경고, 고장통지등 관리자가 미리 설정한 유형의 보고서를 생성한다. SNMP의 Community String은 manager와 agent사이의 메시지를 인증하기 위해 사용되는데, 알기쉬운(Public, Private, 회사이름등…) 이름이나 Brute-force 공격으로 알아낼 수 있는 쉬운 조합으로 만들 경우 Set/Get 명령어등으로 접근할 수 있으며, 현재까지 서비스거부공격, 버퍼오버플로우공격 등 여러 취약점이 있다.(TCP, UDP 161,162)
SSH 2 Telnet보다 강한 인증기능을 가지고 다른 컴퓨터에 로그온 할 수 있으나, SSH host 의 domain을 스캔당할 수 있으며, 일반계정으로의 접근 후 OS상에 존재하는 취약점을 이용하여 루트권한의 획득이 가능하다. (TCP 22)
SYSLOG 2 log를 기록하는 전용 데몬( 항상 떠 있어서, 다른 프로그램의 요청에 응답하는 것)이다.
UDP Flood등의 DoS 공격의 대상이 될 수 있다. (UDP 514)
TALK 2 visual communication을 제공한다. 알려지지 않은 유저에 의해 정보가 유츨될 수 있다. (UDP 517, 518)
TCP-ANY 6 모든 TCP 포트를 허용하므로 Incoming 정책에 사용 불가하다. (임시적으로만 사용, 출발지/목적지등을 제한할 경우에 한하여 사용)
TELNET 2 일반계정으로의 접근 후 OS상에 존재하는 취약점을 이용하여 루트권한의 획득이 가능하다. telnet은 client와 server 사이의 데이터가 암호화되지 않은 상태로 흐르기 때문에 스니핑이 가능하며, 이는 login ID와 PASSWORD도 포함된다. (TCP 23)
TFTP 5 remote user가 login(ID와 패스워드의 인증)없이 파일을 읽고, 쓸 수 있어 위험도가 높다.  펌웨어를 업그레이드등의 경우에 주로 사용된다. TCP wrapper를 사용하며 접근을 제한하며, root directory로 아닌 subdirectory로 접근하게 하여 필요이상의 파일 접근을 피하도록 해야한다. (UDP 69)
TRACEROUTE 2 특정 호스트에 접근하기 위한 path의 정보를 제공한다. (UDP 33400-34000)
UDP-any 6 모든 UDP 포트를 허용하므로 Incoming 정책에 사용 불가하다. (임시적으로만 사용, 출발지/목적지등을 제한할 경우에 한하여 사용)
UUCP 5 시스템들 간에 파일을 복사, 실행될 명령어들을 전송할 수 있다. (UDP 540)
VDO-LIVE 2 video straming service를 제공한다. (UDP 7000-7010)
WAIS 2 특정 데이타베이스 등을 키워드로 고속 검색하여 액세스하는 환경을 제공한다. (TCP 210)
WINFRAME 2 서버에 연결된 컴퓨터 워크스테이션이 윈도우 프로그램과 데이터를 사용할 수 있도록 환경을 제공한다. (TCP 1494)
X-WINDOW 2  리눅스를 비롯해 대부분의 유닉스에 채용되어 있으며, 대상 host의 그래픽 환경 기반 window를 제공한다. TCP 다수의 포트(6000-6063)를 허용한다. (TCP 6000-6063)

'scrap' 카테고리의 다른 글

방화벽 정책에 관하여  (0) 2010.04.29
방화벽 정책(예)  (0) 2010.04.29
BPS, PPS, 프로토콜 점유율, 프로토콜 포트 점유율, 평균 패킷 사이즈  (0) 2010.04.21
XP 네트워크 명령어  (0) 2010.04.18
IDS  (0) 2010.03.27

+ Recent posts