본문 바로가기
(실기) 정보보안기사&산업기사

2023 기출문제 정리 (22~24회)

by 뭔가해보겠습니다 2024. 8. 6.

참고한 블로그 : https://blog.naver.com/stereok2

 

(22회, 2023년 4월)

[단답형]

라우팅 프로토콜
RIP : 거리 벡터 알고리즘 사용, 가장 오래되고 널리 사용되는 내부 라우팅 프로토콜
OSPF : 링크상태알고리즘 사용, 링크 상태 변화시에만 라우팅 정보를 교환하는 내부 라우팅 프로토콜
EIGRP : 시스코 제안, 거리벡터와 링크상태 알고리즘의 장점을 수용한 하이브리드 라우팅 프로토콜

* 유닉스 로그 파일
lastlog : 사용자의 가장 최근 로그인 시각, 접근 호스트 정보 기록
sulog : su 권한변경 로그 기록
acct/pacct : 로그인한 모든 사용자가 실행한 명령어 정보 기록

* /etc/passwd 파일
아이디:비밀번호:uid:gid:사용자 홈디렉토리:로그인쉘

개행문자
HTTP Request 입력값에 개행문자가 포함되면 HTTP 응답이 2개이상으로 분리되어, 첫 응답을 종료시킨 후 두 번째 응답에 악의적인 코드를 삽입할 수 있다 (HTTP 응답 분할 공격)
이 때 사용되는 개행문자 2가지
CR(\r), LF(\n)

파일 삽입 취약점 (PHP 기준)
1) 소스코드에 require 또는 include 함수가 존재하는지 확인
2) PHP 설정 파일 PHP.ini에서 allow_url_fopen값을 Off로 설정

 

* Snort의 Threshold 옵션 세 가지
threshold, limit, both

 

+ threshold : 매 s초동안 c번째마다
+ limit : 매 s초동안 c번째 이벤트까지
+ both : 매 s초동안 c번째 이벤트시 한 번만

 

* ARP request 요청시의 목적지 주소
FF:FF:FF:FF:FF:FF

* DNS서비스는 53번 포트를 사용하고 전승 계층 프로토콜로 TCP/UDP 사용
반복적인 질의로 인한 부하를 줄이기 위해 Cache 사용
해당 캐시정보가 유지되는 시간을 TTL이라고 한다

 

 

블랙박스 테스트
- 소스코드를 보지않고 외부 인터페이스나 구조를 분석하여 취약점 발견

화이트박스 테스트
개발된 소스코드를 살펴봄으로써 코딩상의 취약점 발견

+ 실행을 하느냐, 하지 않느냐로 구분시에는 정적분석과 동적분석으로 구분

 

DBMS 조회를 위한 질의문 생성 시 사용되는 입력값과 조회 결과에 대한 검증방법을 설계하는 경우,
애플리케이션에서 DB연결을 통해 데이터를 처리할 때 최소권한이 설정된 계정을 사용해야 한다
외부 입력값이 삽입되는 SQL 쿼리문을 동적으로 생성하여 실행하지 않도록 한다
외부 입력값을 이용해 동적으로 SQL 쿼리문을 생성할때 입력값에 대한 검증을 수행한 뒤 사용한다

 

* 개인정보 안전성 확보조치
개인정보처리자는 개인정보취급자가 개인정보처리시스템에 접속한 기록을 1년이상 보관, 관리해야 한다
단, 5만명 이상 정보주체에 대해 개인정보를 처리하거나
고유식별정보 또는 민감정보를 처리하는 개인정보처리시스템은 2년 이상 보관, 관리해야 한다

 

* 위험관리

정보보호대책 : 내외부 위협과 취약점으로 인해 자산에서 발생 가능한 위험을 감소시키기 위한 물리적 관리적 기술적 대책
잔여리스크(위험) : 정보보호대책을 적용한 이후의 잔재 위험
DoA(수용 가능한 위험 수준) : 조직에서 수용가능한 목표 위험 수준. 경영진 승인 필요.

 

[서술형]

