강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

중요정보통신망 해킹시 침입자기법 분석과 대응

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문


중요정보통신망 해킹시 침입자기법 분석과 대응

1999. 1.16

임채호/CERTCC-KR, 한국정보보호센터

chlim@certcc.or.kr


* 원문 : Techniques Adopted By 'System Crackers' When Attempting To Break Into
Corporate or Sensitive Private Networks.

By the consultants of the Network Security Solutions Ltd.
Front-line Information Security Team (FIST), December 1998.
fist@ns2.co.uk - http://www.ns2.co.uk



   0    목차

        1.      개요
        1.1     누가 취약한가?
        1.2     시스템 침입자(System Cracker)란

        2.      컴퓨터네트워크
        2.1     여러 컴퓨터에서의 네트워크 기술의 이해
        2.2     현재 네트워크에서의 보안 문제점

        3.      컴퓨터 침입
        3.1     침입자 위치에서의 공격 방법
        3.2     네트워크 정보파악 및 수집방법
        3.3     신뢰할 수 있는 네트워크 구성 요소 확인
        3.4     취약한 네트워크 구성요소 확인
        3.5     네트워크 구성요소의 취약점 응용하기
        3.6     취약한 네트워크 구성요소를 이용한 접근 권한 획득

        4.      네트워크 접근권한 남용
        4.1     중요 정보의 다운로드
        4.2     다른 신뢰 호스트 침입방법
        4.3     뒷문프로그램(Backdoor) 및 트로이목마 설치
        4.4     네트워크 장애 공격

        5.      종합적인 네트워크 정보보호 개선 방안
        5.1     참고문헌
        5.2     각종 도구 및 프로그램의 활용  


   1.0  개 요

 

이 문서는 침입자가 어떤 중요한 네트워크에 침입하려고 할때 이용하는 공격 방법에 대해 시스템 관리 실무자가 올바른 대응 전략을 세울 수 있도록 도와주는 문서이다. 이 문서는 종합적인 대책을 세울 수 있도록 하는 문서는 아니며 네트워크 환경에서의 보안위험성을 파악할 수 있도록 도와주며 발생할지도 모르는 침해사고를 확인할 수 있도록 한다.

이 문서를 읽고 나서 침입자가 어떻게 공격하는지 이해할 수 있었으면 한다.

The Network Security Solutions Ltd. FIST staff (fist@ns2.co.uk)



   1.1  누가 취약한가? - Just who is vulnerable anyway?

네트워크 환경에서는 내부 직원이나 여러 조직이 이용가능 하게 하고 있으며 특히 자료를 손쉽게 공유할 수 있도록 한다. 그리고 보통 기업이나 조직의 컴퓨터네트워크는 보안 대책은 고려하지 않고 업무 효율성만 강조하여 설계되는 경우가 대부분이며 나중에 보안 대책을 추가하려다 보면 매우 많은 추가적인 비용이 요구된다.

대부분의 기업과 중요 자료를 처리하는 조직은 클라이언트-서버 환경으로 구성되며 직원들은 서버와 연결하여 자료를 공유하게 된다. 보통 침입자들은 서버를 1차 목표로 삼고 있으므로 이 문서에서도 서버에 대한 보안에 초점을 맞추고자 한다. 서버는 모든 정보가 저장된 허브(HUB)와도 같으며 만약 침입자가 이 서버에 권한을 갖게 된다면 나머지에 대한 권한 획득은 매우 손쉽게 이루어지게 된다.

침입자들이 노리는 규모 있는 중요한 네트워크 대상은 다음과 같은 부분들이다.

  ㅇ 금융 관련 은행이나 기관
  ㅇ 인터넷망사업자
  ㅇ 의료기관
  ㅇ 정부기관 및 군사조직
  ㅇ 방위산업체 및 유관조직
  ㅇ 다국적 기업

비록 많은 침입들이 이미 네트워크에 접근 권한을 가지고 있는 내부 직원이나 외부 관련인에 의하여 이루어지고 있지만 여기 이 문서에서는 내부와 관련이 없는 완전히 외부 망에서의 침입 방법에 대하여 논의하고자 한다.

금융관련 기관은 고객의 신원이나 ID 위장도용에 의한 공격을 자주 받게 된다. 많은 은행들이 이와 같은 방식의 공격을 받고 있으며 부당한 금융인출 위험에 노출될 수 있다.  은행은 자신의 고객이 이러한 위장도용에 희생자가 되지 않도록 정책을 만들어야 자신의 고객을 잃어버리지 않을 수 있다.  

인터넷망사업자도 침입자들이 노리는 일반적인 목표인데, 망사업자들은 인터넷에서 쉽게 접근할 수 있으며 망사업자들이 가지고 있는 많은 광케이블 접속은 침입자들로 하여금 손쉽게 여러 네트워크를 거쳐 자료에 접근할 수 있게 해준다. 대규모 망사업자들은 침입자들이 노리는 개인신용카드번호나, 이름, 주소 등 프라이버시를 요구하는 고객 정보 데이터베이스를 보유하고 있다.

