정보보안기사 - PART 06 어플리케이션 보안

개발자's avatar
Sep 17, 2025
정보보안기사 - PART 06 어플리케이션 보안
출처 : Shionista의 보안블로그(blog.naver.com/is_king)

32. FTP (출제빈도 1.7%)

FTP(File Transfer Protocol) 개요

  • 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 프로토콜
  • 20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답 등 제어 정보를 위해 사용된다.

FTP 연결 Mode

notion image
  • Active Mode
    • FTP 클라이언트의 기본 값.
    • 서버에서 제어 포트로 21번 포트 / 데이터 전송으로 20번 포트 사용
    • 동작 방식
        1. 클라이언트는 서버의 21번 포트로 연결하여 제어(Control)채널을 생성
        1. 사용자가 파일 목록을 불러오는 명령(ls)을 입력하면 클라이언트는 1024번 이상의 임시 포트를 결정하여 서버에게 전달(PORT 명령) 한다.
        1. 서버는 클라이언트가 알려준 포트로 연결을 설정하여 데이터채널을 생성
        1. 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료
  • Passive Mode
    • 서버에서 제어 포트로 21번 포트 / 데이터 전송으로 1024번 이상의 포트 사용
    • 동작 방식
        1. 클라이언트는 서버의 21번 포트로 연결하여 제어채널을 생성
        1. 사용자가 파일 목록을 불러오는 명령(ls)을 입력하면 클라이언트는 수동모드로 연결하기 위해 PASV 명령을 전송하고 서버는 1024번 이상의 임시 포트를 결정하여 클라이언트에게 전달한다.
        1. 클라이언트는 서버가 알려준 포트로 연결을 설정하여 데이터채널을 생성
        1. 데이터채널을 통해 데이터를 송신한 후 데이터채널 연결을 종료

TFTP(Trivial File Transfer Protocol)

  • 오직 기본적인 IP와 UDP만을 필요로 하는 FTP (포트 : UDP/69)
  • 보안 기능이 없음
  • FTP와 TFTP의 차이
    • 전송 : FTP는 TCP를 사용하고 TFTP는 UDP를 사용. TFTP는 부스트래핑 시 자주 사용
    • 한정된 개수의 명령 : TFTP는 파일을 보내고 받는 기능만 지원
    • 한정된 데이터 표현 방식 : TFTP는 FTP가 지원하는 데이터 표현 방식을 전부 지원하지 않는다.
    • 인증의 부족 : TFTP는 인증 기능이 없음

FTP 보안 위협 및 대책

  • FTP는 비밀번호, 데이터 전송 연결이 평문으로 되어있어 공격자에게 노출될 수 있다. 때문에 보안을 위해서 보안 소켓 계층(SSL, Secure Socket Layer)을 추가할 수 있다. (SSL-FTP)
  • SFTP(Secure FTP) : UNIX에서 제공하는 SSH 프로토콜의 일부분이다. SSH에서 클라이언트와 SSH 서버사이에 보안 연결이 성립되었을 때, 이 연결을 사용할 수 있는 응용프로그램 중 하나이다.
  • TFTP 보안
    • TFTP는 보안 기능이 전혀 없기 때문에 TFTP가 중요하지 않은 파일에만 접근할 수 있도록 제한하거나 TFTP 서버 근처에 있는 라우터에 보안을 구현하여, 특정 호스트만 서버에 접근할 수 있도록 해야 한다.
    • TFTP가 필요한 경우 secure mode로 운영 : chroot 기능을 이용한 것으로, 지정 디렉터리를 최상위 디렉터리로 지정하여 상위 디렉터리로 접근할 수 없도록 제한할 수 있다.
  • Bounce attack
    • FTP 서버가 데이터를 전송할 때 목적지를 검사하지 않는 문제점을 이용
    • 익명 FTP 서버를 이용해 그 FTP 서버를 경유해서 호스트를 스캔
    • FTP PORT 명령을 이용한다.
    • 네트워크를 포트 스캐닝 하는데 사용
    • 보안대책 : FTP 규약을 어느 정도 제한하는 방법으로 다른 서비스가 20번 포트 접속을 요청하면 거절하는 방법. 익명 FTP 서버의 경우 임시적으로 ./incoming에 파일 업로드를 할 수 없게 하는 방법
  • 익명 FTP 취약점
    • 보안 절차를 거치지 않은 익명의 사용자에게 FTP 서버로의 접근을 허용하고, 그 사용자가 서버에 쓰기 권한이 있을 때 악성코드 생성이 가능하다.
    • 보안대책 : 중요 디렉터리(/bin, /etc 등)의 소유자와 권한(permission)을 관리하거나 사용을 금지하는 방법이 있다.

FTP 서비스 운영

  • proftpd
    • 특징
      • 매우 안정적이고 빠름
      • xinetd / standalone 형태로 작동 가능
    • ftp 접속 시 확인 설정
      • /etc/passwd, /etc/shadow에 사용자 계정이 있는지 검사
      • /etc/ftpusers에 사용자 id가 있으면 거부
      • /etc/shell에 등록되지 않는 쉘을 사용하는 유저는 거부
    • 설정 파일 옵션
      • ServerType [type] : 서버 타입 설정(xinetd / standalone)
      • RootLogin [on/off] : 루트 계정 로그인 허용/거부
      • user [name] : 익명 접속할 경우 사용자를 [name]으로 인식
      • MaxClients [num] : 최대 접속 허용
      • TimeoutLogin [second] : 클라이언트가 인증을 유지할 수 있는 시간
      • TimeoutIdleftp [second] : 접속 후 아무런 작업도 없는 상태 유지 시간
      • TimeoutSession [second] : [second]초 후에 무조건 접속 종료
  • vsftpd(Very Secure FTP Daemon)
    • 가상 IP별 별도의 환경 설정 기능이 있음.
    • 가상 사용자 설정, 전송 대역폭 지정 가능
    • 상세한 자체 로그 파일 형식을 지원
    • xinetd / standalone 형태로 작동 가능