BYOD 환경에서의 모바일 오피스 서비스
- MDM : 모바일 기기를 도난, 분식, 악용 등으로부터 보호하기 위해 강화된 보안 정책을 적용하게 관리하기 위한 기술
- 컨테이너화 : 하나의 모바일 기기에 업무용과 개인용 영역을 컨테이너로 분리하여 프라이버시를 보호하는 기술
- 모바일 가상화 : 하나의 모바일 기기에 업무용과 개인용 OS 영역을 완전히 분리하는 기술. 평소에는 개인용 OS를 사용하다가, 필요시 업무용 OS로 전환하여 사용

기준선 접근법과 상세 위험분석법의 개념과 장단점 기술

기준선 접근법: 모든 시스템에 대해 보호의 기본 수준을 정하고, 표준화된 체크리스트를 기반으로 보호 대책을 선택하는 방식. 간단하게 위험분석을 수행할 수 있어 위험분석 시간을 절약할 수 있으나, 일률적인 기준으로 통제를 적용하는 경우 과보호 또는 부족한 보호가 될 수 있고 체크리스트를 지속적으로 갱신하지 않으면 새로운 취약점이나 보안환경의 변화를 반영하기 어렵다.

상세 위험분석법: 정형화되고 구조화된 프로세스를 기반으로 자산분석, 위협분석, 취약성 분석의 각 단계를 수행해 모든 위험을 상세하게 분석하는 방식. 허용가능한 수준까지 위험을 줄이는 근거를 명확히 할 수 있고, 계량적 수치화가 가능하며 평가의 완전성이 높음. 그러나 해당 방법론을 잘 이해하고 있는 인적 자원이 필요하고 시간, 노력, 비용이 많이 소요됨

쿠키 설정의 의미
- Secure : SSL/TLS 통신을 수행하는 경우에만 클라이언트에서 해당 쿠키를 전송하여 기밀성 보장.
- HttpOnly : 웹 브라우저에서 자바스크립트를 통한 쿠키 접근 차단.
- Expires : 쿠키가 만료되는 날짜 및 시간을 설정하여 쿠키가 탈취될 때의 리스크를 최소화.

DNS 증폭 공격에 사용되는 IP 공격 기법과 사용하는 이유 기술
IP 공격기법 : 출발지 IP를 공격 대상 서버의 IP로 위조한 후, DNS 쿼리 타입을 ANY로 설정하여 request를 대량으로 수행하면 응답이 증폭되어 공격 대상 서버에 부하를 주게 된다.
IP 공격기법을 사용하는 이유는 출발지 ip가 위조되고 반사 서버를 이용해 공격하므로 출처를 파악하기 어렵기 때문. 다수의 좀비 PC 없이도 대량의 패킷을 공격 대상 서버로 향하게 하여 효율이 높다

 

[실무형1]

HTTP Request 로그 분석

[HTTP request]
GET /login.php?id=1' or '1' = '1'# &pw=test HTTP/1.1

취약점 : SQL Injection
판단한 이유 : 1' or '1'='1'#을 통해 로그인 검증 로직을 우회하려고 하고 있으므로
대응방안 기술 : 입력값에 특수문자(', =, # 등)를 필터링하도록 하고, 서버의 DB Connection 방식을 Prepared Statement 방식으로 변경하여 동적으로 실행하도록 한다

 

[실무형2]

개인정보의 기술적, 관리적 보호 조치 기준에서 요구하는 보호조치 5가지 기술

1) 접근통제
권한 부여, 변경 말소에 대한 내역을 기록하고 최소 5년 보관
외부에서 개인정보처리시스템 접속 시 안전한 인증 수단 적용
개인정보취급자를 대상으로 비밀번호 작성 규칙 수립 및 적용
개인정보취급자 컴퓨터에 대한 물리적 또는 논리적 망 분리 

2) 접속기록의 위/변조 방지
개인정보취급자가 개인정보처리시스템에 접속한 기록 월 1회 점검, 6개월 이상 접속기록 보존
접속 기록 위변조 방지를 위해 정기적인 백업 수행

3) 개인정보의 암호화 
비밀번호에 대한 일방향 암호화 저장
안전한 암호화 알고리즘으로 암호화 저장(주민등록번호 외 고유식별번호, 신용카드번호, 계좌번호, 바이오정보)

4) 악성프로그램 방지
백신 소프트웨어 등의 보안 프로그램 설치 및 운영
보안 프로그램 자동 업데이트 기능 사용 또는 일 1회 이상 업데이트

