정보 보안 기사

From Hidden Wiki
Revision as of 01:13, 14 October 2017 by Anon (talk | contribs) (Created page with "{{Template:바로가기}} <div style="float: right; margin-left: 12px">__TOC__</div> = 개요 = 정보보안 기사정보보안 산업기사는 미래창조과...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

개요

정보보안 기사정보보안 산업기사미래창조과학부에서 주관하고 한국인터넷진흥원에서 시행하는 정보 보안 분야의 국가기술자격 시험 및 그 자격증을 의미한다. 해킹을 막기 위한 보안 인력을 양성 및 인증하기 위한 시험이다. 정보보안산업기사가 낮은 단계고, 정보보안기사가 더 높은 단계의 자격증이다. 리눅스 마스터 1급도 따면 좋다.


정보보안 기사 시험 응시 자격은 정보처리 기사와 동일하게 관련학과가 의미가 없고, 학과 상관없이 "4년제 대학 졸업자 혹은 졸업예정자", "3년제 대학 졸업 + 동일 및 유사직종 실무 경력 1년", "2년제 대학 졸업 + 동일 및 유사직종 실무경력 2년"이면 가능하다. 또는 "유사 분야 기사 자격증 소지자", "정보보안 산업기사 취득 후 실무 경력 1년", "동일 및 유사 직종 4년 경력"으로도 응시 가능하다.

정보보안 산업기사 시험은 "2-4년제 대학 졸업자", "유사 분야 산업기사 자격증 소지자", "기능사 취득 후 실무 경력 1년", "실무 경력 2년"이면 응시 자격이 된다.


1년에 2회씩 시험을 보며 2013년에 처음 시험이 시행되었다.

지역은 5개 지역으로 서울, 부산, 대전, 대구, 광주에서 응시할 수 있으며 응시료는 기존의 기사 시험과 동일하다. 기사산업기사 필기는 둘 다 18,800원, 실기는 기사는 21,900원, 산업기사는 20,200원이다.

난이도가 정보처리기사와는 차원을 달리한다. 정보처리기사의 운영 체제와 데이터 통신 과목은 각각 시스템 보안과 네트워크 보안에 첫부분으로 속해있다.--한 과목이 챕터 수준으로--

높은 난이도의 원인으로는 기본적으로 주관하는 쪽에서 많은 수를 뽑으려 하지 않는다. 필기의 경우는 난이도 실패로 50%가 넘는 합격률을 보이기도 했지만 실기는 --채점 방식이 비공개라서 무슨 짓을 하는지 합격 비율은 거의 항상 비슷하다.-- 그냥 절대 평가가 아닌 상대 평가로 여겨진다. --물론 완전히 그렇다는 것은 아니고--

범위가 넓다. 이건 마음만 먹으면 듣도보도 못한 문제를 가져올수 있다는 의미.(정보처리기사 같은 다른 시험도 마찬가지긴 하겠지만) 자체적인 범위도 상당히 넓기 때문에 이 이유가 크게 한몫 한다. 사실 시스템부터 네트워크, 암호학 그리고 법규까지 과목만 봐도 알 수 있는 이유.

실무적인 문제도 많이 나오고 반대로 따로 시험을 위해 공부해야 하는 이론도 많이 나온다. --당연한거 같지만 아니 좋은점 같지만 내가 어려우니 패스-- 문제점으로는 사실 보안도 범위가 넓기 때문에 종사자들도 천차만별인데 이런 실무적인 문제들이 나오면 운에 따라 아는 문제가 나오면 맞고 모르면 틀리는 상황이 생겨서 뭔가 합격자와 불합격자 와의 차이점이 실례이 아닌 운 뿐이라는 인식이 생길수도 있어보인다. --이것도 당연히 실력이 어느정도 된다는 가정 하에--

정보처리기사 시험과 달리 시험지를 수거해간다. 문제은행 출제 방식이고 범위가 지정되어 있으나 출제 문제를 알 수가 없어 결국 기억에 의존한 복원문제나 전체 단원을 공부해야 하기 때문에 문제를 예측하기 힘들다.


정보보안기사 https://www.q-net.or.kr/crf005.do?id=crf00505&jmCd=1325

정보보안산업기사 https://www.q-net.or.kr/crf005.do?id=crf00505&jmCd=2325

큐넷을 통한 접수가 아닌 별도의 사이트( https://kisq.or.kr )를 개설하여 그 곳에서 원서 접수 및 합격증 발급 등을 담당한다.

시험 방식과 과목

필기는 각 과목 30분이며 4지 택일형이며, 타 기사시험과 동일하게 5과목 평균점수 60점 이상, 40점 이하 과목 1개 존재할 때 과락으로 탈락하는 시스템을 유지하고 있다. 다섯 과목으로 시험시간은 총 150분이다. 정보보안산업기사는 한 과목이 없어서 시험 시간도 120분이다.

필기시험은 시스템 보안(운영체제, 클라이언트 보안, 서버보안 등 인프라 보안관리의 전반적인 부분을 취급한다.), 네트워크 보안(네트워크 일반, 네트워크 활용, 네트워크기반 공격 이해, 네트워크 장비 활용 보안, 네트워크 보안 동향), 애플리케이션 보안(인터넷 응용 보안, 전자상거래 보안, 기타 어플리케이션 보안), 정보보안 일반(보안요소 기술, 암호학을 다룬다.), 정보보안관리 및 법규(정보보호 관리, 정보보호 관련 법규~~많은 과락자가 발생하는 과목, 법이 매년 바뀐다~~)의 다섯 과목이다. 정보보안산업기사정보보안관리 및 법규 과목이 없어서 네 과목이다.


실기는 총 180분이며 필답형이다. 자세히 보면 단답형과 서술형, 그리고 작업형으로 나뉜다. 정보처리기사와는 달리 순수하게 주관식이라고 할 수 있다. 정보보안산업기사는 실기시험이 150분이다.

실기시험은 정보보안 실무(시스템 및 네트워크 보안특성 파악, 취약점 점검 및 보완, 관제 및 대응, 정보보호계획 수립, 위험분석이 있다.) 한 과목이다.

정보보안 기사, 정보보안 산업기사 실기는 "시스템 및 네트워크 보안특성 파악, 취약점 점검 및 보완, 관제 및 대응, 정보보호계획 수립, 위험분석, 암호학, 최근 보안 이슈"까지 전반적인 내용에 대한 문제가 출제되며, 출제 유형은 단답형 10문제(30점), 서술형 3문제(42점), 실무형(작업형) 3문제 중 2문제 선택(28점), 총 3가지 유형으로 16문제가 출제된다.


단답형 시험 문제 : 총 10문제 <30점>

- ( )괄호 넣기나 선택형 문제로 일반적으로 1문제에 3점 처리되는데 한 문제만 출제되는 것이 아닌 한 문제 안에서 3개의 답을 요하는 방향으로 출제 됩니다.

예시) ( A ), ( B ), ( C ) ~답하시오. ~ 적으시오. ~완성하시오.


서술형 문제 : 총 3문제 <42점>

- 기본적인 이론을 바탕으로 하여 세부 문제를 나누어 2문제에서 3문제 정도가 출제 됩니다.(부분점수 존재)

예시) ~에 대한 설명을 기술하시오. ~서술하시오.