33. 이메일 보안 (출제빈도 2.6%)

매회 1문제 이상 출제

전자우편 구조

  • MUA (Mail User Agent) : 사용자 대행자. 메시지 작성, 읽기, 답장 보내기 등을 수행하는 S/W
  • MTA (Mail Transfer Agent) : 메일 서버로 메시지를 전송하기 위한 전송 대행자. 클라이언트/서버 프로그램
  • MAA (Mail Access Agent) : 메시지를 검색하고자 할 때 사용하는 메시지 접근 대행자. 클라이언트/서버 프로그램

SMTP (Simple Mail Transfer Protocol)

notion image
  • MTA 클라이언트와 서버를 구성하는 프로토콜 (TCP/25)
  • SMTP는 송신자와 송신자의 메일서버 사이 그리고 두 메일 서버들 사이에서 총 두 번 사용된다.

메시지 액세스 에이전트(MAA)

  • POP3(Post Office Protocol ver3)
    • 간단하지만 기능상의 제약이 있는 프로토콜. (TCP/110)
    • 클라이언트 POP3 S/W는 수신자 PC에, 서버 POP3 S/W는 메일 서버에 설치됨.
    • 사용자가 메일서버에 있는 편지함에서 전자우편을 내려 받을 필요가 있을 때 클라이언트에서 시작
  • IMAP4(Internet Mail Access Protocol ver4)
    • POP3과 비슷하지만 더 많은 기능을 포함하고 있고 복잡함. (TCP/143)
    • IMAP4가 추가적으로 제공하는 기능
      • 사용자는 전자우편을 내려 받기 전에 헤더를 검사할 수 있음
      • 사용자는 내용 검색, 부분적 다운로드 가능
      • 사용자는 메일서버에서 편지함을 생성, 삭제, 이름 변경 가능

이메일 보안을 위한 보안 기술

  • PEM(Privacy Enhanced Mail)
    • IETF에서 채택한 기밀성, 인증, 무결성, 부인방지를 제공하는 이메일 보안 기술
    • 키 인증이 중앙집중화 되어있고, 이론 중심이어서 구현이 복잡하여 많이 사용되고 있지 않다.
  • PGP(Pretty Good Privacy)
    • 구현이 용이하여 널리 사용되는 기술. 다양한 플랫폼에서 활용 가능
    • 인증(전자서명), 기밀성(대칭 블록암호 + RSA), 압축(ZIP), 호환성, 단편화 조립 제공
    • 송신 부인 방지를 지원하나 수신 부인 방지는 지원하지 않는다.
  • S/MIME(Secure Multipurpose Internet Mail Extensions)
    • PEM 구현의 복잡성, PGP의 낮은 보안성을 보완하기 위해 RSADSI 기술을 기반으로 개발된 기술
    • MIME : 전자우편을 통해 ASCII가 아닌 데이터가 송신될 수 있도록 허용하는 부가적인 프로토콜
    • 메시지 기밀성, 무결성, 사용자 인증, 송신 사실 부인 방지 기능 제공
    • 전자서명을 위해 DSS(디지털 서명 표준)사용, 세션키 암호화를 위해 Diffie-Hellman 사용, 전자서명, 세션키 암호화를 위해 RSA 알고리즘을 사용한다.
    • S/MIME 동작 과정
      • 사용자가 수신자에게 보낼 메시지 작성. 이 메시지는 MIME 형태로 작성되고, 사용자는 전송하기 전에 메시지에 대한 보안 메커니즘(전자 서명, 암호화)을 선택하여 적용할 수 있다.
      • S/MIME 어플리케이션은 MIME 형태의 메시지를 S/MIME 메시지로 변환. (보안 메커니즘을 실질적으로 적용)
      • 메일 클라이언트는 전자 우편 서버에 메일을 전송하고, 수신자는 S/MIME 클라이언트를 통해 메시지 수신
      • 전송 시 SMTP 프로토콜이 사용되지만, 메시지에 암호화 및 전자서명이 적용되었기 때문에 도청/변조로부터 안전

스팸메일 보안 대책

notion image

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

  • 메일 헤더에 표시된 IP가 실제로 메일을 발송한 서버 IP와 일치하는지 비교함으로써 발송자 정보의 위변조 여부를 판단
  • 발송자의 서버를 DNS에 미리 등록하고 수신자의 서버에 메일이 도착하면 등록된 서버로부터 발신되었는지 확인하여 수신자에게 전달되기 전에 스팸메일을 차단하는 기술 (오픈 소스 기반)
  • 필터링 방식에 비해 서버 및 네트워크 자원 소모가 낮고 잘못 탐지할 가능성이 낮음

스팸 필터 솔루션

  • 메일서버 앞단에 위치하여 프록시 메일서버로서 동작하며, SMTP 프로토콜을 이용한 DoS 공격이나 폭탄 메일, 스팸 메일을 차단
  • 주요 기능 : 메일 헤더 필터링, 제목 필터링, 본문 필터링, 첨부파일 필터링

34. 웹 보안(Web Security) (출제빈도 5.3%)

매회 5~6문제 출제

