공부/정보보안기사 실기

[Section 07] 어플리케이션 기본 학습 (342~ 349pg)

남쪽마을밤송이 2022. 5. 3. 21:39

 [03 FTP] 

 (1) 개요 

  • FTP는 TCP/IP 기반의 원격으로 떨어져 있는 서버와 클라이언트 사이의 파일 전송을 위한 통신 프로토콜 중 하나이다.
  • FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 간단한 스니퍼에 의해서도 아이디 및 패스워드가 노출될 수 있으므로 반드시 필요한 경우를 제외하고는 FTP 서비스 사용을 제한해야 한다.
  • FTP 서비스를 이용할 경우에는 안전한 암호화된 통신을 수행하는 다음 서비스 이용을 권장한다.
    • SFTP : SSH 기반의 파일 전송 프로토콜로 기본적으로 22/TCP 포트 사용
    • FTPS : 전송계층의 SSL/TLS 기반의 파일 전송 프로토콜로 기본적으로 990/TCP 포트 사용

 (2) 동작모드 

FTP 능동 Mode

  • 특징
    • 일반적으로 능동모드가 FTP 클라이언트의 기본 값으로 설정된다. 클라이언트에서 서버 측 21번 포트로 접속하여 제어채널을 생성하고 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.
    • 만약 클라이언트 PC에 바화벽이 설치되어 외부에서의 접속을 허용하지 않는다면 FTP 접속은 되지만 (제어채널은 연결되지만) 이후 데이터채널 연결이 불가능하여 파일을 받을 수 없는 문제가 발생할 수 있다.
  • 동작방식
    • FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어 채널을 생성한다.
    • 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 사용할 임시포트(1024이상 포트)를 결정하여 FTP 서버에게 알린다.
    • FTP 서버는 FTP 클라이언트가 알려준 포트(5001)로 연결을 설정하여 데이터 채널을 생성한다.
    • 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.

FTP 수동 Mode

  1. 특징
    1. 클라이언트에서 서버 측 21번 포트로 접속하여 제어 채널을 생성하고 데이터채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식이다.
  2. 동작방식
    1. FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어 채널을 생성한다.
    2. 사용자가 파일 목록을 보기 위해 ls 명령을 입력하면 FTP 클라이언트는 수동모드로 연결하기 위해 PASV 명령을 전송하고 이 명령을 받은 FTP 서버는 사용할 임시포트(1024 이상 포트)를 결정하여 FTP 클라이언트에게 알려준다.
    3. FTP 클라이언트는 FTP 서버가 알려준 포트(4900)으로 연결을 설정하여 데이터채널을 생성한다.
    4. 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.

 (3) FTP 보안 취약점 

FTP Bounce Attack

  • 개요
    • 제어 채널과 데이터 채널을 다르게 사용하고 데이터 채널을 생성할 때 목적지를 확인하지 않는 FTP 설계의 구조적 취약점을 이용하는 공격이다.
    • 일반적인 모드(Active Mode)에서 FTP 서버의 파일을 요청하면 클라이언트에서 파일을 받을 IP와 포트를 지정해서 전달해준다. (PORT 명령) 이때 IP와 포트를 요청한 클라이언트가 아닌 임의의 주소로 지정할 수 있는데 이러한 FTP 설계의 취약점을 이용하는 방식이다.
      • 위 예는 debug 모드로 접속한 ftp 클라이언트 화면이다. get 명령을 통해 ftp 서버로 파일 요청 시 PORT 명령을 통해 데이터 채널을 생성하기 위한 IP와 포트정보를 전달하고 있다.
      • ","를 식별자로 하여 바이트 단위로 보여주고 있으며 IP(192.168.197.1)와 포트(18.214)순으로 보여주고 있다.

공격방식

  • 주로 익명 FTP 서버를 이용, PORT 명령을 조작하여 공격대상 네트워크를 스캔하고 FTP 서버로 하여금 공격자가 원하는 곳으로 데이터를 전송하게 한다.
    • 예를 들어 FTP 서버에 스팸메일파일을 업로드한 후 해당 파일을 요청하면서 PORT 명령을 통해 수신측 주소를 조작하여 SMTP 서버로 지정하면 FTP 서버는 스팸메일을 SMTP 서버로 전달하게 된다.
    • 데이터 채널을 생성하기 위한 PORT 명령을 조작하여 내부 시스템(외부에서는 접근은 가능)에 다양한 포트로 접근하여 그 결과를 제어 채널로 받음으로써 네트워크 스캔을 수행한다.

TFTP 공격

  • 개요
    • TFTP는 읽기 전용 메모리나 디스크가 없는 워크스테이션에 설치될 수 있을 정도로 매우 단순하고 간단한 파일 송수신 프로토콜/어플리케이션이다.
    • 자제 디스크를 가지고 있지 않은 워크스테이션에 부팅이미지를 전달할 목적으로 주로 사용한다.
    • 69/udp 포트를 사용하며 별도의 인증과정 없이 지정된 디렉터리에 접근할 수 있는 보안상 취약점이 존재한다.
  • 공격방식
    • TFTP 공격은 접근 제어를 제대로 하지 않을 경우 보안 기능이 없는 TFTP의 취약점을 이용하여 공격자가 임의의 파일에 접근할 수 있다.
  • 대응책
    • TFTP 서비스가 불필요한 경우 이를 제거한다.
      • inetd 환경에서는 inetd.conf 설정파일에서 해당 서비스를 주석 처리
      • xinetd 환경에서는 TFTP 설정 파일의 disable 속성을 yes로 설정하여 비활성화 시킨다.
    • TFTP가 필요한 경우 secure mode로 운영한다. secure mode 는 chroot기능을 이용하는 것으로 지정한 디렉터리를 최상위 디렉터리로 지정하여 지정하여 지정한 디렉터리의 상위 디렉터리로 접근하지 못하도록 제한하는 방식이다.