작업(실무)형 문제 : 총 3문제 중에서 2문제 선택하기 <28점>

- 서술형 문제 유형과 특별하게 차이가 없으나 문제 내용이 실무적인 측면을 강조되어 출제 됩니다. (부분점수 존재)

예시) ~은 무엇인가?, ~를 보고 각 물음에 답하시오.

시스템 보안

운영 체제, 써버 보안 등에 대해 다룬다.

UNIX 서버 보안

유닉스(Unix)의 파일 시스템, 명령어 등을 외우면 된다.

inode

아이노드(inode, index node)는 유닉스에서 각 파일에 대한 정보를 기억하는 약 120 바이트(byte)의 고정된 크기의 구조체이다. 일반 파일(일반적으로 데이터 또는 프로그램 코드에 해당하는 일련의 바이트 스트림)이나 디렉터리 파일(특별한 형식으로 디스크에 저장되며 파일 시스템의 중추)의 inode는 각 파일의 디스크 블록의 위치를 포함하고 있으며, 특수 파일(프린터와 터미널, 디스크같은 주변 장치 또는 파이프와 소켓같은 프로세스 간 상호 통신 기법에 해당)의 inode는 주변 장치를 식별할 수 있는 정보를 포함하고 있다. inode(ls -l 명령에 의해 출력되는 결과는 해당 파일의 inode를 참조하는 것)는 파일에 대한 정보(파일의 허가권, 소유권, 그룹, 최근 수정된 시각같은 파일 관련 정보)와 이 파일에 할당된 디스크 블록의 주소를 저장하는 필드들로 구성되어 있다.

부팅 관련 용어 정의

실행레벨(runlevel)

런레벨(runlevel, run level, 실행레벨)이란 시스템의 운영 상태를 숫자 또는 문자로 나타낸 것이다. 아래 참조.


0: PROM(programmable read-only memory) 모드

S, s: 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트되지 않은 상태

1: 시스템 싱글 유저 모드, 로컬 파일 시스템이 마운트된 상태

2: 멀티 유저 모드(네트워크 파일 시스템(Network File System, NFS) 클라이언트 모드)

3: 멀티 유저 모드(NFS 서버 모드), UNIX 기본 run level

4: 사용 안 함

5: 시스템 power off 모드

6: 시스템 리부팅

INIT 상태

init은 initialization(초기화, 초기치 설정)의 약자이다. INIT 상태(INIT state)란 런 레벨(run level)과 같은 의미이다. 시스템이 런 레벨을 이동할 때, init 명령어를 통해서 이동한다. 예를 들어, 현재 런 레벨이 멀티 유저 모드인 3번인데, 싱글 유저 모드로 이동하고 싶으면 init S 명령어를 이용하면 된다.

싱글 유저 모드란 시스템을 유지보수하기 위한 모드이기 때문에 싱글 유저 모드로 로그인하기 위해서는 root 사용자 암호가 필요하다. 시스템에 문제가 있어 정상적으로 부팅되지 않을 경우 자동으로 싱글 유저모드로 진입한다.

예시

  • PROM 모드 진입
init 0
shutdown -y -g 0 -i 0
halt


  • 싱글 유저 모드로 변경
init S
init s
init 1


  • 시스템 종료
init 5
shutdown -y -g 0 -i 5
poweroff


  • 시스템 리부팅
init 6
shutdown -y -g 0 -i 6
reboot

UNIX 서버 보안: 기출 문제

  • 다음에 설명하는 유닉스 파일 시스템의 영역은 무엇인가?

파일시스템 내의 파일이나 디렉터리의 소유자, 소유그룹, 접근 모드(읽기, 쓰기, 실행 권한), 크기, 속성, 시간 및 디스크 블록 내의 포인터 등에 대한 각종 정보를 저장하고 있는 영역으로서 각 파일이나 디렉터리별로 고유한 식별번호를 가지고 있다.

1. boot 블록

2. super 블록

3. inode 블록

4. data 블록



해설: inode는 파일에 대한 정보(파일의 허가권, 소유권, 그룹, 최근 수정된 시간같은 파일 관련 정보)와 이 파일에 할당된 디스크 블록의 주소를 저장하는 필드들로 구성되어 있다. 답: 3


  • 유닉스 시스템의 파일 시스템 설명 중 옳지 않은 것은?

1. 각 파일마다 한 명의 소유자가 존재한다.

2. 파일의 변경은 소유자만 할 수 있다.

3. root는 파일의 읽기, 쓰기, 실행 속성을 변경할 수 있다.

4. SUID와 SGID를 통해 소유 권한이 없는 사용자도 그 파일의 소유자 권한으로 실행시킬 수 있다.



해설: 각 파일마다 한 명의 소유자가 나타나며 이 소유자는 파일의 변경을 할 수 있으며, root는 모든 파일의 변경이 가능한 superuser이다. 따라서 파일의 변경은 소유자뿐만 아니라 root도 할 수 있다. 답: 2


  • Unix 운영 체제에서 파일이나 디렉터리 생성 시의 기본 권한은 umask 값에 의해 결정된다. 어떤 Unix 시스템에서 디렉터리 생성시 기본권한을 rwxr_xr_x, 파일 생성시 기본권한을 rw_r__r__로 설정하고자 한다. 이를 위한 명령으로 적절한 것은?

