정보처리기사/정보 시스템 구축 관리
보안 공격 및 예방 6
RangA
2023. 6. 2. 19:21
03. 정보보호 대책
08. 백도어 탐지 기법 및 대응
1) 백도어의 특징
- 시스템 접근에 대한 사용자 인증을 거치지 않고, 응용 프로그램 또는 시스템에 접근할 수 있도록 하는 조치
- 시스템 관리자가 패스워드를 잃어버리게 되는 경우처럼 만약을 대비하여 언제든 시스템에 접근할 수 있도록 조치를 취하는것
- 악용될 경우, 공격자가 시스템에 불법적으로 접근한 후, 나중을 위해서 언제든 시스템을 접근할 수 있도록 조치를 취할 수 있음
- 공격자는 백도어 프로그램을 설치하기 위해서 시스템의 관리자 권한을 획득하는 과정이 선행되어야 함
- 공격자는 주로 SetUID 권한을 가진 파일을 변경하여 권한을 획득함
- 공격자는 언제 어디서든지 시스템에 접근할 수 있도록 불법 프로세스를 실행해 두거나 포트를 열어둠
2) 백도어 탐지 기법
- 동작 중인 프로세스와 열린 포트 확인
- 공격자가 다음 공격을 위해 실행시켜 놓은 프로세스가 있는지 확인함
- 공격자가 다음 공격을 위해 열어 놓은 포트가 있는지 확인함
- SetUID 파일 검사
- SetUID는 일반 사용자에게 특정 파일을 잠시 동안 루트 권한으로 사용할 수 있도록 하는 명령어
- 루트 사용자는 지정한 일반 사용자에게 특정 파일을 사용할 수 있도록 권한을 부여함
- UNIX/Linux 시스템의 파일의 Protection을 확인하여 판단함
- 백도어 탐지 도구 사용
- COPS와 같은 백도어 탐지 도구를 사용함
- 잘못된 SetUID 비트, 패스워드, 체크섬 등을 점검함
- 무결성 검사
- 공격자에 의해 변경된 파일이 있는지 확인함
- 백업해둔 기존 파일 시스템과 비교하여 변경된 파일이 있는지 확인함
- 로그 분석
- 공격자의 기록을 분석하여 누가 어떠한 공격을 했는지 확인함
3) 동작 중인 프로세스와 열린 포트 확인
- 동작 중인 프로세스 확인
- 관리자가 공격 여부를 확인하기 위해 "ps -ef" 명령을 실행함
- 결과의 제목명으로 CML 제목 열에 실행된 프로세스 명령이 출력됨
- 마지막 행에 "ps -ef"는 정상인 관리자에 의해 실행된 최종 명령
- 공격자는 bash를 실행함
- 공격자는 다음의 불법 접근을 위해 백도어 프로그램 "./backdoor"를 실행함
- 루트 사용자가 실행할 수 있는 모든 쉘 스크립트를 수행할 수 있도록 "/bin/sh" 파일을 변경한 후 실행함
- 열린 포트 확인
- Proto : 사용된 프로토콜을 출력하며, TCP를 사용하였고, 상대편과 계속적인 연결을 유지함
- Local Address : 내 컴퓨터의 내부 IP 주소와 포트 번호
- Foreign Address : 상대편의 IP 주소는 알 수 없고, 중간 경유지의 IP 주소와 포트 번호
- state : ESTABLISHED 상태로 연결 상태가 확립됨
- 네트워크 상태(state)
- ESTABLISHED : 현재 연결된 상태
- LISTENING : 연결을 위한 접속 대기 상태
- TIME_WAIT : 이미 해당 사이트와 연결이 종료되었거나 다음 연결을 위해 대기하고 있는 생태, 접속 종료를 요구한 측이 응답을 받지 못했으므로 대기 중인 상태
- CLOSE_WAIT : 접속 종료를 받은 측에서 응답을 받지 못했으므로 대기 중인 상태
- SYN_SENT : 접속하기 위해 패킷을 전송한 상태
- 공격 흔적에 대한 대책
- 알 수 없는 포트가 사용되고 있음
- 트로이 목마가 사용하는 31337, 12345, 54321번과 같은 포트가 열려 있을 때는 해킹 위험에 대한 시스템 점검이 필요함
- 열린 포트로 특정 IP가 접속해 있다면 공격 당하고 있다는 것을 의미함
- netstat 명령어는 인터넷에 연결된 모든 프로세스를 종료한 후에 사용해야 좀 더 정확한 탐지가 가능함
4) 침입 탐지 도구 사용
- COPS
- 잘못된 SetUID 비트, 패스워드, 체크섬 등을 점검함
- SetUID, SetGID 등의 권한 설정 비트를 점검함
- 일반 사용자들이 사용해서는 안 되는 명령어 권한을 검사함
- 스캐너 관련 도구
- SAINT : 관리자용 네트워크 진단 도구로 CGI 취약점, DoS 취약점, SSH 취약점 등을 찾아주는 도구
- SATAN : 네트워크의 취약점을 찾아주는 네트워크 스캐너
- PortSentry : 대표적인 스캐닝 도구로 가장 많이 사용하는 도구
- NMAP : 서버의 취약점을 체크해주는 보안 도구로 해킹 도구로도 사용됨
- ISS : 상용화된 스캐닝 도구
- Nessus : 서버 내의 취약점을 체크해주는 도구
- CGI scanner : 웹 서버의 취약점을 체크해주는 도구
- ICMPInfo : DoS 공격을 하는 ICMP 프로토콜을 체크하는 도구
- Scan-Detector : UDP 스캔 검색 도구
- Klaxon : 포트 스캔 검색 도구
- SuperScan : Windows 운영체제 포트 스캔의 대표 검색 도구
- Teleport Pro : 홈페이지 스캔 전용 도구
- 침입 발견 도구
- Chkwtmp : wtmp 파일(로그인, 리부팅한 정보를 기록)에서 삭제된 부분을 검사하는 도구
- tcplogd : Stealth Scan을 발견할 수 있는 도구
- Shadow : Stealth Scan을 발견할 수 있는 도구
- MCM : DDoS 발견 도구
- AAFID : DDoS 발견 도구
- 로그 감시 도구
- HostSentry : 허용되지 않은 로그인을 발견하는 도구
- SWATCH : 실시간 로그인 감시 도구
- Analog : 실시간 로그인 감시 도구
- Watcher : 시스템 로그와 데몬들의 실행 상태를 감시하는 도구
- PingLogger : ICMP 관련 로그를 검사하는 도구
- John The Ripper : 패스워드 점검 도구
- SSH(Secure Shell)
- TCP 프로토콜에 보안 채널(터널링)을 구축하여 여러 응용 프로토콜이 보안 채널을 통해 안전하게 데이터를 교환하기 위한 보안 프로토콜
- SSH는 적은 비용으로도 쉽게 구현 가능하고, 안전하기 때문에 많이 사용함
- SSH는 원격지 시스템에 접근하여 암호화된 메시지를 전송하는 방식
- SSH는 텔넷과 같은 서비스를 암호화하는 방식
- 기존 rsh, rlogin, telnet 등의 불안한 원격 접속을 대체하기 위해 설계되었으며, 강력한 인증 방법을 통해 안전하게 통신을 할 수 있는 기능을 제공함
- SSH에서 사용되는 프로토콜 스택 구조
- SSH User Authentication Protocol : 사용자 인증은 제공함
- SSH Connection Protocol : 암호화된 하나의 터널을 통해 다수 개의 논리 채널을 다중화함
- SSH Transport Layer Protocol : 인증, 기밀성, 무결성, 압축 등을 제공함
- SSH Application Layer Protocol : TELNET, RLOGIN, SMTP 등을 사용함
5) 무결성 검사
- Tripwire
- 가장 대표적인 파일 무결성 관련 도구
- 시스템 내부의 트로이목마 프로그램을 감지하기 위한 도구
- 크래커가 침입하여 백도어를 만들어 놓거나 설정 파일을 변경했을 때 분석하는 도구
- TAMU
- Texas AMU의 약어로 파일 무결성 관련 도구
- trojan.pl
- perl로 제작된 파일 무결성 관련 도구로 이식성이 매우 강함
- Hobgobin
- 파일 무결성과 시스템 무결성을 검사함
- fcheck
- 지정한 디렉터리나 파일에 대한 각종 정보를 데이터베이스에 저장하고 정해진 시간마다 점검하여 파일의 변조 여부를 모니터링하는 도구