HTTP(Hypertext Transfer Protocol)

  • 웹에서 웹페이지를 가져오기 위해 어떻게 클라이언트-서버 프로그램이 작성될 수 있는지를 정의
  • 영속성
    • 비영속적 연결 : 각 요구/응답에 대해 하나의 TCP 연결만 만들어짐. (작업 끝난 후에 연결이 닫힘)
    • 영속적 연결 : 차후의 요청을 위해 연결을 열어 놓음.
    • HTTP ver 1.0 : 비영속적 연결.
    • HTTP ver 1.1 : 영속적 연결. (모드 변경 가능)
  • HTTP 트랜잭션(transaction)
    • notion image
      1. 요청 메시지
          • 메소드(Method) : 요청 라인에 포함된 정보
            • GET 방식 : 요청 데이터에 대한 인수를 URL(Uniform Resource Locator)에 포함시켜 전송
            • POST 방식 : 바디 영역에 소켓을 이용하여 데이터를 전송. 최소한의 보안성을 유지
          • 요청 헤더 라인 : 추가적인 정보(Host, User-Agent, Referrer 등)를 클라이언트에서 서버로 보냄
          • 본체(Body)
            • 메소드가 PUT이나 POST일 때, 송신될 주석이나 웹사이트에 게시될 파일을 담고 있다.
            • GET 방식의 경우 요청 데이터가 없기 때문에 본체(Body)가 없다.
      1. 응답 메시지
          • 상태 코드 필드 (Status line에 포함) : 세 자리 숫자로 요청의 상태를 정의 (404, 500 등)
          • 응답 헤더 라인 : 추가적인 정보(Contents-Type, Contents-Length 등)를 서버에서 클라이언트로 보냄

SSL/TLS(Secure Socket Layer/Transport Layer Security) (⭐️)

  • 가장 많이 이용되고 있는 암호 통신 방법
  • 대칭키 암호, 공개키 암호, 일방향 해시함수, 메시지 인증코드, 의사난수 생성기, 전자서명을 조합해서 안전한 통신을 수행
  • 특정 암호기술에 의존하지 않고 암호 스위트라는 개념에 의해 선택이 가능하다.
  • SSL/TLS로 통신을 수행할 때 URL은 https:// 시작한다.
  • SSL 보안 서비스
    • 기밀성 : 대칭키 암호화 알고리즘을 사용하여 제공. 비밀키는 Handshake Protocol을 통해 생성
    • 클라이언트와 서버 상호 인증 : RSA 같은 비대칭키 암호 알고리즘, DSS와 같은 전자서명 알고리즘과 X.509 공개키 인증서를 사용해 인증을 제공
    • 무결성 : 해시 알고리즘을 사용해 MAC를 만들어 메시지에 포함시켜 제공

TLS 프로토콜

  • SSL3.0을 기초로 인터넷 표준버전이 되도록 만든 IETF 표준이다.
  • TLS 레코드 형식은 SSL 레코드 형식과 동일하고 헤더의 필드도 동일한 의미를 가짐.
  • MAC 계산 시 SSL은 오래된 버전의 HMAC를 사용하지만, TLS에서는 최신버전의 HMAC를 사용.
  • Handshake 프로토콜
    • 이 프로토콜을 이용해서 서버와 클라이언트가 서로 인증
    • TLS Recode 안에 보낸 데이터를 보호하는데 사용할 암호키를 협상할 수 있다.
    • Handshake 프로토콜 동작 과정 (4단계)
    • notion image
      notion image
  • Recode 프로토콜
    • 대칭키 암호를 사용해서 메시지를 암호화하고 통신함. TCP 프로토콜 사용
    • 상위 응용 계층에서 받은 임의 크기의 데이터를 SSL에서 처리할 수 있는 데이터 블록 크기로 단편화하고, 압축, MAC 계산, 암호화 과정을 거쳐 TCP 단편으로 전송됨. 수신된 데이터는 반대로 수행하여 상위 계층에게 전달
  • ChangeCipherSpec 프로토콜 : 협상된 보안 파라미터를 이후부터 적용/변경함을 알리기 위해 사용
  • Alert 프로토콜 : 대등 개체에게 SSL 관련 경고를 할 때 사용됨.
  • 하트비트(Heartbeat) 프로토콜 : 정상적으로 동작함을 알려주기 위해 생성하는 주기적인 신호
  • SSL/TLS에 대한 공격
    • OpenSSL의 HeartBleed 취약점 : 해당 취약점을 가진 OpenSSL 버전에서 Heartbeat 확장 기능에 요구 데이터 길이에 대한 점검이 없어서 다른 정보까지 상대방에게 전달될 수 있는 취약점.
    • POODLE 공격 : 공격자가 TLS를 SSL 3.0으로 다운그레이드 시켜 SSL 3.0의 취약점을 공격하는 기법
    • FREAK 공격 : SSL/TLS 서버가 RSA Export Suites라고 불리는 약한 암호 스위트를 사용하게 만드는 공격

HTTPS vs S-HTTP

  • HTTPS (TCP/443)
    • SSL을 이용하는 HTTP로, 모든 웹 브라우저에 내장되어 있는 기능
    • URL 주소가 https:// 로 시작한다.
    • 요청 문서 URL, 문서 내용, 브라우저 양식 내용, 쿠키, HTTP 헤더 내용이 암호화된다.
    • 스니핑을 어렵게 만들지만 사용자 입력 값에 대한 검증은 하지 못한다.
  • S-HTTP
    • HTTP로 전송되는 내용을 보호
    • HTTPS와 달리 HTTP 메시지가 암호화 및 서명되어 기존 TCP/IP 망을 통해 전송된다.
    • 기존의 HTTP 특성을 유지하며 다양한 암호 기능을 지원한다.
    • URL 주소가 shttp:// 로 시작한다.

