LINUX SECURITY - FTP 보안 -

Slides:



Advertisements
Similar presentations
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Advertisements

HTTPS Packet Capture Tutorial
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
Snort & Snorby.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Power Java 제3장 이클립스 사용하기.
Postfix MTA SPARCS 08 진준호 ( Alex ).
Chapter 6. 리눅스 백도어 황 선 환.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Network Lab. Young-Chul Hwang
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Linux Security (리눅스 설치문제)
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Vsftpd 를 이용한 FTP service 와 samba 서버 구축
LINUX SECURITY - 리눅스와 방화벽 -
Ubiquitous Computing Practice - Part I (Installation) -
제 14장 Multicast & Broadcast
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
LINUX SECURITY - 보안 웹 프로토콜 -
LINUX SECURITY - 침 입 탐 지 - 네트워크 실험실 김 윤 수 #
8장. 원격지 시스템 관리하기.
Root Filesystem Porting
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
TCP/IP Socket Programming…
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
웹 어플리케이션 보안 2016년 2학기 3. Mongo db.
시스템 인터페이스 Lab3 Unix 사용법 실습.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
22 장 전송층(Transport Layer)
소규모 IPTV 사업자용 실시간 미디어 플랫폼 기술
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Linux/UNIX Programming
ACL(Access Control List)
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
21 장 전송층(Transport Layer)
Nessus 4 설치 정보보호응용 조용준.
LINUX SECURITY - Telnet 보안 -
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
MAIL CLIENT 김창우 윤성훈 이경재.
16 장 네트워크 보안 : 방화벽과 VPN 16.1 개요 16.2 기밀성 16.3 전자 서명 16.4 인터넷 보안
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
PMIS 서버 설정 환경설정 작성자 : 배경환.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
01. 개요 네트워크에 있는 컴퓨터와 그룹에 대한 NetBIOS 이름에 대응되는 IP 주소를 찾아주는 서비스
웹(WWW).
STS 에서 웹 서버 설치 방법.
Introduction to JSP & Servlet
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
 파일 아카이브와 압축 명령 익히기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
발표자 : 이지연 Programming Systems Lab.
채팅 및 파일전송 프로그램 권 경 곤 김 창 년.
FTP 스캔 설정 방법 강사 : 이성휘 대리.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
운영체제보안 SELinux 실습 박민재
시스템 해킹과 보안 permission과 SetUID.
JAVA 프로그래밍 16장 JNLP.
Linux/UNIX Programming
Presentation transcript:

LINUX SECURITY - FTP 보안 - 네트워크 실험실 김 윤 수 2018-11-22 #

목 차 파일전송 프로토콜 FTP기본 보안 특징 SSLftp 특정 FTP 애플리케이션 보안문제 요약 2018-11-22 #

파일 전송 프로토콜 하나의 시스템에서 또 다른 시스템으로 파일을 전송하기 위한 기본적인 방법 FTP의 목적 하나의 시스템에서 또 다른 시스템으로 파일을 전송하기 위한 기본적인 방법 FTP의 목적 - 파일(프로그램,데이터)의 공유 증진 - 원격 컴퓨터를 간접적인 이용 - 호스트들간의 다양한 종류의 저장 시스템들로부터 유저를 보호 - 효율적이고 신뢰성 있는 데이터 전송 2018-11-22 #

FTP의 보안문제 FTP는 표준 사용자명/패스워드 인증방법을 사용하기 때문에 주어진 사용자가 정당한 사용자인지 확실하게 확인하지 못한다. 패스워드는 일반적인 텍스트로 전달되어 공격자로 하여금 전기적인 도청을 통한 패스워드의 획득을 가능하게 한다. FTP 세션은 암호화 되어 있지 않기 때문에 사생활 보호 기능을 제공하지 않는다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. 2018-11-22 #

FTP보안 역사 FTP 바운스 공격(FTP Bounce Attacks) 잘못된 파일 퍼미션(Erroneous file permission) SITE EXEC 버그 (The Site EXEC bug) 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. 2018-11-22 #

FTP protocol(1) FTP는 2개의 TCP연결을 사용하기 때문에 다른 어플리케이션과 다르다. - Control Connection - Data Connection Server client Control connection (FTP commands) (FTP replies) data connection 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. Processes involved in file transfer 2018-11-22 #