5) 물리적 접근 방지
개인정보를 보관하고 있는 물리적 장소에 대한 출입통제 절차 수립,운영
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관

 

 

(23회, 2023년 7월)

[단답형]
윈도우 IIS 로그 경로 : C:\Windows\System32\Logfiles\HTTPERR
윈도우 DHCP 로그 경로 : C:\Windows\System32\Logfiles\DHCP

64비트 리눅스에서 Printf를 통해 함수가 호출될 때 3개의 파라미터가 저장되는 레지스터명
: 순서대로 RDI, RSI, RDX

리눅스 환경에서 동적링킹Dynamic Linking 방식으로 컴파일 하는 경우,
외부 라이브러리 함수를 사용할 수 있도록 주소를 프로그램에 연결시켜주는 PLT 테이블을 참조한다
PLT는 실제 함수의 주소가 들어있는 GOT를 참조하여 함수 주소를 얻는다

* 정보보호 및 개인정보 관리체계 인증ISMS-P의 인증영역
- 관리체계 수립 및 운영
- 보호대책 요구사항
- 개인정보 처리 단계별 요구사항

유닉스 /var/log/message 로그의 내용 중 괄호의 의미
Mar 29 14:23:57(로그생성일시) alex(로그가 생성된 호스트 명) kernel:(A) [295087,236116](B) Call Trace:(C)
=> A:로그를 생성한 프로세스명, B:로그를 생성한 프로세스의 번호, C: 상세 로그 메시지

SQL Injection 취약점 대응
- 파라미터를 받는 Prepared Statement 객체를 상수 스트링으로 정의하고, 파라미터를 setString과 같은 메소드로 설정하면 외부 입력이 쿼리문의 구조를 바꾸는 것을 예방할 수 있다.

리눅스 PAM 모듈의 종류
auth : 실질적인 인증 기능, 패스워드 확인하는 모듈
account : 사용자의 시스템 사용 권한을 확인하는 모듈
password : 패스워드를 설정하거나 확인하는 모듈
session : 사용자가 인증 성공 시 세션을 맺어주는 모듈

Salvatore Sanfilippo가 개발. ICMP, TCP, UDP 등과 같은 다양한 프로토콜을 지원하며
다량의 공격용 패킷을 생성하여 DDoS 훈련 목적으로 사용하는 툴 이름
=> hping3

Tripwire는 무결성을 점검하는 도구
NESSUS는 미국 Tenable사가 개발, 네트워크에 연결된 다양한 종류의 시스템에 대해 자동화된 취약점 스캔을 지원한다. 광범위한 위약점 DB를 갖고 있다

CVE-2014-0160으로 알려진 오픈SSL 취약점. 하트비트 체크 로직의 취약점을 이용해 시스템 메모리에서 중요 데이터를 탈취할 수 있는 취약점
=> 하트블리드 HeartBleed

위험관리 3단계
위험분석 : 자산의 위협과 취약점을 분석하여 보안 위험의 종류, 규모를 결정
위험평가 : 식별된 자산, 위협, 취약점을 기준으로 위험도를 산출하여 기존 보호대책을 파악하고 위험의 대응여부와 우선순위를 결정하는 평가 과정
대책선정 : 허용 가능 수준으로 위험을 줄이기 위해 대책을 선정하고 이행계획 수립

 

정보자산 분석 절차
정보자산 식별 : 보호받을 가치가 있는 자산을 식별하고, 형태, 소유자, 관리자 등을 포함한 자산 목록 작성
자산 관리자 지정 : 정보자산에 대한 책임자 및 관리자 지정
정보자산 중요도 평가 : 식별된 자산에 대해 침해사고 발생시 기밀성, 무결성, 가용성 측면에서 파악하여 자산의 중요도 산정

 

[서술형]
* 파일 업로드 취약점

php 소스코드를 보고 서술하는 형태.
취약점명 : 파일 업로드 취약점
업로드 로직을 우회하는 기법 :

  툴을 이용해 Content-Type 속성을 허용된 속성으로 변경하거나,

  파일 확장자에 대소문자를 섞거나, 이중 확장자를 사용하거나, Null 바이트(%00)를 넣는다.