의료기관은 주로 산업스파이들이 노리는 대상이 되고 있는데, 침입자들의 모임(해커그룹)들은 의료기관들이 많은 예산을 들여 개발한 의약품 정보들을 노리는데 많은 시간을 투자하고 있으며 이러한 공격으로서 중요한 의료정보들이 빼돌려지고 있다.

최근 6년동안 미국의 정부 및 군사조직은 인터넷으로부터 수백만 건의 침입으로 희생되고 있다. 이러한 기관들은 정보보호에 대한 낮은 예산이나 정책, 지침의 결여로 인하여 정보보호는 매우 어려운 전투(Uphill Battle)와도 같은 지경이 되었으며 정부기관과 군사조직의 서버는 침입자들에 의하여 지속적으로 침입시도가 이루어지고 있다.

보안의 중요성을 인식하고 있는 방산업체나 유관조직도 비밀로 분류된 정보를 찾고 있는 해커들의 목표가 되고 있다,  이렇게 유출한 데이터는 해외그룹에 판매되고 있는데, 이러한 사실은 공공연하게 알려져 있으며 자주 발생 하고 있다.

다국적기업은 산업스파이 해킹의 목표로 알려져 오고 있다. 이러한 다국적 기업은 전세계에 걸쳐 기업들을 네트워크로 연결하고 정보를 공유하고 있는 것이다. NSS 에서는 이러한 다국적 기업에서 해킹침투시험(penetration Test)을 수행한바 있으며 많은 사례에서 이미 해킹으로 피해를 입은 사실을 발견한 바 있다. 의료기관들처럼 전자, 소프트웨어 등 컴퓨터관련 기업들인 다국적기업은 많은 예산을 연구개발에 투자하고 있는 기업이다. 이러한 사실은 경쟁기업으로 하여금 해커집단과 계약하여 산업스파이 해킹을 부추기는 매력적인 사실이다. 결국 유출된 데이터들은 경쟁기업을 살찌우게 하여 기업에 금전적인 손해를 입히는 것이다,

경쟁기업에 대한 공격 중 다른 경우의 하나는 기업의 네트워크나 시스템을 오랫동안 동작 못하게 정지시키고자 하는 공격으로서 이 또한 기업의 생산과 판매 등 기업활동의 손실을 가져오게 하는 것이다.  이러한 공격은 공격의 근원지를 파악하기가 대단히 어려운 문제를 가지고 있으며 내부네트워크 세그먼트가 하나로 되어 있을 경우 대단히 큰 피해를 입을 수 있다. 이러한 무자비한 공격은 현재 널리 이용되고 있는 매우 위험한 공격이라고 볼 수 있다.



   1.2  시스템 침입자(System Cracker)란 - Profile of a typical 'system cracker'

조사에 의하면 해킹에 나서는 침입자들은 대부분 남자이며, 나이는 16세에서 25세 인 것으로 나타났다.  해커들은 자신의 해킹실력을 향상하거나 목표 네트워크자원을 이용하여 자신의 목적을 달성하기 위하여 다른 컴퓨터에 침입하는 것을 즐기고 있으며 또한 매우 끈질긴 침입시도를 하는데 이는 이 또래의 청소년들이 가장 여유시간이 많기 때문이다.

또한 많은 침입자들은 기회주의적인 성향을 가지고 있으며 대단히 많은 수의 원격지호스트의 취약점을 알기 위해 Scanner를 이용하며 어떤 호스트의 취약점을 알게 된 경우 접근하여 root 권한을 획득하게 된다.  이후 뒷문(Backdoor)을 설치한 후 다른 침입자의 공격을 막기 위하여 해킹취약점을 막아두기도 한다. 해커들은 대개 2개의 환경에서 활동하는데 하나는 인터넷이며 또 다른 하나는 전화망이다.

침임자들은 원격지의 해킹취약점을 알아내기 위하여 광케이블이 연결되어 고속으로 안터넷을 이용할 수 있는 호스트를 선택하여 Scanner를 실행시킨다. 반면에 전화망에서 동작하는 터미널서버, BBS, 음성메일시스템 등을 Scan하고자 하는 경우 침입자는 많은 량의 전화번호를 자동적으로 걸어주어 Scan 하는 프로그램을 이용하며 취약성을 확인하게 된다.

