2장. 공격자와 취약점

좋은 보안 정책을 계획하고 구현하기 위해서는 먼저 공격자가 시스템에 침입하고자 결정하게된 계기와 동기를 알아보아야 합니다. 이를 알아보기에 앞서, 우선 공격자를 지칭하는 여러 용어들에 대하여 설명해 보겠습니다.

2.1. 간략한 해커 역사

오늘날 우리가 알고 있는 해커 (hacker)의 기원은 1960 년대 MIT 테크 모델 철도 클럽(TMRC, Tech Model Railroad Club)에서 시작되었습니다. 복잡한 구조의 대형 기차 모형을 제작하는 이 동호회에서는 독창적인 요령이나 문제 해결책을 발견한 동호회 회원을 지칭하는데 해커라는 이름을 사용하기 시작했습니다.

그 이후 해커라는 용어는 컴퓨터 애호가로부터 능력이 뛰어난 프로그래머까지 모든 것을 포함하는 의미를 갖게 되었습니다. 대부분 해커들의 일반적인 특징은 다른 사람의 영향을 받지 않고 스스로 컴퓨터 시스템과 네트워크 기능의 작업 방식에 대하여 자세히 알아보고자 하는 정신입니다. 오픈 소스 소프트웨어 개발자들은 종종 자기 자신과 또한 함께 일하는 동료들을 해커로 지칭하며, 해커 정신을 존경할 것을 요구합니다.

일반적으로 해커들은 정보와 전문적 기술을 탐구하고 이 정보를 공유하는 것이 사회에 대한 해커의 근본 윤리임을 제시하는 해커 윤리 (hacker ethic)를 따릅니다. 이러한 지식을 탐구하는 일환으로 일부 해커들은 컴퓨터 시스템의 보안 침투를 시도하기도 합니다. 이러한 이유로 매체에서는 종종 해커라는 용어를 비도덕적이고 악의를 가지고 범죄를 저지를 생각으로 불법으로 시스템과 네트워크에 침입한 사람을 지칭하는데 사용합니다. 이러한 유형의 컴퓨터 해커에 대한 보다 적절한 용어는 크래커 (cracker) 입니다 — 1980 년대 중반에 해커들이 해커와 크래커에 차이를 두기 위해 만들어낸 용어입니다.

2.1.1. 다양한 종류의 해커

시스템과 네트워크의 취약점을 분석 파악하고 연구하는 해커들은 여러 다른 그룹으로 나뉘어 집니다. 이 그룹들은 이들이 보안 체계를 연구할 때 "착용하는" 모자의 색으로 구분되며, 이 색은 해킹의 의도를 나타냅니다.

white hat 해커란 네트워크와 시스템을 검사하여 얼마나 외부 침입에 취약한지를 연구하는 사람입니다. 일반적으로 white hat 해커는 자신의 시스템이나 보안 검사를 위해 자신을 고용한 고객의 시스템에 침투하여 연구합니다. white hat 해커의 대표적인 예로서는 대학 연구원이나 전문 보안 상담자를 들 수 있습니다.

black hat 해커는 크래커와 동일한 의미입니다. 일반적으로 크래커는 연구나 프로그래밍이 보다는 크래킹 프로그램을 사용하거나 잘 알려진 취약점을 이용하여 시스템에 침입한 후 기밀 정보를 빼내거나 목표 시스템이나 네트워크를 손상시킵니다.

반면 grey hat 해커는 대부분의 경우 white hat 해커의 지식과 의도를 갖추고 있지만, 가끔씩 자신의 지식을 보다 정당하지 못한 의도로 사용하는 사람을 지칭합니다. grey hat 해커는 white hat 해커이지만 가끔씩 자신의 욕심을 채우기 위해 black hat으로 변하는 해커라고 말할 수 있습니다.

grey hat 해커는 일반적으로 다른 유형의 해커 윤리를 따릅니다. 이 해커 윤리에 따르면 해커가 도둑질이나 기밀을 유포하지 않는 한 시스템에 침입하는 것을 허용합니다. 그러나 일부에서는 시스템에 침입하는 것 자체가 윤리적이지 못하다고 비난합니다.

침입자의 의도에 상관없이 크래커가 시스템 침입에 사용할 취약점을 알아내는 것이 중요합니다. 이 장의 나머지 부분에서는 이러한 취약점을 중점으로 설명해 보겠습니다.