공격이 성공하기 위한 조건 :

  업로드된 경로에서 파일을 실행할 수 있어야 하고,

  AddType 지시자에 따라 MIME type이 text/html으로 재조정되지 않아야 한다.

  업로드 파일이 제한조건에 걸리지 않아야 하고, 파일타입/확장자 변조가 필터링 로직을 통과해야 함

 


* TCP 헤더 Flag에 대한 설명

URG : 긴급 데이터 전송시, 순서에 상관없이 우선순위를 높인다
ACK : 상대로부터 패킷을 받았다는 것을 알려주고, 시퀀스 번호에 +1하여 응답
PSH 버퍼링된 데이터를 수신 즉시 애플리케이션 계층으로 전달
RST : 문제가 발생한 비정상 세션을 강제로 종료시 사용
SYN 최초 연결 수립 요청시에 사용하고 순서 번호를 동기화할 때 사용
FIN 송신 장비가 연결 종료를 요청시 사용

 


* 윈도우 OS의 NetBIOS 바인딩이 보안상 취약한 이유, 보안 설정방법

  NetBIOS TCP/IP 바인딩이 활성화된 경우, 공격자가 원격에서 네트워크 공유자원을 사용할 우려가 있다
  ncpa.cpl -> 로컬 영역 연결 -> 속성 -> TCP/IP -> 일반 탭의 고급 -> WINS 탭에서 NetBIOS over TCP/IP 사용 안 함


* HTTP Get Flooding with Cache Control 분석

1초에 1000번 정도 동일 패킷이 유입되는 상황

 

C&C Attack :

  Cache-control : max age=0
  => no cache와 유사하게 동작하도록 하는 설정
HTTP Get Flooding : Referer가 Host가 다를 경우, 제 3의 호스트에 존재하는 페이지를 통해 대량의 자동화된 공격 패킷 유입 추정

[실무형1]
소상공인 A이 기존에 보유중인 1만명 미만의 고객 정보를 서비스에 활용하는 경우,
개인정보의 안전성 확보 조치 기준에 따라 개인정보처리시스템 접근권한 관리, 접근통제를 위해 준수해야 할 사항 기술

1) 개인정보처리시스템 접근권한 관리  

 ② 개인정보처리자는 전보 또는 퇴직 등 인사이동이 발생하여 개인정보취급자가 변경되었을 경우 지체없이 개인정보처리시스템의 접근 권한을 변경 또는 말소하여야 한다.
 ③ 개인정보처리자는 제1항 및 제2항에 의한 권한 부여, 변경 또는 말소에 대한 내역을 기록하고, 그 기록을 최소 3년간 보관하여야 한다. 
 ④ 개인정보처리자는 개인정보처리시스템에 접속할 수 있는 사용자계정을 발급하는 경우 개인정보취급자 별로 사용자계정을 발급하여야 하며, 다른 개인정보취급자와 공유되지 않도록 하여야 한다. 
 ⑤ 개인정보처리자는 개인정보취급자 또는 정보주체가 안전한 비밀번호를 설정하여 이행할 수 있도록 비밀번호 작성규칙을 수립하여 적용하여야 한다.

2) 개인정보처리시스템 접근 통제.

​① 개인정보처리자는 정보통신망을 통한 불법적인 접근 및 침해사고 방지를 위해 다음 각 호의 기능을 포함한 조치를 하여야 한다. 
  1. 개인정보처리시스템에 대한 접속 권한을 IP(Internet Protocol)주소 등으로 제한하여 인가받지 않은 접근을 제한
  2. 개인정보처리시스템에 접속한 IP(Internet Protocol)주소 등을 분석하여 불법적인 개인정보 유출 시도 탐지 및 대응

③ 개인정보처리자는 취급중인 개인정보가 인터넷 홈페이지, P2P, 공유설정, 공개된 무선망 이용 등을 통하여 열람권한이 없는 자에게 공개되거나 유출되지 않도록 개인정보처리시스템, 업무용 컴퓨터, 모바일 기기 및 관리용 단말기 등에 접근 통제 등에 관한 조치를 하여야 한다.