1. umask 0002

2. umask 0022

3. umask 0077

4. umask 0007



해설: umask 값은 새롭게 생성되는 파일과 디렉터리의 기본 허용(default permission)을 결정하며, 새로운 파일 및 디렉터리를 생성하는 동안 해당되는 퍼미션이 할당되어 적용된다. umask 022는 디렉터리에 대하여 Owner에게 모든 권한(rwx), Group과 Others에게는 read, execute 권한(r_x)을 준다(755). 파일에 대해서는 Owner에게 read, modify 권한(rw_)을 주고, Group과 Others에게는 read 권한(r__)만을 준다(644). 답: 2

Linux 서버 보안

실행레벨

  • 레벨 0
init 0
halt
shutdown -h now

시스템 종료


  • 레벨 1
init 1

싱글 모드, 관리 모드. 콘솔로써만 접근 가능하면 root만이 사용할 수 있음. 시스템 관리 또는 root 패스어드를 변경하고자 할 때에만 사용함.


  • 레벨 2
init 2

네트워크 파일 시스템(Network File System, NFS)을 지원하지 않는 멀티 유저 실행 모드


  • 레벨 3
init 3

NFS를 지원하는 멀티 유저 실행 모드


  • 레벨 4
init 4

사용하지 않는 실행 레벨. 사용자가 지정하여 사용할 수 있음.


  • 레벨 5
init 5

X 윈도우 환경으로 실행된 멀티 유저 실행 모드


  • 레벨 6
init 6
reboot
shutdown -r now

서버를 재부팅시키는 실행 모드

Linux 서버 보안: 기출 문제

  • 어떤 리눅스 시스템의 관리자 비밀번호를 잊어버렸다. 응급으로 시스템에 로그인하여 비밀번호를 재설정하고자 한다. 이를 위하여 어떠한 run level로 시스템을 부팅시켜야 하는가?

1. runlevel 0

2. runlevel 1

3. runlevel 3

4. runlevel 5



시스템 관리자 계정의 암호를 잊어버렸거나 시스템이 정상적으로 부팅되지 않을 경우 single 모드(runlevel 1)로 부팅하여 해당 문제를 해결할 수 있다. 답 2

서버 보안 관리

서버 보안 관리: 기출 문제

  • 침해 사고시 로그를 분석하여 비인가자의 접근 내역과 수행한 작업 등 여러가지 상황에 대한 파악을 할 수 있다. 다음과 같은 접근 내역의 내용을 보여주는 로그는?

SU 04/18 18:41 + ttypb guard-wkshin

SU 04/18 18:44 + ttypb guard-wjshin

SU 04/19 00:50 + ttyp2 chester-guard

SU 04/19 06:27 - ttyp1 hacker-root

SU 04/19 06:29 + ttyp1 hacker-root

1. wtmp

2. utmp

3. sulog

4. lastlog



로그인한 계정의 권한 변경에 대한 로그로 이 로그는 공격자가 일반 계정으로 로그인한 후 패스워드 추측 공격 등을 수행했을 때 권한 변경 실패를 의미하는 '-'로 저장되기 때문에 관리자가 이를 확인하여 공격 의도를 가진 일반 계정을 추적해낼 수 있다. 답 3

각종 시스템 보안 위협 및 대응책

각종 시스템 보안 위협 및 대응책: 기출 문제

  • 다음 중 버퍼 오버플로우(buffer overflow)에 대한 설명으로 적절하지 않은 것은?

1. 일반적으로 소스 코드상에서 입력 문자열의 크기를 점검하지 않는데서 발생한다.

2. 루트 소유의 SetUID 프로그램은 버퍼 오버플로우의 좋은 공격 대상이다.

3. 사용자에게 할당된 디스크 사이즈가 제한되어 있지 않을 때 발생할 수 있다.

4. 지정된 버퍼 크기보다 더 큰 입력 값으로 인해 프로그램의 오동작을 유발하는 공격 방법이다.



버퍼 오버플로우 공격은 프로그래머가 취약한 함수를 사용할 경우에 발생할 수 있다. 사용자에게 할당된 디스크 사이즈가 제한되어 있지 않을 때 발생할 수 있는 공격은 디스크 자원 고갈 공격에 해당된다. 답 3

네트워크 보안

네트워크 개요

RFC 1122[1], Internet STD 3 (1989) Cisco Academy[2] Kurose,[3] Forouzan[4] Comer,[5] Kozierok[6] Stallings[7] Tanenbaum[8] Arpanet Reference Model (RFC 871[9]) (1982) OSI model
Four layers Four layers Five layers Four+one layers Five layers Five layers Three layers Seven layers
"Internet model" "Internet model" "Five-layer Internet model" or "TCP/IP protocol suite" "TCP/IP 5-layer reference model" "TCP/IP model" "TCP/IP 5-layer reference model" "Arpanet reference model" OSI model
Application Application Application Application Application Application Application/Process Application
Presentation
Session
Transport Transport Transport Transport Host-to-host or transport Transport Host-to-host Transport
Internet Internetwork Network Internet Internet Internet Network
Link Network interface Data link Data link (Network interface) Network access Data link Network interface Data link
Physical (Hardware) Physical Physical Physical

인터넷 모델(Internet model), TCP/IP 프로토콜 스위트(TCP/IP protocol suite), TCP/IP 모델(TCP/IP model), OSI 모형(OSI model), 인터넷 프로토콜 스위트(Internet protocol suite)는 모두 네트워크의 계층 구조를 나타내는 단어이다. OSI 모형을 기준으로 암기하면 된다.


국제 인터넷 표준화 기구(Internet Engineering Task Force, IETF)에서는 인터넷 모델(Internet model)을 4계층으로 나눈다.