일부 고난도의 실력을 가진 해커들은 대규모 호스트 Scan을 하지 않고 특정한 호스트를 지정하여 공격하기도 하는데, 이러한 해커들은 일반적인 해커보다 실력이 월등하며 최신 기술(Cutting-Edge )로 네트워크를 공격한다.  이러한 유형의 해커들은 침입차단시스템 (Firewall)을 공격할 수 있는 알려지지 않은 취약점 공격 방법을 고안하여 이용하기도하여 기업의 네트워크를 공격하고 중요 자료를 빼낸다.  그리고 대기업이나 보안 전문가가 이용하는 도구나 그들의 환경을 해킹할 수 있는 접근방법을 알고 있어 이를 이용하여 목표를 설정하고 모든 알려진 취약점을 스캐닝한다.  물론 이들은 매우 신중하고 참을성을 가지고 어떤 특정 호스트를 공격하는데, 목표 시스템이나 네트워크의 접근 권한을 얻기 전까지 관련 자료 수집을 위하여 수개월을 소비하기도 한다.


   2.1  여러 회사에서 이용하는 네트워크 기술 - Networking methodologies adopted by many companies

대표적인 기업들은 다음과 같은 목적을 위하여 인터넷을 이용한다.

  ㅇ 기업의 웹서버 운영
  ㅇ 인터넷을 통한 Email 등 글로벌 통신 수단 확보
  ㅇ 직원들에게 인터넷 활용 수단 제공

물론 기업의 네트워크 보안을 위하여 NSS는 인터넷으로부터 네트워크 침투 시험을 수행하고 있으며 인터넷 연결부분을 침입차단시스템(Firewall)과 응용프로그램 프락시 등을 활용하여 구축한다. 이러한 환경에서는 기업의 웹서버와 메일서버는 네트워크의 바깥에 위치하고 자료는 기업내부 네트워크와 안전한 패스를 만들어 전달하는 방식을 취하게 된다. 내부 네트워크와  외부 메일서버간의 안전한 패스는 잘 정의된 필터링정책으로 효과를 얻어야 한다. 외부의 메일서버는 내부 메일서버와 단지 25번 포트만을 개설하도록 하는데 이러한 방법은 외부 메일서버가 침해를 당한다 할지라도 내부네트워크로 부당한 접속시도 가능성을 최소화 할 수 있다.

NSS는 내부네트워크와 외부네트워크 인터페이스로 이루어진 2개의 네트워크 인터페이스가 동작하는 이중네트워크 호스트(Dual-homed Hosts)에 대한 침투 시험을 하기도 한다. 시큐리티 관점에서 이런 호스트는 네트워크에 대한 많은 위협이 있으며 만약 이런 호스트가 공격당한다면 침입자에게 내부 네트워크로 침입하기 위한 단순 브리지(Bridge)역할만 하게 되는 것이다.
 


   2.2  현재 네트워크에서의 보안 문제점 - Understanding vulnerabilities in such networked systems

 

인터넷을 위하여 하나의 기업이 5개의 웹서버, 2개의 메일서버 그리고 필터링 등 침입차단시스템을 구현하였다고 가정해본다. 웹서버 자체는 침입자들이 불법접근 권한을 획득하기 위하여 해킹 당하지는 않는다. 다만 침입차단시스템의 잘못된 구성상의 취약점으로 인하여 웹서버가 해킹 당하고 이후 내부네트워크까지 부당 접근 경로를 열어주기도 한다. 웹서버를 안전하게 관리하기 위하여 telnet 과 ftp 포트를 적절한 사용자에게만 한정할 수 있는 tcpwrapper를 설치 운영하는 것이 좋은 방법이다.
메일서버는 침입자들이 주로 노리는 시스템으로서 메일서버는 인터넷과 기업 내부네트워크간 메일자료의 교환을 위해 내부 메일서버와 반드시 접근이 가능하여야 한다. 침입자의 입장에서는 필터링을 적절하게 구현하느냐가 매우 좋은 방안일 수도 있고 아닐 수 있다.

필터링을 수행하는 라우터는 대량의 SNMP 스캐너와 비밀번호 자동확인(brute-force)프로그램 등을 이용하는 해커들에게 주된 목표가 되고 있다. 이 공격 방법이 성공한다면 라우터는 내부네트워크로 부당한 접속을 열어주는 징검다리(Bridge) 역할을 하게 되는 것이다,

이러한 상황에서는 침입자가 접근가능한 외부의 시스템에 대한 취약점 등을 평가하게 되고 외부시스템과 내부네트워크 내 시스템과의 안전한 경로가 있는지 확인하려고 할 것이다.
그러므로 외부 호스트에 내부 안전한 경로를 만들기 위하여 다음과 같은 중요한 포트들에 대한 접근 제어를 위해 tcpwrapper를 설치 운영한다.

        ftp(21), ssh(22), telnet(23), smtp(25), named(53), pop3(110),
        imap(143), rsh(514), rlogin(513),  lpd(515)

SMTP, named와 portmapper는 호스트의 네트워크 안전 운영 지침에 따라 항상 막아 두어야 한다. 이러한 필터링은 기업 네트워크에 대한 공격 위험을 현저히 줄일 수 있다.