FTP protocol(2) Port command going across FTP control connection FTP server doing active open of data connection FTP server FTP client Control connection PORT 140,252,13,34,4,150\r\n Port 1173 Port 21 Port 1174 (Passive open) IP addr 140.252.13.34 FTP server FTP client Control connection 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. Port 1173 Port 21 SYN to 140.252.13.34, port 1174 Port 20 Port 1174 (active open) (Passive open) IP addr 140.252.13.34 2018-11-22 #

FTP 바운스 공격 FTP세션에서 클라이언트가 포트 21번 연결을 요구하고, 핸드쉐이크(handshake)가 이루어지면 클라이언트는 데이터 전송을 위한 포트 정보를 서버로 보낸다. 그러나 이러한 행동은 attacker는 시작한 클라이언트가 아닌 attacker가 선택한 시스템상의 포트에 연결 할 수 있음을 의미한다. - port scanning - Bypassing basic packet filtering devices - Bypassing export restrictions 2018-11-22 #

잘못된 퍼미션 anonymous FTP 디렉토리와 퍼미션 디렉토리 퍼 미 션 [FTP-home]ftp/ 퍼 미 션 [FTP-home]ftp/ root가 소유주인 555로 설정. 유저가 읽고 실행가능. [FTP-home]ftp/bin [FTP-home]ftp/bin/ls root가 소유쥬인 111로 설정. 유저가 실행만 가능. [FTP-home]ftp/etc root가 소유주인 555로 설정. [FTP-home]ftp/etc/passwd Root가 소유주인 444로 설정 유저가 읽기만 가능. 2018-11-22 #

SITE EXEC 버그 (1) 초기 wu-ftpd버전이 FTP포트인 21번을 통해서 텔넷으로 접속하여 쉘 접근이 가능한 문제점을 가지고 있음. CERT 권고안 이 문제는 src/pathnames.h에 있는 PATH_EXEC PATH변수가 /bin으로 되어있기 때문이다. PATH_EXECPATH는 /bin/ftp-exec디렉토리나 쉘, 명령어 인터프리터가 존재하지 않는 디렉토리로 설정되어야만 한다. 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 2018-11-22 #

SITE EXEC 버그 (2) 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 2018-11-22 #

FTP의 기본 보안 특징 호스트와 사용자기반의 네트워크 접근 제어 - /etc/ftpusers - /etc/ftphosts - /etc/ftpaccess 2018-11-22 #

/etc/ftpusers 파일에 기록된 사용자들은 FTP로그인 접근이 거부된다 2018-11-22 #

/etc/ftphosts (1) Ftphosts는 ftpd의 각 사용자/호스트 접근 파일이다. 사용법 allow [사용자명] [호스트나 호스트 패턴] [호스트나 호스트 패턴] deny [사용자명] [호스트나 호스트 패턴] [호스트나 호스트 패턴] Example 1) theircompany.com에서 접속하는 mwagner라는 사용자의 접근 거부하고 ourcompany.net에서 접속하는 jsprat라는 사용자의 접근은 허가 deny mwagner theircompany.com allow jsprat ourcinpany.net 2018-11-22 #

/etc/ftphosts (2) Example 2) ourcompany.net으로부터 접속하는 jsprat라는 사용자의 접근을 거부하고, accounting.ourcompany.net으로부터 접속하는 jsprat라는 사용자의 접근을 허가 하려면 allow/deny의 순서로교려. - allow jsprat accounting.ourcompany.net - deny jsprat ourcompany.net Example 3) 와일드 카드및 공백을 주소를 분리 표현 - *.mycompany.net, *.yourcompany.net - 207.171.0.* *.some.othercompany.ne 2018-11-22 #

/etc/ftpaccess(1) /etc/ftpaccess는 ftpd의 핵심 설정파일로 지시문을 통해서 ftpd가 동작하는 방법을 제어 할 수 있다. /etc/ftpaccess의 예 class all real, guest, anonymous * email root@localhosts loginfails 5 readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest, anonymous delete no guest, anonymous 2018-11-22 #

/etc/ftpaccess(2) class all real, guest, anonymous * email root@localhosts loginfails 5 readme README* login readme README* cwd=* message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest, anonymous delete no guest, anonymous overwrite no guest, anonymous rename no guest, anonymous log transfers anonymous, real inbound, outbound shutdown /etc/shutmsg passwd-check rfc822 warn 2018-11-22 #