웹서버 보안

  • IIS(Internet Information Security) 보안
    • 접근제어/통제 : 웹서버/페이지(관리자 페이지 포함)에 접근하는 사용자를 IP주소 등을 통해 접근통제
    • 디렉터리 리스팅 (Directory Listing) : 웹서버/페이지에 특정 방법으로 접근 시, 해당 사이트의 디렉터리 구조와 파일 리스트를 열람할 수 있게 된다. 이때 중요한 정보가 노출될 수 있다.
    • 오류 메시지 설정 : 기본 오류 메시지를 이용하면 오류 메시지에 의해 내부 DB정보나 서버정보 등이 노출될 수 있다.
  • Apache 보안
    • root 권한으로 실행되는 경우를 방지하기 위해 nobody 계정을 만들어 아파치 웹 프로세스의 권한으로 할당 (nobody 계정은 로그인이 허용 되지 않음)
    • nobody라는 이름 대신 apache 라는 별도의 계정을 만들어 사용
    • 아파치 설정파일(httpd.conf) 주요 설정 [괄호 안은 default 값 또는 일반적으로 설정되는 값]
      • ServerType(standalone) : 서버를 standalone / inetd 모드로 운영할지 결정
      • Timeout(300) : 클라이언트에서 서버로 접속 시 지정한 시간(초)안에 처리하지 못하면 연결을 해제
      • KeepAlive(On) : 사용자의 요청 연결에 대해 한 번의 요청 처리 후 다른 요청을 기다릴지 설정
        • On : 사용자의 요청 처리 후 다른 요청을 처리하기 위해 대기
        • Off : 사용자의 요청 처리 후 바로 접속을 해제
      • MaxKeepAliveRequests(100) : KeepAlive 상태에서 처리할 최대 요청 처리 건수
      • KeepAliveTimeout(15) : KeepAlive 상태를 유지할 시간(초)
      • MaxClients(150) : 아파치 서버의 최대 동시 접속자 수 (최대 256 까지 설정 가능)
      • User(nobody) : 자식 프로세스가 생성될 때 그 프로세스의 소유자/소유그룹 결정
      • ServerSignature(On) : 서버 배너 정보를 나타내는 설정
      • ServerTokens(ProductOnly) : 서버의 정보 표시제한 설정
        • ProductOnly : 웹서버 종류만 표시
        • Minimal : 웹서버 종류, 버전 정보 표시
        • OS : 웹서버 종류, 버전, OS 정보 표시
        • Full : 웹서버 종류, 버전, OS 정보, 설치된 모듈 정보 표시

웹 보안위협 및 보안대책

  • OWASP TOP 10 2017
    • notion image
  • SQL injection
    • DB와 연동되어 있는 어플리케이션의 입력 값을 조작하여 DBMS가 의도되지 않은 결과를 반환하도록 하는 공격기법
    • 필터링 기능이 없어 해당 어플리케이션에서 사용자로부터 전송되어 오는 입력 값에 대해 그 적정성을 검사하지 않기 때문에발생한다.
    • 이 공격기법으로 DB 정보 조회/변조/삭제가 가능하며, 사용자 및 관리자에 대한 인증절차를 우회할 수 있다.
    • 취약점 판단 방법 : 입력 폼에 큰따옴표, 작은따옴표, 세미콜론 등을 입력하여 DB 에러를 출력하는지 확인
    • 대응 방법 : 사용자의 입력에 특수 문자가 포함되어 있는지 검증, SQL 서버의 에러 메시지 미표시, 일반 사용자 권한으로 시스템 저장 프로시저에 접근 불허
  • 사이트 간 스크립팅 (XSS, CSS, Cross Site Scripting)
    • 공격자에 의해 작성된 스크립트가 다른 사용자에게 전달되는 기법
    • 다른 사용자의 웹 브라우저 내에서 적절한 검증 없이 실행되기 때문에 사용자의 세션을 탈취하거나, 웹 사이트를 변조하거나 혹은 악의적인 사이트로 사용자를 이동시킬 수 있다.
    • 공격 유형
      • Stored XSS : 가장 일반적인 유형. 단순한 게시판 또는 자료실과 같이 사용자가 글을 저장할 수 있는 부분에 정상적인 평문이 아닌 스크립트 코드를 입력하는 기법이다.
      • Reflected XSS : 공격 스크립트가 포함된 공격 URL(사용자가 눈치 채지 못하게 인코딩)을 사용자가 클릭할 때 악성 스크립트 코드가 서버 사이트에 의해 HTML 문서로 반사되어 웹 브라우저에서 실행시켜, 서버에 남기지 않고 공격을 수행 가능
    • 보안대책
      • 사용자가 입력한 문자열의 <, >, &, " 등을 문자 변환 함수나 메소드를 사용하여 &It, &gt, &amp, &quot로 치환한다.
      • HTML 태그를 허용하는 게시판에서는 지원하는 HTML 태그의 리스트를 선정한 후, 해당 태그만 허용하는 방식을 적용한다.
  • 사이트 간 요청 위조 (XSRF, CSRF, Cross Site Request Forgery)
    • 특정 웹사이트에 대해 사용자가 인지하지 못한 상황에서 사용자의 의도와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 요청하게 하는 공격기법
    • XSS 공격은 악성 스크립트가 클라이언트에서 실행되는 반면, CSRF 공격은 정상적인 사용자가 악성 스크립트를 서버에 요청한다.
    • 보안대책
      • 입력화면 폼 작성 시 GET 방식보다는 POST 방식을 사용하고, 토큰을 이용하여 공격자의 직접적인 URL 사용이 동작하지 않도록 처리한다.
      • 특정한 사용자를 구분하는 인수가 있으면 하나의 사용자에게만 적용되거나 인증과정을 통해 공격을 막을 수 있다.
  • 직접 객체 참조
    • 파일, 디렉터리, DB 키와 같이 내부적으로 구현된 객체에 대한 참조가 노출될 때 발생
    • 디렉터리 탐색 공격(파일 다운로드 취약점) : 브라우저에서 확인 가능한 경로의 상위 디렉터리로 탐색하여 특정 시스템 파일을 다운로드하는 공격 방법
      • 보안대책 : 파일 다운로드 전용 프로그램을 작성하여 사용할 때, ‘..’ 이나 ‘/’ 문자를 필터링
    • 파일 업로드 제한 부재 : 클라이언트에서 서버 측으로 임의의 파일을 보낼 수 있다는 것은 웹서버가 가질 수 있는 가장 치명적인 취약점이다. 첨부파일로 업로드하는 악성 코드는 대부분 웹셸이다.
      • 보안대책 : 업로드 가능한 파일의 확장자를 화이트리스트 방식으로 필터링한다.
  • 웹 방화벽(WAF, Web Application Firewall)
    • 웹 어플리케이션을 대상으로 시도되는 해킹을 차단해주는 솔루션
    • 기능
        1. 사용자 요청 검사 : 접근제어, Web DoS, 업로드 파일 및 요청 형식 검사, SQL 인젝션 및 XSS 등의 차단
        1. 콘텐츠 보호 : 정보 유출 차단, 웹 변조 방지, 코드 노출 진단
        1. 위장 : URL 정보 위장, 서버 정보 위장

