1번
문제
다음 아파치 로그를 보고 물음에 답하시오.
[아파치 로그]
200.3.1.4 - - [30/May/2023:01:20:01 +09:00] "(1) GET
/bulletin/read.php?no=101&item=book (2) HTTP/1.1" 200 3549 (3)
"http://test.co.kr/main.php" "Mozilla/5.0 (compatible;MSIE 10.0;Windows NT
6.1;WOW64;Trident/6.0)"
no=101&item=book의 의미는?- http 상태코드는 무엇인가?
http://test.co.kr/main.php의 의미는?
답
/bulletin/read.php파일을 GET 방식으로 호출할 때 2 개의 파라미터(no, item)에 값을 각각 할당하여(no=101 and item=book) 매칭되는 결과를 요청- 200 (웹서버가 요청을 정상적으로 처리했음을 의미)
- 현재 URL 을 호출한 referer URL 을 의미(즉,
test.co.kr/main.php에서 GET 방식으로 현재 URL(/bulletin/read.php)를 호출하였음)
2번
문제
다음의 두 가지 조치가 필요한 이유를 설명하시오.
chmod -s {파일명}find / -user root -type f \( -perm -4000 -o -perm -2000 \) | xargs ls -al
답
- 두 가지 조치의 의미
- 특정 파일에 설정된 특수 비트(SetUID, SetGID) 를 제거함.
/경로 하위에 존재하는 root 가 소유주인 파일 중 특수비트(SetUID, SetGID)가 설정된 파일을 검색함.
- 두가지 조치가 필요한 이유
특수비트가 설정된 파일을 실행하는 경우 파일의 소유주(SetUID 설정시), 또는 소유그룹(SetGID 설정시) 권한으로 실행됨. 특히 root 가 소유주 또는 소유 그룹인 파일에 특수비트가 설정되면, 일반 사용자 계정으로 실행하더라도 root 권한으로 실행되어 악의적인 행위가 가능하기 때문임.
3번
문제
rsh, rlogin, rexec 등은 인증 없이 관리자의 원격접속을 가능하게 하는 명령어들이므로 사용하지 않는 것이 안전하다. 불가피하게 사용하는 경우 /etc/hosts.equiv, $HOME/.rhosts 파일의 소유자, 권한, 파일 내 보안 설정을 어떻게 해야 안전한지 설명하시오.
답
/etc/hosts.equiv및$HOME/.rhosts파일의 소유자를 root 또는 해당 계정으로 변경chown root /etc/hosts.equivchown <해당 계정명> $HOME/.rhosts
- 두 개 파일의 권한을 600 이하로 변경
chmod 600 /etc/hosts.equivchmod 600 $HOME/.rhosts
- 두 개 파일 내에서
+를 제거하고 허용할 호스트 및 계정만 등록 (설정 예시)
+ + # 모든 호스트의 모든 유저가 내 서버로 인증 없이 접속가능
hostA # 2 번째 필드가 없다면 hostA 의 현재 사용 중인 유저 접속가능
hostA + # hostA 의 모든 유저가 인증없이 접속 가능
hostA user01 # hostA 의 user01 사용자만 인증없이 접속가능.
4번
문제
IPTables 와 관련하여 다음 물음에 답하시오.
- IPTables 의 3 가지 Chain 설명
- 다음 IPTables 룰의 의미 설명
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "[Faked NEW request]"
답
- INPUT Chain : 방화벽이 최종 목적지인 룰이 등록되는 체인
- FORWARD Chain : 방화벽을 경유하는 룰이 등록되는 체인
- OUTPUT Chain : 방화벽이 최초 출발지인 룰이 등록되는 체인
- TCP 연결을 신규(NEW)로 맺는 패킷의 TCP Flag 값이 SYN 이 아닌 경우
"[Faked NEW request]"을 접두어로 하여 로그에 남기라는 의미
5번
문제
SNMP 서비스 사용 시 적용되어야 하는 보안 설정 4 가지를 설명하시오.
답
- 커뮤니티 스트링을 default 값이 아닌 유추하기 어려운 값으로 변경한다.
- 암호화가 지원되는 SNMP 버전 3 을 사용한다.
- ACL 을 적용하여 SNMP 를 이용할 수 있는 호스트를 제한한다.
- RW(Read-Write)모드는 삭제하고 가급적 RO(Read-Only)모드를 사용한다.
6번
문제
TCP 헤더에 포함되어 있는 6 비트의 Flag 에 대한 설명이다. ( ) 에 적절한 설명을 기술하시오.
- URG : 긴급하게 전송할 데이터가 있는 경우 사용하며, 순서에 상관없이 우선순위를 높여 처리됨
- PSH : 버퍼링된 데이터를 버퍼가 찰 때까지 기다리지 않고 수신 즉시 애플리케이션 계층으로 전달
- SYN : ( A )
- ACK : ( B )
- FIN : ( C )
- RST : ( D )
답
- 최초 연결 수립을 요청하고, 순서 번호를 동기화할 때 사용됨
- 상대로부터 패킷을 받았다는 것을 알려주며, 일반적으로 받은 시퀀스 번호에 +1 하여 응답을 보냄
- 송신 장비가 연결 종료를 요청 시 사용
- 연결 상의 문제가 발생한 비정상 세션을 강제로 끊을 때 사용
7번
문제
PHP 로 작성된 게시판의 소스코드이다. 해당 게시판의 취약점명, 업로드 로직을 우회하는 기법, 공격이 성공하기 위한 조건을 설명하시오.
<?
// 파일 확장자 중 업로드를 허용할 확장자를 정의함
$full_filename = explode(".", $_FILES['userfile']['name']);
$extension = $full_filename[sizeof($full_filename)-1];
if (!( ereg($extension","hwp") || ereg($extension","pdf") || ereg($extension","jpg")) )
print "업로드 금지 파일입니다";
exit;
If (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg")
||
($_FILES["file"]["type"] == "image/JPG") || ($_FILES["file"]["type"] == "text/plain"))
{
echo "파일 업로드 성공"
}
else
{
echo "파일 업로드 실패. 허용된 파일의 형식이 아닙니다."
}
?>
답
- 파일 업로드 취약점 : 실행 가능한 파일을 웹서버에 업로드 하여 중요정보 탈취, 시스템 명령어 수행 등과 같은 악의 적인 행위 가능
- 우회 기법
- 파일 타입 변조 : Proxy 툴을 이용하여 Request Message 헤더내에 파일 유형을 알려주는 Content-Type 속성을 image/jpeg 으로 변경
- Null 바이트 삽입 : Null 바이트(%00)와
.jpeg확장자를 함께 접목하여 업로드(예:test.php%00.jpeg)하면 파일 확장자 검증 로직은 통과되고, 서버에 저장시에는 Null 바이트를 문자의 끝으로 해석하여test.php로 저장됨
- 공격 성공 조건
- 파일 타입 또는 확장자 변조가 서버의 필터링 로직을 통과해야 함
- 업로드 하는 파일이 서버에 설정된 업로드 제한 조건(예: 사이즈 제한(LimitRequestBody)에 걸리지 않아야 함
- 업로드 된 파일이 서버에 설정된 아래와 같은 실행 제한 조건에 걸리지 않아야 함
- AddType 지시자에 따라 MIME type 이 test/html 로 재조정(실행불가)
- FileMatch 지시자에 따라 직접 URL 호출 금지
8번
문제
윈도우 OS 에서 사용하는 NetBIOS 바인딩이 보안상 취약한 이유와 보안 설정하는 방법을 설명하시오. (보안 설정은 ncpa.cpl 을 이용하여 설명)
답
- 보안상 취약한 이유 : 인터넷에 직접 연결되어 있는 윈도우 시스템에 NetBIOS TCP/IP 바인딩이 활성화되어 있는 경우, 공격자가 원격에서 네트워크 공유자원을 사용할 우려가 존재하기 때문
- 보안설정 방법 : 윈도우 OS 에서 시작> 실행>
ncpa.cpl> 로컬 영역 연결> 속성> TCP/IP> [일반] 탭에서 [고급] 클릭> [WINS] 탭에서 TCP/IP 에서 “NetBIOS 사용 안 함” 또는, “NetBIOS over TCP/IP 사용 안 함” 선택
9번
문제
보안 이벤트 분석 결과 1 초에 1000 번 이상 다음과 같은 패킷이 유입되고 있는 것이 확인되었다. 패킷 헤더 중 a, b 를 보고 어떤 공격인지 설명하시오.
[HTTP Request]
GET /test.jsp
Host : webserver.com
User-Agent : Mozilla/5.0
Referer : http://www.abc.com/default.jsp (a)
Cache-control : max age=0 (b)
답
- 공격명 : HTTP Get Flooding with Cache Control (C&C Attack)
- 공격명 판단 사유 : Cache-Control 요청 헤더에
max-age=0옵션이 설정되었기 때문에 no cache 와 유사하게 동작함. 이에, 모든 요청은 캐시서버가 아닌 원본 웹서버로 향하게 되어 부하를 가중시킴. 또한,/test.jsp를 호출한 서버(Referer) 가 공격 대상 Host 와 다르므로, 제 3 의 호스트(www.abc.com)에 존재하는default.jsp를 통해 대량의 자동화된 공격 패킷이 유입된 것으로 추정됨.
10번
문제
코로나 극복 후 새로운 서비스를 재개하려는 소상공인이 있다. 기존에 보유하고 있던 1 만 명 미만의 고객 정보를 프리미엄 서비스에 활용하는 경우 개인정보의 안전성 확보 조치 기준에 따라 개인정보처리시스템 접근권한 관리, 접근통제를 위해 준수해야 할 사항을 기술하시오.
답
- 개인정보처리시스템 접근권한 관리
- 개인정보처리자는 개인정보처리시스템에 대한 접근 권한을 개인정보취급자에게만 업무 수행에 필요한 최소한의 범위로 차등 부여하여야 한다.
- 개인정보처리자는 개인정보취급자 또는 개인정보취급자의 업무가 변경되었을 경우 지체 없이 개인정보처리시스템의 접근 권한을 변경 또는 말소하여야 한다.
- 개인정보처리자는 제 1 항 및 제 2 항에 의한 권한 부여, 변경 또는 말소에 대한 내역을 기록하고, 그 기록을 최소 3 년간 보관하여야 한다.
- 개인정보처리자는 개인정보처리시스템에 접근할 수 있는 계정을 발급하는 경우 정당한 사유가 없는 한 개인정보취급자 별로 계정을 발급하고 다른 개인정보취급자와 공유되지 않도록 하여야 한다.
- 개인정보처리자는 개인정보취급자 또는 정보주체의 인증수단을 안전하게 적용하고 관리하여야 한다.
- 개인정보처리자는 정당한 권한을 가진 개인정보취급자 또는 정보주체만이 개인정보처리시스템에 접근할 수 있도록 일정 횟수 이상 인증에 실패한 경우 개인정보처리시스템에 대한 접근을 제한하는 등 필요한 조치를 하여야 한다.
- 개인정보처리시스템 접근 통제.
- 개인정보처리자는 정보통신망을 통한 불법적인 접근 및 침해사고 방지를 위해 다음 각 호의 안전조치를 하여야 한다.
- 개인정보처리시스템에 대한 접속 권한을 인터넷 프로토콜(IP) 주소 등으로 제한하여 인가받지 않은 접근을 제한
- 개인정보처리시스템에 접속한 인터넷 프로토콜(IP) 주소 등을 분석하여 개인정보 유출 시도 탐지 및 대응
- 개인정보처리자는 개인정보취급자가 정보통신망을 통해 외부에서 개인정보처리시스템에 접속하려는 경우 인증서, 보안토큰, 일회용 비밀번호 등 안전한 인증수단을 적용하여야 한다. 다만, 이용자가 아닌 정보주체의 개인정보를 처리하는 개인정보처리시스템의 경우 가상사설망 등 안전한 접속수단 또는 안전한 인증수단을 적용할 수 있다.
- 개인정보처리자는 처리하는 개인정보가 인터넷 홈페이지, P2P, 공유설정 등을 통하여 권한이 없는 자에게 공개되거나 유출되지 않도록 개인정보처리시스템, 개인정보취급자의 컴퓨터 및 모바일 기기 등에 조치를 하여야 한다.
- 개인정보처리자는 개인정보처리시스템에 대한 불법적인 접근 및 침해사고 방지를 위하여 개인정보취급자가 일정시간 이상 업무처리를 하지 않는 경우에는 자동으로 접속이 차단되도록 하는 등 필요한 조치를 하여야 한다.
- 개인정보처리자는 업무용 모바일 기기의 분실ㆍ도난 등으로 개인정보가 유출되지 않도록 해당 모바일 기기에 비밀번호 설정 등의 보호조치를 하여야 한다.
- 전년도 말 기준 직전 3 개월간 그 개인정보가 저장ㆍ관리되고 있는 이용자 수가 일일평균 100 만명 이상인 개인정보처리자는 개인정보처리시스템에서 개인정보를 다운로드 또는 파기할 수 있거나 개인정보처리시스템에 대한 접근 권한을 설정할 수 있는 개인정보취급자의 컴퓨터 등에 대한 인터넷망 차단 조치를 하여야 한다. 다만, 「클라우드컴퓨팅 발전 및 이용자 보호에 관한 법률」 제 2 조제 3 호에 따른 클라우드컴퓨팅서비스를 이용하여 개인정보처리시스템을 구성ㆍ운영하는 경우에는 해당 서비스에 대한 접속 외에는 인터넷을 차단하는 조치를 하여야 한다.
- 개인정보처리자는 정보통신망을 통한 불법적인 접근 및 침해사고 방지를 위해 다음 각 호의 안전조치를 하여야 한다.
11번
문제
Korea.co.kr 도메인의 존 파일을 설정하려고 한다. MASTER 와 SLAVE DNS 서버의 named.conf 설정 값을 각각 작성하시오. (zone 파일은 ns.korea.co.kr.zone 이다)
- master name 서버 :
ns1.korea.co.kr(192.168.1.53) - slave name 서버 :
ns2.korea.co.kr(192.168.2.53)
답
- Master DNS 서버의 zone 파일 설정
/etc/named.conf
zone "ns.korea.co.kr" IN {
type ( master );
file "ns.korea.co.kr.zone";
allow-update { 192.168.2.53 }
};
- Slave DNS 서버의 zone 파일 설정
/etc/named.conf
zone "ns.korea.co.kr" IN {
type ( slave );
file "slave/ns.korea.co.kr.zone";
masters { 192.168.1.53 }
allow-update { none }
12번
문제
BYOD 환경에서 모바일 오피스 서비스를 하려고 한다. 관련된 다음의 3 가지 보안 기술에 대하여 설명하시오.
- MDM(Mobile Device Management)
- 컨테이너화
- 모바일 가상화
답
- MDM : 모바일 기기를 도난, 분실, 악용 등으로부터 보호하기 위하여 강화된 보안 정책(인증, 앱 화이트 리스트, 원격 삭제, 탈옥 탐지, 스크린 캡처 방지, 카메라 제어 등)을 적용하여 관리하기 위한 기술
- 컨테이너화 : 하나의 모바일 기기 내에 업무용과 개인용 영역을 컨테이너라는 별도의 공간으로 분리하여 프라이버시를 보호하기 위한 기술
- 모바일 가상화 : 가상화 기술을 이용하여 하나의 모바일 기기에서 개인용 OS 영역과 업무용 OS 영역을 완전히 분리하는 기술. 평상시에는 개인용 OS 영역에서 모바일 기기를 이용하다가, 필요시 업무용 OS 로 전환하여 사용.
13번
문제
다음의 쿠키 설정 값의 의미를 보안 측면에서 설명하시오.
- Secure
- HttpOnly
- Expires
답
- Secure 통신(SSL/TLS)을 수해하는 경우에만 클라이언트에서 해당 쿠키를 전송함으로써 기밀성을 보장함. 스니핑 공격을 통한 쿠키 정보 탈취에 대응 가능.
- 웹브라우저에서 자바스크립트(
document.cookie) 등을 통한 해당 쿠키 접근을 차단함. 쿠키 탈취를 위한 XSS(Cross Site Scripting) 공격에 대응 가능. - 쿠키가 만료되는 날짜 및 시간을 설정함. 쿠키가 탈취당하여 재사용되는 리스크를 최소화할 수 있음.
14번
문제
다음의 위험 분석 방법에 대하여 개념과 장단점을 설명하시오.
- 기준선 접근법
- 상세 위험 분석법
답
- 기준선 접근법
- 개념 : 모든 시스템에 대하여 보호의 기본 수준을 정하고 이를 달성하기 위한 일련의 보호대책을 표준화된 체크리스트를 기반으로 선택하는 방식
- 장점 : 체크리스트의 각 항목별 준수 여부를 점검하는 방식으로 간단하게 위험분석을 수행할 수 있어, 위험 분석 시간을 절약할 수 있음. 소규모 조직에 적합함.
- 단점 : 조직의 현황이 반영되지 않은 일률적인 기준으로 통제를 적용하는 경우 과보호 또는 부족한 보호가 될 가능성이 상존함. 체크리스트를 지속적으로 갱신하지 않으면 새로운 취약점과 같은 보안 환경의 변화를 적절하게 반영하기 어려움. 따라서, 자산 변동이 적거나 보안 환경의 변화에 크게 영향을 받지 않는 자산에 한정하여 사용하는 것이 권장됨.
- 상세 위험 분석법
- 개념 : 정형화되고 구조화된 프로세스를 기반으로 자산 분석, 위협 분석, 취약성 분석의 각 단계를 수행하여 모든 정보자산에 대한 위험을 상세하게 분석하는 방식
- 장점 : 자산가치, 위협, 취약점의 평가에 기반하여 위험을 산정하므로 허용가능 수준까지 위험을 줄이는 근거를 명확히 할 수 있음. 계량적 수치화가 가능하며 평가의 완전성이 높음. 보안 환경의 변화에 따른 새로운 위험에 대한 분석도 용이에게 할 수 있음.
- 단점 : 위험 분석 방법론을 잘 이해하고 있는 인적 자원이 필요하며, 위험분석에 시간, 노력, 비용이 많이 소요됨.
15번
문제
DNS 증폭 공격에 사용되는 IP 공격 기법을 설명하고, 해당 공격 기법을 사용하는 이유를 설명하시오.
답
- IP 공격 기법 : 출발지 IP를 공격 대상 서버의 IP로 위조하는 IP스푸핑을 수행 후, DNS 쿼리 타입을 ANY 로 지정하여 request 를 대량으로 수행하면, 다양한 TYPE의 레코드들이 Response 되므로 응답이 증폭되어 공격 대상 서버에 부하를 주게 됨
- 해당 공격 기법 사용 이유
- 출발지 IP 가 위조되고, 반사 서버를 통해 공격이 수행되므로 공격의 출처를 파악하기 어렵기 때문임. 특히 UDP 는 별도의 인증 절차가 없으므로 공격 수행이 용이함.
- 다수의 좀비 PC 를 동원하지 않더라도 대량의 공격 패킷을 공격 대상 서버로 향하도록 만들어 낼 수 있어 효율이 높기 때문임.
16번
문제
다음의 HTTP Request 로그를 보고 물음에 답하시오.
[HTTP request]
GET /member/login.php?user_id=1' or '1' = '1'# &user_pw=foo HTTP/1.1
GET /member/login.php?user_id=1' or '1' = '1 &user_pw=foo HTTP/1.1
- 해당 취약점은 무엇인가?
- 그렇게 판단한 이유는?
- 대응 방안은?
답
- SQL Injection
user_id에 특수 문자를 포함한1' or '1'='1'#을 넣어서 로그인 검증을 하기 위한 SQL 문을 참으로 만들어 인증 로직을 우회하려는 시도를 하고 있기 때문임.- 대응 방안
- 입력값에 특수 문자가 포함되지 않도록 필터링 로직을 구현(이 경우 클라이언트 단이 아닌 서버에 검증 로직을 반드시 넣어야 함. 자바스크립트로 클라이언트 단에서만 검증하는 경우 Paros, Burpsuite 와 같은 proxy 툴로 검증 로직을 우회할 수 있기 때문임)
- 서버의 DB Connection 구문을 Prepared Statement 방식으로 변경(사용자가 입력한 값이 SQL 명령의 일부가 아닌 매개 변수로 처리되기 때문에 해당 컬럼에만 들어가고 SQL 문 전체에 영향을 주지 않음)
17번
문제
개인 정보의 안전성 확보조치 기준에서 요구하고 있는 보호 조치 5 가지를 기술하시오.
답
- 접근통제
- 개인정보처리시스템에 대한 접속 권한을 인터넷 프로토콜(IP) 주소 등으로 제한하여 인가받지 않은 접근을 제한
- 개인정보처리시스템에 접속한 인터넷 프로토콜(IP) 주소 등을 분석하여 개인정보 유출 시도 탐지 및 대응
- 접속기록의 위/변조 방지
- 개인정보취급자가 개인정보처리시스템에 접속한 기록 월 1 회 점검, 6 개월 이상 접속기록 보존
- 접속 기록 위변조 방지를 위해 정기적인 백업 수행
- 개인정보의 암호화
- 개인정보처리자는 비밀번호, 생체인식정보 등 인증정보를 저장 또는 정보통신망을 통하여 송ㆍ수신하는 경우에 이를 안전한 암호 알고리즘으로 암호화하여야 한다. 다만, 비밀번호를 저장하는 경우에는 복호화되지 아니하도록 일방향 암호화하여 저장하여야 한다.
- 개인정보처리자는 이용자의 개인정보(주민등록번호, 여권번호, 운전면허번호 등)에 대해서는 안전한 암호 알고리즘으로 암호화하여 저장하여야 한다.
- 악성프로그램 등 방지
- 프로그램의 자동 업데이트 기능을 사용하거나, 정당한 사유가 없는 한 일 1 회 이상 업데이트를 실시하는 등 최신의 상태로 유지
- 발견된 악성프로그램 등에 대해 삭제 등 대응 조치
- 물리적 안전조치
- 개인정보처리자는 개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하여야 한다.
- 개인정보처리자는 개인정보가 포함된 보조저장매체의 반출ㆍ입 통제를 위한 보안대책을 마련하여야 한다. 다만, 별도의 개인정보처리시스템을 운영하지 아니하고 업무용 컴퓨터 또는 모바일 기기를 이용하여 개인정보를 처리하는 경우에는 이를 적용하지 아니할 수 있다.
18번
문제
IDS 에서 사용하는 침입탐지 방식에 대하여 다음 물음에 답하시오.
- 오용 탐지의 정의
- 이상 탐지의 정의
- 오용 탐지의 장점
- 오용 탐지의 단점
답
- 잘 알려져 있는 공격(오용, misuse) 패턴을 룰로 등록 후, 패턴(시그니처)과 일치여부를 비교하여 침입 여부를 판단하는 방식
- 정상 행위와 이상 행위(anomaly)를 프로파일링 후, 통계적 분석을 통하여 침입여부를 판단하는 방식
- 등록된 공격패턴에 의하여 탐지되므로 오탐률이 낮음
- 패턴에 없는 새로운 공격은 탐지가 불가하며, 새로운 공격 탐지를 위하여 지속적으로 패턴 업데이트를 해야 함.
19번
문제
재해복구시스템 유형에는 미러사이트, 핫사이트, 웜사이트, 콜드사이트가 있다. 다음 물음에 답하시오.
- 미러 사이트의 정의
- 미러 사이트의 장단점 각 2 개씩 설명
- RTO 가 가장 오래 걸리는 방식은 무엇이며, 이유는 무엇인가?
답
- 주센터와 동일한 수준의 시스템을 백업센터에 구축하고, 액티브-액티브 상태로 실시간 동시 서비스를 제공하는 방식
- 장점) 신속한 업무재개 가능(RTO:즉시), 데이터의 최신성 보장(RPO:0)
- 단점) 초기 투자 및 유지 보수 비용이 높음, 데이터 업데이트가 많은 경우 과부하 초래
- COLD 사이트. 데이터만 원격지에 보관하고 서비스를 위한 정보자원은 최소한으로 확보되어 있어, 재해 시 필요한 자원을 조달하여 복구하는데 오랜 시간이 소요됨.
20번
문제
/etc/apache/conf 내의 파일이 수정되었다. 10 일 안으로 수정되었다고 판단되는데 담당자가 수정한 적이 없을 경우 10 일 이내에 변경된 파일 확인을 위한 find 명령을 한줄로 작성하시오.
답
find /etc/apache/conf -type f -mtime -10