국제 표준화 기구(International Organization for Standardization, ISO)는 네트워크개방 시스템 상호연결 모델(Open System Interconnection model, OSI model)에서 7계층으로 나누고 있다. OSI 모델은 1970년대 후반에 처음 소개되었으며 7개의 계층(layer)으로 되어있다. 7개의 계층은 3개의 그룹으로 나눌 수 있다. 1-3계층은 각각 물리 계층(physical layer), 데이터 링크 계층(data link layer), 네트워크 계층(network layer)으로 한 장치에서 다른 장치로 정보를 전송할 때 필요한 물리적인 면(전기 규격, 물리 접속, 물리 주소, 전송시간, 전송 신뢰도 등)을 다룬다. 5-7계층은 각각 셰션 계층(session layer), 표현 계층(presentation layer), 응용 계층(application layer)으로 사용자 지원 계층이다. 서로 관련 없는 소프트웨어 시스템간의 상호 연동을 가능하게 해준다. 제 4 계층은 전송 계층(transport layer)으로 두 그룹을 연결한다. OSI 모델의 상위 계층(5-7 계층)은 거의 대부분 소프트웨어로 구성되고, 하위 계층(1-3 계층)은 하드웨어와 소프트웨어의 조합으로 구현되지만 물리 계층(제1계층)은 대부분 하드웨어로만 구현된다.


4. Application

3. Transport

2. Internet

1. Link


5. Application

4. Transport

3. Network

2. Data link

1. Physical


7. Application

6. Presentation

5. Session

4. Transport

3. Network

2. Data link

1. Physical

네트워크 개요: 기출 문제

  • 네트워크 각 계층별 보안 프로토콜로 옳지 않은 것은?

1. 네트워크 계층(network layer): IPSec

2. 네트워크 계층(network layer): FTP

3. 응용 프로그램 계층(application layer): SSH

4. 응용 프로그램 계층(application layer): S/MIME



FTP는 응용 프로그램 계층에 해당된다. 답 2


  • 다음 중 데이터 링크 계층의 기능에 대한 설명으로 옳지 않은 것은?

1. 프레임과 프레임 사이의 구분을 위해서 Flag를 삽입하는 것은 송수신에서의 동기를 맞추어 주기 위한 것이다.

2. 데이터 링크 제어는 Flow 제어와 Error 제어로 구성한다.

3. 데이터 링크 계층은 데이터 링크 제어와 매체 접근 제어로 구성된다.

4. Flag와 같은 패턴이 데이터에 나타날 경우를 대비해 네트워크 계층에서 이를 처리하기 위한 메커니즘을 가지고 있다.



데이터 스트림상에 동일 패턴이 중복되는 것을 방지하는 행위를 스터핑(stuffing)이라고 한다. 데이터를 실은 프레임들의 경계를 구분하기 위한 Flag가 데이터에 나타날 경우를 대비해, 비트 스터핑(bit stuffing), 바이트 스터핑(byte stuffing)의 동작을 데이터 링크 계층에서 수행한다. 답 4

네트워크 기반 공격의 이해

네트워크 기반 공격의 이해: 기출 문제

  • TCP 세션 설정 과정인 '3-Way Handshaking'의 취약점을 이용한 공격은 무엇인가?

1. Smurf

2. Ping of Death

3. Teardrop

4. SYN Flooding



Syn flooding 공격은 TCP 연결 설정 과정 중에 3-Way Handshaking 과정에서 Half-Open 연결 시도가 가능하다는 취약점을 이용한 공격으로 공격대상 시스템은 외부로부터 접속 요청을 더 이상 받아들일 수가 없게 되어 정상적인 서비스를 제공할 수 없게 된다. 답 4


  • 다음에서 설명하고 있는 서비스 거부 공격의 이름으로 가장 적합한 것은?

공격자는 특정 네트워크 프로토콜의 특성을 이용하여 Source IP 주소를 공격 대상으로 하고, Destination IP 주소를 브로드캐스팅 주소로 하여 전송한다. 해당 서비스의 특성에 의하여 브로드캐스팅 된 요청에 대한 응답이 Source IP 주소로 폭주하여 서비스 거부 상태가 된다.

1. Smurfing

2. SYN Flooding

3. LAND Attack

4. Ack Storm



ICMP 브로드캐스트를 통해 증폭 네트워크를 이용하여 공격 대상 서버의 성능에 문제를 발생시키는 공격 방식은 SMURF Attack이다. 답 1


  • 다음 중 Sniffing 공격에 대한 대처 방법으로써 가장 적절한 것은?

1. 서버 접속시 사용하는 패스워드를 자주 변경한다.

2. SSL, SSH 등의 암호화 프로토콜을 사용한다.

3. 각종 시스템에 대하여 로그를 남기고 자주 모니터링한다.

4. 방화벽을 설치한다.



스니핑 공격 대응 방안은 암호화 기능 및 보안 프로토콜을 사용하는 것이다. 즉, SSL, IPSEC, PGP 등 여러 암호화 프로토콜 및 응용 프로그램을 통해 인터넷 통신에 사용되는 모든 데이터를 암호화한다. 인터넷 회선을 사용하여 사설망의 효과를 줄 수 있는데 이것이 가상사설망(VPN)이다. VPN은 장비간의 암호화를 통해 도청을 막을 수 있다. 답 2

네트워크 보안 동향

역추적 시스템

역추적(traceback)이란 해킹을 시도하는 해커의 실제 위치를 실시간으로 추적하는 기술을 말한다. 역추적 기술은 일반적으로 크게 두 가지 분야로 분류한다.

해커의 실제 위치 추적

해커의 실제 위치를 추적하는 기술: TCP 연결 역추적(TCP connection traceback)과 연결 역추적(connection traceback)이 있다.

TCP 연결 역추적은 TCP 연결을 기반으로 우회 공격을 시도하는 해커의 실제 위치를 실시간으로 추적하는 기법으로 호스트 기반 연결 역추적 기술과 네트워크 기반 연결 역추적 기술로 분류한다.

  • 호스트 기반 연결 역추적 기술: 역추적을 위한 모듈이 인터넷상의 호스트들에 설치되는 역추적 기법으로 호스트에서 발생하는 로그 기록 등의 다양한 정보를 바탕으로 역추적을 진행하는 기술이다.
  • 네트워크 기반 연결 역추적 기술: 네트워크상에 송수신되는 패킷들로부터 역추적을 수행할 수 있는 정보를 추출하여 역추적을 수행하는 것으로 역추적 모듈이 네트워크상에 송수신되는 패킷을 확인할 수 있는 위치에 설치된다.

