본문 바로가기
Post 3. 개발 일지/1. 정보보안기사

정보보안기사 필기 요약 #6. 애플리케이션 보안

by 조단단 2017. 9. 3.

[정보보안기사 필기 요약 보기]

 정보보안기사 필기 요약 #1-1. 정보보호 개요 http://captech.tistory.com/2

 정보보안기사 필기 요약 #2-1. 암호학 http://captech.tistory.com/3

 정보보안기사 필기 요약 #2-2. 암호학 http://captech.tistory.com/4

 정보보안기사 필기 요약 #3-1. 접근통제 http://captech.tistory.com/5

 정보보안기사 필기 요약 #4-1. 시스템 보안 http://captech.tistory.com/6

 정보보안기사 필기 요약 #5-1. 네트워크 보안 http://captech.tistory.com/7

 정보보안기사 필기 요약 #5-2. 네트워크 보안 http://captech.tistory.com/8

 정보보안기사 필기 요약 #5-3. 네트워크 보안 http://captech.tistory.com/9

 정보보안기사 필기 요약 #6. 애플리케이션 보안 http://captech.tistory.com/10

 

 

 애플리케이션 보안입니다.

 

 파일 관련 프로토콜

1. FTP(File Transfer Protocol)

 - 파일 전송 프로토콜은 한 호스트에서 다른 호스트로 파일을 복사하는 TCP/IP 표준 기능이다.

 - 다른 클라이언트 서버와 달리 두 개의 연결을 사용, 데이터 전송, 명령과 응답 제어 정보 분리

 - 두 개의 Well-Known TCP 포트 사용한다. 포트 20은 데이터 연결, 포트 21은 제어 연결

 (1) 데이터 연결: 20번 또는 1024 이후 포트 사용, 파일 전송 때 설정 및 해제된다.

 (2) 제어 연결: 21번 포트 사용, 클라이언트 명령과 서버의 응답을 위한 연결, 연결 상태 유지

 

 (1) FTP 능동(Active) Mode: 일반적으로 기본 값, 클라이언트에서 서버의 21번 포트로 접속

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

  클라이언트에 방화벽이 설치되어 외부 접속을 허용하지 않으면 FTP 접속은 되지만(제어 채널)

  이후 데이터 채널 연결이 불가능하여 파일을 받을 수 없는 문제가 생길 수 있다.

  - 서버가 20, 21번 포트 사용, 두 개의 포트만 열면 서비스 가능, 클라이언트 방화벽 접속불가

 (2) FTP 수동(Passive) Mode: 클라이언트에서 서버측 21번 포트로 접속, 제어 채널하고,

  '데이터 채널도 클라이언트에서 서버'로 접속하여 데이터를 보내는 방식이다.

  - 서버가 21번, 1024 이후 포트 사용, 데이터 전송에 1024 이후 포트 사용,

   1024 이후 모든 포트 오픈, 보안 위해 서버에서 Passive 모드로 사용 포트 제한

 

 - 포트 정의 1. PORT 명령을 통해 클라이언트가 임시 포트 번호를 선택하고 수동적 설정으로

  서버에게 보낼 수 있다. 서버는 그 포트 번호를 사용하고 능동적 설정을 사용한다.

 - 포트 정의 2. PASV 명령을 통해 클라이언트가 서버에게 먼저 포트를 선택하도록 요청

  서버는 그 포트로 수동적 설정을 하고 응답에 그 포트 번호를 전송한다.

 