만약 기업이 네트워크 보안 정책 및 지침을 제대로 만들어 두지 않는다면 여러 네트워크 인터페이스를 가진 호스트나 잘못 구성한 라우터 등이 문제를 일으킬 수 있다. 내부 네트워크에 대한 적절한 세그멘테이션(Segmentation)이 이루어지 않은 경우에도 문제가 있을 수 있어 인터넷의 침입자들이 손쉽게 내부 네트워크로 부당한 접근을 할 수 있게 한다.

도메인네임서버(DNS)를 외부네트워크에 두고 잘못된 구성 상태로 운영한다면 기업네트워크가 손쉽게 외부에 매핑되어 유출될 수 될 수 있다. NSS에서는 DNS 서버를 시험 공격하여 DNS서버의 잘못된 구성으로 인한 취약점을 이용 기업네트워크의 정보룰 알아낸바 있다. 이러한 이유로 DNS 서버가 내부 네트워크와 외부네트워크 사이에 존재하여서는 안되며 기업네트워크로부터 외부 인터넷 연결시 혹은 반대의 경우든 단순히 IP 주소를 그냥 사용하는 것이 보다 안전할 수가 있다.

여러 네트워크에 접속할 수 있는 복수개의 네트워크 인터페이스를 가진 안전하지 못한 호스트는 기업 네트워크에 부당하게 접속하기 위한 권한을 획득하기 쉽다. 예를 들어 이러한 호스트에 대하여 finger 데몬을 이용할 수 있는데 기업의 사용자, 호스트 정보를 수집하여 해킹 취약점을 알아내는데 이용할 수 있다. "root@host", bin@host" 등의 finger 요청으로 호스트의 운영체제 취약점을 쉽게 알 수 있는 것이다.

어떤 침입자는 최근 네트워크 운영센터나 사무실 위치를 알아내기 위한 기업 위치 파악용 무작위 전화공격프로그램(wardialling)을 이용하기 시작하고 있다. 만약 침입자가 터미널서버를 알아내어 해킹에 성공하였다면 기업네트워크 전체에 접근할 수 있는 권한을 획득한 것과 같아 기업네트워크와 인터넷을 분리하는 침입차단시스템(Firewall)이나 필터링시스템을 그냥 통과할 수 있다. 그래서 터미널서버의 안전관리는 매우 중요하며 이러한 서버의 접속 기록을 제대로 시행하여야 한다.

네트워크로 연결된 시스템의 취약요소를 이해하는데 중요한 부분의 하나는 신뢰(trust)관계 문제이다.  "hosts.equiv", ".rhosts" 파일이나 ".shosts" 파일 등은 tcpwrapper를 이용하더라도 많은 대규모 기업의 네트워크가 공격을 당하도록 한다.

예를 들어 공격자가 "hosts.allow" 파일을 열람하기 위하여 CGI 공격을 한다면 신뢰하는 기업과의 모든 호스트의 telnet, ftp 포트 접속현황을 알아낼 수 있다. 물론 침입자는 그 신뢰하는 기업의 어떤 호스트에도 접속할 수 있는 권한을 손쉽게 가질 수 있는 것이다. 이러한 이유로 인하여 원격지에서의 공격에 대비하기 위해 신뢰하는 호스트에 대한 안전유지도 매우 중요한 것이다.

꼭 언급하여야 할 또 다른 공격방법의 하나는 윈도우 95/98 시스템과 같은 기업의 호스트에 트로이목마(Trojan Horse) 프로그램이나 뒷문(Backdoor) 프로그램을 설치하는 경우이다. 직원들이 보통 인터넷을 접근할 때 응용프락시와 침입차단시스템을 거쳐 이용하게 되는데, 때때로 저작권있는 소프트웨어를 무료로 사용하기 위하여 해적(warez)관련 홈페이지 등을 방문한다. 이러한 해적 사이트는 화면보호기(screesaver)와 같은 유틸리티를 제공하는데 어떤 경우에는 Cult of the Dead Cow 가 만든 백오리피스(Back Orifice) 같은 트로이목마 프로그램을 다운로드 받을 수 있다. 화면보호기를 다운로드받아 설치하면 트로이목마 프로그램이 레지스러리(registry) 내 무한 복사되면서 기계가 부팅될 때 마다 실행되는 경우가 있다.
 
백오리피스 트로이목마의 경우는 IRC서버와 연결하여 특정 채널에 들어가는 점속을 만드는 따위의 특정한 기능이 자동적으로 실행되기 위한 트로이목마 프로그램이 플러그인 될 수 있다. 이런 것은 인터넷에서 기업네트워크 및 시스템을 제어할 수 있으므로 매우 위험한 것이다. 백오리피스는 침입자가 이미 기업네트워크에 접근한 상태라면 무한히 능력을 발휘하게 된다. 백오리피스는 침입자가 적절하게 구성할 수만 있다면 인터넷의 원격지에서 파일 조작, 시스템 재부팅, 드라이버 포맷을 비롯한 부당행위를 할 수 있도록 만들어 주기도 한다.



   3.1 침입자 위치에서의 위장 공격 방법  - Techniques used to 'cloak' the attackers location