변조된 패킷의 실제 송신지 추적

IP 주소가 변경된 패킷의 실제 송신지를 추적하는 기술: IP 패킷 역추적(IP packet traceback)과 패킷 역추적(packet traceback)이 있다.

IP 패킷 역추적 기술은 IP 주소가 변경된 패킷의 실제 송신지를 추적하기 위한 기술이다.

IP 패킷 역추적 기법은 해커가 전송하는 패킷에 해당 패킷을 전달한 라우터를 표시함으로써 추적할 수 있게 하는 패킷 표시 기법을 이용한 기술이다.

APT(Advanced Persistent Threat)

지능형 지속 위협(APT)은 특정 대상을 겨냥해 다양한 공격 기법을 이용하여 장기간 지속적으로 공격하는 것을 말한다. 공격의 가장 큰 특징은 지로우 데이 공격과 같이 기존에 알려지지 않았던 취약점을 이용한 공격을 한다는 점이다. 지로우 데이(zero-day) 취약점은 특정 시스템이나 네트워크 장비같은 핵심 장비에서 기존에 알려지지 않은 취약점이 발생하고 그 취약점에 대한 패치가 발표되기도 전에 공격을 하는 수법을 말한다.

APT 공격은 목표 대상에 대한 선행 조사 끝에 이뤄지는 침투, 프로파일링을 통한 전반적인 기업 정보 검색, 정보를 내려받을 수 있는 새로운 악성 코드를 유포해 기밀 정보 수집, 수집한 정보를 몰래 빼내오는 유출 등 4단계를 거친다.

워터링 홀(watering hole) 공격

사자가 먹이를 습격하기 위해 물 웅덩이(watering hole) 근처에서 매복하고 있는 형상을 빗댄 것으로 "표적 공격"의 일종이다. 공격자는 공격 대상이 주로 방문하는 웹사이트에 대한 정보를 사전에 파악한 후(사회 공학적 기법) 지로우 데이 취약점을 이용해 해당 사이트에 악성 코드를 심어둔다. 공격 대상이 해당 사이트에 접근하게 되면 해당 악성 코드에 감염이 된다.

스피어 피싱(spear phishing) 공격

작살로 물고기를 잡는 작살 낚시(spear fishing)에서 유래된 것으로, "창을 찌른다"는 의미의 스피어(spear)와 "사용자를 속이기 위한 사기 이메일 및 기타 행위"를 의미하는 용어인 피싱(phishing)의 합성어이다. 불특정 다수가 아닌 특정인(조직)을 표적으로, 신뢰할만한 발신인이 보낸 것처럼 위장한 메일을 이용해 악성 웹사이트로 유도 또는 악성 첨부 파일로 악성 코드에 감염시키는 방식이다.

네트워크 보안 동향: 기출 문제

  • UTM(Unified Threat Management)에 대한 설명 중 틀린 것은?

1. UTM은 다양한 보안 솔루션을 하나의 장비에 탑재하여 운영하는 All-in-One 통합 보안 솔루션이다.

2. 보안 정책 적용이 개별적으로 이루어지므로 전문가의 운영이 필요하다.

3. 다양한 보안 기능을 하나의 솔루션에 통합하여 복합 해킹 위협에 효과적으로 대응하는 데 목적을 두고 있다.

4. 보안 정책, 필터링 시그니처를 통합 관리하여 일관성과 운영 효율성을 제공한다.



UTM은 보안 정책 적용이 개별적으로 이루어지는 것이 아니고, 다양한 보안 솔루션 기능을 하나로 통합한 보안 솔루션이다. 답 2


  • 최근 지능형 지속 위협(APT) 공격이 빈발하고 있다. 다음 중 APT 공격 유형으로 가장 부적절한 것은?

1. DoS 공격을 이용한 APT

2. 이메일을 이용한 APT

3. 지로우 데이를 이용한 APT

4. 백도어를 이용한 APT



APT 공격은 은밀하게 장기간에 걸쳐 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 정보를 외부로 빼돌리는 형태의 공격들을 말하는 것으로 공격 행위가 바로 노출될 수 있는 DoS 공격과는 거리가 멀다. 답 1

애플리케이션 보안

웹 보안(web security)

아파치 웹 서버 보안

서버 실행 계정 확인

구 버전의 아파치는 root 권한으로도 실행되는 경우가 많았다. 이럴 경우 아파치의 웹 프로세스는 막강한 권한을 가지게 되어 보안 사고가 빈번하게 일어나곤 했다. 이를 막기 위해 nobody 계정을 만들어 아파치 웹 프로세스의 권한으로 할당하였다. guest 계정과 비슷한 권한을 가진 nobody 계정은 로그인도 허용되지 않는다. 아파치는 nobody라는 이름 대신 apache라는 별도의 계정을 권한으로 만들어 아파치 웹 프로세스에 대한 권한으로 할당하였다.

httpd.conf 파일(아파치 설정 파일)

1. ServerType(standalone): 서버를 standalone(독립형) 모드 혹은 inetd(internet service daemon) 모드로 운영할지를 결정하는 부분이다. 일반적으로 웹은 standalone 형태로 운영된다.

  • standalone: 사용자 요청을 직저 웹 데몬이 받아서 처리하는 방식
  • inetd: 사용자 요청을 inetd 데몬이 받아서 처리하는 방식

2. Timeout(300): 클라이언트에서 서버로 접속할 때 클라이언트나 서버의 통신 장애로 인해 300초 동안 클라이언트에서 완벽한 처리를 하지 못할 때 클라이언트와의 연결을 해제한다.

3. KeepAlive(On): 사용자의 요청 연결에 대해 한 번의 요청만 처리하는 것이 아니라 또 다른 요청을 기다리게 할지를 설정한다. 만약 KeepAlive 값을 Off로 설정하게 되면 클라이언트로부터 한 번의 요청을 받은 후 바로 접속을 해제하므로 On 설정을 권장한다.

