Chapter 8의 소 주제로는 네트워크 기초, 네트워크의 종류, 네트워크 보안 툴, 네트워크 공격, 침해대응, 네트워크 증거와 수사가 있다.
오늘날 네트워크는 거의 모든 곳에서 찾아볼 수 있다. 컴퓨터와 휴대폰에서 마찬가지로 포렌식에 대해 배우기 전에 어떻게 네트워크가 작동하는지 먼저 이해해야 한다. 따라서 9장에서는 네트워크 기초부터 살펴볼 예정이다. 이후 네트워크 공격, 공격에 대한 대응, 공격자 추적에 대한 디지털 포렌식의 역할에 대해 살펴볼 것이다.
네트워크를 방어하는 데 있어 사기업들도 많은 기여를 한다. 디지털 포렌식은 여기서 두 가지 역할을 할 수 있다.
네트워크를 조사할 때는 네트워크와 분리되어 있는 컴퓨터에서는 발생하지 않은 많은 어려움을 극복해야 한다. 네트워크 컴퓨터의 데이터(증거)는 여러 대의 컴퓨터나 기기에 여러 조각으로 저장되어 있을 수 있다. 데이터의 양 자체도 문제가 될 수 있다. 데이터의 양은 때에 따라 천문학적이 될 수도 있다.
해커들은 수많은 방법으로 네트워크를 공격할 수 있다. 해커들은 기술적인 취약점만이 아니라 사람들의 취약점도 이용한다. 기술적인 취약점으로는 소프트웨어 취약점이 있다. 소프트웨어의 결점은 개발자, 보안 전문가 등으로 인해 발견된다. 해커들은 공격 코드를 개발해 이러한 취약점을 공격한다. 이에 대한 해결책은 주로 "패치"의 형태로 배포된다.
인간의 취약성은 해커 공격에도 취약하다. 사람들은 취약한 비밀번호를 사용하는 경향이 있다. 비밀번호가 너무 짧거나 예측하기 쉽고, 강력한 비밀번호를 사용한다 하더라도 컴퓨터 주변에 비밀번호를 필기하는 경우도 있다. 또한 무고한 사용자들이 사회공학기법에 쉽게 당할 수도 있다.
사회공학기법: 인증된 사용자가 인증되지 않은 사용자에게 민감한 정보를 누설하도록 만든다. 일반적으로 공격할 때 공격자는 직원, 고객, 보안 컨설턴트 등의 행세를 한다. 이러한 공격은 기술과 사람의 취약점 모두 활용해 혼합 공격을 할 수 있다.
네트워크 또는 컴퓨터를 연결하는 것에는 자원의 공유와 협력 등의 이점이 있다.
네트워크를 구성하기 위해서는 규모와 목적에 상관없이 필수적인 기본적인 사항이 있다. 먼저 컴퓨터나 장비 사이를 연결해야 한다. 물리적(이더넷 케이블)이나 무선으로 연결할 수 있다. 다음으로 사전에 서로 합의한 통신 규약인 프로토콜이 있어야 한다. 대표적인 네트워크 프로토콜은 TCP/IP(Transmission Control Protocol/Internet Protocol)이 있다.
오늘날 가장 널리 사용되는 네트워크 종류는 클라이언트/서버 환경이다. 클라이언트/서버 네트워크에 있는 각 컴퓨터는 두 가지 역할 중에 하나의 역할을 수행한다. 클라이언트는 최종 사용자가 사용하는 컴퓨터로 우리가 사용하는 PC와 같은 기기가 있다. 클라이언트는 파일, 서비스, 정보 등을 서버로부터 요청한다. 그에 반해 서버는 파일, 서비스, 정보를 여러 클라이언트에 제공한다. 하나의 서버가 수백 대의 클라이언트와 파일을 공유할 수 있고 서버는 네트워크를 더 많이 통제할 수 있다. 서버들은 보통 특정 기능 하나만을 수행하고 예로는 파일 서버, 이메일 서버, 프린트 서버 등이 있다.
일반적으로 사용되는 또 다른 네트워크 구성은 P2P(Peer-to-Peer)이다. 여기서는 네트워크에 있는 모든 컴퓨터가 클라이언트와 서버 역할을 모두 수행할 수 있다. P2P는 파일 공유 프로그램에서 많이 사용된다. 영화, 음악, 소프트웨어 등이 공유되지만, 때로는 불법적으로 공유가 되거나 아동 포르노가 공유되기도 한다.
근거리 통신망(Local Area Network, LAN): 일반적으로 작은 사무실에서 사용하는 네트워크다. 하나의 사무실이나 빌딩에 있는 컴퓨터와 기기들로 구성되어 있다.
광역 통신망(Wide Area Network, WAN): LAN보다 훨씬 규모가 크다. 다른 위치에 있는 여러 개의 LAN으로 구성되어 있다. 따라서 지정학적으로 매우 넓은 범위를 포함할 수 있다.
이 외의 네트워크 종류로는 MAN(Metropolitan Area Network), PAN(Personal Area Networks), CAN(Campus Area Network), GAN(Global Area Network) 등이 있다.
인터넷과 상반되는 인트라넷은 공개되어 있지 않고 접근이 제한적이다. 인트라넷은 파일 공유, 통신 등에 사용된다. 인트라넷은 인터넷과 유사하게 웹 브라우저를 사용해 접속하고 TCP/IP 프로토콜을 사용한다.
TCP/IP 프로토콜을 사용하는 네트워크에 연결되어 있는 각 컴퓨터나 기기는 IP 주소라고 불리는 고유의 식별번호를 가진다. IP 주소는 메시지와 데이터를 정확히 도착지에 전달하는 데 사용된다. 신경 쓰면 좋은 IP 주소는 버전 4와 버전 6이다. IPv4 주소는 "."으로 분리된 4개의 숫자로 구성된다. 각각의 숫자는 8비트로 0에서 255까지의 값을 가진다. 일반적인 IPv4 주소는 198.122.55.16와 같이 생겼다. IPv6 주소는 2008:0eb3:29a2:0000:8c1d:0967:7256와 같이 생겼다.
IP 주소는 정적 또는 동적이다. 정적 주소는 주로 고정되어 있고 변하지 않는다. 반대로 동적 주소는 주기적으로 변한다.
네트워크에 있는 데이터는 다양한 방법으로 전송된다. 인터넷과 다른 많은 네트워크에서는 데이터를 패킷이라고 부르는 작은 조각으로 만드는 패킷 스위칭을 사용한다. 이러한 패킷은 IP 주소를 사용해 최종 도착지로 전송된다.
모든 패킷은 동일하게 헤더, 페이로드, 푸터 세 부분으로 구성되어 있다. 헤더에는 송수신자의 IP 주소가 담겨 있고 주소 정보를 저장한다. 다음으로 얼마나 많은 패킷이 있는지 그 중에서 해당 패킷은 몇 번째 패킷인지 알려준다. 그다음으로 페이로드가 온다. 마지막으로 수신자에게 해당 패킷이 마지막 패킷임을 알려주는 푸터로 패킷이 완료된다. 또한 CRC(Cyclical Redundancy Check, 순환 중복 검사)도 한다. CRC는 패킷에 있는 모든 1의 합이다. 만약에 숫자가 일치하지 않는다면 데이터를 수신하는 컴퓨터에서 자동으로 데이터를 다시 요청해 재전송한다. CRC는 패킷의 무결성을 검증하는 데 사용된다. 아래 사진은 TCP/IP 패킷의 구성을 나타낸 그림이다.
게이트웨이는 또 다른 네트워크로의 출입구 역할을 하는 네트워크 지점이다(Tech-Target, 2000). 그에 반해 브리지는 동일한 프로토콜을 사용하는 두 개의 네트워크를 연결하는 데 사용된다. 라우터는 IP 주소를 사용해 네트워크에 있는 데이터를 최종 목적지로 전송한다.
네트워크를 보호하는 데 도움이 되는 소프트웨어와 하드웨어가 많이 있다. 이러한 툴로 공격을 방지하는 데 도움을 얻을 수 있고 조사와 관련된 정보를 수집할 수 있다. 이러한 툴을 한두 가지만 살펴볼 예정이다.
- 방화벽: 연관된 프로그램의 세트이다. 네트워크의 게이트웨이 서버에 위치하고 다른 네트워크의 사용자로부터 사설 네트워크의 자원을 보호한다. 방화벽은 송수신되는 네트워크 트래픽을 필터링한다. 방화벽은 네트워크 패킷을 유심히 조사한 후 트래픽을 허용할지 허용하지 않을지를 결정한다.
- 침입 탐지 시스템: 기업 내부와 외부의 공격을 탐지한다. 일반적으로 침입 탐지 시스템은 네트워크에서 공격 패턴이나 일상적이지 않은 시스템 또는 사용자 활동을 모니터한다. 스노트(Snort)는 오픈소스 네트워크 탐지 시스템 중 하나다. 스노트는 네트워크를 스니핑하고 실시간으로 네트워크를 모니터 하다가 잠재적 문제가 식별되면 경고를 보낸다.
네트워크를 해킹하거나 공격하는 방법은 많다. 아래는 오늘날 사용되고 있는 공격 기법의 예다.
- 분산 서비스 거부 공격(Distributed Denial of Service, DDoS): 이 공격은 침해된 수많은 컴퓨터를 사용해 단 하나의 시스템을 공격하는 데 사용한다. 공격하는 컴퓨터들은 엄청난 양의 메시지와 요청으로 공격대상 컴퓨터를 압도한다. 공격 대상 시스템은 많은 양의 트래픽을 처리하지 못하고 결국 마비된다. 공격을 하는 컴퓨터를 통틀어 "봇넷(botnet)"이라고 부르고, "봇넷"은 "좀비(zombie)"라고 불리는 여러 대의 침해된 컴퓨터로 이루어져 있다.
- IP 스푸핑(spoofing): 공격자는 공격대상 네트워크에 접근하기 위해 유효하거나 "알려진" IP 주소를 위조하거나 "스푸핑" 할 수 있다. 스푸핑은 속임을 이용한 공격을 총칭한다.
- 중간자 공격(Man-In-The-Middle-Attack): 이 공격을 할 때 해커는 특정 사용자와 그 사용자가 통신하는 컴퓨터 사이에 자신을 삽입한다. 이를 통해 그 사용자의 통신을 모니터, 변경, 삭제할 수 있고 해당 사용자의 행세를 할 수도 있다.
- 사회공학기법: 보호되어 있는 정보를 속임수나 사기로 획득하는 것이다. 테크 타깃에서는 사회공학기법을 "비기술적 침투를 묘사하는 용어로 인간과의 상호작용에 크게 의존하고 다른 사람들로 하여금 보안 절차를 따르지 않도록 속이는 것이다."라고 정의했다. 아래는 사회공학기법을 사용해 해킹을 성공한 예시이다.
전설적인 해커 케빈 미트닉(Kevin Mitnick)은 어느 날 네트워크 운영 센터에 전화를 걸었다. 미트닉은 한 명의 운영자와 친해진 후에 "책상 위에 '보안 ID'를 두고 왔는데 나 대신 가져다줄 수 있어?"라고 부탁했다. 물론 네트워크 운영자는 시간이 없어서 통화 상태에서 "보안 ID"에 잇는 정보를 미트닉에게 읽어줬다. 미트닉은 이 정보로 네트워크의 접근 권한을 가지게 되었고 이 업체의 소스 코드를 모두 훔쳤다. 이때 미트닉은 네트워크 운영자에게 사무실 전화번호, 근무처, 팀장 이름 등을 이야기해 운영자의 신뢰를 얻을 수 있었다.
2011년 버라이존, 미국 비밀검찰국, 네덜란드 국가 하이테크 범죄 수사팀은 합동으로 800건의 보안 침해사고를 분석해 보고서를 발간했다. 이 보고서에는 침해사고에서 가장 많이 사용된 해킹 기법을 식별했다. 그 내용은 아래와 같다.
이러한 방법으로 공격자는 탐지를 회피할 수 있다.
네트워크 보안은 방화벽 외부의 위협만이 아닌 방화벽 내부에서 발생하는 위협에도 관심을 가져야 한다. 내부자 공격은 외부 공격보다 훨씬 더 많은 피해를 초래할 수 있다. 내부자 공격 시나리오를 두 가지 살펴보자.
내부 위협
위협은 외부에만 있는 것이 아니라 조직 내부에도 있다. 내부와 외부 위협을 모두 포함할 수 있는 예방책이 필요하다. 내부 위협은 내부에 적용되어 있는 많은 보안 대책을 우회할 수 있다는 점에서 커다란 위협이다.
회사에서 해고된 한 프로그램 개발자가 회사에 불만을 품고 크리스마스 직전에 그의 전 고용자 컴퓨터 네트워크에 체계적인 공격을 감행했다. 그가 해고된 지 3주 후에 그는 그의 동료 중 한 명의 사용자 이름과 비밀번호를 사용해 원격에서 네트워크를 접근했다. 그리고 회사의 웹 페이지를 여러 개 변조해 페이지의 내용을 바꾸고 포르노 사진을 올려놨다. 또한 그는 회사의 웹 사이트가 해킹되었다는 이메일을 회사의 모든 고객에게 전송했다. 각 이메일에는 고객의 사용자 이름과 비밀번호가 포함되어 있었다. 사고 이후 회사에서는 조사에 착수했지만 공격자를 식별하지 못했다. 약 1개월 반이 지난 후 그는 다시 한번 원격에서 네트워크에 접속해 모든 네트워크의 비밀번호를 재설정하는 스크립트를 실행했다. 그리고 4천 개의 가격 정보를 변조했다. 결국 그는 발각되어 체포되었다.
잘 나가는 방위 사업 업체의 시스템 관리자는 그의 직책이 강등당한 것에 화가 났다. 이 시스템 관리자는 홀로 해당 업체의 컴퓨터 네트워크를 개발하고 관리했는데, 이 업체의 제조 공정을 지원하는 소프트웨어를 한 서버에 집중시킨 후에 동료들에게 해당 소프트웨어에 대한 백업 복사본만 줄 것이라고 협박했다. 이 협박으로 시스템 관리자는 해고당했지만 이 관리자는 논리 폭탄을 회사에 심어놓고 업체 서버에 있는 핵심 소프트웨어를 모두 삭제했다. 이 회사의 피해 금액은 약 1천만 달러에 달하는 것으로 추정되며 결국 80명의 직원을 해고해야 했다.
효과적으로 사고를 대응하기 위한 툴, 인력, 계획이 있으면 피해를 최소화하는 데 많은 도움이 된다.
미국 국립표준기술연구소(National Institute of Standards and Technology, NIST)는 그들이 발간한 컴퓨터 보안 침해 처리 지침(Computer Security Incident Handling Guide)에서 침해대응 라이프 사이클을 설명했다. 침해대응 단계로는 준비, 예방, 탐지 및 분석, 봉쇄, 박멸 및 복구, 사후활동 등이 있다.
1. 준비: 네트워크 보안 사고를 효과적으로 신속히 대응하기 위해서 준비는 핵심적이다. 준비를 할 때 기업에서는 계획 단계를 수행할 수 있다. 또한 네트워크의 방어 수준을 정기적으로 평가하고 테스트해 취약점을 식별해야 한다.
침해를 방지하기 위해 적극적인 대책이 필요하다. 예방책으로는 패치 시스템(소프트웨어를 최신으로 유지), 호스트 보안(각 컴퓨터의 보안 강화), 네트워크 보안(네트워크의 범위를 보안), 사용자 인식 개선 및 교육 등을 포함할 수 있다. 마지막으로 잘 계획된 정책, 절차, 지침은 조직의 준비성에 큰 도움을 줄 수 있다.
2. 탐지 및 분석: 공격을 탐지하는 확률을 높이려면 네트워크 보안 인력의 많은 노력이 필요하다. 또한 분석을 통해 적합한 결론을 도출하는 것도 도움이 된다. 침입 탐지 시스템은 많은 "거짓 양성" 결과를 보여주므로 보안팀은 정확하게 데이터를 분석할 수 있어야 한다. 최근에는 정교한 공격 자체를 일반적인 네트워크 활동처럼 보이게 할 수 있다. 따라서 의심스러운 활동을 잘 식별하기 위해서는 일상적인 네트워크나 데이터, 활동이 어떤 것인지 확실하게 인지해야 한다. 공격 징후의 예로는 백신 프로그램의 경고, 비정상적으로 느려진 인터넷, 비정상적인 네트워크 트래픽 등이 있다.
3. 봉쇄, 박멸 및 복구: 침해가 발생하면 피해를 최소화하기 위해 통제를 해야 한다. 봉쇄 방법은 침해사고의 종류에 따라 달라진다. 일부 봉쇄 방안으로는 침해 당한 컴퓨터의 시스템 전원 끄기, 네트워크 연결 차단, 장비의 일부 기능 비활성화 등이 있다. 일단 공격이 식별되고 봉쇄되면 악성코드나 침해된 계정 등 잠재적으로 위험한 요소들을 제거해야 한다.
4. 사후활동: 중요한 단계다. 침해사고 후에 사고에 대해 검토해 회사 전체에서 놓쳤던 부분을 확인하고 개선할 부분을 찾는다. 일반적인 침해사고 후 검토에서는 아래와 같은 질문에 대한 해답을 찾아야 한다.
보안 침해사고를 효과적으로 대응하기 위해서는 다양한 능력이 요구된다. 침해대응 계획의 일환으로 침해사고를 관리하는 데 필요한 모든 능력을 가진 컴퓨터 침해대응 팀을 구성해야 한다. 침해에 대응하기 위해 필요한 능력은 경영진, 정보보안, IT 지원, 법적, 홍보실 등을 대표하는 사람이 필요하다. 디지털 포렌식 능력이 있는 사람 또한 팀에 필요하다. 디지털 포렌식 조사관이 회사 내부에 존재하지 않는 경우 이 기능을 외부업체에 줘야 한다. 이 경우 실제 침해사고가 발생하기 훨씬 전에 외부업체를 미리 식별해둬야 한다.
해커들은 보통 공격대상으로 이어지는 네트워크 경로를 거치거나 통과해야 한다. 따라서 그 경로에는 증거가 있을 수 있고, 이러한 증거는 공격자를 추적하거나 식별하는 과정에서 매우 핵심적이다. 이러한 흔적을 최대한 많이 식별, 추적, 조사하는 것이 수사에 도움이 된다.
조사 시에는 네트워크 경로에 있는 장비를 최대한 많이 포함시켜야 한다. 라우터나 서버같이 경로에 있는 장비는 매우 중요한 정보를 저장하고 있을 수 있다. 라우터에는 증거가 저장되기도 하지만 해커의 공격대상이기도 하다. 라우터는 네트워크에서 핵심적인 구성요소이므로 해커들이 공격 목표로 자주 삼고 있다. 다만 라우터를 증거로 사용할 때 라우터의 휘발성이 문제가 된다. 앞의 장에서 휘발성 메모리는 그 내용을 유지하기 위해 지속적으로 전력을 공급해야 한다고 배웠다. 기기의 플러그를 뽑거나 재부팅하면 증거가 사라질 수 있어 라이브 포렌식을 실시해야 한다. 최선의 조언은 다른 휘발성 메모리를 다루듯이 조심히 처리해야 한다는 것이다. 이와 관련된 내용은 이 글에서 다루고 있다.
네트워크에 있는 많은 기기와 컴퓨터는 이벤트와 활동 로그를 생성한다. 따라서 네트워크 조사에 있어 로그 파일에 주로 증거가 있다. 로그 파일 종류 중 중요한 로그로는 인증, 프로그램, 운영체제, 방화병 로그 등이 있다. 인증 로그(그리고 IP 주소)는 특정 이벤트와 연관 있는 계정을 식별한다.
프로그램 로그는 날짜와 시간, 프로그램 식별자를 기록한다. 운영체제 로그는 시스템 재부팅뿐만 아니라 어떤 기기를 사용했는지 추적한다. 이 로그는 네트워크의 활동 패턴과 비정상 활동을 인지하는 데 유용하다.
로그 파일은 매우 빠르게 변화하고 사라진다. 업체들은 공간을 확보하기 위해 정기적으로 로그를 삭제한다. 따라서 관련이 있는 모든 로그를 확보할 수 없을 수 있다. 외부에서 발생하는 공격의 경우 외부업체가 통제하고 있는 기기를 통과하기 때문에 영장이 필요하다. 그리고 인터넷 서비스 제공업체는 이러한 로그를 영원히 간직하고 있지 않다. 보존과 삭제 정책으로 얼마나 오랫동안 이러한 기록을 보관해야 하는지 결정할 것이다.
라우터나 방화벽 같은 장비가 생성한 로그도 조사해야 한다. 라우터 로그에는 아래와 같은 정보가 저장되어 있다.
라우터에서 증거를 수집하려고 할 때에는 최대한 라우터에 영향을 주지 않는 것이 중요하다. 네트워크에서 라우터에 접속하기보다는 라우터의 콘솔에 직접 접속하는 것이 좋다. 데이터를 잠재적으로 변조시킬 수 있는 명령어는 피해야 한다. 예로 "configuration" 명령어는 반드시 피해야 한다. 이 경우는 "show" 명령어가 훨씬 낫다.
Ex) >(router name)#show clock detail - 시스템 시간 표시
>(router name)#show users - 라우터에 접근권한이 있는 사용자 표시
네트워크 트래픽을 캡쳐하고 분석할 수 있는 툴을 "스니퍼"라고 부른다. 이러한 툴에는 여러 가지가 있다.
네트워크 트래픽을 캡쳐하면 사건의 실마리를 많이 얻을 수 있다. 예로 어떤 파일이 도난당했고, 어떤 명령어가 실행되었고, 어떤 악의적인 페이로드가 전송되었는지 판단할 수 있게 된다. 법적인 관점에서 특정 상황에서 네트워크 트래픽을 모니터 하는 것은 도청하는 것과 같은 것이라고 인지하는 것이 중요하다.
공격자의 신원을 확인하기 어렵게 하는 요소들이 있다. 용의자는 실제 IP 주소를 "스푸핑"해 수사관들이 완전히 다른 IP 주소를 추적하게 만든다. 혹은 전세계에 퍼져있는 여러 대의 서버를 경유해 공격할 수도 있다.
로그는 훌륭한 증거 자료가 될 수 있지만 살펴볼 로그가 없는 경우도 있다. 일부 경우는 로그 기능이 비활성화되어 있어 아무런 로그도 생성되지 않는다. 시간도 문제다. 침해가 너무 늦게 발견되면 외부에서 관리하는 로그의 경우 유지 및 삭제 정책에 의해 로그 자체가 삭제되었을 수 있다. 또한 해커들이 공격할 때 의도적으로 로그를 삭제해 그들의 흔적을 지운다. 마지막으로 관할권이 가장 큰 문제이다. 공격자의 흔적은 국경을 넘나든다. 서로 다른 법적 관할권이라면 정보를 확보하기 위한 절차가 완전히 바뀔 수도 있다.
교육과 연구
1989년 설립된 SANS는 디지털 포렌식 교육과 연구에 대한 요구사항을 충족시키는 선두 기관 중에 하나다. SANS는 정보보안, 디지털 포렌식과 관련된 다양한 강의와 자원을 제공한다. 추가적으로, SANS는 업계에서 인정받는 다양한 자격증을 제공한다. 그리고 트위터에서 그 영향력을 과시하고 있다.
http://www.sans.org/
https://www.sans.org/blog/
@SANSInstitute
@sansforensics
[ Chapter 10 ] 휴대기기 포렌식 (0) | 2021.02.27 |
---|---|
[ Chapter 6 ] 안티 포렌식 (0) | 2021.02.03 |
[ Chapter 8 ] 인터넷과 이메일 (0) | 2021.01.24 |
[ Chapter 5 ] 윈도우 시스템에서의 증거 수집 (0) | 2021.01.22 |
[ Chapter 4 ] 증거 수집 (0) | 2021.01.18 |
댓글 영역