대표적인 해커들은 자신의 실제 IP 주소룰 숨기기 위하여 다음과 같은 방법을 이용한다.

  ㅇ 이전에 침입한 호스트에 telnet, rsh 등을 이용
  ㅇ WinGate 등과 같은 도구를 활용 윈도우 호스트를 이용
  ㅇ 잘못 구성운영되고 있는 응용프락시 호스트를 이용

이러한 해커들은 이미 해킹을 한 호스트, WinGate, 프락시 등을 이용하여 목표로하는 시스템에 대하여 스캐너를 수행한다. 이러한 사실을 발견할 경우, 관리실무자에게 전화를 이용 협의하는 것이 좋다. 보통 해커가 감지하고 있을 경우가 많으므로 email을 이용하지 말아야 한다.

전화망 등을 이용하여 호스트에 침입하는 보다 능력있는 해커는 다음과 같은 기법을 이용하기도 한다.

  ㅇ 800번 사설교환망을 경유 망사업자에 시스템에 이미 크랙한 타인의 ID로 침입
  ㅇ 전화망으로 호스트에 연결한 후 인터넷 접속 시도

전화망을 통하여 인터넷으로 침입한 해커들은 추적하기가 극도로 어렵게 된다. 문자 그대로 전세계 어디에서든 접근할 수 있으며 특히 800번 전화망을 이용하는 경우 국제전화 요금도 물지 않게 되는 것이다.



   3.2  네트워크 정보파악 및 수집방법 - Network probing and information gathering

 

침입자들은 어떤 기업을 해킹하기 전에 인터넷에 연결된 호스트나 네트워크에 대한 취약점을 알려고 시도하게 된다. 먼저 그 호스트 이름을 다음과 같은 기법으로 알려고 한다.

  ㅇ 도메인 이름이나 네트워크 알기 위해 "nslookup" 실행
  ㅇ 웹서버에서 다른 호스트 이름 발견 시도
  ㅇ FTP 서버에서 각종 문서 검토
  ㅇ mail 서버에 접속하여 "expn (user)" 수행
  ㅇ "finger"를 이용하여 사용자 파악

침입자들은 이렇게 정보를 수집하여 목표로 하는 네트워크의 레이아웃을 그려보고 취약점들을 확인하고자 한다. 그리고 위에서 열거한 방법을 통하여 알아낸 정보를 이용하여 호스트 목록을 작성하고 호스트들간의 관계를 파악하는 것은 손쉬운 일일 것이다.

몇몇 해커들은 이러한 기본적인 취약점 파악 단계에서 목표 호스트의 OS 버전 등을 알려고 시도하다 자신의 IP주소를 기록에 남기는 등의 실수를 하기도 한다. 만약 침해당한 사실을 알게 된다면 앞으로 있을지 모르는 향후의 시도에 대비하여 FTP와 HTTP 기록을 확인하는 것이 좋다.



   3.3  신뢰할 수 있는 네트워크 구성 요소 확인 - Identifying trusted network components

침입자들은 공격하기 위하여 신뢰하는 네트워크 구성요소에 대한 정보를 알고자 한다. 신뢰하는 네트워크 구성요소는 관리용 기계나 안전하게 관리한다고 믿는 서버 등에 있다. 먼저 침입자는 nfsd이나 mountd 이 실행되고 있는 호스트의 NFS export 상태를 점검한다.
이를 통하여 /usr/bin, /etc 그리고 /home 등 호스트의 중요한 디렉토리가 그런 신뢰하는 호스트에 마운트되어 있는지 알게된다.

finger 데몬은 신뢰하는 호스트나 이용자를 알아내기 위한 수단으로 종종 이용된다. 이를 통해 어떤 사용자가 어떤 호스트에서 로그인하고 있는지 알게되는 것이다.

또 다른 방법의 하나인 CGI 취약점을 이용하여 신뢰하는 네트워크 구성요소를 확인하게 되는데, 이를 이용하여  /etc/hosts.allow 파일 등에 접근하는 권한을 알아내기도 한다.

이러한 방법으로 나온 데이터를 분석하여 신뢰하는 네트워크 구성요소들을 파악한 후 원격지에서 침입가능한 호스트들을 확인하게 된다.



   3.4  취약한 네트워크 구성요소 확인  - Identifying vulnerable network components

침입자들은 목표 네트워크 및 시스템의 해킹 취약점을 알기 위하여 일반 스캐너보다 작고 특수한 리눅스용 프로그램인 ADMhack, mscan, nmap 등의 스캐너를 사용한다. 이러한 스캐닝은 보다 빠른 접속을 위하여 광케이불을 이용하는 시스템에서 실행하는 경우가 많다.

