1. 용어의 정리

구성요소와 종류를 언급하기 전에 각 요소와 관련된 용어정의를 먼저 하고, 방화벽 구성요소에 대한 구분과 각각의 특징에 대해서 알아본다.  앞서서 중복되는 말이 하두 많이 나와서 이제는 지겨울지도 모른다.  하지만 반복숙달시키는 과정이라 생각하고 이해하시라.

  • 네트워크 정책(network policy) 
    방화벽 시스템의 설계, 설치, 사용에 직접적으로 영향을 줄 수 있는 두가지 레벨의 네트워크 정책이 있다. 하이레벨 정책은 명확한 이슈 즉, 제한된 네트워크 로부터 서비스를 허락할 것인가 또는 명확히 거부할 것인가를 정의하는 네트워크 액세스 정책이다. 이러한 서비스들을 어떻게 사용할 것인가, 그리고 이러한 정책 의 예외 조건등이 하이레벨 정책에 속한다. 로우레벨 정책은 어떻게 방화벽이 실질적으로 액세스를 제한하고 하이레벨 정책에서 정의한 서비스를 필터링 할 것인 가에 대한 사항이다.
  • 방화벽시스템의 사용자인증 시스템(advanced authentication) 
    방화벽시스템은 한 기관의 네트워크 전체를 보호해야 하므로 일반적으로 유닉스시스템에서 사용되는 단순한 패스워드 기법으로 사용자를 인증하는 방법을 사용하지는 않는다. 우수한 인증수단으로는 스마트 카드, 어탠디케이션 토큰 (authentication tokens), 바이오메트릭스(biometrics) 그리고 소프트웨어 메카니 즘 등을 사용한다. 현재 많이 사용하고 있는 우수한 인증시스템으로는 일회용패 스워드(one time passwd)시스템이 있다. 매번 사용자가 로그인을 시도할 때 마 다 매번 새로운 패스워드를 이용하는 것인데, 이는 침입자들이 최근 이용하고 있 는 스니퍼(sniffer)에 의한 패킷가로채기를 통해 시스템의 사용자id와 패스워드를 알아내서 침입하는 것을 근본적으로 막아주게 된다.
  • 패킷 필터링
    ip 패킷 필터링(packet filtering)은 통상 라우터 인터페이스를 지나는 패킷을 필터링을 하기 위해 설계된 패킷 필터링 라우터(packet filtering router)를 사용하여 행해진다. 패킷 필터링 라우터는 ip 패킷중 다음의 전부 또는 일부를 필터링 할 수 있다.
    - source ip address 
    - destination ip address 
    - tcp/ip source port 
    - tcp/ip destination port 
    모든 패킷 필터링 라우터가 소스 tcp/ip 포트를 필터링하지는 않는다. 그러 나 많은 제조회사들이 이러한 능력을 증가시키고 있다. 대부분은 아니지만 유닉 스 호스트도 패킷 필터링 기능을 제공한다.
  • 응용계층 게이트웨이(application level gateway) 
    응용계층서비스들은 중간전달(store-and-forward)방법을 쓰는 경우가 많은 데, 이는 게이트웨이에서 수행할 방법과 그대로 맞아떨어지게 된다.
    게이트웨이는 송신자 응용서비스가 보내는 각종 정보를 그대로 전달하면 되는 것이다. 이 게이 트웨이에서는 보안을 위한 특별한 서비스가 제공된다. 예를 들어 내부와 외부간 의 모든 응용수준의 트래픽에 대해 로그기록이나, 텔네트(telnet)나 ftp 등에서 사용자 인증을 할 경우 보다 우수한 방법을 사용한 변경된 인증방법을 이용한다 든가 하는 것이다. 이 응용계층의 게이트웨이 기능은 가상서버(proxy server)라는 인터네트의 클라이언트/서버 개념에서 나온 서버 기능을 제공하게 된다. 예를 들어 외부의 전자우편클라이언트가 내부의 어떤 호스트내 전자우편 서버와 접속 맺기를 원한다면 중간에 가상서버가 이를 받아 다시 내부의 서버에게 전달하는 방식이 된다.
  • 스크린 라우터(screen router) 
    어떤 기관이 인터네트에 접속할 경우 대부분 라우터(router)를 거친다. 이는 인터네트 패킷을 전달하고 경로배정(routing)을 담당하는 장비다. 
    라우터는 단순 장비가 아니라면 패킷의 헤더 내용을 보고 필터링(스크린)할 수 있는 능력을 가 지고 있다. 네트워크 수준의 ip(internet protocol) 데이터그램에서는 출발지 주소 및 목적지 주소에 의한 스크린, tcp(transmission control protocol) 수준의 패 킷에서는 네트워크응용을 판단케해주는 포트(port) 번호에 의해 스크린, 프로토 콜별 스크린 등의 기능을 제공하게 된다. 이 스크린 라우터만을 가지고도 어느 정도 수준의 보안 접근제어를 통해 방화벽시스템 환경을 구현할 수 있다. 그러나 라우터에서 구현된 펌웨어의 수준으로는 제한점이 많고 복잡한 정책을 구현하기 어려우므로 보통 스크린 라우터와 다음에서 설명하는 베스쳔 호스트를 함께 운영 한다.
  • 베스쳔 호스트 
    베스쳔 호스트(bastion hosts)는 방화벽시스템이 가지는 기능 중 가장 중요 한 기능을 제공하게 된다. 원래 베스쳔(bastion)은 중세 성곽의 가장 중요한 수비 부분을 의미하는데, 방화벽시스템 관리자가 중점 관리하게될 시스템이 된다. 그 래서 방화벽시스템의 중요 기능으로 접근 제어 및 응용시스템 게이트웨이로서 가 상서버(proxy server)의 설치, 인증, 로그 등을 담당하게 된다. 그러므로 호스트 는 외부의 침입자가 주로 노리는 시스템이 된다. 따라서 일반 사용자의 게정을 만들지 않고 해킹의 대상이 될 어떠한 조건도 두지 않는 가장 완벽한 시스템으로 서 운영되어야 한다. 보통 판매되는 방화벽시스템은 이러한 베스쳔호스트를 제공 하는 것이라고 보면 된다.
  • 이중 네트워크 호스트(dual-homed hosts) 
    복수네트워크호스트는 2개 이상의 네트워크에 동시에 접속된 호스트를 말하 며 보통 게이트웨이 호스트라고 말하는 시스템이 된다. 2개의 네트워크, 즉 외부 네트워크와 내부 네트워크를 의미하고 외부 네트워크와 내부 네트워크간의 유일 한 패스를 제공하도록 조정된다. 즉 동적인 경로 배정과 경로 정보전달을 배제하 므로 모든 내.외부 트래픽은 이 호스트를 통과하도록 하여 베스쳔호스트의 기능을 여기에 구현하면 되는 것이다.
  • 스크린 호스트 게이트웨이(screen host gateway) 
    스크린호스트게이트웨이 개념은 이 시스템을 내부 네트워크에 두어 스크린라 우터가 내부로 들어가는 모든 트래픽을 전부 스크린호스트에게만 전달되도록 하 겠다는 것이다. 또한 스크린라우터는 내부에서 외부로 가는 모든 트래픽에 대해 서도 스크린호스트에서 출발한 트래픽만 허용하고 나머지는 거부하게 된다. 그 래서 내부와 내부 네트워크사이의 경로는 '외부네트워크 - 스크린라우터 - 스크린호스트 - 내부네트워크' 이외의 경로는 결코 허용하지 않게된다. 이 스크린호 스트도 결국 베스쳔호스트, 이중네 트워크호스트의 개념이 집합된 시스템이다.
  • 스크린 서브네트 
    스크린 서브네트(screen subnet)는 일명 dmz(demiliterization zone)의 역할 을 외부 네트워크와 내부 네트워크 사이에 두겠다는 것으로 완충지역 개념의 서 브네트를 운영하는 것이다. 여기에 스크린 라우터를 이용하여 이 완충지역을 곧 장 통과 못하게 하지만 외부네트워크에서도 내부 네트워크에서도 이 스크린 서브 네트에 접근할 수는 있다. 어떤 기관에서 외부로 공개할 정보서버(information server), 즉 익명 ftp서버, 고퍼(gopher) 서버, 월드와이드웹(www)서버 등을 여기에 운영하면 된다.
  • 암호 장비 
    암호장비(encryption devices)는 어떤 기관의 네트워크가 공공의 인터네트를 통해 여러 지역으로 분산되어 있을 경우 적당하다. 본사 네트워크가 방화벽 시스 템을 구축하였을 때 지역적으로 떨어진 지점 네트워크도 본사 네트워크처럼 보호 되어야하는 것이다. 이 경우 본사와 지점 네트워크 간이 인터네트로 연결되었다 면 안전을 보장하기 어려우므로 두 지점사이를 암호장비를 이용하여 가상 사설링 크(vpl, virtual private link)로 만들어 운영하면 된다. 그러므로서 두개의 네트 워크는 하나의 안전한 네트워크로 만드는 것이다. 종단간 암호 방식은 데이터나 패스워드 등이 도청되는 것을 막는 방식을 원하는 사설백본(private backbone), 즉 여러 인터네트 접속점을 가진 기관에서 유용할 것이다.
  • Bastion Hosts 
    어떠한 공격에도 철저한 방어기능을 갖는 호스트이다. 방화벽은 이러한 기능을 갖는 베스쳔 호스트로 구성된다. 이러한 베스쳔 호스트를 만들기 위해서는 방화벽 관리자는 시스템에 다음과 같은 작업을 해야한다. 
    - 모든 일반사용자 계정을 삭제한다. 
    - 중요치 않은 파일과 명령은 가급적 지운다. 
    - 대용량의 모니터링 및 로그 기능을 가져야 한다. 
    - IP Forwarding기능, Source Routing 기능을 없앤다.
  • 프락시(proxy) 
    프락시는 클라이언트와 실제 서버사이에 존재하여 둘 사이의 프로토콜 및 데이터 relay 역할을 한다. 그래서 프락시를 전송자 또는 전달자(forwarder)라고 말하는 사람도 있다.  프락시 기능을 이용하는 방화벽은 어플리케이션 방화벽과 서킷게이트웨이 방화벽이 있다.  어플리케이션 방화벽은 각 서비스마다 관련 프락시가 존재한다. 서킷 게이트웨이 방화벽은 이와 달리 각 서비스에 모두 적용될 수 있는 일반적인 프락시가 존재한다.

    - 프락시의 동작과정 

2. 구성요소

  • 패킷필터링 라우터
  • 베스쳔 호스트 
    - 패킷필터링 게이트웨이 
    - 어플리케이션 게이트웨이 
    - 서킷 게이트웨이 
    - 하이브리드 게이트웨이
  • 사용자 인증시스템
  • 암호화 장비

      앞서 언급한 방화벽의 정의에 따르면, 방화벽은 H/W 및 S/W로 구성된다고 하였다.
    H/W적인 측면의 방화벽은 크게 패킷필터링 라우터, 베스쳔 호스트, 사용자 인증시스템, 암호화 장비로 나눌 수 있겠다.
    패킷필터링 라우터는 TCP/IP 수준에서 접근제어 기능이 있는 라우터로서 스크린 라우터라는 용어로도 사용하고 있다.
    베스쳔 호스트는 완벽한 보안을 갖추고 있는 시스템으로서 이 시스템에 패킷필터링 기능을 부여한 패킷필터링 게이트웨이와 프락시 기능을 부여한 어플리케이션 게이트웨이, 서킷 게이트웨이, 각 기능들을 혼용한 하이브리드 게이트웨이가 존재한다. 패킷필터링 기능은 라우터와 베스쳔 호스트의 패킷필터링 게이트웨이와 중복되기 때문에 패킷필터링 게이트웨이 에 대한 설명은 패킷필터링 라우터에서 한다.
    사용자 인증시스템에는 일회용 패스워드 등 네트웍에 접근하기 위해서 사용자 인증을 하는 장비 및 소프트웨어가 존재하고, 암호화 장비는 네트웍간 데이터를 전송할 때 암호화하기 위한 장비 및 소프트웨어가 존재한다. 사실 사용자 인증시스템 및 네트웍 암호화 장비는 별도로 사용되기도 하지만 이러한 기능은 베스쳔 호스트에 추가되어 개발되고 있기 때문에 방화벽의 큰 분류는 패킷필터링 라우터와 베스쳔 호스트로 볼 수도 있다.

