본문 바로가기

루트킷3

3장. 하드웨어 레벨의 지식 - 링 제로 (Ring Zero) 인텔 x86 계열의 마이크로 프로세서는 접근 제얼르 위해서 링(Ring)이라는 개념을 사용한다. 링은 링 0(Ring Zero)부터 링 3까지 총 네 가지 레벨이 있으며, 링 0가 가장 권한이 높고 링 3가 가장 권한이 낮은 것을 의미한다. 내부적으로 각각의 링은 숫자로 저장된다. 실제로 마이크로 칩에 물리적인 링이 존재하는 것은 아니다. 윈도우 운영체제의 모든 커널 코드는 링 0로 동작한다. 따라서 커널 안에서 동작하는 루트킷 또한 링 0로 동작하는 것이다. 커널 안에서 동작하지 않는 유저 모드 프로그램들은 링 3 프로그램이라고 부른다. 윈도우와 리눅스를 포함해서 많은 운영체제들이 링 1, 2는 이용하지 않고 링 0과 링 3만을 이용한다. (윈도우 아키텍처에서는 링 1, 2를 사용하지 않는다.) 링 0.. 2014. 1. 17.
2장. 커널 조작 - 재부팅시 자동 시작 루트킷 드라이버는 시스템이 부팅되는 시점에 로드되어야 한다. 이 문제에 대해 곰곰이 생각해 보면, 시스템이 부팅되는 시점에 로드되는 소프트웨어가 상당히 다양하고 많다는 사실을 깨닫게 될 것이다. 다음은 시스템에 부팅되는 시점에 루트킷을 로드할 수 있는 다양한 방법이다. Run 키를 이용 (오래된 신뢰할 수 있는 방법) Run 키를 이용하면 임의의 프로그램을 부팅 시점에 실행시킬 수 있다. Run 키에 의해 실행된 프로그램은 자신에게 삽입된 루트킷 파일을 생성해서 그것을 로드한다. 로드된 루트킷은 탐지되지 않기 위해 자신을 위한 Run 키의 값을 감출 수 있다. 모든 바이러스 스캐너는 Run 키를 검사하기 때문에 이 방법은 상당히 위험한 방법이다. 하지만 루트킷이 일단 로드되면 키 값은 보이지 않게 된다... 2014. 1. 15.
1장. 흔적을 남기지 말라 - 루트킷이란? 루트킷은 공격자가 컴퓨터의 관리자 계정인 '루트(root)' 계정의 권한을 획득하는 데 유용하게 사용되는 작은 프로그램들로 이루어진 '킷'이라고 할 수 있다. 루트킷은 영구적 또는 일관적으로 탐지되지 않는 형태로 컴퓨터에 존재할 수 있게 해주는 프로그램들과 코드들로 이루어진 세트다. 루트킷의 정의에서 핵심적인 키워드는 '탐지되지 않는'이다. 루트킷이 사용하는 대부분의 기술과 트릭은 코드와 데이터를 컴퓨터 시스템에서 숨기기 위한 것들이다. 즉 대부분의 루트킷이 파일과 디렉토리를 숨길 수 있는 기능을 제공해 준다. 루트킷의 기능 중 또 다른 것으로 원격지에서의 컴퓨터 접근과 네트워크 패킷 훔쳐보기를 들 수 있다. 이런 기능들이 조합되면 보안에 위협을 가할 수 있다. 루트킷은 본질적으로 '악의적'인 것이 아니.. 2014. 1. 8.