ADMhack는 관리자(root)권한으로 실행하여야 하는 리눅스용 프로그램으로서 리눅스시스템에 불법 접근하고 rootkit 를 설치하여 이용하고 있다. 이 rootkit는 호스트에 불법 접근하는 기록을 숨기는 등 뒷문 프로그램으로 활용된다. 침입자는 스캐너를 실행하고 있다는 사실을 감추기 위하여 트로이목마 프로그램의 'ps' 나 'netstat'를 이용하고 있으므로 관리자는 잘 알아내기 어려울 수 있다.

msan 이나 nmap 등은 관리자 권한이 없어도 실행할 수 있으며 보통 리눅스에서 실행하는데 ADMhack 보다 실행속도가 조금 느린 편이다.

ADMhack 과 mscan 은 원격지 컴퓨터의 다음과 같은 취약점이 있는지 알아내게 된다.

  ㅇ 호스트에 대한 TCP 포트 스캔(portscan)
  ㅇ portmapper를 통하여 호스트에서 실행되는 RPC 서비스 현황
  ㅇ nfsd를 통한 파일시스템 외부 마운트 현황
  ㅇ samba 나 netbios를 통한 공유파일 현황
  ㅇ 디폴트계정을 찾기 위해 finger를 다량 수행
  ㅇ CGI 취약점 스캔
  ㅇ Sendmail, IMAP, POP3, RPC and RPC 등의 데몬 서버 취약점 스캔

최근에는 SATAN과 같은 프로그램은 느리고 오래된 취약점을 점검하므로 사용하지 않은 편이다.  ADMhack이나 mscan 등을 실행하게 되면 침입자는 네트워크의 취약한 요소나 안전한 요소 등을 알게 될 것이다.

라우터가 SNMP 기능을 이용하고 있다면 뛰어난 해커는 대량 SNMP(Aggressive -SNMP) 스캔 공격과 "brute force" 식으로 ID 및 패스워드를 알아내려고 한다.
 


   3.5  네트워크 구성요소의 취약점 이용  - Taking advantage of vulnerable network components

침입자는 외부 호스트의 취약점을 알아낸 후 침입시도를 하게되는데 끈기있는 해커는 보통 근무시간이 아닌 밤 9시부터 아침 6시까지 침입을 시도하게 된다. 이를 통하여 타인이 눈치챌 위험을 줄일 수 있으며 뒷문이나 스니퍼를 설치하는 등에 필요한 충분한 시간을 확보할 수 있게 된다. 특히 주말에 걸쳐 여유시간을 이용하는 경우가 많다.

침입자는 외부에 노출된 호스트를 공격하여 내부 네트워크로 침입할 근거지로 삼는데, 2개의 네트워크사이에 있는 필터링 기능은 잘 동작할 수도 있지만 그렇지 못할 경우가 있다.

외부의 메일서버를 해킹한 침입자는 내부네트워크의 전반적인 세그먼트에 접근할 수 있게 된다.

네트워크에 연결된 시스템을 공격하기 위하여 보통 취약한 서버 데몬 버전들을 대상으로 침입하는데, 어러한 데몬은 Sendmail, IMAP, POP3 그리고 statd, mountd and pcnfsd 등의 RPC 서비스의 취약한 버전들이다.  취약한 서버에 대한 공격은 침입자가 관리자(root) 권한으로 접근할 수 있게 됨을 의미하고 나아가 기업내부 네트워크로 접근할 권한을 가지게 되는 결과를 낳게 된다.



   3.6  취약한 네트워크 구성요소를 이용한 접근 권한 획득
        - Upon gain access to vulnerable network components


침입자는 서버 데몬의 취약점을 이용하여 침입한 후 침입 흔적을 남기지 않기 위하여 호스트의 로그기록을 지우고 나중에 침입할 때 기록을 남기지 않기 위하여 서비스 실행 파일에 뒷문 프로그램 기능을 심는다.

대부분의 뒷문프로그램은 침입자가 미리 컴파일을 해두고 있으며 뒷문 기능이 심어질 실행파일의 날짜나 접근권한(permission) 등을 수정한다. 어떤 경우에는 실행파일의 크기가 원래 파일의 크기와 똑같이 만들기도 한다. 침입자는 뒷문기능을 심은 프로그램을 호스트에 옮기기 위하여 'rcp'를 이용하기도 하므로 FTP 파일 전송 로그에 신경을 쓴다. 이러한 침입자들은 시스템의 취약점을 패치하는 것에는 신경을 쓰지 않고 다만 'ps, 'netstat' 등과 같은 중요한 시스템실행 파일에 뒷문기능이나 트로이목마 기능을 넣는대만 신경을 쓰기도 한다.
 