⑥ 개인정보처리자가 별도의 개인정보처리시스템을 이용하지 아니하고 업무용 컴퓨터 또는 모바일 기기를 이용하여 개인정보를 처리하는 경우에는 제1항을 적용하지 아니할 수 있으며, 이 경우 업무용 컴퓨터 또는 모바일 기기의 운영체제(OS : Operating System)나 보안프로그램 등에서 제공하는 접근 통제 기능을 이용할 수 있다. 

⑦ 개인정보처리자는 업무용 모바일 기기의 분실․도난 등으로 개인정보가 유출되지 않도록 해당 모바일 기기에 비밀번호 설정 등의 보호조치를 하여야 한다.

 


[실무형2]
Master name 서버와 Slave name 서버의 존파일 설정을 각각 기술

파일명 : /etc/named.conf

Master
zone "ns.korea.co.kr" IN {
 type master;
 file "ns.korea.co.kr.zone";
 allow-update {slave ip 주소}
};


Slave
zone "ns.korea.co.kr" IN {
 type slave;
 file "slave/ns.korea.co.kr.zone";
 masters {master ip 주소}
 allow-update {none}
};

 

 

(24회, 2023년 11월)

[단답형]

 

개인정보 영향평가 수행안내서 기반 위험도 산정 공식
위험도 = 자산가치(영향도) + (침해요인 발생 가능성 * 법적 준거성 * 2)

 

+ 개인정보 영향평가 수행안내서 112~114p

https://www.privacy.go.kr/cmm/fms/FileDown.do?atchFileId=FILE_000000000841139&fileSn=1

 

 

DB 암호화 기법
API : 암복호화 모듈이 API 라이브러리 형태로 각 애플리케이션 서버에 설치. 응용 프로그램에서 모듈호출.
Plug-in : 암복호화 모듈이 DB서버에 설치되고 DBMS에서 플러그인으로 연결된 모듈 호출
TDE DBMS에 내장된 암호화 기능을 이용해 암복호화 처리를 수행

 

LAN 스위칭 기법
Cut through : 프레임의 헤더만 보고 경로를 결정하는 방식
Modified Cut through : 프레임 앞 64바이트만 읽어 에러를 처리하고 목적지 포트로 포워드하는 방식
Store and Forward : 전체 프레임을 다 받은 후 경로를 결정하는 방식

EAP를 통해 인증을 수행하고 AES-CCMP 기반 암호화를 지원하는 무선랜 보안표준
=> WPA2

VLAN 주소할당 방법
정적 VLAN(포트기반) : 관리자가 각 스위치에서 VLAN 직접 할당
동적 VLAN(MAC기반) : MAC 주소 기반으로 VLAN 자동 할당

검색 로봇에게 웹사이트 페이지를 수집할 수 있도록 허용/제한하는 국제 권고안
=> robots.txt

ISO 31000 위험평가 방법론에 따른 위험평가 절차
위험식별 : 운영 실패, 공급망 중단 또는 인재 격차와 같은 내외부 위험을 고려하여 잠재된 위험 식별
위험분석 : 확인된 위험이 조직의 목표 및 운영에 미칠 가능성과 잠재적 영향 분석
위험평가 : 조직의 위험 감수성, 수용 능력 등을 고려하여 위험 허용 수준DoA 결정. 위험의 중요성에 따라 위험처리 필요성 결정

 

PC에 설치된 에이전트, 네트워크 센서를 통해 이동식 디스크나 이메일 등 파일 업로드를 이용한 내부 문서 이동 탐지
HTTPS같은 암호화 통신에도 중요 내부 문서 이동 탐지 가능
=> DLP (Data Loss Prevention)

 

현재 실행되고 있는 프로세스 정보가 기록되며, 숨겨진 프로세스를 찾기 위해 참조하는 경로
=> /proc

아파치 로그 분석
200.1.1.4 - - [24/May/2023:01:20:01 +09:00] "(1) GET /read.php?no=1&item=book (2) HTTP/1.1" 200 3415 (3) "http://test.com/main.php" "Mozilla/5.0 (compatible;MSIE 10.0;Windows NT 6.1;WOW64;Trident/6.0)"

1) no=1&item=book의 의미
: read.php을 get 방식으로 호출시 no 파라미터를 1로, item 파라미터를 book으로 설정하여 매칭되는 결과를 요청
2) http 상태코드
200 요청을 성공적으로 처리
3) http://test.com/main.php의 의미
현재 url을 호출한 referer URL을 의미

 

 