35. DHCP와 DNS 보안 (출제빈도 0.8%)

DHCP (Dynamic Host Configuration Protocol)

  • 호스트 설정 프로토콜 종류
    • RARP(Reverse Address Resolution Protocol) : 초기 사용된 방식. 호스트의 MAC주소를 통해 RARP 서버에서 IP 주소를 매핑하여 호스트에게 전달.
    • BOOTP(Bootstrap) : DHCP 이전에 사용된 방식. 컴퓨터의 IP주소/서브넷 마스트, 라우터 IP 주소, 네임서버 IP 주소의 정보를 제공해주지만 정적인 설정이 필요한 프로토콜
    • DHCP : BOOTP의 기능을 모두 제공하고 동적인 프로토콜
  • 장점 : 네트워크 설계 변경이 자유로움, 실제 사용되는 호스트에만 IP가 할당되어 IP 절약, 사용자가 따로 설정하지 않아도 됨
  • 단점 : 부팅 시 브로드캐스트 방식으로 트래픽을 전송하여 네트워크 성능 저하, 호스트 전원만 켜 있어도 IP 할당, 호스트 수가 많아지면 서버 과부하 발생

DNS (Domain Name Server)

  • DNS는 도메인 네임을 IP 주소로 변환해주는 시스템
  • zone 파일 : 개별 도메인에 대한 DNS 정보가 설정되어 있는 파일
  • 루트 서버 : 전체 트리를 영역으로 가지는 서버. 보통 도메인에 대한 정보를 갖지 않으며, 다른 서버들에 대한 참조만을 가지고 있다.
  • 일차 서버(Primary Server) : 자신이 권한을 가지는 zone에 대한 파일을 가지고, zone 파일에 대한 생성/관리/갱신의 책임을 가지며 로컬 디스크에 zone 파일을 저장
  • 이차 서버(Secondary Server) : 다른 서버로부터 영역에 대한 정보를 수신하여 로컬 디스크에 파일이 저장하는 서버
  • 존 전송(Zone Transfer) : 1차 서버(마스터, master)의 zone 데이터를 2차 서버(슬레이브, slave)가 동기화하는 작업 (TCP/53)
  • 동작 방식
    • 재귀적(Recursive) 해석 : 클라이언트가 네임 서버에게 재귀적 요청을 보내면, 서버는 정보가 있는 경우 그 정보로 응답하고, 없는 경우 다른 서버(부모 서버)에게 새로운 재귀적 요청을 보내어 응답한다.
    • 반복적(Iterative) 해석 : 클라이언트가 네임 서버에게 반복적 요청을 보내면 서버는 정보가 있는 경우 그 정보로 응답하고, 없는 경우 그 정보에 좀 더 가까운 다른 서버의 네임으로 응답한다.
    • DNS 질의 순서 : 캐시 → hosts 파일 → 로컬 DNS 서버

DNS 보안

  • DNS 스푸핑 : 공격 대상이 DNS 질의를 수행하면 공격자가 이를 스니핑하여 정상 응답보다 빠르게 공격 대상에게 조작된 웹사이트 IP 정보를 담은 DNS 응답을 보내 정상적인 주소를 입력해도 조작된 주소로 접속하게 만드는 공격 기법
  • DNS Cache Poisoning
    • DNS 서버의 캐시정보를 조작하는 공격
    • 공격 절차
        1. 공격 대상 DNS 서버(Recursive DNS Server)에 조작할 도메인 질의를 다수 전송
        1. 공격 대상 DNS 서버가 반복적 질의를 수행하는 동안 다수의 조작된 DNS 응답을 서버에 전송
          1. → 공격 대상 DNS 서버가 질의에 사용하는 Transaction ID와 출발지 Port를 모르기 때문에 랜덤으로 생성
        1. 조작된 응답 중 정상 응답보다 먼저 Transaction ID와 출발지 Port가 일치한 응답이 있으면 조작된 주소 정보가 공격 대 상 DNS 서버의 캐시에 저장되게 된다.
  • 보안 대책 : 취약점 패치, 재귀적 질의 비허용, DNSSEC 기술 활용

36. 데이터베이스 보안 (출제빈도 1.9%)

