정보보안 공부/운영체제, 시스템

[시스템 보안] 백도어 (back door)

pxatd 2022. 6. 26. 17:07
728x90

1. 백도어의 이해

- 시스템 접근에 대한 사용자 인증 등 정상적인 절차를 거치지 않고 응용 프로그램에 접근

- 로그를 남기지 않음 (관리자도 이를 발견하기 어려움)

- 주로 사람들이 많이 사용할 것 같은 프로그램에 심어놓음 (안드로이드 apk 파일 등)

 

1) 백도어와 트로이 목마

- 트로이 목마 : 사용자가 의도치 않은 코드를 정상적인 프로그램에 삽입한 프로그램

- 스파이웨어 : 설치된 정보를 주기적으로 원격지의 특정한 서버에 보내는 프로그램

- 백도어 : 원래 의미는 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않고 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로 

 

2) 백도어의 종류 (동작과 목적에 따라 구분) 

- 로컬 백도어: 서버의 셸을 얻어내 관리자로 권한 상승(Privilege Escalation)할 때 사용

- 원격 백도어: 계정에 패스워드 입력하고 로그인한 것처럼 원격으로 관리자 권한 획득해 시스템에 접근, 네트워크에 자신의 포트를 개방

- 패스워드 크래킹 백도어: 인증에 필요한 패스워드를 원격지 공격자에게 보내주는 역할, 공격자가 로그인 가능 

- 시스템 설정 변경 백도어: 시스템 설정을 해커가 원하는 대로 변경하기 위한 툴, 보안 모니터링이 적은 시각에 접근함 

- 트로이 목마 형태의 프로그램 : 처음부터 백도어를 목적으로 만들어진 것은 아니지만 백도어로 동작하는 경우

 

2. 백도어 예시

1) 로컬 백도어 생성 

- 백도어의 인수(char exec[100])를 system 명령으로 실행하는 간단한 형태

- SetUID 비트에 설정과 실행 권한 부여

 

2) 로컬 백도어의 효과

- id 명령 실행: 일반 계정에서도 uid, gid가 0 → 즉 관리자 계정으로 출력

- shadow 파일은 일반 계정이 읽을 수 있는 권한 없음

- SetUID 비트를 가지고 있는 backdoor 파일을 통해 관리자 소유의 shadow 파일 조회 가능

 

3) 백도어 활용 시나리오

- 백도어를 이용하는 외부 침투자도 시스템에서 백도어를 실행한 사용자 권한으로 시스템에 침투 

- 커널 백도어 : 운영체제의 핵심 부분인 커널에 심어 넣는 백도어, 민감하고 난이도 높음 

  • 큰 차이는 없으며 커널에서 동작하기 때문에 일반 백도어보다 더 강력 
  • 제거하기 어렵고 설치 작업이 까다로움 

- 리눅스에서 백도어 동작 통제 : cron 같은 스케줄러 이용 

  • 이를 통해 필요할 때에만 백도어를 동작시켜 존재 자체를 효과적으로 숨김

4) Cron 스케줄러

- 데몬의 종류 중 하나

- 일정 시간이 되면 자체적으로 프로그램을 실행 또는 중지하는 스케줄러

- 앞의 숫자, * 4개 : 해당 프로그램이 실행될 시간으로, 각각 분, 시, 날짜, 달, 요일

- ‘30 16,17 5-7 */2 * reboot’는 2개월마다(*/2) 5일부터 7일까지(5-7), 16시와 17시(16,17) 30분에 재 부팅 하라는 의미

 

<Crontab에 아래의 내용을 추가>

- ishd 데몬은 매일 새벽 4~5시에만 구동되고, 공격자는 이 시간에만 접속을 시도

- 관리자는 ishd가 구동되고 있는지 새벽 4~5시에만 확인이 가능함

 

 

3. 백도어 탐지 순서와 대응책 

1) 일반적으로 Windows 및 리눅스에서 백도어 탐지할 수 있는 방법

- 현재 동작중인 프로세스 확인 (Windows)

 

2) 일반적으로 Windows 및 리눅스에서 백도어 탐지할 수 있는 방법

- 열린 포트 확인

  • 백도어 상당수가 외부와 통신 위해 서비스 포트 생성. 시스템에서는 netstat 명령으로 열린 포트 확인
  • 일반 시스템에서 사용되는 포트는 그리 많지 않으므로 주의해 살펴보면 백도어가 사용하는 포트 쉽게 확인 가능

- SetUID 파일 검사 (Linux)

 

3) 일반적으로 Windows 및 리눅스에서 백도어 탐지할 수 있는 방법

- 바이러스와 백도어 탐지 툴 이용

  • 잘 알려진 백도어는 대부분 바이러스 일종으로 분류, 백신 툴이나 탐지 툴에 발견

- 무결성 검사

  • 시스템에 어떤 변화가 일어나는지 테스트하는 것. MD5 해시 기법 많이 사용
  • 파일 내용이 조금만 바뀌어도 MD5 해시 결과 값이 다르므로 관리자는 주요 파일의 MD5 값 을 주기적으로 수집, 검사하여 파일의 변경 내역을 확인

- 로그 분석

  • 방법은 무척 다양하며, Cyber Forensic(사이버 포렌식)이라는 하나의 분야로 정착
  • 참고: 리눅스에서는 dmesg 명령어를 통해 커널 로그를 확인할 수 있음
728x90