다음은 침입자들이 자주 이용하는 Solaris 2.X 기계에서의 뒷문이나 트로이목마이다.

  ㅇ /usr/bin/login
  ㅇ /usr/sbin/ping
  ㅇ /usr/sbin/in.telnetd
  ㅇ /usr/sbin/in.rshd
  ㅇ /usr/sbin/in.rlogind

어떤 침입자들은 원격지에서 'rsh'나 'csh'를 이용하기 위하여 .rhosts 파일을 /usr/bin 디렉토리에 두기도 한다.

다음으로 침입자들이 신경쓰는 부분은 호스트의 접속 로그기록을 담당하는 호스트를 확인하는 것이다.  발견된 로그시스템을 편집하여 자신이 접속한 기록을 삭제하려고 시도하게 되므로 만약 주요 목표가 되기 쉬운 중요 호스트는 로그기록을 라인프린터로 출력되도록 하여 침입자가 이를 수정하기 극히 어렵도록 하는 것이 필요히다.

이렇게 침입 로그를 잡지 못하도록 조치한 후 침입자는 기업 내부 네트워크로 침입하고자 한다. 대부분의 침입자들은 이미 내부 네트워크에 대한 접근 권한을 획득한 후라면 외부 호스트에 대한 취약점에 대해서는 신경을 쓰지 않는 편이다.
 

   4.1  중요 정보의 다운로드 - Downloading sensitive information


만약 침입자의 목적이 기업 내부 네트워크 FTP 서버나 웹서버로부터 중요한 데이터를 다운로드 받는 것이라면 침입자에게 해킹당하여 이미 브리지 역할을 수행하고 있는 외부 호스트에서도 충분하게 된다.

만약 그것이 아니라 기업내부 네트워크에 있는 중요 데이터를 열람하는 것이 목적이라면 내부 네트워크내에서 불법 권한을 획득하기 위하여 노력할 것이다.  
 


   4.2  다른 신뢰 호스트 침입방법  - Cracking other trusted hosts and networks

이를 위하여 대부분의 침입자들은 3.2, 3.3, 3.4, 3.5에서 설명한 방법을 되풀이한다.  하지만 만약 침입자가 기업 내부 네트워크의 모든 권한을 얻고자 한다면 3.6과 같이 뒷문과 트로이목마를  심으려고 할 것이며 로그기록을 삭제하려고 할 것이다. 물론 4.3에서 설명한 바와 같이 스니퍼도 설치할 것이다.

또 다른 침입자들은 키서버 등에서 자료만 단순히 다운로드 받으려는 경우가 있는데, 이때 목표로 하는 키서버와 상호 신뢰관계에 있는 키 호스트를 확인하고 공격하려고 든다.
 


   4.3  스니퍼 설치하기 - Installing sniffers

침입자가 내부네트워크 호스트의 다수의 사용자 ID와 패스워드를 확보하는 방법은 이더넷 스니퍼(Ethernet Sniffer) 프로그램을 이용하는 것이다. 왜냐하면 스니퍼는 침입자가 목표로하는 호스트와 같은 이더넷 네트워크에서 동작해야하는 까닭이며 침입자가 브리지로 활용하는 외부 호스트에서는 효과적이지 않기 때문이다. 내부 네트워크에서 유통되는 데이터를 빼내기 위해서는 침입자는 목표로하는 내부 네트워크내의 한 호스트에 대해 원격지에서 관리자 권한을 확득하여야 한다. 이러한 방법은 3.2, 3.3, 3.4, 3.5, 3.6에서 설명한 방법을 이용하며 침입한 후 스니퍼가 무사히 설치되고 잘 동작할 수 있도록 뒷문프로그램을 이용한다.  뒷문과 'ps', 'netstat' 등의 트로이목마를 설치한 후 스니퍼를 설치한다. 스니퍼는 Solaris 2.x 에서는 대부분 '/usr/bin' 이나 '/dev' 디랙토리에 설치하며 다른 시스템 바이너리 파일과 같은 형태로 보이도록 수정한다.

스니퍼는 백그라운드 프로세스로서 실행되는 것이 대부분이며 설치된 기계에 결과를 출력하도록 하는데 침입자는 트로이목마 'ps'를 이미 설치하였으므로 이러한 프로세스를 알아내기 힘들게 된다. 스니퍼는 네트워크 인터페이스를 'promiscuous mode' 로 세팅하여 네트워크를 감청한 후 스니퍼로그로 출력하는데 사용자ID, 패스워드, 기타 목표 호스트가 통신하는 관심있는 데이터가 스니퍼 로그에 기록된다. 스니퍼는 네트워크를 경유하는 모든 데이터가 대상이 되므로 다른 네트워크를 위하여 여러 네트워크에 스니퍼를 설치할 필요가 없다.