데이터베이스 기본 개념

  • 데이터베이스(DB, Database) : 통합된 데이터, 저장된 데이터, 운영 데이터, 공용 데이터
  • DBMS(DataBase Management System) : 응용프로그램과 DB의 중재자. 모든 응용프로그램이 DB를 공용할 수 있도록 관리해 주는 S/W 시스템
  • 구성요소
    • notion image
    • 개체(entity) : DB가 표현하려고 하는 유형. 파일 구성 측면에서는 레코드(record)에 해당하며, 단독으로 존재할 수 있고 정보로서 역할을 할 수 있다. 개체는 하나 이상의 속성으로 구성된다.
    • 속성(attribute) : 개체의 특성이나 상태를 기술하는 것. 데이터의 가장 작은 논리적 단위가 되며 단독으로 존재하지 못한다. 파일 구성 측면에서는 데이터 항목(item), 또는 필드(field)라고도 한다.
  • 키의 유형
    • 후보키(Candidate Key) : 키의 특성인 유일성과 최소성을 만족하는 키 ex) <군번>, <이름, 소속>
    • 슈퍼키(Super Key) : 유일성을 만족하는 키 ex) <이름, 소속, 계급>
    • 기본키(Primary Key) : 여러 개의 후보키 중에서 하나를 선정하여 사용하는 키 ex) <군번>, <이름, 소속> 중 하나를 선정
    • 대체키(Alternate Key) : 여러 개의 후보키 중에서 기본키를 제외한 나머지 키 ex) 기본키를 <군번>으로 선정하였다면 나머지 키인 <이름, 소속>
    • 외래키(Foreign Key) : 어느 한 릴레이션 속성의 집합이 다른 릴레이션에서 기본키로 이용되는 키
  • 무결성의 종류
    • 키 무결성(key integrity) : 한 릴레이션에 같은 키값을 가진 튜플(tuple)이 있어서는 안된다.
    • 개체 무결성(entity integrity) : 기본키에 속해 있는 전체 또는 일부 속성은 널 값을 가질 수 없다.
    • 참조 무결성(referential integrity) : 릴레이션은 참조할 수 없는 외래키값을 가질 수 없다.
  • 트랜잭션(Transaction) : 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • DB 보안 위협
    • DB 보안 특성 : 비밀성, 무결성, 가용성
    • Aggregation(집성) : 개별적인 여러 소스로부터 민감하지 않은 정보(낮은 보안 등급)를 수집/조합하여 민감한 정보(높은 보안 등급)를 알아내는 행위
    • Inference(추론) : 일반적인 데이터로부터 비밀정보를 추측해내는 행위

데이터베이스 보안 통제

  • 흐름제어
    • 객체 A의 값을 읽어 이를 객체 B에 기록할 때 정보흐름이 발생하게 된다.
    • 어떤 객체에 포함되어 있는 정보가 명시적/암시적으로 낮은 보호수준의 객체로 이동하는 것을 검사하여 접근 가능한 객체 간의 정보흐름을 조정하는 것
  • 추론제어
    • 간접적인 데이터 노출로부터 데이터를 보호하기 위한 제어
    • 추론제어 방법으로는 비밀정보를 은폐하거나 DB 사용자에게 부정확한 혹은 일관성이 없는 질의결과를 제공하는 방법이 있다.
  • 접근제어
    • DB에서의 접근통제는 운영체제의 접근통제와 유사하지만 실질적으로는 보다 복잡하다.
    • 운영체제의 접근통제 : OS의 객체(파일)는 다른 객체와 관련성이 없어 사용자는 하나의 파일을 읽고 다른 파일의 내용을 결정할 수 없다.
  • 데이터베이스의 접근통제 : DB의 객체(레코드, 필드)는 상호 관련되어 있어 사용자는 하나의 데이터 요소를 읽고서 다른 데이터의 내용을 결정할 수 있으며 객체의 크기도 상이하다.
  • 추론과 통계적 데이터베이스
    • 인가된 쿼리 수행과 합법적 응답을 통해 비인가된 정보를 추론하는 것
    • DB 설계 시 추론 탐지 : DB 구조 변경 혹은 접근 제어 방식의 변경으로 추론채널을 제거함으로써 추론을 방지
    • 쿼리 타임 시 추론 탐지 : 쿼리 처리 중 추론 채널 위반을 제거하려는 시도. 추론 채널이 탐지되면 쿼리를 거부하거나 변경한다.

DBMS 보안 통제

  • SQL 기반의 접근 통제(GRANT/REVOKE 접근통제)
    • 보통 DBA가 권한을 가지므로 DBA 권한이라 하는데, 다른 사용자에게 권한을 부여하거나 회수할 때 사용한다.
    • SQL은 GRANT와 REVOKE라는 접근 권한 관리 명령어를 제공한다.
  • 뷰(View) 기반의 접근통제
    • 하나 이상의 기본 테이블로부터 유도되어 만들어지는 가상 테이블(virtual table)이다.
    • 뷰의 내용은 실제로 존재하는 것이 아니라, 실행시간에만 구체화되는 특수한 테이블이다.
    • DB의 선별된 부분만 표시하여 사용권한을 다양하게 설정하여 자료에 대한 접근제어로 보안을 제
  • DBMS 보안 점검 사항
    • 디폴트 계정 패스워드 변경, DB 패스워드 규칙 강화
    • DBA 권한의 제한 : 일반 계정이 DBA 권한을 부여받지 않도록 주의해야함.
    • 보안 패치 적용하여 취약점 제거
    • 사용하지 않는 계정 삭제
    • 개발자 IP 접근 제한
    • 데이터의 암호화

DB 암호화 방식

  • Plug-in 방식 : 암/복호화 모듈을 DB 서버 내에 설치하여 암/복호화를 수행하는 구조
  • API 방식 : 암/복호화 모듈을 어플리케이션 서버 내에 설치하여 암/복호화를 수행하는 구조.
  • Hybrid 방식 : Plug-in 방식 + API 방식
  • TDE 방식 : DBMS에 추가 기능으로 제공되는 암호화 기능을 이용하여 DB 내부에서 데이터 파일 저장 시 암호화하고, 파일에 저장된 내용을 메모리 영역으로 가져올 때 DBMS에 의해 자동으로 복호화되는 방식
  • 파일 암호화 방식 : OS상에서 확인 가능한 개체인 파일을 암호화하는 방식