(1) 패킷필터링 라우터

    패킷필터링 라우터는 OSI 모델에서 네트웍층(IP 프로토콜)과 전송층(TCP 프로토콜)층에서 패킷을 필터링하는 기능을 하면서 패킷에 대한 경로배정을 위한 자체 프로토콜을 사용한다. 베스쳔 호스트에도 OSI 모델의 전송층에서 수행되는 TCP 플래그를 기반으로한 필터링 기능을 부여하여 사용할 수 있는데 이러한 경우 패킷 필터링 게이트웨이라고 한다.

    1)기능

Source/Destination IP Address를 이용한 호스트, 네트워크 접속 제어 
TCP/UDP Ports를 이용한 응용서비스별 접속제어 
TCP, UDP, ICMP 등 프로토콜별 접근제어 
TCP Sync 비트를 이용한 최초접속제어 

    2) 장단점

장점

이 방화벽의 장점은 방화벽 기능이 OSI 7 모델에서 제 3, 4계층에서 처리되기 때문에 다른 방식에 비해 처리속도가 빠르며, 사용자에게 투명성을 제공한다. 또한 기존에 사용하고 있는 응용 서비스 및 새로운 서비스에 대해서 쉽게 연동할 수 있는 유연성이 있다.

단점

TCP/IP 프로토콜의 구조적인 문제 때문에 TCP/IP 패킷의 헤더는 쉽게 조작 가능하다. 따라서 외부침입자가 이러한 패킷의 정보를 조작한다면 내부시스템과 외부시스템이 직접 연결된다. 또한 ftp, mail에 바이러스가 감염된 파일 전송시 잠재적으로 위험한 Data에 대한 분석이 불가능하며 접속제어 규칙의 갯수 및 접속제어 규칙 순서에 따라 방화벽에 부하를 많이 줄 수 있다. 또한 다른 방식에 비해서 강력한 logging 및 사용자 인증 기능을 제공하지 않는다.

    3) 패킷필터링 관련 장비 및 제품

대부분 Routers 
Network-1 Firewall/Plus 
Atlantic System Group internet Security Route 
Sun SPF-100

(2) 베스쳔 호스트(Bastion Host) - 어플리케이션 게이트웨이

    1) 기능

    어플리케이션 게이트웨이는 OSI 7계층 네트웍 모델에서 어플리케이션 계층상에 방화벽 기능이 들어있다. 이 게이트웨이는 각 서비스별로 Proxy Daemon이 있어 프락시게이트웨이 또는 응용게이트웨이라고도 언급한다.

    어플리케이션 게이트웨이는 각 서비스별 프락시를 이용하여 패킷필터링 방식처럼 IP 주소 및 TCP port를 이용하여 네트웍 접근제어를 할 수 있으며 추가적으로 사용자 인증 및 파일전송시 바이러스 검색기능과 같은 기타 부가적인 서비스를 지원한다.

    앞서 언급된 프락시는 클라이언트와 서버사이에 존재하여 그 접속을 관리하며 이미 접속된 연결에 대해서는 데이터 전달을 위한 전달자로서 기능을 한다. 따라서 클라이언트는 프락시를 통해서만 실제 서버로의 데이터를 주고받을 수 있다. 즉, 클라이언트와 서버간에 직접적인 연결을 허용하지 않는다.

    어플케이션 게이트웨이는 각 서비스마다 관련 프락시가 존재한다. 예를 들 면 telnet 서비스에 대해서는 telnet proxy, ftp 서비스에 대해서는 ftp proxy가 존재한다.

    서비스는 특성에 따라서 크게 interactive 서비스(예, telnet, ftp)와 none-interactive 서비스(예, http, nntp)로 구성할 수 있는데, 사용자가 어플리케이션 게이트웨이를 통해 내부 목적지 시스템에 접속 연결하고자 할 경우 서비스의 특성에 따라서 조금 차이는 있지만 일반적으로 아래와 같은 절차를 따르게 된다. 예를 들어 외부에 있는 사람이 내부의 시스템 으로 telnet 서비스를 이용하여 접속할 경우는 다음과 같다. 

    외부 사용자는 내부에 있는 서버로 접속을 위해서 먼저 어플리케이션 게이트웨이에 접방화벽 시스템과는 클라이언트 서버의 관계가 속을 요구한다. 이때 사용자 시스템과 된다.

    어플리케이션 게이트웨이는 사용자의 발신처 IP 주소를 확인하고, 접근규칙에 따라 허용여부를 결정한다.

    또한 어플리케이션 게이트웨이가 사용자 인증을 요구할 경우 사용자 인증과정을 거친다. 인증과정은 plain text형태의 패스워드를 사용하거나 일회용 패스 워드를 사용한다.

    만약 외부사용자가 어플리케이션 게이트웨이의 접속이 허용 되면, 프락시는 적용된 규칙에 따라 내부 호스트로 접속을 허용한다.

    프락시는 사용자 시스템과 실제 서버 사이에서 두 접속간에 데이터를 전송한다. 결국 외부의 사용자 시스템과 어플리케이션 게이트웨이와의 관계는 클라이언트와 서버관계 가 되고, 어플리 케이션 게이트웨이와 실제 서버와의 관계는 다시 클라이언트와 서버와의 관계를 유지한다.

    어플리케이션 게이트웨이는 접속거부 또는 허용에 대한 기록을 남긴다.

    2) 장단점

장점

내부 시스템과 외부 시스템간에 방화벽의 프락시를 통해서만 연결이 허용되고 직접 연결(IP Connection)은 허용되지 않기 때문에 외부에 대한 내부망의 완벽한 경계선 방어 및 내부의 IP 주소를 숨길 수 있다. 따라서, 패킷 필터링 기능의 방화벽보다 보안성이 뛰어나다. 다른 방화벽에 비해서 강력한 Logging 및 Audit 기능을 제공한다. S/Key, Secure ID 등 일회용 패스워드를 이용한 강력한 인증기능을 제공할 수 있다. 프락시의 특성인 프로토콜 및 데이터 전달기능을 이용하여 새로운 기능 추가가 용이하다.

단점

트래픽이 OSI 7계층에서 처리되기 때문에 다른 방식과 비교해서 방화벽의 성능이 떨어지며, 또한 일부 서비스에 대해서는 사용자에게 투명한 서비스를 제공하기 어렵다. 방화벽에서 새로운 서비스를 제공하기 위해서 새로운 프락시 데몬이 있어야 한다. 즉 새로운 서비스에 대한 유연성이 없다.

(3) 베스쳔 호스트(Bastion Host) - Circuit Gateway

    서킷 게이트웨이는 OSI 네트웍 모델에서 5계층에서 7계층 사이에 존재하며 어플리케이션 게이트웨이와는 달리 각 서비스별로 프락시가 존재하는 것이 아니고, 어느 어플리케이션도 이용할 수 있는 일반적인 프락시가 존재한다. 방화벽을 통해서 내부 시스템으로 접속하기 위해서는 먼저 클라이언트측에 서킷 프락시를 인식할 수 있는 수정된 클라이언트 프로그램이 필요하다. 따라서 수정된 클라이언트 프로그램이 설치되어있는 클라이언트만 circuit 형성이 가능하다.

장점

내부의 IP 주소를 숨길 수 있으며 수정된 클라이언트 프로그램이 설치된 사용자에게 투명한 서비스를 제공할 수 있다.

단점

방화벽에 접속을 위해서 서킷게이트웨이를 인식할 수 있는 수정된 클라이언트 프로그램이 필요하다.

(4) Hybrid 방화벽

    여러 유형의 방화벽들을 경우에 따라 복합적으로 구성할 수 있는 방화벽이다. 이 방화벽은 서비스의 종류에 따라서 사용자의 편의성, 보안성 등을 고려하여 방화벽 기능을 선택적으로 부여할 수 있지만 서비스의 종류에 따라서 다양한 보안정책을 부여함으로써 구축 및 관리하는데 어려움이 따를 수 있다.

방화벽 종류 및 각 특징 요약

방화벽종류

기 능

장 점

단 점

패킷필터링 
방화벽

소스 및 목적지 IP주소와 port번호를 이용하여 제어한다.

단순하며 처리속도가 빠르다.

단순해서 사용자별로 제어 못함

서킷게이트웨이 
방화벽

패킷 필터링와 비슷하지만 OSI의 다른 레벨에서 서킷을 만들어 동작한다.

소스를 감출 수 있으며 단순하면서 사용자에게 투명성을 보장한다.

각 클라이언트측의 프로그램을 수정해야한다.

어플리케이션 
방화벽

소스를 감출 수 있으며 단순하면서 사용자에게 투명성을 보장한다.

강력한 인증 및 부가적인 서비스제공

투명성을 보장 못함

하이브리드 
방화벽

위의 3가지 타입들을 경우에 따라 조합적으로 사용하는 것

보안상 가장 효율적이고, 유연성있는 보안정책을 부여 가능

구축의 어려움

(5) 사용자 인증 시스템

    한 기관의 네트웍 보안을 위해서 일반적으로 UNIX 시스템에서 사용되는 plain text인 단순한 패스워드 기법으로 사용자를 인증하는 방법을 사용하지 않는다. 보다 우수한 인증시스템으로서 일회용 패스워드(one-time-password)를 보통 채택하고 있다. 즉 매번 사용자가 로그인을 시도할 때마다 매번 새로운 패스워드를 이용하는 것인데, 이는 침입자들이 이용하고 있는 sniffer(패킷 가로채기) 공격에 근본적으로 막아준다.

    일회용 패스워드 시스템의 동작은 Challenge-Response 개념으로 동작하는 데, 이를 보면,

  1. 사용자는 접속을 하려는 시스템으로 로그인을 시도한다.
  2. 시스템은 사용자에게 Challenge로서 난수(Random Number)를 보낸다.
  3. 사용자는 자신이 가지고 있는 마치 계산기처럼 작은 HHA(Hand Held Authenticator)로 Challenge와 자신의 ID를 입력한다.
  4. HAA는 시스템이 가지고 있는 동일한 알고리즘으로 일회용 패스워드를 반환한다.
  5. 사용자는 HHA가 반환한 일회용 패스워드로 시스템에 로그인한다.

이것은 시스템과 HHA가 동일한 일회용 패스워드를 생성 알고리즘을 공유 하고 있으며, 매번 생성된 난수와 사용자 ID에 의해 매번 다른 패스워드를 생성하게 되는 것이다.

(6) 암호화 장비

    암호화 장비는 어떤 기관의 네트웍이 공공의 인터넷을 통해 여러 지역으로 분산되어 있을 경우 적당하다. 즉 어떤 본사 네트웍이 방화벽 시스템을 구축하였을 때 지역적으로 떨어진 지점 네트웍도 본사 네트웍처럼 보호되어야 한다. 이 경우 본사와 지역 네트웍간에 인터넷으로 연결되었다면 안전을 보장하기 어려우므로 두 지점사이를 암호장비를 이용하여 가상사 설 네트웍(VPN : Virtual Private Network)을 만들어 운영하면 된다.

3. 요구사항

그렇다면 어떤 타입의 방화벽이 필요한 것일까? 불행히도 딱부러지게 어떤 타입의 방화벽이 필요하다고 말할 수 있는 정답은 없다. 보안과 서비스 제공과는 trade-off 관계에 있기 때문에 어느 면을 강조하는냐에 따라 달려있다.

외부의 특정 몇몇 사용자의 접속을 허락하거나 또는 IP Spoofing과 같은 해킹 공격을 막기 위해서는 어플리케이션 게이트웨이 방화벽이 필요하다. 이러한 방화벽의 경우 보안성은 뛰어나지만 사용자에게 투명성을 제공하지 않고 방화벽의 처리능력이 다른 방식에 비해 낮은 것이 약점이 된다. 외부로부터 들어오는 트래픽은 모두 차단하고 내부의 믿을만한 사용자들 을 위해서는 서킷 게이트웨이나 또는 패킷필터링 방식의 방화벽이 필요하다. 결국 인터넷에서의 방화벽구축은 Hybrid 형태로 어떤 곳에서 오는 정보는 패킷 필터링으로 하고 어떤 곳에서 오는 트래픽은 어플리케이션 게이트웨이 방화벽을 사용하는 등 서비스 및 네트웍 특성에 맞게 패킷필 터링 방화벽, 서킷게이트웨이, 어플리케이션 게이트웨이 방화벽을 조합적으로 운영하는 것이 가장 효율적이다고 말할 수 있다.