4. MaxKeepAliveRequests(100): KeepAlive 상태에서 처리할 최대 요청 처리 건수를 설정한다. 보통의 웹 사이트에서는 100으로 설정한다.

5. KeepAliveTimeout(15): KeepAlive 상태를 유지할 시간을 초 단위로 설정한다.

6. MinSpareServers(8): 아파치가 실행될 때 최소 예비 프로세스 수를 설정한다. 이 값에 의해 현재 nobody 소유의 아파치 프로세스가 5보다 작을 때는 자동으로 부족한 만큼의 아파치 프로세스를 생성하게 된다. 일반적으로 8정도 설정하는 것이 적당하다.

7. MaxSpareServers(20): 아파치가 실행될 때 최대 예비 프로세스 수를 설정한다. 이 값에 의해 현재 nobody 소유의 아파치 프로세스가 10보다 클 때는 불필요한 프로세스를 제거한다. 일반적으로 20정도 설정하는 것이 적당하다.

8. MaxClients(150): 아파치 서버의 동시 접속자 수를 정의하는 것으로 최대값은 256이다. 만약 256 이상의 값을 설정하고 싶을 때는 아파치 소스 코드의 httpd.h 헤더 파일의 HARD_SERVER_LIMIT 부분을 수정하고 아파치를 다시 컴파일해야 된다.

9. MaxRequestsPerChild(0): 아파치의 자식 프로세스가 처리할 수 있는 최대 요청 처리 건수를 설정하는 곳으로 0은 무제한을 뜻한다.

10. User(nobody): 자식 프로세스가 생성될 때 그 프로세스의 소유자와 소유 그룹을 결정한다. 보안상 root 권한으로 운영하지 않도록 한다.

11. Port(80): 아파치가 사용하는 기본 포트를 지정한다.

12. ServerAdmin(root@localhost): 아파치 서버 관리자 e-mail을 설정하는 부분이다.

13. ServerName(xxx.co.kr): 작동 중인 아파치 서버의 서버 이름을 설정한다. 기본적으로 주석 처리되어 있다.

14. DocumentRoot("/usr/local/apache/htdocs"): 아파치의 웹 문서들이 존재하는 위치를 저장한다.

15. ErrorLog(/usr/local/apache/logs/error_log): 아파치 서버 접속 에러를 기록할 이름을 설정하는 곳이다.

16. LogLevel(warn): 에러 로그 내용의 레벨을 설정한다.

17. LogFormat: 사용자 접속 정보를 기록하는 로그 포맷을 정의하는 곳으로 아래와 같은 값을 정의할 수 있다.

  • LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
  • LogFormat "%h %l %u %t "%r" %>s %b common
  • LogFormat "{Referer}i-> %U" referer
  • LogFormat "%{User-Agent}i" agent

common: 가장 일반적인 로그 기록

referer: 현재 아파치 서버에 접속하기 전에 머물렀던 URL을 기록한다.

agent: 접속자의 웹 브라우저(OS 포함) 종류를 기록한다.

combined: 위의 3가지 로그 포맷을 모두 조합한 것이다. 접속자에 대해 많은 정보를 기록하길 원한다면 combined로 설정하면 된다.

18. ServerSignature(On): 서버 배너 정보를 나타내는 곳으로, 서버 정보를 은닉하기 원한다면 Off로 변경한다.

예) Server: IBM_HTTP_SERVER/1.3.28.1 Apache/1.3.28(Unix)

19. ServerTokens(ProductOnly): 서버의 정보 표시 제한을 설정한다.

  • ProductOnly: 웹 서버 종류만 표시
  • Minimal: 웹 서버 종류와 버전 정보 표시
  • OS: 웹 서버 종류와 버전, 운영 체제 정보 표시
  • Full: 웹 서버 종류와 버전, 운영 체제, 설치된 모듈 정보 표시

20. Alias(/icons/ "/usr/local/apache/icons/"): 특정 디렉터리에 별칭을 지정하는 곳으로 /usr/local/apache/icons/를 /icons/라는 별칭으로 지정한 것이다.

웹 서비스 공격

SQL 주입

SQL 주입(SQL injection)은 데이터베이스(DB, database)와 연동되어있는 애플리케이션의 입력값을 조작하여 DBMS가 의도되지 않은 결과를 반환하도록 하는 공격 기법이다. 이는 해당 애플리케이션에서 사용자로부터 전송되어 오는 입력 값에 대해 그 적정성을 검사하지 않았기 때문에 발생한다.(필터링이 없을 경우) SQL injection을 통해서 파급될 수 있는 효과로는 해당 애플리케이션에서 사용하고 있는 DB 정보 조회는 물론, 변조 또는 삭제까지 할 수 있으며, 사용자 및 관리자에 대한 인증 절차를 우회할 수 있다. 더 나아가서는 데이터베이스 시스템의 시스템 명령어를 실행시키거나 주요한 시스템의 파일 정보를 노출시킬 수도 있다.

취약점 판단 방법

검색어 필드 및 로그인 필드에 큰따옴표, 작은따옴표, 세미콜론을 입력하여 DB 에러가 발생하는지 확인한다.

SQL 문에서는 where로 입력되는 조건문을 항상 참으로 만들 수 있는 방법이 있다. 바로 조건 값에 'or''='을 입력해본다. 또한 'or '1'='1이나 'or "='--와 같이 SQL문이 결과적으로 참이 될 수 있다면, SQL 삽입 공격에 사용되는 SQL 문은 무서이라도 SQL 삽입 공격에 사용될 수 있다.(MS-SQL에서 --는 주석 처리 표시)

아이디: 'or "='

패스워드: 'or "='

이렇게 입력하면

SELECT user_id FROM member WHERE

user_id = "or "=" AND password = "or "="

이렇게 된다.

싸이트 간 스크맆팅(XSS)

싸이트 간 스크맆팅(cross-site scripting, XSS, CSS)은 공격자에 의해 작성된 스크립트가 다른 사용자에게 전달되는 것이다. 다른 사용자의 웹 브라우저 내에서 적절한 검증 없이 실행되기 때문에 사용자의 세션을 탈취하거나, 웹 사이트를 변조하거나 혹은 악의적인 사이트로 사용자를 이동시킬 수 있다.