/etc/ftpaccess(3) 명 령 어 결 과 banner [경로명] 사용자 로그린 전 출력 메시지 명 령 어 결 과 banner [경로명] 사용자 로그린 전 출력 메시지 chmod [yes|no] 특정 클래스 유형에속하는 사용자만이 chmod실행 명시 class [클래스명|유형|주소] 특별한 사용자 클래스 정의 delete 특정 클래스 유형에 속하는 사용자만이 파일 삭제 명시 deny [addr] [메시지] 연결을 거부할 호스트 명시 email [사용자명] FTP 사이트 관리자를 명시 guestgroup 게정이 있는 사람들도 anonymous사용자 처럼 취급 limit [class|N|time|msg] 특정 사용자 클래스 사용자중 동시에 N명까지만 접속 log commands [클래스 유형] 명시된 클래스 사용자들의 실행 명령어는 로그 기록 log transfers [클래스 유형] 명시된 클래스 사용자들의 데이터 전송은 로그 기록 loginfails [N] 로그인 시도 횟수 지정 2018-11-22 #

/etc/ftpaccess(4) 명 령 어 결 과 Messages [path|when] 명 령 어 결 과 Messages [path|when] 사용자가 로그인 후 추가적인 메시지 경로 Notretrieve [파일명] 사용자가 가져갈 수 없는 파일 명시 Overwrite [yes|no] [클래스유형] 특정 사용자만이 파일 덮어쓰기 가능 Passwd-check [옵션] Ftpd가 패스워드를 검사할 때 기준 명시 Rename [yes|no] [클래스유형] 특정 사용자만이 rename 명령 실행 Umask [yes|no] [클래스 유형] 특정 사용자만이 umask 명령 실행 Upload [dir] [옵션] 사용자가 업로드 할 수 없는 디렉토리 명시 2018-11-22 #

SSLftp SSLftp는 SSL기반의 FTP클라이언트와 서버 SSL은 보안 소켓 계층(secure Socket Layer)을 의미하는 말로 3계층으로 되어있는 프로토콜 MD5 세션 무결성 검사 기능뿐 아니라 RSA와 DES인증 방법과 암호화 API를 채택 SSLftp를 설치하기전에 먼저 SSLeay가 설치 SSLftp는 Eric Young이 구현한 공개된 SSL 라이브러러인 SSLeay를 기반 2018-11-22 #

SSLftp 설치 Gunzip SSLftp-0_8_tar.gz Tar –xvf SSLftp-0_8_tar Cd SSLftp-0.8 Vi Makefile를 실행하여 SSLTOP이라는 변수를 찾아서 SSLeay가 설치되어있는 디렉토리로 바꾼다. Socks를 사용하지 않으면 SOCKS관련 항목을 주석처리 리눅스를 위한 두 항목의 주석처리를 없앤다. Make ftp Make ftpd Make install 2018-11-22 #

특정 FTP애플리케이션 보안 문제 (1) ncftp ncftp version2.0.0과 2.4.2는 원격 FTP서버로 부터 공격당할 수 있다. 원격 FTP administrator이 .rhost에 “+ +”와 같은 원격 실행 컴맨드를 실행할 수 있는 디렉토리를 만들 수 있다. ncftp version2.3.4(libc5)는 로깅기능을 마미시키는 DOS에 노출 되어있다. 2018-11-22 #

특정 FTP애플리케이션 보안 문제 (2) Filerunner - X를 위한 그래픽 환경의 FTP 클라이언트. - version 2.2.1x는 악의 있는 지역 사용자가 특별한 권한을 가지고 디스크에 파일을 쓸수 있도록 하는 임시파일을 open한다. 2018-11-22 #

특정 FTP애플리케이션 보안 문제 (3) ftpwatch - ftpwatch는 원격 FTP사이트를 감시할 수 있는 도구 - 초기버전(데비안 1.3)은 로컬 사용자가 간단한 결점을 이용해서 루트 권한을 얻을 수 있다. 2018-11-22 #

특정 FTP애플리케이션 보안 문제 (4) wu-ftpd 2.4.2-academ[BETA-18] - 칼데라 오픈 리눅스 1.3 - 레드헷 5.2 - 슬렉웨어 3.6 2018-11-22 #

요 약 Telnet과 마찬가지로 FTP서비스는 리눅스 네트워크에서 필수 적인것이다. FTP는 그렇게 안전하지가 않으므로 일반적인 FTP를 사용하고자 한다면 엄격한 접근 옵션을 적용하고 모든 상태를 기록해야만 한다. 2018-11-22 #