RangA 2023. 6. 2. 19:21

03. 정보보호 대책

08. 백도어 탐지 기법 및 대응

1) 백도어의 특징

  • 시스템 접근에 대한 사용자 인증을 거치지 않고, 응용 프로그램 또는 시스템에 접근할 수 있도록 하는 조치
  • 시스템 관리자가 패스워드를 잃어버리게 되는 경우처럼 만약을 대비하여 언제든 시스템에 접근할 수 있도록 조치를 취하는것
  • 악용될 경우, 공격자가 시스템에 불법적으로 접근한 후, 나중을 위해서 언제든 시스템을 접근할 수 있도록 조치를 취할 수 있음
  • 공격자는 백도어 프로그램을 설치하기 위해서 시스템의 관리자 권한을 획득하는 과정이 선행되어야 함
  • 공격자는 주로 SetUID 권한을 가진 파일을 변경하여 권한을 획득함
  • 공격자는 언제 어디서든지 시스템에 접근할 수 있도록 불법 프로세스를 실행해 두거나 포트를 열어둠

2) 백도어 탐지 기법

  1. 동작 중인 프로세스와 열린 포트 확인
    • 공격자가 다음 공격을 위해 실행시켜 놓은 프로세스가 있는지 확인함
    • 공격자가 다음 공격을 위해 열어 놓은 포트가 있는지 확인함
  2. SetUID 파일 검사
    • SetUID는 일반 사용자에게 특정 파일을 잠시 동안 루트 권한으로 사용할 수 있도록 하는 명령어
    • 루트 사용자는 지정한 일반 사용자에게 특정 파일을 사용할 수 있도록 권한을 부여함
    • UNIX/Linux 시스템의 파일의 Protection을 확인하여 판단함
  3. 백도어 탐지 도구 사용
    • COPS와 같은 백도어 탐지 도구를 사용함
    • 잘못된 SetUID 비트, 패스워드, 체크섬 등을 점검함
  4. 무결성 검사
    • 공격자에 의해 변경된 파일이 있는지 확인함
    • 백업해둔 기존 파일 시스템과 비교하여 변경된 파일이 있는지 확인함
  5. 로그 분석
    • 공격자의 기록을 분석하여 누가 어떠한 공격을 했는지 확인함

3) 동작 중인 프로세스와 열린 포트 확인

  1. 동작 중인 프로세스 확인
    • 관리자가 공격 여부를 확인하기 위해 "ps -ef" 명령을 실행함
    • 결과의 제목명으로 CML 제목 열에 실행된 프로세스 명령이 출력됨
    • 마지막 행에 "ps -ef"는 정상인 관리자에 의해 실행된 최종 명령
    • 공격자는 bash를 실행함
    • 공격자는 다음의 불법 접근을 위해 백도어 프로그램 "./backdoor"를 실행함
    • 루트 사용자가 실행할 수 있는 모든 쉘 스크립트를 수행할 수 있도록 "/bin/sh" 파일을 변경한 후 실행함
  2. 열린 포트 확인
    • Proto : 사용된 프로토콜을 출력하며, TCP를 사용하였고, 상대편과 계속적인 연결을 유지함
    • Local Address : 내 컴퓨터의 내부 IP 주소와 포트 번호
    • Foreign Address : 상대편의 IP 주소는 알 수 없고, 중간 경유지의 IP 주소와 포트 번호
    • state : ESTABLISHED 상태로 연결 상태가 확립됨
  3. 네트워크 상태(state)
    • ESTABLISHED : 현재 연결된 상태
    • LISTENING : 연결을 위한 접속 대기 상태
    • TIME_WAIT : 이미 해당 사이트와 연결이 종료되었거나 다음 연결을 위해 대기하고 있는 생태, 접속 종료를 요구한 측이 응답을 받지 못했으므로 대기 중인 상태
    • CLOSE_WAIT : 접속 종료를 받은 측에서 응답을 받지 못했으므로 대기 중인 상태
    • SYN_SENT : 접속하기 위해 패킷을 전송한 상태
  4. 공격 흔적에 대한 대책
    • 알 수 없는 포트가 사용되고 있음
    • 트로이 목마가 사용하는 31337, 12345, 54321번과 같은 포트가 열려 있을 때는 해킹 위험에 대한 시스템 점검이 필요함
    • 열린 포트로 특정 IP가 접속해 있다면 공격 당하고 있다는 것을 의미함
    • netstat 명령어는 인터넷에 연결된 모든 프로세스를 종료한 후에 사용해야 좀 더 정확한 탐지가 가능함

4) 침입 탐지 도구 사용

  1. COPS
    • 잘못된 SetUID 비트, 패스워드, 체크섬 등을 점검함
    • SetUID, SetGID 등의 권한 설정 비트를 점검함
    • 일반 사용자들이 사용해서는 안 되는 명령어 권한을 검사함
  2. 스캐너 관련 도구
    • SAINT : 관리자용 네트워크 진단 도구로 CGI 취약점, DoS 취약점, SSH 취약점 등을 찾아주는 도구
    • SATAN : 네트워크의 취약점을 찾아주는 네트워크 스캐너
    • PortSentry : 대표적인 스캐닝 도구로 가장 많이 사용하는 도구
    • NMAP : 서버의 취약점을 체크해주는 보안 도구로 해킹 도구로도 사용됨
    • ISS : 상용화된 스캐닝 도구
    • Nessus : 서버 내의 취약점을 체크해주는 도구
    • CGI scanner : 웹 서버의 취약점을 체크해주는 도구
    • ICMPInfo : DoS 공격을 하는 ICMP 프로토콜을 체크하는 도구
    • Scan-Detector : UDP 스캔 검색 도구
    • Klaxon : 포트 스캔 검색 도구
    • SuperScan : Windows 운영체제 포트 스캔의 대표 검색 도구
    • Teleport Pro : 홈페이지 스캔 전용 도구
  3. 침입 발견 도구
    • Chkwtmp : wtmp 파일(로그인, 리부팅한 정보를 기록)에서 삭제된 부분을 검사하는 도구
    • tcplogd : Stealth Scan을 발견할 수 있는 도구
    • Shadow : Stealth Scan을 발견할 수 있는 도구
    • MCM : DDoS 발견 도구
    • AAFID : DDoS 발견 도구
  4. 로그 감시 도구
    • HostSentry : 허용되지 않은 로그인을 발견하는 도구
    • SWATCH : 실시간 로그인 감시 도구
    • Analog : 실시간 로그인 감시 도구
    • Watcher : 시스템 로그와 데몬들의 실행 상태를 감시하는 도구
    • PingLogger : ICMP 관련 로그를 검사하는 도구
    • John The Ripper : 패스워드 점검 도구
  5. 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
    • 지정한 디렉터리나 파일에 대한 각종 정보를 데이터베이스에 저장하고 정해진 시간마다 점검하여 파일의 변조 여부를 모니터링하는 도구