사용자와 시스템, 또는 시스템 상호 간에 활성화된 접속(연결)을 식별·유지·종료하는 보안 기능은 세션 관리이다.
세션 관리는 접속이 살아 있는 동안 연결 상태를 추적하고 유휴 시간 초과나 비정상 종료 시 세션을 끊어 세션 하이재킹 같은 위협을 막는다.
- 계정과 패스워드를 다루는 기능은 사용자 식별·인증 정보를 설정·보관하는 것으로 활성 접속 자체를 관리하지 않는다.
- 파일을 다루는 기능은 파일의 생성·접근 권한을 통제하며 접속 연결과는 무관하다.
- 로그를 다루는 기능은 발생한 사건을 기록·보존하는 사후 추적 기능으로 진행 중인 접속을 제어하지 않는다.
쿠키는 서버가 브라우저에 저장하는 작은 텍스트 데이터일 뿐이어서 스스로 실행되거나 바이러스처럼 자가 전파할 수 없으므로, 쿠키가 바이러스를 스스로 전파한다는 설명이 옳지 않다.
쿠키는 상태를 유지하지 못하는 HTTP를 보완해 방문 기록과 설정을 저장하는 용도로 쓰인다.
- 저장되는 내용이 사이트마다 다를 수 있다는 설명은 쿠키가 도메인별로 따로 설정·저장되므로 옳다.
- 쇼핑몰 장바구니에 쿠키 정보를 쓴다는 설명은 로그인 없이도 담은 상품을 유지하는 대표적 용례이므로 옳다.
- 특정 사이트 방문 여부 확인이 가능하다는 설명은 쿠키에 방문 흔적이 남으므로 옳다.
어깨너머로 입력을 훔쳐보는 Shoulder Surfing은 사회공학적·물리적 관찰 기법으로 웹 애플리케이션의 보안 취약점을 이용한 공격이 아니다.
나머지는 모두 웹 애플리케이션 계층의 취약점을 노리는 공격이다.
- 스크립트를 피해자 브라우저에서 실행시키는 공격(Cross Site Scripting)은 웹 입력 검증 미흡을 악용한다.
- 질의문에 악성 SQL을 끼워 넣는 공격(SQL Injection)은 데이터베이스 연동 취약점을 악용한다.
- 이용자 권한으로 위조 요청을 보내는 공격(Cross Site Request Forgery)은 웹 세션·요청 검증 취약점을 악용한다.
FTP의 PORT 명령이 지정하는 데이터 전송 목적지를 서버가 검증하지 않는 설계 결함을 악용해 제3의 호스트로 데이터를 보내게 하는 공격이 FTP Bounce 공격이다.
이를 이용하면 포트 스캔이나 접근 통제 우회를 FTP 서버를 경유해 수행할 수 있다.
- 출발지와 목적지를 동일하게 위조한 패킷을 보내는 공격(Land)은 FTP 설계 결함과 무관하다.
- 인증 없는 간이 파일 전송 프로토콜의 특성을 노리는 공격(TFTP)은 목적지 미검증 문제와 다르다.
- 브로드캐스트로 ICMP 응답을 유발해 대상을 마비시키는 공격(Smurf)은 증폭형 서비스 거부로 성격이 다르다.
디렉터리 탐색(경로 조작) 공격은 상위 경로를 가리키는 문자열을 넣어 허용 범위 밖 파일에 접근하므로, 입력값에서 슬래시(/) 같은 경로 구분자를 필터링해 차단한다.
나머지 문자는 디렉터리 탐색 차단과 직접 관련이 없다.
- 달러 기호는 변수 치환이나 명령 삽입과 관련된 문자로 경로 구분과 무관하다.
- 하이픈 두 개는 주로 SQL 주석에 쓰이는 문자로 디렉터리 탐색과 무관하다.
- 꺾쇠(부등호)는 스크립트 삽입(XSS) 필터링 대상으로 경로 구분과 무관하다.
testuser:㉠Ep6mckrOLChF:㉡12818:0:㉢99999:5:㉣7:0:12842
/etc/shadow에서 비밀번호 만료 전 변경을 경고하는 기간을 나타내는 필드는 값 5가 든 자리인데, 값 7이 든 자리는 비밀번호 만료 후 계정이 비활성화되기까지의 기간이므로 값 7을 경고 기간이라고 설명한 것이 옳지 않다.
각 필드는 콜론으로 구분되어 로그인명 다음부터 순서가 정해져 있다.
- 암호화된 패스워드라고 설명한 자리는 로그인명 다음의 해시 문자열이므로 옳다.
- 최근 패스워드를 바꾼 날이라고 설명한 자리는 기준일로부터의 경과 일수(12818)이므로 옳다.
- 현재 패스워드의 유효기간이라고 설명한 자리는 최대 사용 일수(99999)이므로 옳다.
로그인한 사용자의 계정명, 로그인·로그아웃 시각, 터미널 또는 IP 주소를 보여 주는 명령은 last로, wtmp 로그를 읽어 접속 이력을 출력한다.
나머지 명령은 접속 이력 출력과 용도가 다르다.
- lastcomm은 실행된 명령의 기록(프로세스 어카운팅)을 보여 주는 명령이다.
- acctcom도 프로세스 어카운팅 정보를 조회하는 명령으로 접속 이력과 다르다.
- chown은 파일의 소유자를 변경하는 명령으로 로그 조회와 무관하다.
유닉스 시스템에서 관리자 권한으로 실행되는 프로그램 중간에 임시 파일을 만드는 프로세스가 있을 경우 임시 파일 이름의 심볼릭 링크(Symbolic link) 파일을 생성하고, 이 프로세스 실행 중에 끼어들어 그 임시 파일을 전혀 엉뚱한 파일과 연결하여 악의적인 행동을 수행하도록 하는 공격이다.
관리자 권한 프로그램이 임시 파일을 만드는 시점과 사용하는 시점 사이의 시간차를 노려 그 틈에 심볼릭 링크로 엉뚱한 파일을 연결하는 공격은 Race Condition(경쟁 조건) 공격이다.
검사 시점과 사용 시점이 어긋나는 TOCTOU 문제를 이용하며 임시 파일을 안전하게 생성하지 않으면 발생한다.
- 운영체제·서비스의 특징으로 대상을 식별하는 기법(Fingerprinting)은 시간차 악용과 다르다.
- 세션을 가로채 인증된 연결을 탈취하는 공격(Session Hijacking)은 심볼릭 링크 경쟁과 다르다.
- TLS 하트비트 확장의 메모리 과다 응답 취약점(Heartbleed)은 임시 파일 경쟁과 무관하다.
<보기 1>
INPUT 체인에 입력 인터페이스가 eth0이고, 도착지가 192.168.10.100이고, 프로토콜은 tcp이며, 도착 포트는 80인 패킷은 버리는 정책을 추가
<보기 2>iptables -A INPUT -i eth0 ( ㉠ ) 192.168.10.10 ( ㉡ ) tcp ( ㉢ ) 80 -j DROP
도착지 IP를 지정하는 -d, 프로토콜을 지정하는 -p, 목적지 포트를 지정하는 --dport 순으로 채워야 요청한 정책이 완성된다.
특정 도착지·프로토콜·포트의 패킷을 버리는 규칙이므로 각 조건을 지정하는 옵션이 차례로 필요하다.
- 도착지 주소 자리에는 목적지 IP를 지정하는 -d가 와야 하며 인터페이스나 포트 옵션은 맞지 않는다.
- 프로토콜 자리에는 tcp를 지정하는 -p가 와야 하며 -proc 같은 옵션은 존재하지 않는다.
- 포트 자리에는 목적지 포트를 지정하는 --dport가 와야 하며 단순 -p나 --port로는 목적지 포트를 지정할 수 없다.
- (가) 시스템에 로그인한 모든 사용자가 수행한 프로그램에 대한 정보를 기록
- (나) 사용자의 로그인, 로그아웃 시간과 시스템의 종료 시간, 시작 시간을 기록
- (다) FTP 접속을 기록
사용자가 실행한 프로그램을 기록하는 것은 pacct, 로그인·로그아웃과 시스템 종료·시작을 기록하는 것은 wtmp, FTP 접속을 기록하는 것은 xferlog이다.
각 로그는 기록 대상이 뚜렷이 구분된다.
- 수행한 프로그램 정보를 남기는 설명에는 프로세스 어카운팅 로그(pacct)가 대응한다.
- 로그인·로그아웃과 부팅·종료 시각을 남기는 설명에는 wtmp가 대응한다.
- FTP 접속을 남기는 설명에는 xferlog가 대응한다.
- 버퍼 오버플로우 공격과 유사하며 C언어가 생기면서부터 존재했지만, 발견에 많은 시간이 소요되었다.
- 데이터의 형태와 길이에 대한 불명확한 정의로 인한 공격이다.
C 언어 출력 함수에서 형식 지정자 처리의 불명확성을 악용해 메모리를 읽거나 쓰는 공격은 포맷 스트링(Format String) 공격이다.
버퍼 오버플로우처럼 메모리를 훼손할 수 있어 유사하지만 사용자 입력이 형식 문자열로 그대로 쓰일 때 발생한다.
- 방화벽을 우회하려 외부로 셸 연결을 역방향으로 맺는 기법(Reverse Telnet)은 메모리 취약점 공격이 아니다.
- 가상 머신을 관리하는 소프트웨어 계층(Hypervisor)은 공격 기법 자체가 아니다.
- 침입 후 흔적을 숨기고 재접속 통로를 심는 도구 모음(RootKit)은 형식 문자열 결함과 다르다.
- (가) 시스템의 환경 설정 및 주요 설정 파일을 담고 있다.
- (나) 기본적으로 실행 가능한 파일을 담고 있다.
- (다) 각 사용자의 작업 디렉터리를 담고 있다.
환경·주요 설정 파일을 담는 곳은 /etc, 기본 실행 파일을 담는 곳은 /bin, 각 사용자의 작업 디렉터리를 담는 곳은 /home이다.
디렉터리마다 저장하는 파일의 성격이 구분된다.
- 설정 파일을 담는다는 설명에는 /etc가 대응한다.
- 실행 가능한 파일을 담는다는 설명에는 /bin이 대응한다.
- 사용자별 작업 공간을 담는다는 설명에는 /home이 대응한다.
| 프로토콜 | 로컬주소 | 외부주소 | 상태 |
|---|---|---|---|
| TCP | 0.0.0.0:21 | 0.0.0.0:0 | LISTENING |
| TCP | 0.0.0.0:25 | 0.0.0.0:0 | LISTENING |
| TCP | 0.0.0.0:80 | 0.0.0.0:0 | LISTENING |
결과에서 열린 포트는 21, 25, 80만 LISTENING 상태이므로 각각 FTP, SMTP, HTTP가 구동 중이고, 포트 23을 사용하는 Telnet은 목록에 없어 구동 중인 서비스가 아니다.
표에 나타난 포트는 각각 잘 알려진 서비스에 대응한다.
- 포트 21이 열려 있으므로 FTP는 구동 중이다.
- 포트 25가 열려 있으므로 SMTP는 구동 중이다.
- 포트 80이 열려 있으므로 HTTP는 구동 중이다.
OWASP 2013 모바일 보안 Top 10에는 클라이언트 측 인젝션(Client Side Injection)이 포함되며, 서버 측 인젝션(Server Side Injection)이라는 항목은 존재하지 않으므로 이것이 위협 요소로 옳지 않다.
나머지는 모두 해당 목록에 포함된 모바일 위협이다.
- 안전하지 않은 세션 처리(Improper Session Handling)는 목록에 포함된 항목이다.
- 취약한 권한 및 인증(Poor Authorization and Authentication)은 목록에 포함된 항목이다.
- 안전하지 않은 데이터 저장(Insecure Data Storage)은 목록에 포함된 항목이다.
파일 기본 권한 바탕값 666에서 umask 비트를 꺼 -rw-r-----(640)를 얻으려면 umask 값은 026이어야 한다.
자릿수별로 보면 소유자는 6을 그대로 두므로 umask 0, 그룹은 rw(6)에서 쓰기를 없애 r(4)로 만들어야 하므로 umask 2, 기타는 rw(6)를 모두 없애 0으로 만들어야 하므로 umask 6이다.
세 자리를 모으면 026이 되며 다른 값들은 이 권한을 만들지 못한다.
- (가) Winlogon 서비스에 대한 필요한 인증 프로세스를 담당한다.
- (나) 사용자 세션을 시작하는 기능을 담당한다.
- (다) 사용자가 미리 지정한 시간에 작업을 실행시키는 작업 스케줄을 담당한다.
Winlogon의 인증을 담당하는 것은 lsass.exe, 사용자 세션을 시작하는 것은 smss.exe, 예약된 시간에 작업을 실행하는 스케줄러는 mstask.exe이다.
세 프로세스는 각각 인증, 세션 시작, 작업 스케줄로 역할이 나뉜다.
- 인증 처리를 설명한 항목에는 로컬 보안 인증 프로세스(lsass.exe)가 대응한다.
- 사용자 세션 시작을 설명한 항목에는 세션 관리자(smss.exe)가 대응한다.
- 예약 작업 실행을 설명한 항목에는 작업 스케줄러(mstask.exe)가 대응한다.
스택 메모리 영역에서 실행 권한을 제거해 스택에 올라온 공격 코드가 실행되지 못하게 하는 방어 기법은 Non-Executable Stack(NX)이다.
나머지는 스택을 보호하는 방식이 다르다.
- 복귀 주소 앞에 카나리 값을 두어 변조를 탐지하는 기법(Stack Guard)은 실행 권한 제거와 다르다.
- 복귀 주소를 별도 영역에 보관·비교해 무결성을 검증하는 기법(Stack Shield)은 실행 권한 제거와 다르다.
- 메모리 배치를 무작위화해 주소 예측을 어렵게 하는 기법(ASLR)은 실행 권한 제거와 다르다.
IMAP은 메일을 서버에 그대로 보관하면서 여러 기기에서 접근하게 하는 프로토콜이므로, 원본을 서버에서 삭제한다는 설명이 옳지 않다(받아 온 뒤 서버에서 지우는 방식은 POP3의 기본 동작이다).
나머지 설명은 모두 옳다.
- SMTP가 송신자 메일 서버에서 수신자 메일 서버로 메시지 전송을 담당한다는 설명은 옳다.
- MIME이 SMTP를 확장해 오디오·비디오·응용 프로그램 등 다양한 데이터를 주고받게 한다는 설명은 옳다.
- S/MIME이 전자서명과 암호화로 암호화·인증·무결성·송신처 부인방지를 제공한다는 설명은 옳다.
데이터베이스의 대량 수치 데이터의 무결성과 정확성을 검증하기 위해 쓰는 분석 방법은 컴퓨터 이용 감사 기법(CAATs)이다.
나머지는 수치 데이터 감사와 목적이 다르다.
- 패킷을 가로채 들여다보는 도구(스니퍼)는 네트워크 트래픽 수집용으로 데이터 정확성 감사와 다르다.
- 라우터 트래픽을 그래프로 보여 주는 도구(MRTG)는 회선 사용량 모니터링용이다.
- 네트워크 로그 서버 분석은 접속·이벤트 기록 추적으로 수치 무결성 검증과 다르다.
XSS 공격 유형은 반사형(Reflected), 저장형(Stored), DOM 기반으로 나뉘며, Reflash XSS라는 유형은 존재하지 않으므로 이것이 XSS 유형에 해당하지 않는 것이다.
나머지는 모두 실제 XSS 유형이다.
- 요청에 담긴 스크립트가 응답에 즉시 반사되어 실행되는 유형(Reflected XSS)은 실제 유형이다.
- 문서 객체 모델을 조작해 클라이언트에서 실행되는 유형(DOM 기반 XSS)은 실제 유형이다.
- 악성 스크립트가 서버에 저장되었다가 실행되는 유형(Stored XSS)은 실제 유형이다.