클라우드 보안

  • 클라우드 컴퓨팅(Cloud computing) : 정보를 자신의 컴퓨터가 아닌 인터넷에 연결된 다른 컴퓨터로 처리하는 기술
  • 클라우드 컴퓨팅 3가지 서비스 모델
    • Software as a Service(SaaS) : 사용자는 제공자(Vendor)가 클라우드 기반 구조에서 구동되도록 올려놓은 응용 프로그램을 이용할 수 있다.
    • Platform as a Service(PaaS) : 사용자는 자신이 생성하였거나 프로그래밍 언어로 만든 기존의 응용 프로그램 또는 제공자가 지원하는 도구를 클라우드 기반 구조에 배치할 수 있다.
    • Infrastructure as a Service(IaaS) : 사용자는 프로세싱, 저장소, 네트워크 및 기본적 컴퓨팅 자원을 사용자가 배치할 수 있는 곳에 제공하고 모든 응용 프로그램(OS 포함)을 구동할 수 있다.
  • 클라우드 보안 서비스
    • Security as a Service(SecaaS) : 서비스 제공자에게 제시하는 보안 서비스 패키지
    • SecaaS는 CP(Cloud Provider)가 제공하는 SaaS의 일부이다.

37. 전자상거래 보안 ( 출제빈도 2.4% )

매회 1문제 이상 출제

전자상거래(Electronic Commerce) 개념

  • 광의적 개념 : 전자상거래 주체인 정부, 기업, 개인 간의 전자정보를 통하여 이루어지는 모든 경제활동을 포함한 상거래 전반을 의미
  • 협의적 개념 : 일반 소비자를 대상으로 인터넷이나 통신망을 이용한 상품관련 정보 제공, 협상, 주문 등을 통해 마케팅, 판매활동을 수행하는 것
  • 전자상거래 보안
    • 원격의 거래 상태를 신뢰하기 어려우므로 네트워크상에서 상대방 및 자신에 대한 신분 확인 수단이 필요
    • 거래 내역의 공증을 보장할 수 있는 신뢰할만한 제3자의 중재가 필요

전자화폐

  • 가상공간의 화폐 역할을 수행하는 디지털 데이터로 구성된 화폐
  • 은행, 상점, 구매자로 구성되어 있고, 단계는 발행 단계, 지불 단계, 결제 단계로 구성되어 있음.
  • 전자화폐의 요구 조건
    • 디지털 정보화(Independence) : 다른 물리적인 형태에 의존하여서는 안 되며 완전하게 디지털 정보만으로 실현되어야 한다.
    • 재사용 불가능성(안정성, Security) : 복사, 위조 등으로 부정사용을 할 수 없어야 한다.
    • 익명성(Privacy, Un-traceability, 추적 불가능성) : 이용자의 구매에 관한 익명성이 보호되는 것
    • 오프라인성(Off-line) : 지불 단계를 오프라인으로 처리할 수 있어야 한다.
    • 양도성(Transferability) : 타인에게 양도가 가능해야 한다.
    • 분할이용 가능성(Divisibility) : 분할해서 사용할 수 있어야 한다.
    • 부정 사용자의 익명성 취소(Anonymity Revocation of illegal user) : 익명성 취소는 선택적으로 가능해야 한다.
    • 이중사용 방지(Double-spending Un-reusability) : 부정한 사용자가 전자화폐를 불법적으로 복사하여 여러 번 반복적으로 사용하는 행위는 은행에 의해 검출될 수 있어야 한다.

전자지불 시스템

  • 구성요소
    • 은행 : 전자화폐를 발행하고 결제하는 기관
    • 고객 : 전자화폐를 은행으로부터 발급받아 사용하는 주체
    • 상점 : 상품을 공급하고 전자화폐를 구매대금으로 받는 자
    • 인증기관 : 신분인증, 거래내용 부인방지 등을 위한 기관
  • 구성요소 간에 사용되는 프로토콜으로 인출 프로토콜, 지불 프로토콜, 입금 프로토콜이 있다.
  • 전자지불 시스템의 보안 요구사항
    • 위조불가능(Unforgeability) : 전자화폐는 위조가 불가능해야 한다.
    • 부인방지(Non-Repudiation) : 어느 한쪽이 거래사실을 부인하고 있음을 판별할 수 있어야한다.
    • 누명면제(Framing-Freeness) : 전자지불 시스템을 구성하는 구성요소 간에 연합하여 특정 구성요소에게 누명을 씌울 수 없어야 한다.
    • 무결성(Integrity)/인증(Authentication) : 주고받는 메시지가 전송 도중 변경되지 않았음을 확인할 수 있어야 하고, 송∙수신자가 전자지불 시스템의 합법적인 사용자임을 확인할 수 있어야한다.
    • 비밀성(Privacy)/익명성(Anonymity) : 개인 신상 정보를 보호할 수 있어야한다.

SET(Secure Electronic Transaction)

  • 신용카드회사인 비자(VISA)와 마스터카드(MasterCard)가 합동으로 개발
  • 인터넷상에서 신용카드를 이용해 상품구매 시 안전한 대금결제과정 처리를 위해 RSA 암호화와 인증기술을 이용한다.
  • 전자봉투와 이중서명이라는 두 가지 기술을 사용해 사용자의 민감한 개인금융정보를 안전하게 전송하기 위한 프로토콜
  • SET 참여주체
    • 카드소지자(Cardholder) : 발행자에 의해서 허가된 지불카드를 사용하는 주체
    • 발행자(Issuer) : 카드소지자의 계정을 만들고 카드를 발급해주는 금융기관. 신뢰할만한 거래에 대해 지불을 보장
    • 가맹점(Merchant) : 대금결제를 받는 대가로 상품과 서비스를 제공하는 기관(상점)
    • 지불은행, 매입사(Acquirer) : 상인과 계정을 체결하고 카드결제에 대한 신뢰성과 지불을 담당하는 금융기관
    • 지불 게이트웨이(Payment Gateway) : 지불처리 은행 또는 제3자에 의해 운영되는 시스템으로서 상점이 요청한 카드소지자의 지급정보를 이용하여 해당 금융기관에 승인 및 결제를 요청하는 기존의 카드 지불 네트워크로의 통로
    • 인증기관(CA, Certification Authority) : SET 참여자에게 공개키 인증서를 발행하는 기관
  • 이중서명 프로토콜
    • 카드 사용자가 구매정보와 지불정보를 각각 해시한 후, 두 해시값을 합한 뒤 다시 해시하여 이 값을 카드 사용자의 개인키로 암호화(서명)하여 이중서명값을 생성
    • 장점
      • 기존의 신용카드 기반을 그대로 활용하면서 전자거래의 사기를 방지
      • SSL의 단점인 상인에게 지불정보를 노출하는 문제를 해결
    • 단점
      • 암호 프로토콜이 복잡
      • RSA의 동작으로 프로토콜의 속도 저하
      • 카드 소지자와 상점에게 S/W를 요구
      • 지불 게이트웨이(PG)에 거래를 전자적으로 처리하기 위한 별도의 H/W와 S/W를 요구