개인정보 가명처리 기법 중 수치 데이터를 임의의 수인 자리수, 실제 수 기준으로 올림/내림 처리하는 기법
=> 랜덤 라운딩

( 가명정보 처리 가이드라인 85~92 페이지 참고
https://www.pipc.go.kr/np/cop/bbs/selectBoardArticle.do?bbsId=BS217&mCode=D010030000&nttId=9900#LINK )

 

 

JAVA 기반의 오픈소스 프로그램으로, 로그를 쉽고 편하게 남기기 위한 목적
JNDI Lookup 메소드 호출시 입력값 검증없이 임의 코드가 실행되는 취약점이 발견됨
=> Log4J

 

 

chmod -s {파일명}
=> 파일에 설정된 특수비트 제거

find / -user root -type f \( -perm -4000 -o -perm -2000 \) |xargs ls -a
=> /의 하위경로에 존재하는 일반파일 중 setuid 또는 setgid가 root로 설정된 파일을 검색.

 

해당 조치가 필요한 이유
=> 특수비트 중 setuid, setgid가 설정된 파일은 파일 실행시 실행자가 아니라 파일 소유주, 소유그룹 권한으로 실행된다. 특히 관리자나 root가 소유주, 소유그룹인 경우 root권한으로 실행되어 악의적 행위가 가능하다

 

[서술형]

rsh, rlogin 등은 인증없이 관리자의 원격접속을 가능하게 하는 명령어들이다
불가피하게 사용하는 경우 /etc/hosts.equiv와 $HOME/.rhosts 파일의 소유자, 권한, 파일 내 보안 설정을 어떻게 해야 안전한지 기술

1) 파일의 소유주를 root 또는 해당 계정으로 변경
chown <계정명> /etc/hosts.equiv
chown <계정명> $HOME/.rhosts

2) 파일의 권한을 600 이하로 변경
chmod 600 /etc/hosts.equiv
chmod 600 $HOME/.rhosts

3) 두 개의 파일내에서 +를 제거하고, 허용할 호스트와 계정만 등록하여 화이트리스트 정책 적용


IPTables의 3가지 Chain 기술
IPTables 룰
[iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "[Faked NEW request]"] 의 의미 기술

INPUT Chain : 방화벽 외부에서 내부로 들어오는 트래픽을 제어하는 룰이 등록되는 체인

OUTPUT Chain : 방화벽 내부에서 밖으로 나가는 트래픽을 제어하는 룰이 등록되는 체인

FORWARD Chain : 방화벽을 경유하는 트래픽을 제어하는 룰이 등록되는 체인

 

예시 룰의 의미

tcp 새연결시 syn 플래그가 설정되지 않은 경우 "[Faked NEW request]"를 접두어로 하는 로그를 남기는 INPUT 체인 룰 추가

 

 

SNMP 서비스 사용시 적용해야하는 보안설정 4가지 기술

1) 커뮤니티 스트링을 유추하기 어려운 값으로 변경

2) 암호화가 지원되는 SNMP 버전 3 이용

3) ACL을 적용하여 SNMP 이용 호스트를 제한

4) RW모드는 삭제하고 가급적 RO(Rread-Only)모드 사용

 

[실무형1]

패스워드 최소길이를 8자리 이상으로 설정하기 위한 방법

Solaris
/etc/default/passwd
PASSLENGTH = 8

Linux
/etc/login.defs
PASS_MIN_LEN 8

AIX
/etc/security/user
minlen = 8

HP-UX
/etc/default/security
MIN_PASSWORD_LENGTH = 8

 

 

[실무형2]

xined 서비스의 환경설정 파일 /etc/xinetd.d/telnet
{
 ...
        (    1    ) = 10.0.0.0/8                 # 10.0.0.0/8 대역은 서비스 미허용
        (    2    ) = 192.168.10.0/24       # 192.168.10.0/24 대역은 서비스 허용
        (    3    ) = 3                               # 동시에 접속가능한 최대 세션 수 3개
        access_time =  (    4    )            # 접속을 허용할 시간 (9시 ~ 18시)
}

1) no_access
2) only_from
3) instances
4) 09:00~18:00