- 백도어
- 직역하면 뒷문, 공격자가 침투에 성공했을때 다음에 다시 침투하거나 추가적인 공격을 위해 만들어둠
- 쉽게 말해 스파이가 담장을 넘어와 담장 어딘가에 개구멍을 파는것이라고 생각하면됨
- 공격유형으로는 로컬, 원격 두 가지 방식이 있음
- 접속방식으로는 다이렉트, 리버스 커넥션 방식
- 다운로더
- 악성코드를 다운로드해서 설치하는 프로그램
- ex) 트로이목마 형태의 다운로더
- 드롭퍼
- 사용자 몰래 악성코드를 시스템에 설치하는 프로그램
- ex) 트로이목마 형태의 드롭퍼
- 키로거
- (우리가 아는 그것..) 피해자가 입력한 키 정보들을 공격자가 보거나 뺏어오는 것
- 공격유형으로 하드웨어형 키로거와 소프트웨어형 키로거가 있음
- 혹스(Hoax)
- 장난의 목적이 큼
- 가짜 바이러스
- ex) 행운의 편지, 당신은 XX를 보았습니다 등
- 익스플로잇
- 소프트웨어의 취약점을 이용하여 시스템의 권한을 획득하는 프로그램
- 루트킷
- 초기의 의미
- root + kit
- 좋은 의미의 백도어의 일종
- 현재의 의미
- 은닉
- 보안프로그램으로부터 모습을 숨기고 커널단에 메모리를 상주시킴
- 커널단은 발견 및 분석이 어렵다는 점을 이용
- 랫(RAT : Remote Administration Tools)
- 원격 PC를 액세스하는 프로그램
- 원격 관리 기능을 이용하여 피해자의 컴퓨터를 제어
- 기능
- 화면/캠 캡쳐 또는 제어
- 파일 관리
- 쉘 제어
- 컴퓨터 제어
- 레지스트리 관리
- 마우스 및 키보드 제어
- 채팅 기능
- 하드웨어 과부하
- 기타 다양한 소프트웨어 제품 관련 기능
- 공격자가 많이 활용하는 프로그램
이후 교육원에서 실습한 내용
- 로컬 백도어 - passwd 실습
- CentOS(40)
- useradd -o -u 0 back
-o -u 0 : UID가 0인데, 중복이 가능하게 해줌 - passwd back
- su khtest171
없으면 만드셈, 뒷 숫자는 아무거나 - id
- su back
- id
- 로컬 백도어 - SetUID를 통한 권한 상승
- SetUID의 사용 예
- 파일이 실행될 경우 부모 프로세스의 권한이 아닌 파일의 소유주 권한으로 실행되고 종료시 반환
- SetUID 가 적용된 검색
- find / -perm +4000 -exec ls -l {} \; 2> /dev/null
0> 표준 입력
1> 표준 출력
2> 표준 에러
/dev/null 리눅스판 휴지통(?) - SetUID가 설정되어 있는 대표적인 프로그램 : su, passwd
- RUID(Real UID) / EUID (Effective UID)
- passwd 파일이 관리자 권한으로 실행 될 때 일반 사용자 계정에 의한 실행인지 판별하여야 하며 이때 사용되는 것들
- Linux에서 프로세스가 실행될 경우 두 가지 UID의 정보를 관리하며, SetUID에 의해 프로세스 UID가 적용될 경우 RUID는 변경되지 않고, EUID만 해당 파일의 소유주 권한으로 상승
- 이로 인해 프로세스가 두 가지의 다른 UID를 갖게 되는데, 이 때 기본적인 접근 허가를 EUID로 수행하며, 필요할 경우 프로그램 내부적으로 RUID를 확인하여 SetUID를 통한 권한 상승인지 실제 해당 사용자인지를 분별할 수 있게 됨 -> passwd 프로그램이 실행될 때 내부적으로 RUID를 확인하여 root 사용자인지 일반 사용자의 권한 상승인지를 확인하여 예외 처리 수행
- 예제를 통해 RUID / EUID 권한 확인
- getuid.c
- 일반 권한
- SetUID 권한
> SetUID 설정
> RUID와 EUID가 다름 - 다른 예제
- getuid.c
- 일반 권한
- SetUID를 이용한 권한 상승 백도어 예제
- cd /tmp
- vim backdoor.c
- gcc -o backdoor backdoor.c
- chmod 4755 backdoor
- 정상 프로그램처럼 위장하여 백도어 제작
- fake_ping.c
- install.sh
- 보안 대책
- find 명령을 통해 SetUID가 부여된 프로그램 확인
- SetUID가 부여된 프로그램들을 따로 목록화하여 관리
- Partition Mounting 시 SetUID가 불필요한 파티션에서는 --nosuid 옵션으로 마운트
- 무결성 점검 도구를 통해 기존의 SetUID 파일의 무결성 확보
- tripwire
- RAT
- Beast
- 원격 PC 제어를 위한 프로그램
- 기능
- 백도어 생성(다이렉트, 리버스 커넥션 지원)
- 레지스트리를 이용한 자동 실행
- Anti-Virus, Firewall 종료 기능
- Trogen-Horse 생성
- 파일, 레지스트리, 화면, 웹캠, 프로세스 서비스, 클립보드 정보 변경 또는 탈취
- 컴퓨터 제어(종료, 부팅, 크래쉬, 로그 아웃, ...)
- 장난스러운 기능(CD-ROM Open/Lock, Hide Tray, Chatting, URL 이동, ...)
- 프로그램 제어(업데이트, 연결 종료, 프로그램 삭제, ...)
- 키로깅(Key Logger, Live Key Logging, ...)
- 스캐닝(Scanning)
- DarkComet RAT
- Beast보다 강력한 기능을 제공
- 리버스커넥션 기능을 주력
- (이하 설명 생략)
- 윈도우 로컬 보안 정책(secpol.msc)
- 컴퓨터 보안에 영향을 주는 설정들을 모아놓고 설정, 관리하는 도구
- 로컬 보안 정책에서 설정 시 일반 관리 도구에서 설정 불가능
- 예) 로컬 보안 정책 -> 방화벽 설정에서 방화벽 설정 변경
- 방화벽 관리도구(고급 보안이 설정된 윈도우 방화벽)에서 설정 불가능
- Home Edition에서는 로컬 보안 정책을 지원하지 않음(보이지 않음)
'Malware > Malware Theory' 카테고리의 다른 글
[보안프로젝트] 악성코드 분석 내용 정리 (0) | 2018.01.24 |
---|---|
악성코드 주요행위 (1) (0) | 2018.01.24 |
악성코드와 WinAPI의 관계 (0) | 2018.01.24 |
악성코드 분석 흐름 (0) | 2018.01.24 |