전자상거래 응용 보안

  • e-business를 위한 ebXML : 인터넷 표준 브라우저만으로 장소에 구애 없이 어디서나 전자상거래를 할 수 있으며 구현 비용이 저렴하고, 개방된 네트워크로 전자거래 교환을 위한 국제 표준을 제공
  • ebXML 구성요소
    • 비즈니스 프로세스 : 다양한 비즈니스 거래절차에 대한 내용을 표준화된 방법으로 모델링해 시스템이 자동으로 인식, 처리할 수 있도록 하는 표현방법에 대한 정의
    • 핵심 컴포넌트, 등록저장소, 거래당사자, 전송/교환 및 패키징으로 구성
  • ebXML 사용 효과 : 재활용성, 비즈니스 프로세스 활용

38. 침해사고 대응(디지털 포렌식) (출제빈도 0.8%)

포렌식의 기본 원칙

  • 정당성의 원칙 : 모든 증거는 적법한 절차를 거쳐서 획득한 것이어야 한다.
  • 재현의 원칙 : 똑같은 환경에서 같은 결과가 나오도록 재현할 수 있어야 한다.
  • 신속성의 원칙 : 컴퓨터 내부의 정보는 휘발성인 것이 많기 때문에 신속하게 이루어져야 한다.
  • 연계 보관성의 원칙 : 증거는 획득되고 난 뒤 이송/분석/보관/법정 제출이라는 일련의 과정의 명확해야 하며, 이 과정에 대한 추적이 가능해야 한다.
  • 무결성의 원칙 : 수집된 정보는 연계 보관성을 만족시키면서 각 단계를 거치는 과정에서 위/변조되어서는 안된다.

포렌식 수행 절차

  1. 수사 준비 : 사이버 포렌식 전무나 소집, 각종 장비/소프트웨어/하드웨어를 준비하고 점검하는 단계
  1. 증거물 획득(증거 수집) : 현장에서 디지털 증거를 획득하는 단계. 증거의 무결성이 중요하고 저장매체에 저장된 데이터와 동일 한 사본을 만든다.(디스크 이미징)
  1. 보관 및 이송 : 획득된 증거는 연계 보관성을 만족시키며 보관 및 이송되어야 하고 안전한 장소에 보관되어야 한다.
  1. 조사 및 분석 : 최량 증거 원칙(The Best Evidence Rule). 증거 제출 시에는 복사본이 아닌 원본이 제출되어야 한다.
      • 디스크 브라우징(Disk Browsing) : 저장 매체 또는 디스크 이미지에 존재하는 파일을 GUI 환경에서 쉽고 편리하게 다룰 수 있도록 가독성 있는 형태로 변환하여 출력하는 기술
      • 데이터 뷰(Data Viewing) : 저장 매체나 디스크 이미지에 저장된 방대한 파일을 열어서 확인할 수 없기 때문에 브라우징 과정에서 파일을 인식하여 텍스트, 그림 형식으로 볼 수 있도록 하는 자동 뷰 기능을 제공하는 기술
      • 파일 복구(File Recover) : 파일이 손상/삭제되더라도 디스크 내에 관련 정보를 이용하여 파일을 복구하는 기술

증거(Evidence)

  • 휘발성 데이터
    • 시스템의 메모리(RAM, 캐시 메모리, 비디오 카드 메모리 등)에 임시로 저장된 데이터
    • 휘발성이 큰 증거가 사라질 가능성이 크기 때문에, 휘발성이 큰 증거를 먼저 수집해야 한다.
  • 디지털 증거 보존 : 휘발성 데이터를 포함한 디지털 증거는 근본적으로 손상되거나 사라지기 쉽다. 따라서 증거가 저장된 매체의 완전한 비트스트림 이미지를 즉시 만드는 것이 좋은 방법이다.
  • live response : 살아 있는 시스템에서 휘발성 데이터를 포함한 수집 가능한 모든 정보의 수집과 분석, 처리

39. 각종 어플리케이션 보안위협 및 대응책 (출제빈도 0.4%)

좀비, 봇 (Bot)

  • 감염된 시스템의 CPU와 네트워크 자원을 공격자 자신의 용도로 사용하기 위한 시스템을 봇, 좀비라고 한다.
  • 봇넷(bot-net) : 감염된 시스템인 봇이 네트워크로 연결된 형태. DDoS 공격이나 스팸 공격 등에 사용될 수 있다.

기타 어플리케이션 보안위협

  • 살라미 공격 : 많은 사람들로부터 눈치채지 못할 정도의 적은 금액을 빼내는 컴퓨터 사기수법
  • 데이터 디들링(Data Diddling) : 원시정보 자체를 변조 및 위조해 끼워 넣거나 바꿔치기하는 수법으로, 주로 데이터의 접근이 가능한 내부인이 사용하는 해킹수법
  • 이블 트윈 공격(Evil Twin Attack) : 소셜 엔지니어링(사용자)를 속이는 공격 기법. SNS 상에서 다른 사람의 이름으로 활동하는 것을 말한다.
 
Share article

개발로그