FTP(File Transfer Protocol)은 인터넷에 연결된 시스템 간의 파일 전송을 위한 통신 프로토콜로,
사용자는 FTP 클라이언트 프로그램을 사용하여 FTP 서버에 접속한 후, 파일을 송수신합니다.
● FTP 특징
– 명령 채널과 데이터 전송이 독립적으로 동작합니다.
– 클라이언트가 명령 채널을 통해 서버에게 파일을 요구하면 서버는 데이터 전동 채널을 통해 데이터를 전송하는 방식으로 동작합니다.
– 서버의 명령채널은 21번 포트를 사용하고 데이터 전송채널은 20번 포트를 사용합니다.
● FTP 취약점
FTP를 통해 파일을 전송하던 과정 중 공격을 받는 이유는 아래와 같습니다.
● FTP는 기본적으로 평문기반으로 암호를 전송합니다.
※ 해커가 패킷을 캡처할 경우 암호를 쉽게 해독할 수 있습니다.
● FTP 서버에서 익명접속을 허용한 상태라면 누구나 접속하여 파일을 다운로드 할 수있습니다.
※ 익명 접속을 통해 중요 정보를 탈취하거나, 악성 코드가 포함된 파일을 다운로드하여 시스템을 감염시킬 수 있습니다.
● FTP 서버의 Port 21(FTP)을 스캔하여 서버가 활성화되어 있는지 확인할 수 있습니다.
※ 활성화 여부를 확인 후 해당 서버를 대상으로 공격을 시도할 수 있습니다.
● FTP 서버에 악성 코드가 포함된 파일을 업로드하여 시스템을 감염시킬 수 있습니다.
※시스템이 손상되거나, 중요 데이터가 유출될 수 있습니다.
오늘은 FTP 취약점 공격 몇가지를 소개드리도록 하겠습니다.
FTP Bounce Attack
FTP Bounce Attack은 FTP 프로토콜의 설계상의 허점을 이용한 공격 방법입니다.
FTP 서버는 클라이언트가 지시한 곳으로 자료를 전송할 때 그 목적지가 어디인지 검사하지 않습니다.
※ 해당문제는 FTP 프로토콜 설계상에서 발생한 문제입니다.
이를 이용하여 공격자는 FTP 서버를 경유하여 임의의 목적지로 메시지나 자료를 전송할 수 있습니다.
FTP Bounce Attack은 크게 두 가지 종류로 나눌 수 있습니다.
Host 스캔을 위한 FTP 바운스 공격
익명 FTP 서버를 경유하여 공격 대상의 IP 주소를 확인하는 공격입니다.
공격자는 익명 FTP 서버에 접속하여 Port 명령을 사용하여 공격 대상의 IP 주소를 지정합니다.
이후 FTP 서버는 공격 대상의 IP 주소로 데이터를 전송하게 됩니다.
공격자는 FTP 서버의 응답을 확인하여 공격 대상의 IP 주소가 정상적으로 전송되었는지 확인합니다.
포트 스캐닝을 위한 FTP 바운스 공격
익명 FTP 서버를 경유하여 공격 대상의 포트가 열려 있는지 확인하는 공격입니다.
공격자는 익명 FTP 서버에 접속하여 PORT 명령을 사용하여 공격 대상의 IP 주소와 포트 번호를 지정합니다.
이후 FTP 서버는 공격 대상의 IP 주소와 포트 번호로 데이터를 전송하게 됩니다
FTP 바운스 공격을 방지하기 위해서는 다음과 같은 조치를 취해야 합니다.
익명 FTP 서비스를 비활성화
익명 FTP 서비스를 비활성화하면 공격자가 익명 FTP 서버를 이용하여 공격을 수행할 수 없게 됩니다.
FTP 서버의 보안 설정 강화
FTP 서버의 보안 설정을 강화하여 공격자가 임의의 목적지로 데이터를 전송할 수 없도록 합니다.
침입 탐지 시스템(IDS)의 도입
침입 탐지 시스템을 도입하여 FTP 바운스 공격을 탐지하고 차단합니다.
FTP 바운스 공격은 FTP 프로토콜의 설계상의 허점을 이용한 공격 방법으로, 간단한 방법이지만 효과적인 공격 방법입니다.
따라서 FTP 서버를 운영하고 있는 경우, FTP 바운스 공격에 대한 보안을 강화하여 피해를 예방해야 합니다.
스니핑(Sniffing)
스니핑은 네트워크에서 패킷을 엿보는 행위입니다.
쉽게 풀이하면 네트워크 트래픽을 도청하는 과정을 스니핑이라고 볼 수 있습니다.
TCP/IP 프로토콜은 인터넷이 시작되기 이전에 설계된 프로토콜로써 보안을 크게 고려하지 않았고,
대표적으로 패킷에 대한 암호화나 인증에 대한 고려를 하지 않았기 때문에 데이터 통신의 기본 요소인 기밀성이나 무결성을 보장할 수 없었습니다.
이로인해 FTP 취약점과 스니핑은 서로 밀접한 관련이 있으며, FTP는 기본적으로 데이터 전송을 암호화하지 않아
해커는 스니핑 도구를 통해 FTP 서버를 통해 전송되는 데이터를 가로채서 볼 수 있습니다.
스니핑 공격을 통해 해커가 얻을 수 있는 정보는 아래와 같습니다.
● 이메일 트래픽
● 웹 트래픽
● FTP 패스워드
● Telnet 패스워드
● 공유기 구성
● 채팅 세션
스니핑 공격의 유형은 2개로 나눌 수 있겠습니다.
수동 스니핑
수동 스니핑은 네트워크 트래픽을 수동으로 감시 및 분석하는것을 의미합니다.
네트워크 트래픽 분석 도구를 통해 네트워크 흐름을 수집하고, 이 트래픽을 분석하여 보안 이슈를 탐지 및 문제를 진단할 수 있습니다.
스니퍼 장치가 허브에 배치될 경우 트래픽을 캡처할 수 있으나 최근 스위치로 변화됨에 따라 능동형으로 이동하는 추세입니다.
능동 스니핑
능동 스니핑은 특정 목적을 가지고 스니핑 하는것으로,
이를 통해 네트워크에서 트래픽을 감시 및 조작하여 해커가 네트워크에 침입해 중요정보를 가로채는데 활용할 수 있습니다.
능동 스니핑 공격에는 스푸핑 공격, DNS 중독, DHCP 공격, MAC 플러딩, MAC 스푸핑 등이 있습니다.
스니핑 공격을 방지하기 위해서는 다음과 같은 조치를 취해야 합니다.
● 데이터 전송을 암호화합니다.
FTP 패킷을 암호화하면 스니핑 공격으로부터 데이터를 안전하게 보호할수 있으며,
FTP 서버와 FTP 클라이언트에서 SSL/TLS 또는 FTPS를 사용하길 권장합니다.
● 익명 로그인을 비활성화합니다.
FTP익명 로그인을 비활성화하여 해커로부터 FTP서버 로그인에 데이터를 훔치는것을 방지할 수 있습니다.
따라서 FTP서버를 사용하는 경우 익명 로그인을 비활성화를 권장합니다.
● 강력한 비밀번호를 사용합니다.
강력한 비밀번호를 입력하면 비교적 안정성이 올라갑니다.