방화벽이 가져야할 중요한 요구사항은 보안성을 제공하면서 가능한 사용자에게 투명성이 있는 서비스를 제공해야하며, 방화벽 운영자가 운영하기에 편리한 GUI(Graphic User Interface)이다. 방화벽의 하층부위는 거의가 비슷하게 패킷을 잡고 이를 분석해서 자신이 원하는 보안정책의 조건과 비교하여 출입을 통제하고 보기에 좋으며 또한 Log로 남은 정보들을 좀더 지능적으로 처리해서 보여주느냐에 의해서 좋은 방화벽시스템과 별볼일 없는 것이 판가름나게 되는 것이다. 그 외에 좋은 방화벽이 되려면 아래와 같은 요건들을 충족시켜야 한다.

▷ 보안성이 뛰어나야 한다.
▷ 유연성이 뛰어나야 한다.
▷ 방화벽에 가능한 사용자 투명성을 보장해줘야 한다.
▷ 커다란 네트웍에도 적용 가능해야 한다.
▷ 운영자가 사용하기에 편리해야 한다.
▷ 편리하고 보기 좋은 GUI
▷ 정리된 Log 정보를 만들어야 한다.
▷ 다양한 억세스 콘트롤을 지원해야 한다.
▷ 모니터링이 가능해야 한다.
▷ 정보를 분류, 분석해 주는 기능이 있어야 한다.


'Security' 카테고리의 다른 글

웹 사이트 보안 및 DoS(Denial-of-Service) 공격 방지  (0) 2017.01.08
암호화 모드  (0) 2017.01.08
All in one 정리  (0) 2017.01.08
Kerberos  (0) 2017.01.08
DES/3DES/AES  (0) 2017.01.08

[SSO]

Scripting

Kerberos

Thin client(dumb terminal)

Directory Services

 

[접근통제모델]

DAC(Discretionary Access Control) - ACL을 통해 이루어짐, 데이터 소유자가 누가 자원에 대한 접근을 가지는지 결정

MAC(Mandatory Access Control) - Sensitivity labels에 기반

RBAC(Role-based access control, nondiscretionary access control) - 거래액이 큰 회사들을 위한 최상의 시스템

 

[접근통제기법과 기술]

- 규칙기반 접근통제(Rule-Based Access Control)

- 사용자 인터페이스 제한(Constrained User Interfaces)

- 접근통제 매트릭스(Access Control Matrix) - 개별 주체가 어떤 작업들을 개별객체에게 할당 할  

   수 있는지 지정하는 주체와 객제들의 테이블

- 능력테이블(Capability table) - ACL과는 다르다. 특정한 객체들에 대한 적합한 특정한 주체들이

  소유하는 접근권한들을 지정

- 접근통제목록(Access Control Lists) - OS, 응용PG, 라우터 설정에 사용됨. 특정한 객체로 접근

   하도록 인증된 주체들의 목록

 

[접근통제관리]

집중형(Centralized access control administration)

