ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • FTP의 동작 방식과 취약점 알아보기
    Engineer information security 2021. 3. 7. 18:34
    반응형

    FTP(File Transfer Protocol)은 일반적으로 가장 많이 사용하는 파일 전송 방식 중 하나이다.

    대부분이 알고 있는 사실이지만 이걸 한문장으로 설명한다고 하면 

    원격지 서버에 파일 송수신을 위해 클라이언트가 원격으로 접속할 때 사용하는 프로토콜 정도로 정의할 수 있겠다.

     

    FTP는 기본적으로 평문전송(암호화X)인 상태로 전송을 하는데, 이를 위해 암호화된 통신으로 사용하기 위해서 SFTP(SSH File Transfer Protocol) 또는 FTPS(FTP Over SSL/TLS) 방식이 존재한다. 사용 포트는 아래와 같다.

     

    - FTP : 21/TCP(Control Channel), 20/TCP(Data Channel) 

    - SFTP : 22/TCP 

    - FTPS : 990/TCP

     

     

     

     

    FTP는 동작할 때 2개의 채널을 가지고 동작한다. 그것은 Control Channel(제어 채널) 과 Data Channel(데이터 채널)이다. 각각 채널이 하는 역할은  아래와 같다.

     

    - Control Channel : 서버와 클라이언트 간의 제어 채널이 형성되면 데이터 전송에 대한 설정 및 데이터 전송 제어가 이루어 진다. 서로 데이터를 어떤 포트를 통해 주고받을 것인지, 전송 중인지, 전송이 완료되었는지 등.

    - Data Channel : 데이터를 주고 받기 위한 채널이다. 제어 채널에서 결정된 포트로 데이터를 주고받는 실제 통로이다.

     

     

     

     

    FTP의 동작 모드는 두 가지가 존재한다. Active(능동) Mode / Passive(수동) Mode이다. 기본적인 동작은 Active Mode이다. 그리고 이 두 가지 동작 모드는 데이터 전송 포트에 영향을 준다. 내용이 길어서 다음에 이미지와 함께 다시 글을 써야 할거 같아서 간단하게 적어 보면 

     

    - Active Mode클라이언트가 데이터 접속 포트를 결정한다. 클라이언트는 자신이 임의의 포트를 결정하여 서버에 결정한 포트로 접속하겠다고 알린다. 서버에서 OK가 되면 파일리스트 전송 등을 교환하고 파일 전송이 진행된다.

    - Passive Mode : 클라이언트가 데이터 접속 포트를 PASV라는 명령을 통해 서버에게 물어본다. 서버는 임의의 포트를 알려주고 클라이언트는 해당 포트로 접속한다. 연결이 되면 파일리스트 전송 등을 교환하고 파일 전송이 진행된다.

     

     

     

     

     

    FTP 보안 취약점 종류 

    주로 시험에 나오는 것들을 보면 TFTP 취약점 공격 / FTP bounce 공격 / Anonymous FTP 취약점 공격이 있다. 각각의 취약점에 대해서 간단하게 설명해보면 ,

     

     

    - TFTP 취약점 공격 : 주로 No Hard(디스크가 없는) PC에 많이 쓰이는 프로토콜로, 간단한 파일 송/수신을 하는 데 사용된다.

    별도의 인증 없이 접근이 가능하기 때문에 공격자가 접근할 경우 악의적인 행위를 할 수 있다. TFTP 같은 경우 사용을 하지 않도록 권고하는 편이다. 그리고 굳이 사용한다고 하면 chroot 기능을 이용하여 접근하는 디렉터리를 최상위 디렉터리로 지정하여 상위 디렉터리로 접근을 막아야 한다.

     

    - FTP bounce 공격 : FTP는 제어 채널과 데이터 채널을 생성할 때, 목적지를 확인하지 않는데 이 점을 이용한 공격이다.

       Active Mode에서는 클라이언트가 파일을 받을 IP / Port를 지정하고 전달하는 과정이 있다. 이 과정에서 IP를 변경하여 공격자가 원하는 목적지로 데이터를 보내거나, 목적지의 포트를 스캔하는등의 공격을 한다.

     

     

    - Anonymous FTP 취약점 공격 : 익명의 사용자들이 접근 가능한 FTP 서비스이다. "Anonymous" 계정을 이용하고 암호를 입력하지 않거나 아무 암호를 입력해도 접속이 가능한 형태이다. 어떤 사람도 접근이 가능한 형태이고 악성코드 등을 업로드하여 다른 사용자에게 피해를 줄 수 있다. Anonymous FTP는 반드시 필요한 경우가 아니라면 서비스해서는 안된다. 

     

     

     

    - FTP 서비스 취약점을 개선하기 위해 근본적인 보안 대책은 FTP 서비스 최신 업데이트, ftpusers 파일을 이용하여

       FTP 관리자 계정(root 등)의 직접적인 접속을 제한 등이 있다.

    반응형

    댓글

Designed by Tistory.