OS

루트킷(rootkit)

젤리젤리젤리젤리젤리 2020. 10. 21. 12:19
반응형

컴퓨터 보안 링

 

 루트킷 (rootkit)은 컴퓨터 소프트웨어 중에서 악의적인 것들의 모음으로써, 자신 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계되었다.

루트킷이라는 용어는 "root"(유닉스 계열 시스템에서 권한을 가진 계정의 전통적인 이름)와 "kit"(툴을 구현하는 소프트웨어 구성 요소를 가리킨다.)의 합성어이다. "루트킷"이라는 용어는 악성 소프트웨어와의 연관으로 인해 부정적인 의미를 함축하고 있다.

루트킷의 설치는 자동으로 이루어지거나 공격자가 루트 권한이나 관리자 접근을 획득하였을 때 설치될 수 있다. 이 접근을 획득하는 것은 알려진 취약점(권한 확대 같은)을 공격하는 것이나 암호(크래킹 또는 사회공학을 통해 획득한)를 통한 직접적인 권한의 결과이다. 한 번 설치되면, 권한을 가진 접근을 유지할 뿐만 아니라 침입을 숨길 수도 있다. 중요한 점은 루트 또는 관리자 접근이다. 시스템에 대한 완전한 제어는 존재하는 소프트웨어가 수정되었을 수 있다는 것을 의미한다.

루트킷 탐지는 이것이 자신을 찾으려 하는 소프트웨어를 뒤집어 엎을 수 있기 때문에 어려운 일이다. 탐지 방법은 대체적이고 신뢰성 있는 운영 체제나 행동 기반 방식, 특징(signature) 스캐닝 그리고 메모리 덤프 분석 등이 있다. 제거는 복잡하거나 심지어 실질적으로 불가능할 수 있는데 특히 루트킷이 커널에 거주할 때 더 그렇다; 운영 체제의 재설치가 문제 해결의 유일한 해결법이 될 수 있다. 펌웨어 루트킷의 경우, 제거하기 위해서 하드웨어 교체나 특별한 장비가 필요할 수 있다.

> 용도
 현대 루트킷들은 접근을 상승시키지 않고, 대신 숨겨진 기능을 추가함으로써 다른 소프트웨어 페이로드를 탐지하지 못하게 하는 용도로 사용된다. 대부분의 루트킷들은 악성 소프트웨어로 분류되는데, 그들과 함께 번들된 페이로드가 악의적이기 때문이다. 예를 들면 페이로드는 은밀하게 사용자 계정, 신용 카드 정보, 컴퓨팅 자원을 훔치거나 다른 비인가된 행동을 수행할 수 있다. 소수의 루트킷들은 자신의 사용자에 의해서 유틸리티 애플리케이션으로 여겨질 수 있다.

 

> 탐지

  1. 대안이 되는 신뢰되는 매체

  2. 행위 기반

  3. 시그니처 기반

  4. 차이 기반

  5. 무결성 검사

  6. 메모리 덤프

 루트킷을 발견하는데 근본적인 문제는 만약 운영 체제가 전복되었다면, 특히 커널 수준 루트킷에 의해서, 자신 또는 자신의 구성 요소들에게 비인가된 수정이 신뢰된다는 것이다. 실행 중인 프로세스들의 목록이나 디렉토리의 파일을 요청하는 것 같은 행동은 예상과 같이 행동한다고 신뢰될 수 없다. 즉 감염된 시스템에서 동작 중인 루트킷 탐지기들은 단지 커널에서 루트킷보다 낮은 수준에서 실행될 때 탐지할 수 있다. 컴퓨터 바이러스 같이 루트킷의 탐지와 제거는 이 때문에 더욱 힘들어지고 있다.

 탐지는 여러가지 접근법을 가질 수 있는데 시그니처(안티 바이러스 소프트웨어), 무결성 검사(디지털 서명), 차이 기반 탐지(예상 결과와 실제 결과와의 비교) 그리고 행위 기반 탐지(CPU 사용이나 네트워크 트래픽 감시)가 있다. 커널 모드 루트킷들에서 탐지는 상당히 복잡한데, 악성코드가 시스템 행위를 전복시키는 곳에서 후킹된 함수들을 찾기 위한 시스템 호출 테이블과 숨겨진 프로세스들을 가리키는 패턴에 대한 메모리의 포렌식 스캐닝의 철저한 검토를 요구한다.

 유닉스 루트킷 탐지는 Zeppoo], chkrootkit, rkhunter 그리고 OSSEC를 제공한다. 윈도우에서, 탐지 툴들로는 마이크로소프트 시스인터널스 RootkitRevealer, 어베스트! 안티바이러스, Sophos 안티-루트킷, F-시큐어, Radix, GMER, 그리고 WindowsSCOPE가 있다.

 의심되는 운영 체제가 가동중이지 않을 때 저장소를 검사함으로써 탐지하는 것은 루트킷이 활성화되지 않아서 루트킷을 인식하는 것을 실패할 수 있다. 가동중인 루트킷과 함께 돌아가는 일반적인 안티 바이러스 소프트웨어는 루트킷이 자신을 효과적으로 숨기면 실패할 수 있다.

 

 

[출처]
https://ko.wikipedia.org/wiki/%EB%A3%A8%ED%8A%B8%ED%82%B7

반응형