싸이트 간 요청 위조(CSRF)

싸이트 간 요청 위조(cross-site request forgery, CSRF, XSRF)는 특정 웹사이트에 대해 사용자가 인지하지 못한 상황에서 사용자의 의도와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 요청하게 하는 공격을 말한다. XSS 공격은 악성 스크립트가 클라이언트에서 실행되는 데 반해, CSRF 공격은 사용자가 악성 스크립트를 서버에 요청한다는 점에서 차이가 있다.

직접 객체 참조

직접 객체 참조는 파일, 디렉터리, 데이터베이스 키와 같이 내부적으로 구현된 객체에 대한 참조가 노출될 때 발생한다. 접근 통제에 의한 확인이나 다른 보호 조치가 없다면 공격자는 권한 없는 데이터에 접근하기 위해 노출된 참조를 조작할 수 있다.

디렉터리 탐색

디렉터리(directory traversal) 탐색은 웹 브라우저에서 확인 가능한 경로의 상위로 탐색하여 특정 시스템 파일을 다운로드하는 공격방법이다.

파일 업로드 제한 부재

클라이언트에서 서버측으로 임의의 파일을 보낼 수 있다는 점은 웹 서버가 가질 수 있는 가장 치명적인 취약점이다. 공격자는 웹 서버에 악의적인 파일을 전송하고, 원격지에서 해당 파일을 실행하여 웹 서버를 장악하며 추가적인 내부 침투 공격을 수행할 수 있게 되기 때문이다.

리버스 텔넷

리버스 텔넷(reverse telnet) 기술은 웹 해킹을 통해 시스템의 권한을 획득한 후 해당 시스템에 텔넷과 같이 직접 명령을 입력하고 확인할 수 있는 을 획득하기 위한 방법으로, 방화벽이 존재하는 시스템을 공격할 대 자주 사용된다. 일반적으로 웹 서버는 방화벽 내부에 존재하는데, 웹 서버는 80번 포트를 이용한 웹 서비스만 제공하면 되기 때문에 방화벽은 외부 인터넷을 사용하는 사용자에 댛해 80번 포트만을 허용한다. 이런 경우에 웹 서버의 텔넷이 열려 있어도 방화벽으로 인해 공격자가 외부에서 접근할 수 없다.

보안 설정 취약점

  • 디렉터리 리스팅(directory listing): 디렉터리 리스팅은 웹 브라우저에서 웹 서버의 특정 디렉터리를 열면 그 디렉터리에 있는 파일과 목록이 모두 나열되는 것을 의미한다.
  • 백업 및 임시 파일 존재: 개발자들이 웹 사이트를 개발하고 난 후 웹 서버에 백업 파이이나 임시 파일을들 삭제하지 않은 채 방치하는 경우가 종종 있다. 이럴 경우 공격자의 입장에서는 백업 파일을 발견하며 ㄴ웹 애플리케이션의 내부 로직 및 데이터베이스 접속 정보 등 주용한 정보를 획득할 수 있다. 흔히 login.asp 파일이 웹 서버의 편집 프로그램에 의해 자동으로 생성되는 login.asp.bak과 같은 형태로 남는 경우를 말한다.
  • 주석 관리 미흡: 일반적으로 프로그램의 주석은 개발자만 볼 수 있으나, 웹 애플리케이션의 경우에는 웹 프록시를 통해 이용자도 볼 수 있다. 주석에는 개발 과정이나 웹 애플리케이션의 관리 목적으로 주요 로직에 대한 설명, 디렉터리 구조, 테스트 소스 정보, 심지어는 아이디와 패스워드 등의 여러가지 정보가 기록될 수 있다. 따라서 웹 애플리케이션 개발시에는 주석에 기록되는 정보에 주의할 필요가 있다.

쿠키 위조

쿠키 위조를 막기 위해 전송 중에 자격 증명 보호를 실시한다. 또한 cookie 대신에 server side session을 사용한다. 쿠키는 사용자 시스템에 저장되지만 세션은 서버 시스템에 저장되어 사용자측에서 위조가 어렵다.

웹의 취약점 보완

특수 문자 필터링

XSS나 SQL 삽입 공격에 쓰이는 각종 특수 문자를 필터링한다.

서버측 통제 작용

파일 업로드 취약점이나 특수 문자 필터링을 수행할 때 주의할 점은 자바스크립트와 같은 CSS(client side script) 기반의 언어로 필터링을 하면 안 된다는 것이다. CSS 기반의 언어는 웹 프록시를 통해 웹 브라우저에 전달되기 때문에 웹 프록시를 통해 전달되는 과정에서 변도될 가능성이 있다. 따라서 CSS 기반의 언어로 필터링 할 경우 공격자가 필터링 로직만 파악하면 쉽게 필터링이 무력화된다. 즉, 필터링 로직은 ASP, JSP 등과 같은 SSS(server side script)로 필터링을 수행해야 한다.

지속적인 세션 관리

URL 접근 제한 실패를 막기 위해서는 기본적으로 모든 웹 페이지에 세션에 대한 인증을 수행해야 한다. 모든 웹 페이지에 대해 일관성있는 인증 로직을 적용하려면 기업 단위 또는 웹 사이트 단위에서 세션 인증 로직을 표준화하고, 모든 웹 페이지를 개발할 때 해당 표준을 준수하도록 해야 한다.

웹 보안(web security): 기출 문제

  • 다음은 웹 서버 로그에서 볼 수 있는 상태 코드(응답 코드)로 HTTP/1.1에서 정의한 것이다. 이 중 잘못된 것은?

1. 200: OK

2. 400: Access Denied

3. 404: Not Found

4. 500: Internal Server Error



상태 코드 400은 Bad Request로 요청을 이해할 수 없었거나 클라이언트의 문제로 인해 처리할 수 없었을 때 사용하는 일반적인 응답이다. 답 2


  • 다음 중 지문의 (가)와 (나)에 들어갈 용어로 짝지어진 것은?