- RADIUS, TACACS, XTACACS, TACACS+, Diameter(IPsec과 동작_

비집중형(Decentralized access control aministration)

- 혼합형(Hybrid)

 

[접근통제방식]

접근통제계층

- 관리적통제 : 정책 및 절차, 인적통제, 감독구조, 보안의식 훈련, 테스팅

- 물리적통제 : 네트워크 분리, 경계선 보안, 컴퓨터 통제, 작업영역분리, 데이터백업, 케이블링

- 기술적통제 : 시스템접근, 네트워크 구조, 네트워크 접근, 암호화 및 프로토콜, 통제구역, 감사

 

객체재사용 - 파일포인터만 제거하는것이 아니고 실제파일을 삭제해야..

 

TEMPEST - 전기장치에서 방출되는 위조전기신호에 대한 연구이며 통제이다.

                  백색잡음과 통제구역 개념을 사용하여 대안책을 마련함.

 

[접근통제 모니터링]

- 지식 or 패턴기반 침입탐지

- 행동 or 통계적 침입탐지

 

[접근통제와 관련된 몇가지 위협]

Dictionary Attack

Brute Force Attack

Spoffing at Login

침투테스팅(Penetration Testing)

 

[보안모델]

Bell-Lapadula - 기밀성

Biba - 무결성

Clark-Wilson - Biba이후 개발, 정보의 무결성을 보호하는 다른 접근법을 제시함.

정보흐름모델(Information flow model)

Noninterference(비간섭모델) - 한 보안 수준에서 수행된 명령과 활동은 다른 보안수준의 주체나 객체에게 보여지거나 영향을 주어서는 안된다.

 

[운영보안보드]

- 전용보안모드(Dedicated Security Mode) : 모든 사용자가 허가 또는 인가를 받고 시스템 내부에서 처리된 모든 데이터에 대해 need-to-know를 가지고 있다.

- 시스템최고 보안모드(System-High Security Mode) : 모든 사용자가 허가 또는 인가를 받았지만 시스템에서 처리되는 모든 정보에 need-to-know를 가질 필요는 없다.

- 구획화 보안모드(Compartmented Security Mode) : 모든 사용자가 시스템에 의해 처리된 모든 정보에 접근하도록 허가 받았지만 모든 정보에 접근할 필요가 없다.

- 다수준보안모드(Multilevel Security Mode) - 모든 사용자가 시스템에 의해 처리되는 모든 정보에 접근하도록 허가나 공식적 승인을 받은 것이 아닐떄 동시에 둘 이상의 정보 분류 수준이 허용되면 시스템은 다수준 보안모드에서 작동하고 있는 것이다. Bell-Lapadula는 다수준보안모드의 한 예이다

'Security' 카테고리의 다른 글

암호화 모드  (0) 2017.01.08
방화벽 내용 정리  (0) 2017.01.08
Kerberos  (0) 2017.01.08
DES/3DES/AES  (0) 2017.01.08
스푸핑  (0) 2017.01.08

Kerberos ; 커베로스

커베로스는 개방된 컴퓨터 네트웍 내에서 서비스 요구를 인증하기 위한 안전한 방법이다. 커베로스는 미국 MIT의 Athena 프로젝트에서 개발되었다. 이 이름은 그리스 신화에서 따왔는데, 커베로스는 저승의 신 하데스의 문을 지키는 머리가 셋 달린 개이다. 커베로스는 사용자가 인증 과정으로부터 암호화된 "티켓"을 요청할 수 있게 해주는데, 이 티켓은 서버에 특정 서비스를 요구하는데 사용될 수 있다. 사용자의 암호는 네트웍을 지나가야 할 필요가 없다. 커베로스의 클라이언트 및 서버 버전은 MIT로부터 다운로드 하거나, 또는 상용 버전을 구입할 수 있다.

아래에 커베로스의 동작원리를 간단하게 설명하였다.

  1. 당신이 지금 텔넷이나 기타 이와 비슷한 로그인 요청을 통해, 다른 컴퓨터에서 서버에 액세스하기 원한다고 가정해 보자. 이 서버는 당신의 요청을 받아들이기 전에, 커베로스 "티켓"을 요구한다.
  2. 티켓을 받기 위해, 당신은 먼저 인증 서버에 인증을 요구한다. 인증 서버는 당신이 입력한 패스워드에 기반하여 "세션 키"와, 서비스 요구를 나타내는 임의의 값을 만든다. 세션 키는 사실상 "티켓을 부여하는 티켓"이다.
  3. 그 다음에 세션 키를, 티켓 부여 서버, 즉 TGS (ticket-granting server)에 보낸다. TGS는 인증 서버와 물리적으로는 동일한 서버에 있을 수 있지만, 그러나 지금은 다른 서비스를 수행한다. TGS는 서비스를 요청할 때 서버에 보낼 수 있는 티켓을 돌려준다.
  4. 그 서비스는 티켓을 거절하거나, 또는 받아들여서 서비스를 수행한다.
  5. TGS로부터 받은 티켓은 발송일자와 시간이 적혀있기 때문에, 일정 시간 동안 (대체로 8시간 동안) 내에는 재인증 없이도 동일한 티켓으로 다른 추가 서비스를 요청할 수 있다. 티켓을 제한된 시간 동안에만 유효하게 만듦으로써, 후에 어떤 사람이 그것을 사용할 수 없도록 만든다.

 

실제의 과정은 위에 설명한 것보다 더 복잡하며, 사용자 절차도 구현 내용에 따라 다소 달라질 수 있다.


'Security' 카테고리의 다른 글

방화벽 내용 정리  (0) 2017.01.08
All in one 정리  (0) 2017.01.08
DES/3DES/AES  (0) 2017.01.08
스푸핑  (0) 2017.01.08
icmp flood 서버단에서 예방하기  (0) 2017.01.08

DES(Data Encryption Standard)는 Lucifer를 보완하여 IBM에서 개발한 블럭암호 알고리즘으로 1977년에 미국 표준국(U.S. National Bureau of Standards : NBS, NIST 전신)에서 표준으로 채택(FIPS PUB 46)되었읍니다. 64비트 입력 블럭을 56비트 비밀키를 이용하여 암호화하는 블럭암호 알고리즘이며, 미국 연방정부의 데이터 보호용으로 출발하여 ANSI(American National Standards Institute)의 표준 암호 알고리즘, ABA(American Bankers' Association)에서 미국내 금융 정보의 보호 표준으로 사용하기까지 사용 범위가 확대되어 현재 전세계적으로 가장 널리 사용되고 있습니다. 그러나 56비트라는 짧은 키 길이로 인해 더 이상 안전하지 않다고 보는 것이 일반적인 견해이며, IPSEC이나 PKIX 등 새로운 응용들에서는 DES를 3회 반복는 Triple DES를 사용하도록 권고하였으며, 최근 차세대 미국 표준인 AES가 확정됨에 따라 앞으로 점차적으로 그 사용범위가 줄어들 것으로 보입니다. 

DES의 56비트라는 짧은 키 길이로 인한 안전성 문제를 해결하기 위한 대안으로 3개의 키로 DES를 3회 반복하여 사용하는 Triple DES를 사용하였읍니다. 3DES는 속도가 DES보다 3배 정도 느리다는 단점에도 불구하고, 기존의 DES를 이용하여 쉽게 구현되며 DES의 안전성 문제를 해결하는 장점으로 인하여 여러 표준에서 사용되었습니다. 최근 차세대 미국 표준인 AES가 확정됨에 따라 앞으로 점차적으로 그 사용범위가 줄어들 것으로 보입니다. 

1998년을 기점으로 표준 기한이 만료된 DES를 대체할 블럭암호의 필요성에 따라, NIST에서는 향후 정부와 상업계에서 사용할 수 있는 강한 암호화 알고리즘 표준으로 AES(Advanced Encryption Standard)의 개발을 추진하였읍니다. NIST는 3DES보다 더 효율적이고 안전하며 로얄티가 없어야 하는 등을 만족하는 알고리즘을 공모하고, 3년여에 걸쳐 15개의 후보 알고리즘을 공개적으로 평가하여, 2000년 10월 2일 최종 AES 알고리즘을 선정/발표하였읍니다. AES에 채택된 블럭암호는 Daemem과 Rijmen에 의해 개발되고 RIJNDAEL로 명명된 알고리즘으로 DES와 Triple DES를 대신해서 새로운 업계 표준으로 자리잡게 될 것입니다. 2001년 2월, NIST는 AES에 대한 draft 문서를 발표하고 표준화를 준비중에 있습니다. 

*DES :   *3DES :   *AES :
-표준문서(pdf) (local copy)   -표준문서(pdf) (local copy)   -Draft 문서(pdf) (local copy)
-관련정보(htm)   -관련정보(htm)   -관련정보(htm)
-소스코드(zip)   -소스코드(zip)


'Security' 카테고리의 다른 글

All in one 정리  (0) 2017.01.08
Kerberos  (0) 2017.01.08
스푸핑  (0) 2017.01.08
icmp flood 서버단에서 예방하기  (0) 2017.01.08
해킹, 바이러스 감염 시 대응 요령  (0) 2017.01.08

우리는 스파이 첩보 영화에서 주인공이 자신을 노출시키지 않기 위해 남의 신분으로 위장하는 경우를 자주 볼 수 있다. 이때 주로 사용하는 방법이 주민등록증, 운전면허증 등의 신분증을 위조하거나 신체적인 특징인 얼굴, 지문, 목소리 등을 변조하는 것이다. 이 모든 것들이 특정 사람을 인식하는 방법을 우회 통과하기 위한 방법이다. 

마찬가지로 네트워크 상에서도 악의적인 혹은 비밀스러운 활동을 시도하려는 사람들은 먼저 자기 자신을 감추는 방법을 생각하게 된다. 다만 네트워크 상에서 해당 사용자(혹은 해당 호스트)를 식별하는 정보는 IP 주소, DNS 이름, Mac 주소, 이메일 주소 등을 사용한다. 

스푸핑 공격(Spoofing Attack)은 바로 자기 자신의 식별 정보를 속여 다른 대상 시스템을 공격하는 기법이다. 네트워크 상의 공격자는 TCP/IP 프로토콜 상의 취약성을 기반으로 해킹 시도시 자신의 시스템 정보(IP 주소, DNS 이름, Mac 주소 등)를 위장하여 감춤으로써 역추적이 어렵게 만든다. 이러한 스푸핑 공격은 패킷 스니퍼링이나 서비스 거부 공격, 세션 하이재킹(Session Hijacking) 등의 다른 여러가지 공격을 수행 가능하게 한다. 

이번 회에서는 스푸핑 공격의 종류를 알아보고, 해당 공격이 어떤 것인지 간략하게 알아보도록 하겠다. 스푸핑 공격의 종류를 알아보면 다음과 같다. 어떤 정보를 속이느냐에 따라 세분화될 수 있다. 

스푸핑 공격의 종류 

① IP 스푸핑 

IP 스푸핑은 말 그대로 IP 정보를 속여서 다른 시스템을 공격하는 것이다. IP 스푸핑을 통해 서비스 거부 공격(TCP Syn flooding, UDP flooding, ICMP flooding)을 수행할 수도 있으며, 공격대상 컴퓨터와 서버 사이의 연결된 세션에 대해서 세션 끊기도 가능하다. TCP/IP 상의 프로토콜 취약성은 1985년 Robert T. Morris의 논문 “A Weakness in the 4.2 BSD Unix TCP/IP Software”에 업급이 되었으며, 특히 희대의 해커 케빈미트닉은 실제 해킹에서 IP 스푸핑 공격을 통해 모토롤러, 선마이크로시스템즈, NEC, 노벨 등의 컴퓨터 전산망에 침투, 소프트웨어 및 각종 자료 등을 훔친 혐의로 1995년 체포되었다. 

케빈 미트닉은 정확하게는 TCP Syn flooding + TCP 순서 번호 예측(TCP Sequence Nubmer Guessing) 

+ IP 스푸핑을 사용하였다. 이는 클라이언트와 서버와의 통신 사이에 해커 컴퓨터가 끼어들어 클라이언트를 TCP Syn flooding 서비스 거부 공격으로 전혀 반응하지 못하게 한 후, 해커가 이 클라이언트인 것으로 가장하여 서버와 통신하는 기법이다. 이러한 공격은 TCP/IP 프로토콜의 문제점인 TCP 순서 번호 생성이 매초당 일정하게 증가한다는 것과 호스트에 대한 인증시 IP의 소스 주소만을 사용한다는 것으로 인하여 가능하였다. 

순서 번호는 연결 지향형 프로토콜인 TCP 프로토콜에서 두 호스트 간의 패킷 전달이 손실 없이 이루어졌는지 체크하기 위한 일종의 패킷 번호표이다. 해커는 일단 클라이언트를 TCP Syn flooding 공격으로 봉쇄한다. 이후 서버의 순서번호를 예측하여 IP 스푸핑된 위조 패킷을 발송함으로써 서버를 속여 침투하는 것이다. IP 기반의 인증만을 제공하는 Unix의 rlogin, rsh 등의 r 계열 서비스들은 이러한 IP 스푸핑 공격에 취약할 수 밖에 없다. 


② APR 스푸핑 

ARP 프로토콜은 32bit IP 주소를 48bit의 네트워크 카드 주소(Mac Address)로 대응시켜 주는 프로토콜이다. 우리가 실제로 IP 주소를 통해 네트워크 연결을 시도하면 TCP/IP에서는 해당 IP에 해당하는 네트워크 카드 주소를 찾아 연결하게 된다. 이러한 IP 주소와 네트워크 카드 주소의 대응 테이블은 스위치나 기타 네트워크 장비 및 사용자 컴퓨터에서 arp cache 테이블이라는 곳에 위치하게 된다. 

해커가 이 테이블 상의 정보를 위조하게 되면 공격 대상 컴퓨터와 서버 사이의 트래픽을 해커 자신의 컴퓨터로 우회시킬 수 있다. 우회된 트래픽으로부터 해커는 패스워드 정보 등 유용한 정보를 마음껏 획득할 수 있다. 


③ 이메일 스푸핑 

이메일 발송시 송신자의 주소를 위조하는 것이다. 간단한 방법으로는 이메일 송신자 From 필드에 별칭(alias) 필드를 사용할 수 있다. 이메일 발송시 별칭을 설정한 경우에는 별칭 주소로 이메일이 발송된다. 이러한 경우 메일을 받아보는 사람은 실제 이메일 송신자가 아닌 별칭 필드만을 확인하는 경우에는 이메일의 송신자가 별칭 필드에서 온 것으로 알게 된다. 

요즘 들어서 극성인 대량의 스팸 메일과 바이러스 감염 메일은 송신자의 주소가 아예 존재하지 않는 이메일 주소를 사용한다. 또한 이메일을 발송한 메일 서버 또한 직접적인 메일 발송 서버가 아닌 중계 서버이므로 메일을 발송한 자를 추적하기란 쉽지 않다. 


④ DNS 스푸핑 

DNS 프로토콜은 인터넷 연결시 도메인 주소를 실제 IP 주소로 대응시켜 주는 프로토콜이다. 인터넷 연결시 사용하는 DNS 서버가 IP 주소를 찾아달라는 요청을 받았을 때, 자기 자신의 도메인이 아닌 주소에 대해서는 보다 상위 단의 DNS 서버로부터 재귀적(recursive)인 방식으로 IP 주소를 찾아 알려준다. 

만약 해커가 어떤 도메인의 DNS 컴퓨터를 장악하여 통제하고 있다면 최종적으로 얻어진 IP 주소는 원래 사용자가 찾아가고자 하였던 홈페이지가 아닌 다른 홈페이지로 연결되게 된다. 이는 요청을 발송했던 DNS와 응답을 주는 DNS 사이의 트래픽을 해커가 스니퍼링함으로써 Query ID라는 값을 통해 해커의 사이트 IP를 최종 응답으로 넘겨주도록 하는 것이다. 

사용자가 쇼핑몰을 이용하고자 하였다면 해커에 의해 조작된 홈페이지 내에서 자신의 아이디와 필드, 신용 카드 정보를 기입함으로써 개인 정보를 탈취당할 수 있다. 위와 같은 스푸핑 공격들은 실제로 인터넷 상의 툴로써 공개가 되어 있으며 여러가지 다른 복합적인 공격과 같이 사용될 수 있다. 

그러나 각각의 공격 방법에 있어서 제약 및 전제 사항이 있으므로 모두 완벽하게 성공되지는 않는다. 스푸핑 공격은 패킷 필터링 접근 제어와 IP 인증 기반 접근제어, 취약점 서비스 사용의 제거, 암호화 프로토콜의 사용을 통해서 방어가 가능하다. 인터넷 상에 떠돌아다니는 정보는 항상 안전한 것이 아니므로 스푸핑 공격과 같은 것을 통해 언제라도 위조되었을 가능성도 있을 수 있음을 간과해서는 안되겠다.

'Security' 카테고리의 다른 글

Kerberos  (0) 2017.01.08
DES/3DES/AES  (0) 2017.01.08
icmp flood 서버단에서 예방하기  (0) 2017.01.08
해킹, 바이러스 감염 시 대응 요령  (0) 2017.01.08
암호학  (0) 2017.01.08

ping 을 이용한 DOS 공격 막는 방법을 적어 보자. kernel 에서 ping의
응답 즉, ICMP ECHO 를 on을 시키느냐 off 를 시키느냐에 따라 ping이
되느냐 안 되느냐이다. 보통 ping 을 막는 방법으로 많이 나오는 방법
은 kernel의 icmp_echo_ignore_all 값을 1로 만들어 주는 방법이 주로
알려져 있다.

하지만 kernel document 에 들어 있는 문서를 자세히 보면 ping 을 이
용한 dos 공격은 broadcast와 multicast service 의 패킷을 넘치게 하
는 공격인 것이다.

즉 ping을 다 막을 필요는 없고 broadcast 와 multicast 쪽의 ping 만
막으면 되는 것이다. 아래는 kernel 문서의 원문이다.

icmp_echo_ignore_all and icmp_echo_ignore_broadcasts

Turn on (1) or off (0), if the kernel should ignore all ICMP ECHO
requests, or just those to broadcast and multicast addresses.
Please note that if you accept ICMP echo requests with a
broadcast/multicast destination address your network may be used
as an exploder for denial of service packet flooding attacks to
other hosts.

만약 모든 ICMP ECHO 요청을 커널이 무시하게 하거나, ICMP ECHO 요청
중 broadcast 와 multicast 주소에만 무시하게 할때 1의 값은 무시, 0
의 값은 return 을 하게 된다. 만약 boardcast/multicast 주소의 ICMP
ECHO 요청을 수용하게 한다면, network 가 다른 호스트로 denial of
service(DOS) packet flooding 공격을 하는데 이용이 될수가 있다.

즉 icmp_echo_ignore_all 의 모든 값을 1로 할 필요는 없다는 것이다.
즉 ping 이라는 것은 내가 외부에서 나의 host 가 살아 있는지의 판단
여부도 되기 때문이다. 그러므로

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

을 이용하는 것 보다는

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

를 이용하는 것이 더욱 낳다. 부팅시 마다 적용을 시키고 싶다면
rc.local 에 위의 내용을 넣어 주도록 한다.

RedHat 6.2 버젼 이상의 사용자들은 sysctl 을 kernel 값을 관리 할수
있다. 일단 /etc/sysctl.conf 에 다음의 값을 넣는다.

net.ipv4.icmp_echo_ignore_broadcasts = 1

파일을 저장한 후에 sysctl -w 명령을 실행하고 나서

sysctl -a | grep ignore_boradcasts

명령을 실행하면 값이 변경이 되었는지 확인을 할수가 있다. 다음 부터
는 부팅시 /etc/sysctl.conf 의 값이 적용이 된다.

'Security' 카테고리의 다른 글

DES/3DES/AES  (0) 2017.01.08
스푸핑  (0) 2017.01.08
해킹, 바이러스 감염 시 대응 요령  (0) 2017.01.08
암호학  (0) 2017.01.08
사용자 인증  (0) 2017.01.08

1) 바이러스 감염이 의심되는 현상


①시스템을 부팅할 때 시스템 관련 파일을 찾을 수 없다고 에러메시지가 나오고 윈도우즈가 실행되지 않을 경우 
②이유 없이 프로그램 실행속도가 저하되고 시스템이 자주 다운될 경우 
③PC 이용중 비정상적인 그림, 메시지, 소리 등이 나타날 경우 
④사용자 의사와 관계없이 프로그램이 실행되거나 주변장치가 스스로 움직일 경우 
⑤알 수 없는 파일이 생길 경우, 특히 웜은 공유폴더를 이용한다. 

 

메신저 사용 안할때 끄기 포트가 열려 있어 공격 될수있다.

P2P eDonkey2000, 프루나,  사용 안할때 꺼놓는다.

1일에 1번 스파이 악성코드 발견시 제거, 스파이웨어 freeware도 치료 가능하지만

신종악성코드 치료가 불가능하다  안철수 SPYZERO 2.0 추천한다. 정품을 사서 설치해도

아깝지 않다.

 

인터넷 뱅크 할때  공인증확인서  하드 디스크 안에  저장을 하는데 메우 위험하다

USB 메모리 이동디스크 에서 저장 해서 인터넷뱅크을 하면 도욱 안전하다.

 

방어벽이 설치 되어 있으면 더욱 안전하다. ZoneAlarm PRO 추천한다.

여기자료실에서 받을수 있다.

 

 


A.해커 다른 PC에 대한 공격을 막기 위해 네트워크를 차단한다. 네트워크를 차단하는 방법은 컴퓨터 후면에 네트웍카드(NIC)로 연결된 선을 뽑아주면 된다. 

그 다음 V3에서 SCAN 하십시요 

A. 패스워드 보안 (꼭 필요한 작업)  초보자 (주의) 
모든 계정에 안전한 패스워드 사용 
취약한 패스워드는 패스워드 추측 공격에 약하기 때문에 패스워드는 알파벳과 특수문자를 포함한 8자 이상의 복잡한 패스워드를 사용하고, 최소 1일에서 
최대 42일의 주기로 패스워드를 변경하는 것이 바람직하다. 

A-1. 공유 제한 (꼭 필요한 작업) 
불필요한 공유폴더의 제거 
불필요한 공유폴더는 인터넷 웜의 침입을 허용할 수 있으며, 자료유출의 통로가 되므로 삭제한다. 


B.Windows 최신 패치 설치 
Windows 시스템과 Explorer, Outlook, RPC 등의 Windows 응용프로그램에는 버그들이 존재하며, 이러한 버그들은 해킹공격에서 이용될 수 있으므로 최신 패치가 나오면 항상 업데이트하도록 한다. 

악성 프로그램은 일반적으로 제작자가 의도적으로 사용자에게 피해를 주고자 만든 프로그램으로써 컴퓨터 바이러스, 웜, 트로이목마등으로 분류한다. 

1.바이러스: 자기 복제 능력을 가지며 감염 대상 코드의 실행 구조를 변경하거나 내부 구조를 변경하여 대상 코드의 수행 전후에 바이러스가 실행될 수 있도록 변경하는 코드들의 집합을 가진다. 바이러스의 부작용은 메시지 출력, CMOS 메모리 데이터 삭제로부터 하드디스크 정보 파괴, 플래시메모리 정보 파괴 등으로 피해 규모가 커지고 있다. 

2.웜: 실행 코드 자체로 번식하는 유형을 말하며 주로 PC상에서 실행되는 것을 의미한다. 웜과 바이러스의 큰 차이점은 감염 대상을 가지고 있는가에 따라 구분된다. 바이러스는 감염 대상을 가지고 있지만 웜은 감염 대상을 가지지 않는다. 

3.트로이목마: 바이러스와 달리 자기 복제 능력이 없으며 악의의 기능을 가지는 코드를 유틸리티 프로그램에 내장하여 배포하거나, 그 자체를 유틸리티 프로그램으로 위장해 배포되며, 특정한 환경이나 조건 혹은 배포자의 의도에 따라서 사용자의 정보 유출이나 자료 파괴와 같은 피해를 준다. 

이러한 악성 프로그램은 최근에는 잘 발달된 네트웍을 이용하여, 웜 형태로 공유폴더, E-mail, MSN을 이용하여 전파하고, 다른 파일을 감염시키기도 하며, 시스템의 취약점을 이용하는 해킹기술을 접목하는 방향으로 발전하고 있다. 피해 시스템 자신도 모르는 사이에 또 다른 가해자가 될 수도 있다는 것이다. 이러한 악성 프로그램을 예방하기 위해서는 백신 제품을 설치하고, 올바르게 설정하여 
사용하는 것이 무엇보다 중요하다. 다음과 같은 방법으로 백신제품을 설정하고 사용하도록 한다. 


4.백신의 주기적인 업데이트 
새로운 컴퓨터 바이러스는 계속해서 만들어지고, 유포되고 있다. 이에 대응하여 백신회사는 일주일을 주기로 이러한 새로운 바이러스에 대해서 백신을 업데이트하고 있다. 또한 신속하게 확산되고 있는 바이러스가 신고되면, 긴급업데이트를 실행한다. 따라서 백신 프로그램을 다음과 같이 주기적으로 업데이트 하도록 설정해야 하며, 위험한 바이러스가 출현한 경우, 즉시 업데이트를 실행하는 것이 필요하다. 

netstat -na 

5.네트워크 스캔 대상 포트 

FTP 21 
Kerberos 88 
Imap 143 
Telnet 23 
Linuxconf 98 
Sendmail 25 
NetBIOS 137,139, 
DNS 관련 53 
RPC 111,635,32771,32772,32773 
117 
POP 109 
(POP2,8), 110 
(POP3, 53) 61 

백도어/트로이잔 1243(Sub7) 12 
12345(NetBus) 34 
1524(ingreslock) 6 
2222(eggdrop) 11 
Sscan 23/110/111/31337/2766/5/7/600/1524/2222 90 
기타 1/2/3/4/5/… 16

 

 방화벽을 이용한 P2P 프로그램 차단 

P2P 프로그램은 대부분 사용하는 Port가 지정되어 있다. 최근에 나오는 프로그램들은 Port를 변경할 수 있거나, 동적으로 할당되어 쓰이긴 하지만, 기본적으로 사용되는 포트를 차단하는 것만으로도 많은 도움이 될 것이다. 

그리고 중앙에서 사용자 인증을 위해 쓰이는 서버 IP를 차단하는 방법으로도 해당 P2P 프로그램의 사용을 막을 수 있다. 

다음 표는 각 P2P 프로그램이 사용하고 있는 포트를 정리해 놓은 것이다. 이를 활용하여 방화벽에서 P2P에서 사용되고 있는 포트를 차단할 것을 권고한다. 


[참고1] P2P 프로그램이 사용하는 네트워크 포트 

서비스명프로토콜포트
eDonkeyTCP4661
4662
4642
UDP4672
4665
iMashTCP5000
BitTorrentTCP6881
6889
소리바다 V.2UDP22321
7674
7675
WINMXTCP6699
UDP6257
Direct-ConnectTCP411-412
UDP411-412
KaZaATCP1214
Guntella-MorpheusTCP6346-6347
UDP6346-6347
GuRuGuRuTCP9292
8282
31200
파일 구리TCP9493
Madster-AimsterTCP23172
9922
HotLineTCP5497
5498
5500-5503
UDP5499
V-ShareTCP8404
ManiacTCP2000
UDP2010
TCP2222
MiRCTCP6667
6665-6670
7000
ShareshareTCP6399
UDP6777
BlusterUDP41170
GoToMyPcTCP8200
NapsterTCP6600-6699
4444
5555
6666
7777
8888
8875



[참고2] 메신저 프로그램 사용 포트 

서비스명서버포트설명
MSN64.4.130.0/24
207.46.104.0/24
207.46.106.0/24
207.46.107.0/24
207.46.108.0/24
207.46.110.0/24
TCP 1863 ,801863접속 시도 후 차단 되면 80 접속 시도
TCP 6891-6900파일 전송
UDP 6901음성채팅
UDP1863,5190Microsoft Network Messenger
  
Yahoo216.136.233.152/32
216.136.233.153/32
216.136.175.144/32
216.136.224.143/32
66.163.173.203/32
216.136.233.133/32
216.136.233.148/32
66.163.173.201/32
216.136.224.213/32
TCP 5050,51015050 접속 시도 후 차단 되어 있으면 Port 계속 변경
  
TCP 5000-5001음성채팅
  
  
TCP 5100화상채팅
  
  
Nate On203.226.253.75/32
203.226.253.135/32
203.226.253.82/32
TCP 5004-5010기본 포트 5004-5010 접속 시도후 차단되어 있으면 Port를 계속 변경
TCP80,83,7003웹 컨텐츠 및 문자 보내기
Daum211.233.29.78/32TCP 8062 
SayClub211.233.47.20/32  
AOL TCP 5190AOL Instant Messenger Also used by: ICQ
UDP 4000ICQ_locator
Dreamwize211.39.128.236/32
211.39.128.184/32
TCP 10000 
버디버디 TCP 810 
TCP 940 
TCP 950 
케이친구 TCP 7979 
천리안 TCP 1420 
TCP4949, 8989파일 송수신
ICQ TCP 5190 
UIN TCP 8080 
Genile TCP 10000 



'Security' 카테고리의 다른 글

스푸핑  (0) 2017.01.08
icmp flood 서버단에서 예방하기  (0) 2017.01.08
암호학  (0) 2017.01.08
사용자 인증  (0) 2017.01.08
FTP Active/Passive 정리  (0) 2017.01.06

1. 암호화 시스템의 핵심 요소는 암호화 알고리즘, 암호화 키 그리고 암호화 키의 길이 이다.

2. DES는 개인키를 사용하여 데이터를 암호화하는 대칭키 암호알고리즘이다. DES는 각 64비트 데이터 블록에 56비트 길이의 키를 적용한다. 이 과정은 여러 가지 모드에서 실행될 수 있으며, 16번의 연산이 수반된다. DES에는 72,000,000,000,000,000 (72천 조)개 이상의 암호키 사용이 가능하다. 주어진 각 메시지의 암호를 위한 키는 이렇 게 막대한 양의 키 중에서 무작위로 선택된다. 다른 개인키 암호화 방법과 마찬가지 로 송신자와 수신자 둘 모두는 동일한 개인키를 알고 사용해야만 한다.

DES는 1977년에 IBM에서 발명하였으며, 미국 국방부에 의해 채택되어, ANSI X3.92와 X3.106 표준 및 미국 연방정부 FIPS 46과 81 표준에 정의되어 있다. 이 암호화 알고 리즘이 비우호적인 국가에 의해 사용될 수 있다는 염려 때문에 미국 정부는 암호화 소프트웨어의 수출을 막고 있다.

3. Diffie-Hellman 알고리즘은 비밀키(Secret-Key)를 공유(키 교환)하는 과정에서 특정 
공격에 취약할 가능성이 존재한다. 다음 중 Diffie-Hellman 알고리즘에 가장 취약한 
공격이라 할 수 있는 것은

 

4. 서버와 사용자간에 상호인증이 이루어지면 안전한 통신 채널이 생성되지만, 중재자 공격으로 통신 채널에서 전송되는 데이터를 가로챌 수 있다. 중재자 공격은 프로토 콜 수행의 흐름을 조작하여 수행하는 공격 방법이다. 예를 들어 프로토콜 시작 단계 에서 B는 C에게 A로 가장하여 접속을 하고, A로부터 받은 데이터를 이용하여 C에게 접속을 한다. 그렇게 되면 C는 A가 접속을 했다고 생각하지만, 실제로는 B가 접속한 것이다. 이와 같이 중재자 공격은 통신 중간에서 다른 사람인척 위장을 하여 공격하 는 방법이다.

 

5. 아래의 각 암호 방식 중 암호화의 강도가 가장 높은 것은 혼합 암호(Product cipher) 이다.

o 전치 암호(Transposition Cipher) - 글자를 바꾸지 않고 놓인 위치를 변경하는 방 법으로 ‘Permutation Cipher‘라 부르기도 한다.
o 대치 암호(Substitution Cipher) - 각각의 글자를 다른 글자에 대응시키는 방법 
o 혼합 암호(Product Cipher) - 대치 암호와 전치 암호를 같이 사용

 

6. 암호화와 복호화를 동일한 키를 사용하는 암호화 방식을 대칭키/비밀키/관용키 암호 화 방식이라고 한다. 암호화와 복호화 시 서로 다른 키를 사용하는 방식은 공개키/비 대칭키 암호화 방식이라 한다. 

 

  ▪ 블록 암호 알고리즘
             -64비트 : DES, 3DES, DESX, RC5, BLOWFISH, CAST128, IDEA, SAFER , RC2 등
             -128비트 : SEED, CRYPTON, CAST256, RC6, TWOFISH, RIJNDAEL, MARS, SERPENT 등

  ▪ 스트림암호 알고리즘 : RC4, SEAL 등
  ▪ 해쉬 함수 : MD5, SHA1, SHA256, SHA384, SHA512, RMD128, RMD160, RMD256, 
                 RMD320, HAS160, TIGER 등

8. 블록 암호화 알고리즘의 운영모드에 대한 설명이다.

-ECB: 평문 블록은 각각 독립적으로 암호화되어 암호문 블록을 생성한다.
-CFB: 독립적으로 움직이는 sequence data 블록 S가 존재하여 각각의 평문 블록은 이 전의 S(i-         l)를 암호화한 S(i)와 XOR되어 암호문 블록을 생성한다.
-OFB: 이전의 암호문 블록은 Output되는 동시에 암호화되어 현재의 평문과 XOR된 후 에 암호문         블록을 생성한다.

  

9. 비대칭키 암호방식과 대칭키 암호방식을 비교한 것이다.

구분

비대칭키 암호방식(Asymmetric-key)

대칭키 암호방식(Symmetric-key)

키의 상호관계

암호화키 ≠ 복호화키

암호화키 = 복호화키

암호화키

공개

비밀

복호화키

비밀

비밀

암호알고리즘

공개

비밀 또는 공개

대표적 알고리즘

RSA

Vernam/DES

비밀키 전송

불필요

필요

키 개수

2n (비밀보관, 자신의 비밀키)

n(n-1)/2 (비밀보관, 통신상대자 수)

안전한 인증

용이

곤란

암호화 속도

저속

고속

경제성

낮음

높음

전자서명

간단하게 구현

복잡(추가적인 구현 필요)

 

10. 대칭키 또는 공개키 암호화에서 사용되는 키 관리에 대한 기술

o Key Establishment Protocol- 대칭키 암호화 또는 공개키 암호화에 사용되는 키 전 송 메커니즘으로 shared secret를 보안 목적으로 사용자 A, B(또는 다자간에)가 이용 할 수 있도록 해주는 기술

0 Key Transport Protocol - 사용자 A가 secret value를 사용자 B에게 비밀리에 전해 주는 키 설정 기술

o Key Agreement Protocol - shared secret를 사용자 A, B가 분배된 정보를 용하 여 얻는 키 설정  기술

11.은닉 서명(Blind Signature)은 기본적으로 임의의 전자서명을 만들 수 있는 서명자 와 서명 받을 메시지를 사용하는 사용자로 구성되어 있는 서명 방식으로, 사용자의 신원과 (메시지, 서명)쌍을 연결시킬 수 없는 특성을 유지할 수 있는 서명이다. 전자 화폐의 가치를 증명해주기 위하여 화폐 발급자가 사용자의 정보를 볼 수 없는 상태에 서 서명을 해줄 수 있게 하는 새로운 서명 방식이다.

서명자가 자신이 서명하는 메시지를 알 수 없는 형식으로 봉투 내의 내용을 보지 않 고 겉면에 서명을 하면 내부의 잉크에 의해 서류에 서명이 되는 원리를 이용하는 방 식

12. 전자화폐 프로토콜의 주요 요구사항은 양도 가능성, 이동성 그리고 익명성(불추적성) 이며, 그 외 분할이용 가능성, 간편성, 안전성 그리고 위조 불가능 등의 요구 사항 을 만족하여야 한다.

 

o비밀 공유는 비밀을 여러 조각으로 나누어 비밀을 관리하려 할 때 비밀을 분배하는 시점에서 나누어진 비밀 조각 각각이 원래 비밀의 일부임을 확인할 수 있는 방법을 제공한다(허위 또는 조작된 비밀 조각이 아니라는 것을 증명).

o은닉 서명은 내용은 보여주지 않고 서명을 받기 위해 사용되며 주로 전자 화폐를 발 급할 때 돈이 누구에게 발급되었는지 알 수 없도록 하기 위해서 사용된다.

 o영지식 증명은 어떠한 사실은 알고 있는 경우 사실에 대한 정보는 전혀 주지 않으면 서 자신이 그 사실을 알고 있다는 것을 증명하는 방법으로 네트워크 상에 흘러 다니 는 정보의 양을 0(zero)에 가깝게 만드는 방법으로 활용된다.

 o동전 던지기는 일방향 해쉬 함수를 이용하여 상대방의 부정을 확인할 수 있도록 하 며 도박성이 있는 인터넷 포커 고스톱에 응용할 수 있다.

 

13. 이중 서명(Dual Signature)은 거래자의 익명성을 보호하기 위하여 사용자의 지불정보 를 상점에 숨기고, 주문정보는 지불게이트웨이(PG)에게 숨기기 위하여 전자 지불 시 스템에서 사용하는 전자서명 방식이다.

구매자는 구매요청정보과 지불정보에 대한 해쉬값을 각각 구하고 그 두개의 해쉬값 을 묶은 값에 대해 또 한 번 해쉬한 뒤, 그 값을 서명함으로써 구매요청정보와 지불 정보를 서로 연관시켜주는 방법이다. 구매자는 마지막으로 이 최종 해쉬값과 지불정 보의 해쉬값, 구매요청정보의 해쉬값에 대해 한 번 더 서명한 후에 상인에게 전달한 다. 상인은 이 정보들로부터 구매요청정보를 복구하여 볼 수 있지만 지불정보를 보진 못 한다. 단지 두 정보 간의 연관성만을 확인할 수 있다. 마찬가지로 지불게이트웨이는 지불정보는 복구하여 볼 수 있지만 구매요청정보는 볼 수 없으며 단지 두 정보 간의 연관성만을 확인할 수 있다.

14. 은닉 서명은 사용자의 익명성과 송신자의 익명성을 보장함으로써 기밀성 보장을 가능 하게 하는 특수 전자서명이다. 사용자의 익명성은 직접 서명한 사용자가 서명발급 이 후에 전자서명(메시지와 서명의 쌍)의 유효성을 확인할 수 있으나, 자신이 언제 누구 에게 발행했는지는 확인할 수 없도록 하며, 송신자의 익명성은 검증자가 전자서명 내 역(메시지와 서명의 쌍)의 유효성을 확인할 수 있으나, 송신자의 신분을 확인할 수 없도록 하여 송신자의 익명성을 보장한다

 

15. 전자투표 프로토콜의 요구사항에 대한 설명

▪ 완전성(Verifiability): 모든 유효투표가 정확하게 집계되어야 하며, 최종 집계에서 정당한 투표가 제거되지 않아야 한다.

▪ 건전성(Soundness): 부정한 투표자에 의해 정당한 투표인의 투표가 방해되지 않아야 한다

▪ 기밀성(Privacy): 투표의 결과로부터 투표자의 신분을 확인할 수 없어야 한다(투표자의 익명성 보장).

 

▪ 단일성 또는 이중투표 불가성(Un-reusability): 정당한 투표자가 두 번 이상 투표에 참여할 수 없어야 한다. 즉 한번만 투표할 수 있어야 한다.

▪ 검증성(Verifiability)은 투표 결과를 속일 수 없도록 누구라도 투표 결과를 검증할 수 있어야 한다는 속성이다. 또 한 추가적으로 아래와 같은 사항이 요구된다.

▪ 적임성 또는 선거권(Eligibility): 투표 권한을 가진 자만이 투표할 수 있어야 한 다.

▪ 공정성(Fairness): 투표의 중간결과가 투표에 영향을 주지 않아야 한다. 전자투표 를 위한 암호 응용 프로토콜의 요구사항은 7가지이다.

16. 인증서를 이용한 공개키의 효율적인 분배 방법을 정의하기 위하여, ITU에서 인증서 에 대한 기본 형식과 데이터 형식을 정의한 규격이 X.509이다.

17. X.509는 전자 인증인 발생인과 수령인을 구별하고 단지 루트 CA만 자신의 승인한 인 증을 발행하게 된다

18. 전자서명이 제공하는 보안 항목은 다음과 같다.

             ▪ 기밀성(Confidentiality) 
             ▪ 무결성(Integrity) 
             ▪ 인증(Authentication) 
             ▪ 부인방지(Non-repudiation)

19. 암호키 복구 기술은 크게 키 위탁 방식과 캡슐화 방식 및 제 3 기관 방식으로 나눌 수 있다.

20. PKI 시스템을 구성하는 요소로는 인증서를 발행하고 취소하는 인증기관(CA : Certification Authority), 인증서 등록 및 사용자 신원 확인을 대행하는 등록기관 (RA : Registration Authority), 인증서 및 인증서 취소 목록을 저장하고 사용자에 게 서비스하는 디렉터리(Directory), 그리고 인증서를 신청하고 인증서를 사용하는 사용자(User)로 분류될 수 있다.

21. PMI(Privilege Management Infrastructure, 권한관리 기반구조)는 기업 단위에서 특 정 데이터 접근 권한을 차별적으로 부여해주기 위한 것으로, 특히 기업 외부망 접근 까지 관리할 수 있어 PKI(공개키 기반구조)를 보완하는 새로운 보안 인프라로 각광 받고 있다.

 

22. DRM이란 전자 서적(e-book), 음악, 비디오, 게임, 소프트웨어, 증권 정보 그리고 이 미지 등의 각종 디지털 컨텐츠를 안전하게 보호하기 위한 것으로, 보호된 컨텐츠를 사용함으로써 저작권 소유 당사자에게 발생하는 이익을 관리하여 주는 상품과 서비스 를 말한다.

23. 메시지의 인증은 메시지 내용의 불법 감청 방지(기밀성), 메시지의 변형 여부 탐지 (무결성) 그리고 송신자의 송신 입증(부인방지)을 목적으로 한다.

24. 전자서명은 공개키 암호화방식을 이용하여, 전송되는 메시지의 특정 데이터를 자신 의 개인키로 암호화해서(서명해서) 수신측에 보내고, 수신측은 송신측의 공개키로 복 호화하여 정상적으로 메시지를 해독함으로써, 전송되는 메시지의 기밀성, 무결성, (그리고) 부인방지(서명)를 보장하기 위한 암호기술이다.

25. PMI는 AC(Attribute Certificate)의 발급, 저장, 유통을 제어하는 권한관리 기반구조 로, PKI(공개키 기반구조)와 유사한 형태이다. PKI와 PMI의 구성요소의 비교는 다음 과 같다.

26. 키 분배 센터(KDC)는 통신하는 양측이 키를 서로 공유하지 않고 키 분배 센터와 별 도의 키를 공유함으로써, 키 정보의 보안 및 관리를 위한 메커니즘이다. 키 분배 센 터는 키 분배 센터는 자신과 키를 공유하는 객체에게 키를 생성 혹은 취득, 분해하 는 신뢰할 수 있는 별도의 키를 생성하여 공유한다. 인증기관(CA)에서의 키는 인증과 동시에 인증기관에서 등록되며, X.500 디렉터리 시 스템에 사용자 별로 등록되어 배포된다. 인증기관과 키 분배 센터의 차이점은 키를 처리하는 타입에서 가장 큰 차이가 있다.

27. KMI는 암호용 인증서의 안전한 관리 및 발급을 위한 기반 구조로 PKI의 단점(키와 인 증서의 복구 기능)을 보완하여 전자민원행정 서비스에 주로 사용되고 있다.

 

28. PKI의 구성요소는 PAA, PCA, CA, ORA 등으로 구성된다.

▪ PAA(Policy Approving Authority) - 전체 PKI 시스템 내에서 수행되는 정책 설정을 담당한다.
▪ PCA(Policy Certification Authority) - PAA에서 승인된 전반적인 정책을 확장하거 나, 세부화된 정책을 생성한다. 
▪ CA(Certification Authority) - 사용자에게 인증서를 발급하고 다른 CA와의 상호인 증을 담당한다.
▪ ORA(Organization Registration Authority) - 사용자와 CA의 중간 위치에서 사용자 의 인증서 요구를 받고 사용자 신분(인증)을 확인한 후, CA에게 인증서 발급 요청을 한다.

29. 인증서 취소 목록의 내용설명 -최근수정일, 발급자의 서명, 취소이유, 인증기관의 서명, 인증기관의 서명 알고리즘

30. 다음은 PKI 구성 객체 및 구성객체의 기능에 대한 설명이다.

31. 다음은 각 용어에 대한 설명이다.

▪ OCSP(Online Certificate Status Protocol) : IETF 표준화 추진 중 Verisign에서 제 안한 프로토콜로서 실시간으로 인증서의 상태를 확인할 수 있는 클라이언트-서버 모 델의 온라인 메커니즘이다.

▪ IETF의 PKIX: 인터넷 기반의 X.509 인증서를 이용한 PKI 구현에 필요한 항목들을 표 준화한 내용이다.

▪ RSA의 PKCS: PKI 동작을 위한 기본적인 암호 서비스 및 프리미티브들을 정의한 모델 이다.

▪ X.509: X.500 디렉터리에 대한 인증서비스를 기술하는 규약이다

32. 전자서명의 특징

부인방지는 송신자가 메시지를 생성하거나 전송한 사실을 부인할 수 없도록 하는 특성이다. 인증은 신뢰할 수 있는 송신자가 메 시지를 전송하였다는 것을 보장해주는 특성이다. 데이터 무결성은 수신자가 원문 메 시지에 수정을 가하지 못하도록 하기 위해 수정을 하였을 경우 해쉬값이 달라져 원문 의 수정을 식별할 수 있도록 하는 특성이다.

33. 전자서명이 안전하고 유효하기 위해서는 다음과 같은 조건/특성을 만족해야 한다.

▪서명자 인증(user authentication) 조건은 전자서명의 서명자를 누구든지 검증할 수 있어야 한다는 특성이다.
▪부인방지(non-repudiation) 조건은 서명자는 후에 서명한 사실을 부인할 수 없어야 한다는 특성이다. 
▪변경불가(unalterable) 조건은 서명한 문서의 내용을 변경할 수 없어야 한다는 특성 이다.
▪재사용불가(not reusable) 조건은 문서의 서명을 다른 문서의 서명으로 다시 사용 할 수 없어야 한다는 특성이다.
▪위조불가(un-forgeable) 조건은 합법적인 서명자만이 전자서명을 생성할 수 있어야 한다는 특성이다.

34. 전자서명은 송신자의 신원을 인증하고 전송 메시지의 암호화는 기밀성을 보장하기 위 한 방법이다. 이를 위하여 송신자 인증은 송신자의 개인키로 서명함으로써 송신자의 신원을 보장할 수 있으며, 전송메시지의 기밀성은 수신자의 공개키로 메시지를 암호 화하기 때문에 기밀성이 보장된다

35. 워터마킹은 저작권을 보호하고자 하는 대상 미디어(이미지, 오디오, 동영상)에 저작 권 정보를 담고 있는 로고 이미지나 또는 Copyrights, production date, ID 등의 정 보를 삽입하는 기술이다. 삽입된 워터마킹 데이터는 사용자에게 표시되지 않게 원본 이미지에 포함되며 원본 이미지와 동일한 포맷으로 존재하므로 사용자가 이용 시 어 떠한 제한도 통제되지는 않는다.

36. Kerckhoff 원리: 암호해독자는 현재 사용되고 있는 암호방식을 알고 있다는 것을 전 제로 암호해독을 시도한다는 원리이다

37. 현재 미국표준암호는 Rijndael 이다 . 한국은 SEED이다

38. 시도-응답 개인식별 프로토콜은 공격자가 클라이언트와 서버의 통신을 도청한 후 그 정보를 이용해 클라이언트를 가장하여 개인식별 인증을 받을 수 없다

39. 거래인증은 데이터에 관한 유일성과 시각을 추가로 보증하는 메시지 인증으로 유일성 과 시각보증은 전형적으로 적당한 시간 변수의 사용으로 제공된다

40. 증명가능 비밀분산(VSS)은 Shamir의 비밀분산방식을 영지식 증명과 함께 구성하여 불 확정 전송 프로토콜과 함께 암호프로토콜을 설계하는데 융용하게 사용되는 방식으로 일반적인 개념은 어느 한 당사자만이 알고있는 하나의 비밀정보를 여러조각으로 나누 어 다른 사람들에게 공평하게 분배하여 필요시 이를 재구성하여 사용하는 방법이다.

41. 대화형 프로토콜이 대화형 중명시스템이 되기 위해 필요한 조건은 완전성과 건전성이 다.

42. PGP 에서 사용하는 암호알고리즘은 Triple-DES,IDEA,CAST-128 이다.

'Security' 카테고리의 다른 글

icmp flood 서버단에서 예방하기  (0) 2017.01.08
해킹, 바이러스 감염 시 대응 요령  (0) 2017.01.08
사용자 인증  (0) 2017.01.08
FTP Active/Passive 정리  (0) 2017.01.06
ubuntu 환경에 SNORT & BASE & Metasploit 설치  (0) 2017.01.06

1. 사용자 인증 개요

가. 사용자 인증 시 보안 요구 사항


사용자가 정보 자산에 접근을 요청할 때 시스템과 관리자는 사용자의 실재(實在), 사용자의 확인 그리고 권한의 부여와 같은 인증 허가의 일련의 과정을 거치게 된다. 이런 일련의 과정에서 사용자의 식별 및 인증, 사용 권한의 허가 그리고 책임추적성 보장 등의 메커니즘이 요구된다. 다음 [표 3-1]은 사용자 인증 시 요구되는 보안 요구사항이다.

 

[표 3-1] 사용자 인증시 보안 요구사항

 

보안 요구사항

내용

식별
(Identification)

식별은 시스템에게 주체(subject)의 식별자(ID)를 요청하는 과정으로 각 시스템의 사용자들은 시스템이 확인할 수 있는 유일한 식별자(예, Login ID)를 갖는다. 이러한 사용자의 식별자는 각 개인의 신원을 나타내기 때문에 사용자의 책임추적성(Accountability) 분석에도 중요한 자료가 된다. 따라서 개인 식별자는 반드시 유일한 것을 사용해야 하고, 공유되어서는 안 되며 중요한 의미를 갖는 식별자는 사용을 피하는 것이 좋다.

인증
(Authentication)

임의의 정보에 접근할 수 있는 주체의 능력이나 주체의 자격을 검증하는 단계이다. 이는 시스템의 부당한 사용이나 정보의 부당한 전송 등을 방지한다.

인가
(Authorization)

사용자, 프로그램 또는 프로세스에게 허가한 권한을 의미한다. 권한부여를 한다는 것은 누구에게 무엇을 할 수 있거나, 가질 수 있는 권한을 부여하는 과정이다.

책임추적성
(Accountability)

책임추적성은 오늘날과 같은 멀티유저, 멀티태스킹이 지원되는 네트워크 환경에서는 누가, 언제, 어떠한 행동을 하였는지 기록하여, 필요시 그 행위자를 추적 가능하게 하여 책임소재를 명확하게 할 수 있는 기반다.

 

 

2. 사용자 인증 기술

사용자를 인증하는 방법에는 크게 사용자가 알고 있는 것을 이용하는 방법과 사용자가 소유한 것을 이용하는 방법, 사용자의 특성을 이용하는 방법이 있으며, 각각에 따른 사용자 인증 기술은 아래 [표 3-3]과 같다.

 

[표 3-3] 사용자 인증기술

 

인증 기술

내용

아는 것에 의한 인증 (What you know)

ID/Passwd, 암호구, 개인식별번호, S/Key, OTP 등

소유하고 있는 것에 의한 인증(Whay you have)

IC 카드(Smart card), 마그네틱 카드(memory card) 등

개체의 특징에 의한 인증(What you are)

지문, 음성, 망막 측정, 서명 동작 등의 생체적 특성을 이용한 인증

 

가. 패스워드

사용자 인증 기술로 가장 널리 사용되는 방식으로 사용자만이 알고 있는 정보(패스워드)를 입력함으로써 사용자 인증을 수행한다. 이 방식은 가장 간편한 동시에 보안상 가장 취약한 인증 기술로써 다른 사용자가 패스워드를 추측할 수 없도록 하는 것이 보안상 가장 중요하다. 따라서 패스워드 설정 시 타인이 추측하기 어려우나 본인은 기억하기 쉬운 패스워드를 이용하여야 한다.

나. 일회용 패스워드

사용자의 아이디와 패스워드를 인증 기반으로 사용하는 시스템에서의 패스워드는 누출에 대한 많은 위험성과 그것에 대한 해킹 방법들이 많이 알려져 있다. 이러한 문제점을 보안하기 위하여 일회용 패스워드(OTP: One Time Password)가 쓰이기 시작하였다. 일회용 패스워드는 새로운 로그온 시도마다 새로운 패스워드가 사용되며 한번 사용된 패스워드는 더 이상 사용할 수 없다. 따라서 공격자가 통신망에서 현재 사용되고 있는 패스워드를 알아낸다고 하더라도 그 패스워드를 사용할 수 없으므로 보안성이 보장된다.

다. 개인 식별 번호

현금자동지급기나 전자투표와 같은 장치에 대한 접근 관리를 위해 개인에게 부여된 개인 식별번호(PIN: Personal Identification Number)로 일정한 알고리즘을 이용해 생성되며, 일련번호 형태로 제공된다. 패스워드 등과 같이 사용자가 알고 있는 것(What you know)에 의존한 인증 방식이다.

라. 암호구

암호구(Pass Phrase)는 연속적인 문자들의 집합으로 일반적으로 사용하는 패스워드보다는 더 긴 길이의 비트 열로 작성된 패스워드이다. 암호구는 패스워드와 같은 개념으로 사용자가 응용프로그램(예, PGP(Pretty Good Privacy))에 로그온하려면 해당 응용프로그램은 사용자가 비밀키를 써야하는 작업마다 암호구를 입력하라고 요구하는데 이는 비밀키 자체가 이 암호구에 의해서 암호화되어 저장되었기 때문이다. 또한 암호구는 일반적인 패스워드보다는 더 긴 비트 열을 이용하고 암호화기법을 사용하기 때문에 더 안전하다할 수 있다.

마. 메모리 카드

우리가 일반적으로 사용하는 은행의 현금카드나 신용카드 등의 마그네틱 카드도 자기 띠를 이용한 메모리 카드(Memory Card)라 할 수 있다. 메모리 카드는 데이터의 저장은 가능하나 데이터를 처리할 수는 없다. 메모리 카드에는 사용자의 인증을 위한 정보를 포함하고 있으며, 두 가지 이상의 인증 정보를 이용하여 사용자를 인증한다. 예를 들어 메모리카드(what you have)와 개인 식별번호(what you know)를 혼합하여 사용하는 것 등이다.

바. 스마트카드

스마트카드(Smart Card) 또는 칩 카드(Chip Card)는 신용카드 정도의 크기의 플라스틱으로 만들어져 있으며, 데이터를 저장할 수 있는 전자회로가 내장되어 있고, 교통카드와 전자화폐 등 다양한 용도로 사용될 수 있으며 주기적으로 충전하여 재사용할 수 있다. 또한 스마트카드는 메모리 카드보다는 보안성이 강하며 메모리 카드가 제공하지 못하는 다양한 기능의 제공으로 많은 관심과 연구가 진행되고 있다.


사. 생체인식 기술


(1) 생체인식 기술 개요

생체인식 기술이란 살아있는 사람의 신원을 생리학적으로 또는 행동 특징을 기반으로 인증하거나 인식하는 자동화된 기법을 말한다. 생체인식 시스템은 크게 생리적인 특징을 이용한 지문, 얼굴, 망막, 혈관 패턴, 홍채, 손목 또는 손등의 정맥분포 패턴, DNA를 식별하는 방식이 있고 사람의 행위나 형태적 특성을 이용한 서명과 음성인식 등의 방법이 있다.

(2) 생체인식 기술 요구 사항

사용자 인증 시스템으로써 생체인식 기술에 요구되는 생체의 특성은 다음과 같다. o보편성(Universal) : 누구나 가지고 있는 생체의 특성을 이용하여야 한다. o유일성(Unique) : 각 개인마다 고유한 특성이 있어야 한다.o영속성(Permanent) : 변하지 않고 변경이 불가능해야 한다.o정량성(Collectable) : 생체인식 시스템의 센서에 의한 획득과 정량화가 용이해야 한다.생체인식 기술의 정확성을 측정하는 기준은 다음 [표 3-4]와 같다.

 

[표 3-4] 생체인식 기술 정확성 측정기준

 

구분

내용

잘못된 거부의 비율
(False Rejection Rate; FRR, 또는 Type I

- 시스템에서 인식된(접근허용) 인가된 사용자와 인식되지 못한 사용자간의 측정율(False on-Match Rate)

- 허가된 사용자가 시스템의 오류로 인한 접근 거부되는 비율

잘못된 허용의 비율(False Acceptance Rate; FAR, 또는 Type II)

- 시스템에서 잘못 인식된 비인가 사용자와 인식하지 못한 사용자간의 측정율(False on-March Rate)

- 허가되지 않은 사용자가 시스템의 오류로 인한 접근 허용되는 비율

FRR과 FAR의 교차점
(Crossover Error Rate; CER)

- 잘못된 거부의 비율(FRR)과 잘못된 허용의 비율(FAR)의 교차점

등록실패율
(Failure to Enroll Rate; FER)

- 하나의 생체원시 데이터 레코드를 등록할 수 없는 사용자가 발생 측정치

 

아. SSO

네트워크 사용자들은 그들이 사용하는 여러 서버들을 위해서 다수의 패스워드를 기억하고 있어야 한다. 예를 들어 한 사용자가 네트워크 접속, 전자메일 사용, 디렉토리 서비스 사용, 조직의 프로그램 사용 그리고 기타 여러 가지 서비스에 접근하기 위해서는 접속할 때마다 서로 다른 패스워드의 입력 절차를 거쳐야 하며 이것은 매우 번거로운 작업이다. 또한 관리자들은 각각의 서버에 분리된 암호 데이터베이스를 만들어야 하며 패스워드가 네트워크를 통해 자주 전달되기 때문에 이에 따른 보안 관리의 부담이 생기게 된다. SSO(Single Sign-On)란 사용자가 단 한 번의 로그인 절차를 거친 것만으로 조직의 모든 업무 시스템이나 인터넷 서비스에 접속할 수 있게 해주는 서비스로서, 사용자는 하나의 패스워드로 로그인하면 다른 인증 절차를 거치지 않더라도 자신의 사용권한이 있는 모든 네트워크 자원에 접근할 수 있는 권한을 부여한다. 관리자의 입장에서도 훨씬 적은 수의 사용자와 패스워드를 관리하게 되므로 네트워크 관리를 단순화시켜 인력이나 비용을 절감시키는 이점이 있다.특히 최근의 SSO 기술은 인증된 사용자에게 시스템 정보 및 자원에 접근할 수 있는 권한은 물론 중요 접근제어 권한까지 부여하는 EAM으로 발전되는 추세이다.다음 [표 3-5]는 SSO와 응용프로그램 인증 방식간의 차이를 설명한다.

 

[표 3-5] SSO와 응용프로그램 인증방식 차이

 

구분

SSO 방식

응용프로그램 인증 방식

장점

- 완벽한 보안제공
- ID, Password 에 대한 암기 부담 감소
- ID, Password 기록에 따른 보안 위험 예방
- 단일 ID 사용의 편의성

- 구축기간 단기 소요
- 비용저가

단점

- 구축 기간 장기 소요
- 비용 고가

- SSO 방식에 비해 보안성 취약

 

자. EAM

(1) EAM 개요

EAM(Extranet Access Management)은 SSO에 권한에 따른 자원 접근 통제(Access Control) 개념을 포함시킨 확장 기술이다. 기업 내부의 사용자와 함께 외부 직원 및 협력업체, 고객 등의 외부 사용자들이 접근할 수 있는 자원에 대한 권한을 관리, 제어함으로써, 기업 내 중요 정보에 비인가된 사용자가 접근하는 것을 방지하는 역할을 한다. 초기에는 웹 서버상의 자원에 대한 관리만 가능하였으나 현재는 다양한 어플리케이션에 대한 관리가 가능하다.

(2) EAM 관리 요소o 사용자(User)자원에 접속을 요구하는 주체를 말한다. 예를 들어 사람, 네트워크 장비, 프로그램 등이며 소속, 지리적 위치, 역할 등에 따라서 Group 또는 Role로 구분할 수 있다.

o 자원(Resource)접속이 요청되는 객체를 말한다. - Web : html file, directories, CGI, JSP, ASP files 등- File System : directories, files 등- Database : tables, rows, columns 등o 오퍼레이션(Operation)주체가 객체에게 접근 시 요구하는 행위를 말한다. - Web : GET, POST, PUT- File System : read, write, execute- Database : select, insert, delete, queries 등

(3) EAM 구축 효과

o 자원에 대한 접근 제어를 통한 보안성 향상

o 다양한 사용자 인증 방법 제공(ID/PW, PKI 인증서, 생체인식, 토큰 등)

o 사용자의 편리성과 관리 업무의 효율성 증대

o 업무 효율성으로 인한 비용 절감 효과

차. TACACS

TACACS는 유닉스 네트워크에 적용되는 인증 프로토콜로, 주어진 시스템에 접근을 허용할 것인지를 결정하기 위해 원격 액세스 서버가 사용자의 인증 정보를 인증 서버에 전달할 수 있게 해준다. 암호화되지 않은 프로토콜로 그 이후 나온 TACACS+와 RADIUS 프로토콜은 암호화가 지원된다. TACACS+는 TACACS의 인증 강화 버전이지만 XTACACS나 TACACS와 호환되지는 않는다. 그리고 SLIP/PPP와 telnet의 인증에 추가적으로 S/key, CHAP, PAP를 통한 인증을 허용한다. 인증과 인가가 분리되어 있으며 개별적으로 구성이나 구현하도록 할 수 있다.

카. RADIUS

RADIUS(Remote Authentication Dial-in User Service)는 사용자 인증 프로토콜이다. 인터넷의 발달로 사무실에 출근하지 않고 집에서 근무하는 재택근무자가 늘고 있는데 이러한 재택근무자와 이동 근무자가 다이얼 업 네트워킹을 통해서 본사 네트워크에 접속할 때 사설 네트워크의 경계를 보호하기 위한 것이 바로 RADIUS이다. RADIUS는 RAS가 다이얼 업 모뎀을 통해 접속해온 사용자들을 인증하고, 요청된 시스템이나 서비스에 관해 그들에게 액세스 권한을 부여하기 위해, 중앙의 서버와 통신할 수 있게 해주는 클라이언트/서버 프로토콜이다. RADIUS 서버는 중앙의 데이터베이스 내에 사용자의 인증 정보(이름, 패스워드 등)를 일괄적으로 관리하여 액세스 서버에 접속할 수 있게 한다. 다음 [표 3-6]은 RADIUS와 TACACS+와의 비교표이다. 

 

[표 3-6] RADIUS 와 TACACS+ 비교

 

구분

RADIUS

TACACS+

인증/인가 

인증과인가 정보를 사용자프로필내에 모두가지고 있는 통합관리방식

인증과인가방식이 분리되어있어 별도로 구성가능한 방식

통신프로토콜

UDP

TCP

특징  

ADIUS는 해쉬기술로 암호화함 
표준 RADIUS로는 패스워드변경불가

ACL, 패스워드 기간지정 지원
전송정보의암호화 
강화된 감사 및 빌링기능 

 

 

타. 커버로스

(1) 커버로스 개요

커버로스(Kerberos)는 네트워크 사용자를 인증하는 것과 관련하여 미국 MIT의 Athena 프로젝트에서 개발된 네트워크 인증 표준이다. 커버로스는 개방된 안전하지 않은 네트워크 상에서 사용자를 인증하는 시스템이며 DES와 같은 암호화 기법을 기반으로 하기 때문에 그 보안 정도는 높다고 할 수 있다. 커버로스는 티켓이라는 것으로 사용자를 인증하고, 보안상으로 볼 때 좀 더 안전하게 통신할 수 있게 한다

(2) 커버로스 동작 원리

텔넷(Telent)이나 기타 이와 비슷한 로그인 요청을 통해, 다른 컴퓨터에서 서버에 접근을 요청한다고 가정하였을 때, 이 서버는 로그인 요청을 받아들이기 전에 커버로스 티켓을 요구한다. 티켓을 받기 위하여 접속자는 먼저 인증 서버에 인증을 요구한다. 인증 서버는 요구자가 입력한 패스워드에 기반을 두어 세션키와 서비스 요구를 나타내는 임의의 값을 만든다. 세션키는 사실상 ‘티켓을 부여하는 티켓’이다. 그 다음에 세션키를 티켓 부여 서버인 TGS(Ticket Granting Server)에 보낸다. TGS는 서비스를 요청할 때 서버에 보낼 수 있는 티켓을 돌려준다. 그 서비스는 티켓을 거절하거나, 또는 받아들여서 서비스를 수행한다. TGS로부터 받은 티켓은 발송일자와 시간이 적혀있기 때문에, 일정 시간(대체로 8시간) 내에는 재인증없이도 동일한 티켓으로 다른 추가 서비스를 요청할 수 있다. 티켓을 제한된 시간 동안에만 유효하게 만듦으로써, 후에 다른 사람이 그것을 사용할 수 없도록 한다.

'Security' 카테고리의 다른 글

해킹, 바이러스 감염 시 대응 요령  (0) 2017.01.08
암호학  (0) 2017.01.08
FTP Active/Passive 정리  (0) 2017.01.06
ubuntu 환경에 SNORT & BASE & Metasploit 설치  (0) 2017.01.06
포트 스캐닝으로부터 OS 정보 숨기기  (0) 2017.01.06

F T P

 

FTP 같은 경우는 command 포트와 data 포트 두가지가 사용된다운용방법에 있어서도 Active mode passive mode로 구분된다.

 

- Active mode

Client는 서버의 21번 포트로 접속한 후 로그인을 한다.

일단 로그인을 하게 되면 Client는 어떤 포트로 접속해도 되는지를 서버에게 알려주게 된다이때 서버는 자신의 20번 포트로 하여 Client가 말해준 포트로 접속을 시도하고 데이터를 전송한다.

 

1. Client(1023~ port) -> Server(21 port) Client가 서버에게 자신의 데이터 통신할 포트를 알려줌

2. Server(20 port) -> Client(1023~ port) Client가 알려준 포트로 서버가 접속함 (syn)

3. Client(1023~ port) -> Server (syn+ack)

4. Server(20 port) -> Client(1023~ port) (ack)

 

- Passive mode

Passive mode 에서는 서버가 Client로 접속시도를 하는 취약점이 존재하지 않는다.

Client가 서버의 21번 포트로 접속을 하면 서버가 임의의 포트를 Client에게 알려주고 Client는 서버가 알려준 포트로 다시 접속시도를 하여 데이터 포트가 오픈된다.

 

1. Client(1023~ port) -> Server(21 port) 서버가 Client에게 데이터 통신할 1023 이상의 포트를 알려줌

2. Clinet(1023~ port) -> Server(1023~ port) 서버가 알려준 포트로 접속 (syn)

3. Server(1023~ port) -> Clinet(1023~ port) 수신확인 및 연결 허락 (syn + ack)

4. Client(1023~ port) -> Server(1023~ port) 데이터 전송 (ack)

 

Active mode의 경우에는 데이터 세션을 맺기 위해 서버가 Client의 랜덤한 포트로 접속을 하기 때문에 방화벽단에서 Outbound -> Inbound 21, 20 포트와 Inbound -> Outbound 정책의 1023 이상의 모든 포트를 오픈해줘야 한다여기서 PIX 방화벽의 fixup 기능이 유용하게 쓰인다.

 

예를 들어 fixup protocol ftp 21 이와 같이 설정되어 있다면 PIX 방화벽은 데이터세션을 맺기 위해 동적으로 데이터 포트를 오픈한다

fixup protocol ftp 21

fixup protocol ftp 20

이와 같이 설정하지 않아도 된다는 것이다.

 

Passive mode의 경우에도 fixup protocol 기능이 동적으로 데이터세션 포트를 생성해 주기 때문에 정상적인 통신이 가능하게 된다.

데이터 세션 포트를 맺기 위해 Outbound(1023~ port) -> Inbound(1023~ port) 로 패킷이 전송될 때 fixup 기능을 이용하면 동적으로 데이터 포트가 오픈되기 때문에 모든 포트를 오픈할 필요가 없다.

 

방화벽에서 FTP 관련해서 정책 적용을 할 때 주의해야 할 구성도는 아래와 같다.






                                                         <그림 1>



                                                         <그림 2>



                                                         <그림 3>




 

보통의 경우에 <그림 3> 과 같이 구성되어 있는 경우가 대부분이지만 <그림 1> 과 같은 경우라면 F/W 1 에서도 FTP 관련 포트를 오픈해줘야 한다.


'Security' 카테고리의 다른 글

암호학  (0) 2017.01.08
사용자 인증  (0) 2017.01.08
ubuntu 환경에 SNORT & BASE & Metasploit 설치  (0) 2017.01.06
포트 스캐닝으로부터 OS 정보 숨기기  (0) 2017.01.06
R.U.D.Y DDoS  (0) 2017.01.05

+ Recent posts