루트킷(rootkit)이란?
루트킷 (rootkit)은 컴퓨터 소프트웨어 중에서 악의적인 것들의 모음으로, 자신 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근할 수 있게 하는 용도로 설계되었습니다. 루트킷이라는 용어는 "루트"(유닉스 계열 시스템에서 권한을 가진 계정의 전통적인 이름)와 "kit"(툴을 구현하는 소프트웨어 구성 요소를 가리킨다.)의 합성어입니다. "루트킷"이라는 용어는 악성 소프트웨어와의 연관으로 인해 부정적인 의미를 함축하고 있습니다.
루트킷의 설치는 자동으로 이루어지거나 공격자가 루트 권한이나 관리자 접근을 획득하였을 때 설치될 수 있습니다. 이 접근은 알려진 취약점(ex.권한 확대)을 공격하거나 암호(ex. 크래킹 또는 사회공학을 통해 획득)를 통하여 직접적으로 권한을 획득한 결과입니다. 한 번 설치되면, 권한을 가진 접근을 유지할 뿐만 아니라 침입을 숨길 수도 있습니다. 중요한 점은 루트 또는 관리자 접근입니다. 시스템에 대한 완전한 제어는 존재하는 소프트웨어가 수정될 수 있음을 의미합니다. 찾으려 하는 소프트웨어를 뒤집어 엎을 수 있기 때문에 루트킷 탐지는 어려운 일입니다.
탐지 방법은 대체적이고 신뢰성 있는 운영 체제나 행동 기반 방식, 특징(signature) 스캐닝 그리고 메모리 덤프 분석등이 있습니다. 제거는 복잡하거나 실질적으로 불가능할 수 있는데 특히 루트킷이 커널에 거주할 때 더욱 어렵습니다. 운영 체제의 재설치가 문제 해결의 유일한 해결법이 될 수 있습니다. 펌웨어 루트킷의 경우, 제거하기 위해서 하드웨어 교체나 특별한 장비가 필요할 수 있습니다.
많은 루트킷 구현들은 인터넷에서 공유되고 쉽게 사용 가능합니다. 대부분의 루트킷들은 인터넷에서 기반한 컴퓨터 시스템에서 숨기고, 비인가된 제어를 하는 것을 입증하기 위한 익스플로잇 또는 학문적으로 "개념 증명"으로 사용 가능합니다. 종종 은폐를 위해 완벽하게 최적화되지 않은 루트킷들은 자신의 존재에 대한 의도치 않은 증거를 남깁니다. 그렇더라도, 이러한 루트킷들이 공격에 사용될 때는 매우 효과적일 수 있습니다.
루트킷이 설치되는 것을 막는 시스템 하드닝은 루트킷을 방어하는 첫번째 계층 중 하나입니다. 보안 패치, 최소 권한 원리 적용은 모든 종류의 악성코드를 막는데 효과적인 방식입니다. 통일 확장 펌웨어 인터페이스 같은 새로운 보안 부트 명세는 부트킷의 위협을 막기 위해 설계되었지만, 자신이 제공하는 특징이 사용되지 않는다면 더 취약합니다.서버 시스템에서 원격 서버 증명은 서버를 좋은 상태로 유지시키는 효과적인 방법입니다.
'보안용어' 카테고리의 다른 글
래터럴 무브먼트(Lateral Movement) (0) | 2020.05.11 |
---|---|
피싱, 스미싱, 파밍, 스머핑 비교 분석 (0) | 2020.05.09 |
누킹(Nuking) (0) | 2020.05.08 |
논리 폭탄(Logic Bomb) (0) | 2020.05.08 |
다크웹(Dark Web) (0) | 2020.05.07 |
댓글