본문 바로가기

정보보안기사

어플리케이션 보안

FTP(File Transfer Protocol)

(1) 개요

FTPTCP/IP 기반의 원격으로 떨어져 있는 서버와 클라이언트 사이의 파일 전송을 위한 통신 프로토콜이다.

FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송된다.

FTP 서비스를 이용할 경우에는 안전한 암호화된 통신을 수행하는 다음 서비스 이용을 권장한다.

SFTP(SSH File Transfer Protocol) : SSH 기반의 파일 전송 프로토콜 22/tcp

FTPS(FTP over SSL/) : 전송계층의 SSL/TLS 기반의 FTP 990/tcp

(2) 동작모드

1) FTP Active Mode

() 특징

일반적으로 능동모드가 FTP 클라이언트의 기본 값으로 설정된다. 클라이언트에서 서버 측 21번 포트로 접속하여 제어채널을 생성하고 데이터는 서버에서 클라이언트로 접속하여 데이터를 보내는 방식이다.

만약 클라이언트PC에 방화벽이 설치되어 외부에서의 접속을 허용하지 않는다면 FTP 접속은 되지만(제어채널은 연결되지만) 이후 데이터채널 연결이 불가능하여 파일을 받을 수 없는 문제가 발생할 수 있다.

() 동작방식

FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어(Control)채널을 생성한다.

사용자가 파일 목록을 보기 위해 “ls” 명령을 입력하면 FTP 클라이언트는 사용할 임시포트(1024이상 포트)를 결정하여 FTP 서버에게 알린다.

FTP 서버는 FTP 클라이언트가 알려준 포트(5001)로 연결을 설정하여 데이터채널을 생성한다.

데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.

2) FTP Passive Mode

() 특징

클라이언트에서 서버측 21번 포트로 접속하여 제어채널을 생성하고 데이터채널도 클라이언트에서 서버로 접속하여 데이터를 보내는 방식이다.

() 동작방식

FTP 클라이언트는 FTP 서버의 21번 포트로 연결 설정하여 제어채널을 생성한다.

사용자가 파일 목록을 보기 위해 “ls” 명령을 입력하면 FTP 클라이언트는 수동모드로 연결하기 위해 PASV 명령을 전송하고 이 명령을 받은 FTP 서버는 사용할 임시포트(1024이상 포트)를 결정하여 FTP 클라이언트에게 알려준다.

FTP 클라이언트는 FTP 서버가 알려준 포트(4900)로 연결을 설정하여 데이터채널을 생성한다.

데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료한다.

 

전송 과정

SQL Injection

select * from member where id = ‘’ or 1=1#’ and pass = ‘1234’

 

PHP 설정파일의 magic_quotes_gpc 설정(gpc Get, Post, Cookie) : SQL Injection 방지

 

Blind SQL Injection

DB 쿼리에 대한 오류메시지를 반환하지 않으면 공격을 할 수 없는 Error-Based SQL Injection 과 달리 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법이다.

 

크로스 사이트 스크립트(XSS : Cross Site Script) 취약점

웹 어플리케이션에서 사용자 입력값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능한 폼에 악의적인 스크립트를 삽입, 해당 스크립트가 희생자 측에서 동작하도록 하여 악의적인 행위를 수행하는 취약점을 말한다.

공격자는 취약점을 이용하여 사용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹 페이지 변조 등의 공격을 수행한다. # <script> alert(document.cookie) </script>

크로스 사이트 스크립트는 크게 3가지 유형으로 구분한다.

Stored XSS

Reflected XSS

DOM based XSS

 

크로스 사이트 요청 변조 (CSRF : Cross Site Request Forgery) 취약점 : 희생자 권한으로 조작된 요청정보를 처리

웹 어플리케이션에서 정상적인 경로를 통한 요청과 비정상적인 경로를 통한 요청을 서버가 구분하지 못할 경우 공격자가 스크립트 구문을 이용하여 정상적인 사용자로 하여금 조작된 요청을 전송하도록 하여 게시판 설정 변경, 회원 정보 변경 등의 문제가 발생할 수 있는 취약점을 말한다.

공격자가 GET 또는 POST 방식의 HTTP 요청을 통해 희생자 모르게 공격자의 의도된 행위를 수행하게 하여 특정 피해를 주는 형태이다.

공격을 당한 사용자의 권한을 공격자가 그대로 사용하게 되므로 사용자의 권한 수준에 따라 그 피해범위가 달라질 수 있다.

'정보보안기사' 카테고리의 다른 글

개인정보의 조치  (0) 2020.03.16
파일시스템  (0) 2020.03.14
기본 보안용어 정의와 보안 모델  (0) 2020.03.11
전자 인증서  (0) 2020.03.11
정보 보호 일반(2)  (0) 2020.03.09