해킹 위협 차단하는「네트워크 보안」

일반입력 :2001/11/13 00:00

on the NET

인터넷은 여러 가지 문제 때문에 해커들의 공격을 쉽게 허용한다는 것은 잘 알려진 사실이다.첫번째 문제점은 TCP/IP 프로토콜의 소스 코드가 공개돼 있다는 점이다. 일반적으로 특정 업체에서 사용하고 있는 통신 프로토콜들은 해당 개발 업체가 소스를 독점하고 있으므로 네트워크 보안에서 큰 문제가 발생하지 않는다. 그러나 인터넷에서 사용하고 있는 TCP/IP 프로토콜과 일부 유닉스 시스템은 소스가 공개돼 있기 때문에, 이를 네트워크의 성능 향상 등 발전적인 방향으로 이용할 수도 있지만, TCP/IP의 취약점 발견 등 악의적인 목적으로 이용할 수 있다.두번째는 인터넷 접속의 용이함을 들 수 있다. 과거에는 특정 소수 계층만이 인터넷에 접속할 수가 있었지만, 이제는 기업은 물론, PC방 이나 가정에서 ADSL, 케이블 모뎀, ISDN, 전화접속 등을 이용해 어디에서라도 쉽게 인터넷에 접속할 수 있는 환경이 조성돼 있다. 따라서 인터넷을 통한 불법적인 해킹 활동을 하고자 하는 이들도 손쉽게 인터넷에 접속할 수 있고, 이에 비례해 보안 침해 사고도 증가하고 있는 추세다.세번째는 해킹 방법에 관한 정보 습득의 점차 간편해지고 있다는 점이다. 인터넷에 퍼져있는 무수한 뉴스그룹, 메일링 리스트, IRC, FTP, BBS 등에서 해킹 관련 문서와 공개 소프트웨어를 쉽게 구할 수 있다. 따라서 침입자들은 새로운 해킹 기법을 손쉽고 은밀하게 교환할 수 있다.네번째는 인터넷의 개방적인 구조를 꼽을 수 있다. 인터넷은 이런 개방적인 구조를 통해 빠르고 원활하게 전세계 어디서나 연결할 수 있다는 장점을 제공한다. 하지만, 이런 구조는 상대적으로 침입이 쉽다는 단점이 있다.다섯번째는 각종 애플리케이션에 버그가 존재한다는 점이다. 인터넷에는 sendmail, ftp, rsh, rlogin 등 무수히 많은 애플리케이션이 사용되고 있다. 그러나 이 프로그램에는 어떤 애플리케이션이나 마찬가지로 버그가 존재한다. 이같은 버그들은 일반적인 사용자들에게는 잘 알려지지 않았지만, 해커나 크래커들은 항상 애플리케이션에서 새로운 버그를 찾는데 주의를 기울이기 때문에 이를 이용한 해킹 사고도 증가하고 있다.하지만 이같은 기술적인 점 외에, 가장 근본적인 문제는 시스템이나 네트워크 관리자의 보안 의식과 능력의 부족이다. 전세계에는 인터넷에 연결된 수천만 대의 컴퓨터가 존재한다. 이 시스템을 관리하는 각각의 관리자 모두에게 뛰어난 보안 의식과 능력을 요구한다는 것은 매우 힘든 일이다. 따라서 인터넷을 통해 잘 관리되지 않거나 운영이 미숙한 시스템을 침해하는 사고도 발생하기 쉽다.이런 취약점을 이용한 불법적인 침입은 단순한 호기심에 의한 것이든 불순한 의도를 가진 조직적인 것이든, 21세기 인터넷 혁명의 시대에 매우 위협적인 요소가 되고 있음이 분명하며, 이를 방지하기 위한 노력으로 인터넷 보안 기술이 다각도로 발전하고 있는 것이다.다양한 해킹과 공격 기술해킹 방법 중 가장 일반적인 형태는 공개된 계정이나 패스워드가 없는 계정을 통한 침해 사고로, 이를 막기 위해서는 공개된 계정을 삭제하고 반드시 패스워드를 사용해야 한다.이외에 최근 많이 사용되는 해킹 방법으로는 버퍼 오버플로우 공격, 패스워드 크랙, 백 도어, 세션 하이재킹, TCP 순차 번호 예측 공격, IP 스푸핑 공격, 패킷 스니핑, 죽음의 핑(Ping of death) 공격, 핑 스톰 공격, SYN Flood 공격, DoS(Denial of Service)와 DDoS 공격 등 무수히 많으며, 이외에도 새로운 해킹 방법이 지속적으로 개발되고 있는 상황이다.이같은 해킹 방법을 통해 서버의 자원을 부적절한 방법으로 유용하거나, 데이터의 무단 복제, 파괴 등의 행동을 일으키기도 한다. 또한 최근에는 서버에 침입해 데이터를 훼손하는 것보다는 많은 부하를 줘 서버를 무력화시키는 방법을 사용하는 빈도가 늘고 있다.이외에도 최근에는 님다 바이러스와 같이 메일 바이러스를 통해 감염되며, 무작위적인 DDoS 공격과 백 도어 기능까지 내장하는 등의 복합적인 방법을 통한 해킹 방법이 고안되고 있다. 한편 예전에는 기업이나 대학, 연구소 등의 특정 사이트만 해킹을 하는데 비해, 해킹의 대상도 일반 가정용 PC와 같은 개인용 PC까지도 포함되는 등 해킹의 대상층이 넓어지고 있다. 이는 일반 가정에서도 초고속 인터넷 서비스의 보급으로 인터넷 사용이 늘고 있기 때문이며, 개인용 PC에 대한 보안 의식이 아직 일반적이지 않기 때문에, 당분간 이같은 경향은 지속될 것으로 보인다.이번에는 이같은 보안 사고를 미연에 방지하기 위한 여러 가지 방법에 대해 알아보자.네트워크 보안의 기본, 파이어월파이어월은 오늘날 가장 많이 사용되고 있는 보안 시스템으로, 내외부의 네트워크를 분리해 허가된 데이터는 통과시키고 그렇지 않은 데이터는 폐기하거나 거절해 통과시키지 않는다. 또한 보안 정책을 적용해 효율적으로 접근을 제어하는 가장 효과적인 보안 방법 중 하나다.인터넷 파이어월은 액세스 제어뿐 아니라 다른 네트워크 보안 측정의 기준점을 제공하기도 한다. 파이어월은 네트워크로 들어오고 나가는 모든 트래픽을 모니터링할 수 있으며, 보안 시스템을 교묘하게 회피하려는 시도나 불필요한 사용 패턴을 관리자에게 알려준다.또한 NAT(Network Address Translation) 기능을 제공해 데이터 패킷의 주소를 재지정할 수 있다. 이는 하나의 외부 주소를 모든 내부 사용자가 사용할 수 있어 주소 관리가 단순해질 뿐 아니라, 외부의 침입자에게 내부 컴퓨터와 서버의 진짜 주소를 숨길 수 있다.이 외에 웹 서버나 FTP 서버 등의 외부에 연결된 자원들을 이상적인 위치에 둘 수 있도록 한다. 파이어월은 이들 시스템에 대한 인터넷 액세스는 허용하면서 다른 보호 자원에 대해서는 필터링이나 블로킹을 하도록 구성할 수 있다.일반적으로 파이어월은 NAT와 ACL(Access Control Lists) 등의 기본 라우터 보안과 패킷 필터링, 애플리케이션 프록시, SIF(Stateful Inspection Firewall) 등의 4가지 기능을 기본적으로 제공한다.파이어월의 구성은 네트워크 구성 방법이나 보호해야 할 시스템에 따라 여러 가지 방법을 채택할 수 있지만 일반적으로 멀티-홈드(Multi-Homed)나 듀얼-홈드(Dual-Homed) 구성과 스크린드-호스트(Scre ened-Homed), 스크린드-서브넷(Screened Subnet) 등의 방식을 사용한다. 이들 방식은 대체적으로 외부 서비스가 가능한 DMZ 구간을 만들며, 내부 네트워크를 보호하는 형태의 구성이 일반적이다.내부에서의 공격까지 차단하는 침입 탐지 시스템파이어월과 같은 네트워크 보안 시스템은 인증 받은 사용자나 네트워크, 애플리케이션만이 네트워크 자원에 접근하는 것을 허용한다. 그러나, 이전에 인증 받은 사용자나 이를 가장한 침입자의 공격은 차단할 수 없다. 또한, 내부 네트워크 사용자나 외부의 허용된 사용자에 의한 네트워크 침입은 파이어월로 차단한다고 해도 완벽하게 방어할 수 없다.이미 최근에 공격받았던 많은 사이트의 사례에서도 드러났듯이 파이어월과 같이 단순한 접근 제어(Access Control) 수준의 단독 통제만으로는 효과적으로 대처하는 것이 불가능하다. 때문에 기존의 네트워크 보안 시스템들과는 차원이 다른 기술이 필요하다. 이에 따라 단순한 접근 제어 기능뿐만 아니라 네트워크나 시스템의 사용을 실시간 모니터링하고 침입을 탐지하는 침입 탐지 시스템(IDS : Intrusion Detection System)이 등장하게 됐다.침입 탐지 시스템은 데이터 소스에 따라 ▲하나의 단일 호스트로부터 생성, 수집된 데이터를 갖고 침입 여부를 판정하는 호스트 기반의 침입 탐지 ▲여러 대의 호스트로부터 생성, 수집된 데이터를 갖고 침입 여부를 판정하며 각 호스트간 침입 판정에 필요한 데이터를 통신 교환하는 멀티 호스트 기반 침입 탐지 ▲네트워크를 통해 수집된 데이터를 갖고 침입 판정에 사용하며, 침입 탐지 시스템이 설치된 하나의 네트워크 세그먼트를 탐지 대상으로 하는 네트워크 기반 침입 탐지 시스템으로 구분된다.또, 침입 모델에 기반한 침입 탐지 시스템은 ▲비정상적인 행위 및 시스템 사용시 또는 정해진 패턴을 벗어나는 경우 침입 탐지로 간주하는 비정상(Anomaly)적인 패턴 인식 침입 탐지 시스템 ▲시스템과 응용프로그램의 취약점을 이용한 공격 탐지 및 정해진 패턴과 일치하는 경우를 침입으로 간주하는 오용(Misuse) 인식 침입 탐지 시스템 ▲비정상과 오용 탐지 시스템을 혼합해 사용하는 혼합(Hybrid) 침입 탐지 시스템으로 나뉜다.정보 보호의 최종 단계, 암호화암호(crytography)는 평문(plaintext : 원래의 데이터)을 해독 불가능한 암호문(ciphertext : 평문을 암호화한 것)으로 변형하거나 암호화된 통신문을 복원 가능한 형태로 변환(복호화 : 암호문을 평문으로 바꾸는 것)하기 위한 원리, 수단, 방법 등을 취급하는 기술이다.접근 통제 기술과 침입 탐지 기술이 인터넷 보안에 대한 위협이 존재할 때 이들에 대처하기 위한 것이라면, 암호 기술은 인터넷 보안 위협과는 무관하게 보호하고자 하는 정보의 가치를 보존할 수 있게 해주는 다른 차원의 보안 기술이다.암호화에는 비밀키(대칭키) 기반 암호화 기술과, 공개키(비대칭키) 기반의 암호화 기술로 크게 나눌 수 있다.비밀키(대칭키) 기반의 암호화 기술은 암호화와 복호화시 같은 키를 사용하거나 하나를 알면 다른 하나는 쉽게 알 수 있는 암호 시스템이다. 그러므로 대칭키 암호 시스템을 이용해 정보를 주고받기 위해서는 사전에 두 사람 사이에 미리 키를 공유해야 한다. 이를 위해서 서로 만나거나 안전한 방법으로 키를 전달해야 한다.대칭키 암호 시스템의 대표적인 것이 DES(Data Encryption Stan dard)다. DES는 키 길이와 블록 크기가 각각 64비트(실제로는 키 길이가 56비트인 셈)인 블록 암호 알고리즘으로 1976년 미국에서 표준으로 채택돼 20여년 동안 사용되고 있다. DES는 여러 가지 공격에 잘 견뎌왔지만 컴퓨터의 성능이 좋아짐에 따라 키 크기가 더 큰 알고리즘이 요구되고 있다. 현재는 128비트 이상의 키 길이를 갖는 알고리즘을 권장하고 있다.반면 공개키 암호 알고리즘은 각 개인마다 공개키와 비공개키라는 한 쌍의 키를 갖고 있어 비공개키는 혼자만 간직하고 공개키는 모두에게 알려주도록 한 알고리즘이다. 공개키 암호 알고리즘은 주로 수학적인 이론을 이용하게 되는데, 많이 쓰이는 방법으로는 소인수 분해 방법과 이산 대수 방법이 있다.소인수 분해 방법으로는 RSA 알고리즘이 대표적이고, 이산 대수 방법은 현재 미국 전자서명 표준인 DSA, 한국 표준인 KCDSA 등에 사용되고 있다. 현재 이 두가지 방법을 이용한 알고리즘의 경우 1024비트 정도의 키 길이가 권장되고 있으며, 중요한 서버의 경우는 더 큰 키를 사용하는 것이 좋다.공개키 알고리즘은 대칭키 알고리즘에 비하여 키 관리가 쉽고, 전자 서명이 가능하다는 장점이 있지만 복잡한 수학적 연산이 필요해 속도가 느리다는 단점이 있다. 그래서 큰 용량의 정보를 암호화하는 것은 그리 효율적이지 못하다. 따라서 암호화는 대칭키 알고리즘을 사용하고 암호화하는데 사용한 키를 공유하거나 전달할 때와 전자 서명을 할 때는 공개키 알고리즘을 사용하는 하이브리드 방식이 최근 많이 사용되고 있다.사용권 획득을 위한 사용자 인증인증(Authentication)이란 정당한 사용자인지 확인하는 과정으로 일반적으로 지식에 의한 인증, 소유에 의한 인증, 특징에 대한 인증의 3가지 경우로 구분된다. 지식에 의한 인증은 암호와 같이 자신이 알고 있는 것으로 자신이 정당한 사용자임을 증명받는 것이다. 하지만 이것은 남에게 암호를 알려주거나 엿듣는 방법으로 쉽게 다른 사람도 이용할 수 있다는 단점이 있다.소유에 의한 인증은 열쇠를 갖고 있어 문을 열고 들어가는 것과 같이 소유하고 있는 물건을 이용해 자신을 증명하는 방법이다. 이 소유에 의한 인증 방식 중 대표적인 것이 스마트카드(IC 카드)를 이용하는 방법이다.특징에 의한 인증은 자신의 신체적 특징을 이용한다. 이것은 지문 인식이나 음성, 홍채 인식과 같은 기술을 말하는 것으로, 이 기술은 다른 사람인데도 같은 사람으로 오인하는 경우, 정당한 사람인데도 정당하지 않은 사람으로 잘못 판단하는 경우를 줄이는 것이 관건이다.전산망에서 다른 망이나 호스트에 접근할 때 정당한 사용자인지 인증을 받기 위해서는 공개키 알고리즘을 사용하는 것이 바람직하다. 공개키 암호 시스템에서 각 사용자는 자신의 공개키를 공개한다. 하지만 그 공개키가 정말 그 사용자의 공개키인지 확인할 수 있는 방법이 없다. 만약 갑이 공개키와 비공개키 쌍을 만들어 이것이 을의 공개키라고 하면서 배포한다면 그것을 확인할 방법이 없는 것이다.이에 대한 대비책으로 인증 기관(CA : Certification Authority)에 대한 필요성이 등장했다. 인증 기관은 인증서를 발급해 특정 공개키가 누구의 것인지를 보증하는 역할을 한다.인증 기관의 운영은 특정 기관에서 내부용으로 운영하거나 특정 회사에서 유료 또는 무료로 서비스를 제공하기도 한다. 또한 독립적으로 운영되던 인증 기관이 서로 상호 인증을 통해 서로 다른 인증 기관에서 인증받은 회원들 사이에서도 서로를 인증할 수 있도록 서비스를 확대하기도 한다.한편, 한 국가나 국제적인 단체에서 인증 기관을 운영하고 하위 인증 기관을 구축해 인증 기관의 체계를 구성할 수도 있다. 또한 이렇게 구성한 최상위 인증 기관끼리도 서로 상호 인증을 통해 연결할 수 있다. 이런 식으로 망이 형성되면 두 사용자가 서로 다른 인증 기관에서 인증서를 발급받았더라도 하위 인증 기관이나 상호 인증 등의 연결 고리가 존재한다면 서로 인증할 수 있다. 이렇게 연결된 인증 구조를 공개키 기반 구조라고 한다.웹 보안의 대표, SSL웹 브라우저 개발 회사로 잘 알려진 넷스케이프에서 개발한 SSL (Secure Sockets Layer)은 TCP(Transmission Control Protocol) 계층 바로 위에 위치해 보안 서비스를 제공한다. SSL 기술은 인터넷 상에서 최초로 구현돼 웹 보안을 위한 가장 대표적인 기술로 손꼽히고 있는데, OSI 7계층 모델 중 전송 계층에서 클라이언트/서버 간의 암/복호화를 이뤄낸 솔루션이다. SSL은 암호 알고리즘, 압축 방법, 키 등의 정보를 서버와 클라이언트 간에 공유하기 위해 서로 협상하는 SSL 핸드쉐이크 프로토콜 단계와 이 정보를 이용해 보안 서비스를 제공하는 SSL 레코드 프로토콜 단계로 구분된다. SSL 핸드쉐이크 프로토콜은 SSL 클라이언트와 서버가 처음 통신을 시작할 때 서로 프로토콜 버전을 확인한 후 암호 알고리즘을 선택, 선택적으로 서로를 인증하고 공유할 비밀 정보를 생성하기 위해 공개키 암호 기법을 사용한다(그림 Ⅷ-12). SSL 레코드 프로토콜은 SSL 핸드쉐이크에 의해 서버와 클라이언트 간에 보안에 문제없이 세션이 설립됐을 경우 데이터를 전송하는 절차다.인터넷 통한 전용회선, VPNVPN(Virtual Private Network)은 인터넷 등의 공중 네트워크를 사용자가 마치 자신의 전용회선처럼 사용할 수 있게 하는 서비스다. 개방된 망을 사용하기 때문에 보안을 위해 별도의 장치 즉, 파이어월이나 인증 장비, 암호화 장비를 설치해야 한다. VPN 기능을 구현할 수 있는 제품은 ▲파이어월 ▲라우터 ▲인터넷 게이트웨이 ▲리모트 액세스 서버 ▲윈도우 NT 서버 ▲데스크톱 & 리모트 클라이언트 ▲VPN 전용 장치 등 다양하다. VPN에서 주로 사용되는 보안 프로토콜로 IPSec이 있다. IPSec은 IP 계층에서 보안 기능을 제공하는 것이 특징이다. 안티바이러스로 데스크톱 보안 완성과거 무분별한 소프트웨어 불법복제로 바이러스의 악명이 높아졌으나, 이제는 과거와 같은 소프트웨어 복제보다는 인터넷에서 다운로드 받은 프로그램을 통해서 바이러스에 감염되는 경우가 대부분이다. 즉, 컴퓨터 바이러스를 예방하기 위한 안티바이러스 기술도 인터넷 보안 기술의 영역에 포함된다.컴퓨터 바이러스는‘컴퓨터 시스템의 부트 영역, 메모리, 실행 프로그램, 문서 프로그램 중 하나 또는 그 이상에 감염되며 자기 증식 및 자기 복제가 가능하고 자연 발생적이 아닌, 프로그래머가 인위적으로 제작한 파괴성을 가진 컴퓨터 프로그램’이라고 정의할 수 있다. 초기의 파일 바이러스에서부터, 부트섹터 바이러스, 은폐형 바이러스 등의 여러 가지 방식을 거쳐 현재는 매크로 바이러스, 메일 바이러스 등 무수히 많은 종류의 바이러스가 보안 장벽을 뚫고 시스템을 노리고 있다. @