보통 칩입자는 1주일간 스니퍼를 실행한 결과를 가져오는데, 기업의 내부네트워크에 설치되면 이를 발견해 내기가 여간 어렵지 않게 된다. 기업은 우수한 보안지침과 정책을 구현하여 대비하여야만 한다.

보안에 신경쓰는 관리자가 이용하는 도구는 5.2 절에서 설명할 COAST에서 개발된 'tripwire'가 있다. 'tripwire'는 'MD5' 라는 알고리즘을 이용하여 호스트내 파일시스템의 부당한 수정 유무를 알아내게 된다.

네트워크 인터페이스의 'promiscuous mode' 유무를 알아내기 위해서는 미국 CERT가 제공하고 있는 'cpm'을 이용할 수 있다.
 


   4.4  네트워크 장애 공격 - Taking down networks

만약 침입자가 DB서버, 네트워크 운영 서버 또는 매우 중요한 기능을 수행하는 응용서버내에서 동작하는 키서버(Key Server)를 침입한다면 기업 네트워크 전체를 단기간내에 문제를 일으킬 수 있다.  

침입자가 잘 이용하지는 않지만 네트워크에 장애를 일으킬 수 있는 무자비한 공격 중의 하나는 'rm -rf / &' 명령으로 키서버의 모든 자료룰 삭제하는 경우가 있을 수 있다. 이 경우는 백업시스템이 얼마나 잘 구현되어 있느냐에 따라 시스템이 몇 시간 혹은 몇 개월까지 복원가능한 것이다.  

만약 침입자가 내부 네트워크에 대한 불법 접근 권한을 이미 가지고 있다면 'Cisco', 'Bay',  'Ascend' 등의 라우터가 가진 취약점을 공격하기도 한다. 그래서 라우터를 재부팅하거나 정지 시키는 등의 불법 행위를 한다. 이러한 공격은 네트워크의 중요한 기능에 심각한 장애를 유발하는데, 침입자가 취약점을 가지고 있는 기업의 모든 라우터 목록을 만들 수 있다면 기업의 백본네트워크를 포함하여 쉽게 전체 네트워크에 장애를 일으킬 수 있다.

이러한 이유로 인하여 중요한 기능을 수행하는 라우터나 서버 등을 취약점을 모두 제거하여 안전하게 관리하여야 하는 것이다.
 


   5.1  참고문헌 - Suggested reading

외부네트워크 호스트, 내부 호스트 및 라우터를 안전하기 관리할 수 있도록 하는 정보를 제공하는 자료는 다음과 같은 홈페이지에서 찾아볼 수 있으며 대규모 네트워크의 보안관리를 등을 더욱 잘 알아보고 싶다면 다음에 열거하는 서적들을 참고하기 바란다.

  ㅇ 홈페이지
        - http://www.antionline.com/archives/documents/advanced/
        - http://www.rootshell.com/beta/documentation.html
        - http://seclab.cs.ucdavis.edu/papers.html
        - http://rhino9.ml.org/textware/
        - http://www.certcc.or.kr
        - http://www.cert.org
        - http://www.first.org

  ㅇ 서적
        -  'Practical Unix & Internet Security'
            Simson Garfinkel and Gene Spafford
            O'Reilly & Associates, Inc.
            ISBN 1-56592-148-8
            US $39.95  CAN $56.95   (UK around 30 pounds)
        - '98 정보시스템 해킹현황 및 대응
            한국정보보호센터, '99. 1
            staff@certcc.or.kr 로 연락
 


   5.2  각종 도구 및 프로그램의 활용 - Suggested tools and programs

Solaris, IRIX, Linux, AIX, HP-UX, Windows NT 등의 플랫홈에서 동작하는 좋은 공개 SW 도구들이 있다.  다음 사이트를 방문하면 보다 많은 관련 자료를 얻을 수 있다.

  ㅇ ftp://coast.cs.purdue.edu/pub/tools/unix/
  ㅇ http://www.alw.nih.gov/Security/prog-full.html
  ㅇ http://rhino9.ml.org/software/

네트워크보안솔류션(Network Security Solutions Ltd.)에서는 유닉스와 윈도우기반의 보안도구룰 개발 중에 있으며 몇 개월 후에 발표할 것이다. 이 회사의 홈페이지를 방문하기 바란다.

한편 한국정보보호센터에서는 해킹예방을 위해 시큐어닥터(SecuDr, Secure Doctor), 온라인시큐어닥터(OLSD, OnLine-SecuDr), 온라인시큐어매니져(OLSM, OnLine-SecuMgr) 등을 개발 국내 공공기관 등의 해킹취약점 안전진단에 활용한바 있으며 '98년에 정보보호 산업체에 기술을 이전하여 상용화를 통한 국내외 시장 촉진에 나서도록 추진한 바 있다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,038 명
  • 현재 강좌수 :  35,818 개
  • 현재 접속자 :  89 명