웹 보안을 제공하는 방법으로써 SSL은 (가) Layer Security와 호환되며, TCP 계층과 (나) 계층 사이에서 제공하는 서비스이다.

1. (가) Netrowk (나) 전송

2. (가) Transport (나) 네트워크

3. (가) Transport (나) 응용

4. (가) Application (나) 응용



SSL은 TCP/IP 프로토콜의 전송 계층(transport layer)에서 보안 기능을 수행하며 TCP/IP 전송 계층과 응용 계층(application layer) 사이에 위치하며 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜이다. 답 3


  • SSL/TLS에서 웹 서버에 대한 인증이 이루어지는 세부 프로토콜은 무엇인가?

1. handshake protocol

2. record protocol

3. alert protoclo

4. authentical protocol



Handshake 포로토콜은 Record 프로토콜에 대한 보안 매개 변수를 제공한다. 암호 집합을 설정하고 키와 보안 매개 변수를 제공한다. 또한 필요하다면 클라이언트가 서버에 대해, 그리고 서버가 클라이언트에 대해 인증된다. 답 1

데이터베이스 보안

데이터베이스 보안: 기출 문제

  • 데이터베이스에 장애가 발생했을 때 체크포인트(checkpoint)를 이용하면 복구가 용이해진다. 다음 중 체크포인트에 대한 설명으로 틀린 것은?

1. checkpoint 설정 시 checkpoint 숫자와 체크 시간 간격에 유의해야 한다.

2. checkpoint 숫자가 많을 수록 DB 복구가 쉬워지며 시스템 성능이 향상된다.

3. checkpoint 수행 기준으로 time interval, operator action, log tape에 대한 레코드 기록이 있다.

4. checkpoint를 이용한 복구 상황으로 DB 충돌이 있다.



checkpoint 숫자가 지나치게 많으면 잦은 IO로 시스템 성능이 저하될 수 있다. 답 2

정보보안 일반

대칭 키 암호

대칭 키 암호: 기출 문제

  • 아래의 대칭 키 암호 알고리즘 중 Feistel 암호 구조와 SPN 구조끼리 올바르게 묶인 것은?

1. (DES, SEED) : (AES, ARIA)

2. (DES, ARIA) : (AES, SEED)

3. (DES, AES) : (SEED, ARIA)

4. (DES) : (SEED, AES, ARIA)



SEED는 DES를 참조하였고, ARIA는 AES를 참조하였다. 답 1


  • 블록 암호 알고리즘에서 최초의 평문 블록을 암호화할 때는 '한 단계 앞의 암호문 블록'이 존재하지 않으므로 '한 단계 앞의 암호문 블록'을 대신할 비트열을 무엇이라고 하는가?

1. 패딩(padding)

2. 초기화 벡터(initialization vector)

3. 운영 모드(operational mode)

4. 암호문 블록(ciphertext block)



최초의 평문 블록을 암호화할 때는 '1단계 앞의 암호문 블록'이 존재하지 않으므로 이를 대신할 비트령일 한 개의 블록을 준비해야 한다. 이 비트열을 초기화 벡터(initialization vector) 또는 앞 글자를 따서 IV라고 부른다. 답 2


  • 다음 지문은 어떤 블록 암호의 사용 방식을 설명한 것인가?

초기화 벡터를 암호화한 결과 첫 번째 평문 블록을 XOR하여 암호문 블록을 생성하고, 그 암호문 블록을 다시 암호화한 값과 그 다음 평문 블록을 XOR하여 암호문 블록을 반복하여 생성하는 방식이다. 암호화에서는 특정 입력이 이후로 영향을 미치지만, 복호화에서는 특정 암호문의 오류가 계속적으로 이후에 영향을 미치지 않는다는 특징이 있다. 1. 선택 평문 공격(chosen plaintext attack)

2. 암호 피드백 모드(cipher feedback mode)

3. 출력 피드백 모드(output feedback mode)

4. 카운터 모드(counter mode)



보기는 CFB(암호 피드백) 모드의 암호화 과정에 대한 설명이고, CFB 모드에 대한 특징을 설명하는 것이다. 답 2

비대칭 키 암호

비대칭 키 암호: 기출 문제

  • 다음 중 공개 키 기반으로 대칭 키를 공유할 수 있는 Diffie-Hellman 프로토콜에서 발생할 수 있는 보안 공격에 해당하는 것은 무엇인가?

1. 재전송(replay) 공격

2. 중간자(Man-In-The-Middle) 공격

3. 반사(reflection) 공격

4. 위장(impersonation) 공격



Diffie-Hellman 포로토콜은 인증 단계가 없기 때문에 중간자 공격(man-in-the-middle attack)에 취약하다. 이런 공격을 막기 위해서는 디지털 서명과 공개 키 인증서 등을 이용하면 된다. 답 2

해시 함수와 응용

해시 함수와 응용: 기출 문제

  • 다음 중 SHA-1의 성질로 옳지 않은 것은?

1. 메시지를 512비트 블록 단위로 나눈다.

2. 해시 값의 길이는 160비트이다.

3. 4 라운드로 구성되며 각 라운드 당 20번 반복 동작한다.

4. 기약 논리 함수를 5개 사용한다.



SHA-1은 MD5와 유사한 처리 과정을 수행하며 4개의 기약 논리 함수를 사용한다. 답 4

정보보안관리 및 법규

정보보안 관련 법규

정보보안 관련 법규: 기출 문제

1. 개인정보의 수집·이용 목적

2. 동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용

3. 수집하는 개인정보의 항목

4. 개인정보의 보유·이용 기간



동의를 거부할 권리가 있다는 사실 및 동의 거부에 따른 불이익이 있는 경우에는 그 불이익의 내용은 개인정보 보호법에서 동의 받아야할 사항이다. 답 2

정보보안 기사 실기 시험

시스템 및 네트워크 보안특성파악

단답형

서술형

실무형(작업형)

취약점 점검 및 보완

단답형

서술형

실무형(작업형)

관제 및 대응

단답형

서술형

실무형(작업형)

정보보호계획 수립

단답형

서술형

위험분석

단답형

서술형

암호학

단답형

서술형

최근 보안 이슈

단답형

서술형

참조