2. TFTP(Trivial File Transfer Protocol)

 - 읽기 전용 메모리나 디스크 없는 워크스테이션에 설치될 수 있을 정도로 간단

 - 기본적인 IP와 UDP만을 필요로 함, 보안 기능 없음, 파일 읽기와 쓰기 가능

 - TFTP는 UDP 서비스를 사용한다. 연결 설정과 종료를 제공하지 않으므로

  각 데이터 블록을 독립적인 사용자 데이터그램으로 캡슐화하여 전송한다.

  또한, 흐름제어와 오류제어 기능이 없으므로 해당 메커니즘을 생성해야 한다.

 - 마법사의 초보 버그(Sorcerer's apprentice bug): ACK 메시지가 유실되지 않고

  지연될 경우 데이터 블록과 응답이 두 번 송수신되게 된다.

 

3. NFS(Network File System)

 - TCP/IP를 이용하여 네트워크에서 파일 시스템을 운영할 수 있는 프로토콜

 - 데이터 보안과 무결성을 보장하면서 인증된 사용자가 파일을 사용할 수 있도록 제공

 - 클라이언트마다 프로그램을 설치할 필요가 없으므로 관리면에서 효율적

 - 서버 공유자원 접근에 트래픽이 많이 발생하기 때문에 속도가 느린 단점

 

4. 삼바(Samba)

 - SMB(Server Message Block) 프로토콜을 사용하여 파일, 프린터 자원 공유 기능 제공

 

 

 FTP 보안 위협 및 대책

1. FTP 보안

 - FTP는 보안 이슈화 전에 설계, 비밀번호가 평문이므로 공격자가 가로챌 수 있다.

 - 데이터 전송 연결도 평문, 보안을 위해 FTP 응용 계층 - TCP 계층 사이 보안 소켓 계층 추가

  이러한 경우 FTP를 SSL-FTP

 

2. SFTP 프로그램

 - SSH 클라이언트와 SSH 서버 사이 보안 연결 시, 연결을 사용할 수 있는 응용 프로그램 SFTP

 - SFTP는 SSH 응용 요소의 일부이다. 쌍방향 프로그램이며 파일 전송에 인터페이스 명령 이용

 

3. TFTP 보안

 - TFTP는 보안에 대한 고려가 없다. 사용자 확인과 비밀번호도 없다.

 - TFTP가 중요하지 않은 파일만 허용, 라우터 보안을 구현하여 특정 호스트만 접근하도록 제한

 

4. Bounce Attack

 - 익명 FTP 서버를 이용하여, FTP 서버 경유 및 호스트 스캔, FTP PORT 명령 이용

 - FTP 서버를 통해 임의 네트워크 접속을 릴레이, 네트워크를 포트 스캐닝

 

5. Anonymous FTP 취약점

 - 보안 절차 없는 익명 사용자에게 FTP 서버 접근 허용, 익명 쓰기 권한 획득 시 악성코드 생성

 - 보안대책: Anonymous 사용자의 루트, bin, etc, pub 디렉터리 소유자와 퍼미션 관리

  $root/etc/passwd 파일에서 anonymous ftp에 불필요한 항목 제거

 

 

 메일 보안

 

 이메일 관련 프로토콜

1. SMTP(Simple Mail Transfer Protocol)

 - 송신자-메일 서버, 송신자 메일 서버-수신자 메일 서버 두 곳에서 사용된다.

 - 수신자 메일 서버 - 수신자 사이에 또 다른 프로토콜이 필요하다.

 - SMTP 단지 명령과 응답들이 어떻게 송신되고 수신되는지 규정한다.

  네트워크는 실제 구현을 위해 자유롭게 소프트웨어 패키지를 선택할 수 있다.

 

 - 클라이언트가 Well-Known 포트 25번에 TCP 연결 생성, SMTP 서버는 연결 단계 시작

  연결 단계에서 서버는 코드 220을 보내 클라이언트의 준비 상태 확인, 안됐다면 코드 421 전송

  클라이언트는 이름을 사용한 HELO 메시지를 보내어 자신이 누군인지 알린다.

  서버는 코드 250(요청 메시지 완료) 또는 상황에 맞는 코드를 보내어 응답한다.

  메시지 전송 후 연결 종료 시 클라이언트는 QUIT 명령을 송신, 서버는 코드 221 등 코드 응답

 

2. 메시지 액세스 에이전트(POP, IMAP)

 - SMTP는 메시지를 클라이언트로부터 서버로 밀어내는(Push) 프로토콜이다.

 - 서버로부터 클라이언트로 메시지를 당겨오는(Pull) 프로토콜에 POP, IMAP 사용

 - 두 가지 프로토콜 사용 가능, POP3(Post Office Protocol 3), IMAP4(Internet Mail Access P)

 (1) POP3

  - POP은 간단하지만 기능상의 제약이 존재한다. 클라이언트, 서버에 프로그램이 설치

  - 메일 서버 편지함으로부터 전자우편 다운로드 클라이언트에서 시작한다.

   TCP 포트 110번으로 서버와 연결, 편지함 액세스를 위해 사용자 이름과 PW를 송신한다.

 (2) IMAP4

  - POP3와 비슷하지만 더 많은 기능을 갖는다.

  - 다운로드 전 헤더 검사, 특정 문자열로 내용 검색, 부분 다운로드, 편지함 생성, 삭제, 변경,

   전자우편 저장을 위해 폴더 내 편지함들을 체계적으로 생성할 수 있다.

 

3. MIME(Multipurpose Internet Mail Extensions)

 - 전자우편을 통해 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적 프로토콜

 - ASCII가 아닌 데이터를 NVT ASCII 데이터로 변환하고, 이를 클라이언트 MTA로 배달

  수신측의 메시지는 원래 데이터로 역 변환된다.

 

4. 웹 기반 전자우편

 - 송신자 - 송신자 메일서버 - 수신자 메일서버까지의 과정은 SMTP를 사용한다.

 - 그러나 수신 서버(웹 서버)로부터 수신자의 브라우저까지는 POP3, IMAP4 대신 HTTP 사용

 - 수신자가 메일을 읽을 필요가 있을 때 웹사이트로 요청 HTTP 메시지를 송신한다.

 - 송신자가 HTTP 트랜잭션을 이용해 웹 서버로 메시지를 보내는 방법도 가능하다.

 

 

이메일 콘텐츠 보안 기술

1. PEM(Privacy Enhanced Mail)

 - IETF에서 인터넷 드래프트로 채택한 기밀성, 무결성, 부인방지, 인증을 지원하는 이메일 보안

 - 전자메일 프로토콜을 이용하여 암호화된 정보, 전자서명, 암호화 방법 등을 텍스트 형식 전송

 - 이론 중심적이며 사양이 방대하여 구현의 복잡성으로 인해 많이 사용되지 않는다.

 

2. PGP(Pretty Good Privacy)

 - 필립 짐머만이 독자적으로 개발하고 무료로 공개한 기밀성, 무결성, 부인방지, 인증 메일 보안

 - 여러 기종에서 사용 가능, 알고리즘의 높은 보안성, 개인의 작품으로 넓은 활용 분야

 - 기밀성, 송신 부인 방지, 메시지 인증, 사용자 인증을 제공하지만, 수신 부인 방지 미지원

 

 항목

 PEM

 PGP

 개발자

 IETF

 필립 짐머만

 키 인증 방식

 중앙집중 키 인증

 분산화 키 인증

 특징

 인터넷 표준

 익명 메시지 불허용

 구현의 어려움

 높은 보안성(군사, 금융)

 이론 중심

 많이 사용되지 않음

 응용 프로그램

 익명 메시지 허용

 구현의 용이성

 PEM보다 낮은 보안성

 현실 사용 중심

 많이 사용되고 있음

 

3. S/MIME(Secure Multipurpose Internet Mail Extensions)

 - MIME를 전자서명과 암호화 기술을 이용하여 암호화, 무결성, 송신자 부인 방지, 인증 보안

 - 송수신 측이 직접 상대방을 상호 인증, 공인 인증서를 맞교환, 상위 인증기관(CA) 체인 이용

 

 

 스팸메일 유형

 - 전송 방식 Incoming SPAM: 자신의 메일 서버로 전송, Relay SPAM: 중계 메일 서버로 전송

 

 스팸메일 대응 방안

1. 메일 서버 등록제 SPF(Sender Policy Framework)

 - 메일 헤더에 표시된 발송정보(IP)가 실제 메일 발송 서버(IP)와 일치하는지 비교

 

2. 스팸메일 방지 보안도구

 (1) Procmail: 메일 필터링

 (2) Sanitizer: 필터링, 매크로 검사, Score 기능, 감염 메시지 보관 장소 설정

 (3) Inflex: 메일 서버에서 로컬이나 외부로 나가는 메일에 대한 정책으로 필터링(첨부파일만)

 (4) SpamAssasin: 헤더 내용, 화이트/블랙 리스트, 실시간 블랙 리스트(RBL) 필터링

 

 

 웹 보안

1. WWW(World Wide Web)

 - 분산 클라이언트 서버 서비스, 브라우저를 사용하는 클라이언트가 서버를 이용, 서비스 받음

 - 하이퍼텍스트는 다른 문서를 참조하는 문서, 하이퍼미디어는 다른 미디어를 포함한 문서 참조

 - URL(Uniform Resource Locator): 인터넷 정보를 지정하는 표준, 프로토콜-호스트-포트-경로

 

2. 웹 문서

 (1) 정적 문서: 서버에서 생성되어 저장된 고정 내용 문서, 클라이언트는 복사본만을 얻음

  - HTML, XML, XSL, XHTML 

 (2) 동적 문서: 브라우저가 문서를 요청할 때마다 서버에 의해 생성, 요청마다 달라질 수 있음

  - 공통 게이트웨이 인터페이스(CGI; Common Gateway Interface): 동적 문서 생성과 처리

  - 고정 부분은 HTML, 동적 부분은 PHP, JSP, Asp, ColdFusion(HTML + SQL)

 (3) 액티브 문서: 클라이언트 사이트에서 수행될 프로그램, 스크립트

  - 자바 애플릿: 고급 프로그래밍 언어와 실행 환경, 액티브 문서 작성, 수행 라이브러리 조합

   애플릿은 서버에서 자바로 작성된 프로그램, 문서는 바이트 코드(바이너리) 형태

  - 자바 스크립트: 스크립트 개념이 액티브 문서를 위해 사용, 액티브가 작다면 스크립트로 작성

   스크립트는 소스 코드로써 바이너리 형태가 아니다. 자바 스크립트는 최고급 스크립트 언어

 

3. HTTP(Hypertext Transfer Protocol)

 - 단지 하나의 TCP 연결로 제어 연결 없이, 데이터만 클라이언트와 서버 사이에 전송된다.

 - HTTP 메시지는 사람이 읽을 목적이 아님, HTTP 서버-클라이언트에 의해 읽히고 해석된다.

  SMTP 메시지는 저장된 후 전달되지만, HTTP 메시지는 즉시 전달된다.

 

 

 SSL/TLS

 - SSL(Secure Socket Layer)/TLS(Transport Layer Security)는 가장 많이 이용되는 암호 통신

 (1) SSL 보안 서비스: 기밀성, 메시지 무결성, 클라이언트-서버 상호 인증

 (2) TLS 프로토콜 = TLS 레코드 프로토콜 + TLS 핸드쉐이크 프로토콜

  - 하단의 TLS 레코드 프로토콜이 암호화 처리, 상단의 TLS 핸드쉐이크 프로토콜이 이외 처리

   TLS 핸드쉐이크 프로토콜은 핸드쉐이크, 암호 사양 변경, 경고, 애플리켕션 데이터로 구성

 

 

 DNS 보안

 

1. DHCP(Dynamic Host Configuration Protocol)

 - 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지 정보를 제공하기 위한 클라/서버 프로토콜

 - BOOTP 프로토콜의 승계자로서 역방향 호환성을 가진다.

 (1) 컴퓨터의 IP 주소

 (2) 컴퓨터의 해당 서브넷 마스크

 (3) 라우터의 IP 주소

 (4) 네임서버의 IP 주소

 

  동작절차(동일 망)

 - DHCP 서버는 UDP 포트 67에 수동열기 명령 후 클라이언트 요청 대기

 - 클라이언트는 포트 68에 능동열기 명령, 목적지 포트 67, 발신지 포트 68

  메시지는 UDP 사용자 데이터그램으로 캡슐화

 - 서버는 UDP 목적지 포트 68, 발신지 포트 67 지정 후 클라에 유니캐스트나 브로드캐스트

 동작절차(다른 망)

 - 클라이언트가 서버의 IP 주소를 모르기 때문에 브로드캐스트 된 데이터그램 라우터 통과불가

 - 문제점을 해결하기 위해 호스트 또는 라우터가 중계 에이전트로 사용될 수 있다.

 - 중계 에이전트는 DHCP 서버의 유니캐스트 주소를 알고 포트 67에 오는 브로드캐스트 대기

  이러한 패킷을 수신하면 메시지를 유니캐스트 메시지에 캡슐화하여 DHCP 서버로 보낸다.

 동작절차(UDP 포트)

 - 서버는 Well-Known 포트 67 사용(일반적), 클라이언트는 Well-Known 포트 68 사용(비일반적)

 - 클라이언트가 임시 포트가 아닌 Well-Known 포트 68을 사용하는 것은 서버로부터의

  클라이언트 응답이 브로드캐스트 될 때의 문제점을 방지하기 위한 것이다.

 

 - 고정 주소 할당: DHCP는 정적 및 동적 주소 할당을 모두 제공 가능

  이 때, 물리/IP 주소를 정적 바인딩하는 DB 가진다. DHCP는 BOOTP와 역 방향 호환성

 - 동적 주소 할당: IP 주소 풀을 가지는 DB 활용, IP 주소 정적 DB 찾은 이후 동적 DB 항목 추가

 

2. DNS(Domain Name System)

 

 

 SET(Secure Electronic Transaction)

 - 신용카드를 이용한 상품구매 시 안전한 대금결제를 위해 RSA 암호화와 인증기술 이용

 

 

 애플리케이션 보안 개발

1. 소프트웨어 생명주기

 

2. 소프트웨어 생명주기 모형

 

3. 소프트웨어 품질보증 활동

 

4. 객체지향 기술(자바 보안)

 

 애플리케이션 보안 위협 및 대응

댓글