정보보안기사 필기 2023년9월16일 필기 기출 1과목: 시스템보안
2023년9월16일 필기 기출 풀이
1과목: 시스템보안
2과목: 네트워크보안
3과목: 애플리케이션 보안
4과목: 정보보호일반
5과목: 정보보호관리 및 법규
1과목: 시스템 보안
다음 중 다음 중 리눅스 /etc/passwd 파일에 대한 설명으로 옳은 것은?
1 저장되는 필드 중 첫번째에는 사용자 계정 UID가 있다.
2 사용자 계정과 패스워드가 저장되어 있다
3 사용자 계정 UID 값이 '0'이면 root 이다
4 총 5개의 필드로 이루어져 있다.
틀림: /etc/passwd 파일의 첫 번째 필드는 사용자 계정 이름입니다. UID는 세 번째 필드에 위치합니다13.
틀림: /etc/passwd 파일에는 사용자 계정 정보는 있지만, 실제 패스워드는 저장되어 있지 않습니다. 대신 'x'로 표시되며, 실제 암호화된 패스워드는 /etc/shadow 파일에 저장됩니다15.
맞음: UID 값이 0인 계정은 root 계정입니다. 이는 시스템에서 가장 높은 권한을 가진 관리자 계정을 의미합니다24.
틀림: /etc/passwd 파일은 총 7개의 필드로 구성되어 있습니다. 각 필드는 콜론(:)으로 구분되며, 사용자 계정, 패스워드 표시자, UID, GID, 사용자 정보, 홈 디렉토리, 기본 셸 순으로 구성됩니다1
정답 3번
X
02 리눅스/유닉스 시스템 로그에서 로그인 계정 이름, 로그인한 환경, 로그인한 디바이스, 로그인한 쉘(Shell)의 프로세스 ID, 로그인한 계정의 형식, 로그오프 여부, 시간에 대한 저장 구조를 갖는 로그 파일은?
1 wtmp
2 utmp
3 loginlog
4 sulog
utmp 실시간 로그인 파일(현재) --> who, w, users
wtmp 로그오프 이력(과거) --> last
sulog à su – 명령에 대한 로그
#utmp암기법#wtmp암기법#who암기법#last암기법
유투브(utmp) 누가(who, u, users) 지금(현재 login 정보) 보냐?
wtmp à 과거 à last
정답 2번
X
03 개인정보처리자는 개인정보의 오 · 남용, 분실 · 도난 · 유출 · 위조 · 변조 또는 훼손 등에 대응하기 위해 개인정보처리시스템의 접속기록을 점검하여야 한다. 특히 그 사유를 반드시 확인해야 하는 점검사항은?
1 개인정보 추가가 발견된 경우
2 개인정보 수정이 발견된 경우
3 개인정보 조회가 발견된 경우
4 개인정보 다운로드가 발견된 경우
나머지는 업무중 가능한 것! 하지만, 나머지 하나는 심각함!
정답 4번
O
04 시스템 관리자가 다음 문장에서 설명하는 작업을 위하여 설치할 프로그램은?
유닉스 계열 파일 시스템의 무결성을 점검하는데 높은 신뢰성을 제공하며, 파일의 스냅샷을 저장하고 이를 기준으로 변경된 파일 정보를 관리자에게 보고하여 파일 시스템의 변화를 모니터링한다.
1 Nessus 2 John the ripper 3 Tripwire 4 PAM
#암기법(아래 보기는 모두 실기 기출 문제)
* 내 취약한 데를 쑤시나. 네쓰스(Nessus)à Nessus : 클라이언트/서버 기반의 취약점 도구
* 살벌하데이~프스워~(password) ~ 쪼개지네(crack)~
: Joth the ripper : 패스워드 크랙을 위한 도구
* Tripwire : 유닉스 계열에서 파일 무결성 검사를 위한 도구
* PAM (Pluggable Authentication Modules)란?
PAM(Pluggable Authentication Modules)은 리눅스에서 인증(Authentication)을 담당하는 모듈화된 시스템입니다. 즉, 사용자가 시스템에 접근할 때, 인증을 어떻게 수행할지 결정하는 프레임워크입니다.
🔑 PAM이 인증하는 것들
PAM은 리눅스 시스템에서 사용자의 신원을 확인하는 다양한 인증 방식을 제공합니다. 주요 인증 대상은 다음과 같습니다.
1️⃣ 사용자 로그인 인증
사용자가 터미널, SSH, GUI 등을 통해 로그인할 때
su, sudo, sshd, gdm 등 다양한 프로그램에서 사용됨
2️⃣ 비밀번호 인증
비밀번호 입력 시, /etc/passwd 또는 /etc/shadow를 조회하여 인증
암호 정책(예: 최소 길이, 복잡성 요구) 적용 가능
3️⃣ 생체 인증 및 2FA (Two-Factor Authentication)
OTP(One-Time Password), 지문 인식, 보안 키 등 추가 인증 지원 가능
4️⃣ 서비스 접근 제어
특정 사용자가 SSH, su, sudo, FTP 등에 접근할 수 있는지 확인
/etc/security/access.conf 등과 연계하여 접근 제한 가능
5️⃣ 비밀번호 변경 및 만료 관리
사용자의 비밀번호 변경 요청을 처리 (passwd 명령어)
비밀번호 만료 정책 설정 가능
6️⃣ 스크린세이버 잠금 해제
GUI 환경에서 화면 보호기(Screen Saver) 해제 시 사용
7️⃣ sudo 명령어 인증
특정 사용자가 sudo 명령을 실행할 때 인증 여부 확인PAM : 리눅스 인증 모듈
정답 3번
05 다음 중 포맷 스트링의 점검 도구로 틀린 것은?
1 gdb 2 objdump 3 iptables 4Itrace
* 포맷 스트링 점검 도구
📌 GDB (GNU Debugger)란?
gdb: 리눅스 기본 디버거 도구
✅ GDB (GNU Debugger)는 리눅스에서 동작하는 기본 디버거 도구입니다.
✅ 실행 중인 프로그램을 중단(Breakpoint), 변수 확인, 단계별 실행(Step-by-step), 역추적(Backtrace) 하며 버그를 찾을 수 있는 디버깅 도구입니다.
✅ 주로 C, C++ 프로그램을 디버깅하는 데 사용되지만, 어셈블리, Fortran, Go, Rust 등도 지원 가능합니다.
📌 GDB의 역할 (코드 점검 도구)
GDB는 코드의 논리적 오류, 실행 흐름, 변수 값, 메모리 상태 등을 확인하는 일반적인 디버거입니다. 즉, 특정한 "포맷 스트링 버그 탐지 전용 도구"는 아닙니다.
📌 objdump: object 파일을 덤프하는 도구
✅ objdump는 리눅스에서 오브젝트 파일(실행 파일, 라이브러리, 목적 파일 등)을 분석하고 내용을 출력하는 도구입니다.
✅ 즉, 바이너리 파일의 내부 정보를 사람이 읽을 수 있는 형태로 덤프(dump)하는 역할을 합니다.
✅ 컴파일된 실행 파일이나 라이브러리의 구조, 기계어 코드(어셈블리), 심볼 정보를 확인할 때 사용됩니다.
📌 오브젝트 파일(Object File)이란?
✅ 오브젝트 파일은 컴파일된 코드가 들어 있는 바이너리 파일을 의미합니다.
✅ 오브젝트 파일에는 기계어 코드, 심볼 정보, 재배치 정보(Relocation), 디버깅 정보 등이 포함될 수 있습니다.
✅ 보통 실행 파일을 만들기 전에 생성되며, 여러 개의 오브젝트 파일을 링크하여 최종 실행 파일을 생성합니다.
ltrace: 동적 라이브러리 호출을 추적하는 도구
※ library는 정적이지만, 프로그램 실행중 호출 여부가 결정되는 라이브러리
* 3 iptables : 리눅스 방화벽
(실기 기출)
* 리눅스 커널안에 있는 패킷 필터링 정책을 하는(ip를 막고 여는) 프로그램은?
à Netfilter
※ ufw: ubuntu firewall
* 포맷 스트링 취약점으로 하는 사이버 공격?
à 메모리 열람
à 메모리 변조
à shell code 삽입가능 ※ shell code à 악성코드
(포맷스트링: cs약속)
10 (10진수) à %d
10.1 (실수) à %f
‘a’ (캐릭터) à %c
“a” (스트링) à %s
6f (16진수) à %x
정답 3번
O
06 다음은 무차별 대입 공격에 대한 설명으로 옳은 것은?
1 SQL(Structured Query Language) 인젝션을 통해 단순히 참 · 거짓을 판단할 수 있는 상황
에서 실제 값을 파악하기 위한 공격이다.
2 별도의 인증없이 접근이 가능한 취약점을 이용한 악의적인 행위이다.
3 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미한다.
4 웹 페이지의 입력값을 통해서 SQL 명령어를 주입하여 오동작을 일으키는 해킹 방법이다.
무차별 대입 공격(=무작위 공격)은 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 공격이다.
1 blind sql injection
2 그냥 잘못 된듯
3 Brute force attack
4 sql injection
정답 3번
(아래 그림은 실기 기출)
(그림 설명) hydra라는 프로그램으로 루트 권한으로 패스워드를 입력하는데, pass.txt 파일에 있는 걸 막 입력하는데, 그 대상은 127.0.0.1이고 ssh 에 로그인 하는 공격을 해라
※ credential stuffing: 예컨데 훔쳐낸 네이버 pw를 구글에 넣어더니 되더라.
(실기기출) blind sql injection: sql + 참거짓
O
07 다음 문장에서 설명하는 공격은?
보안이 취약한 IoT 기기들을 해킹하여 악성코드에 감염시켜 좀비 네트워크를 만들고 해커의 명령을 받아 DDoS 공격을 발생시킨다.
1 워너크라이 2 익스플로잇 3 미라이 봇넷 4 제로데이 공격
(기출)
* 미라이(Mirai)는 ARC 프로세서에서 실행되는 스마트 장치를 감염시켜 원격으로 제어되는 봇 또는 맬웨어로 주로 DDoS 공격 (Mirai botnet à sensor 감염 à ddos 공격)
* 워너크라이는 랜섬웨어
* 익스플로잇(Exploit)은 취약점 공격
* 제로데이공격: 패치전 취약점 공격
정답 3번
O
08 다음 중 보안 운영체제(Secure OS)의 특징으로 틀린 것은?
1 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹으로부터 보호하기 위해 보안 기
능이 통합된 보안 커널을 추가로 이식한 운영체제이다.
2 기본적으로 열려있는 취약한 서비스를 모두 차단한다.
3 계정 관리 및 서비스 관리에 있어 좀 더 나은 보안 체계를 가지고 운영될 수 있도록 한다.
4 보안 운영체제는 시스템에서 일어나는 프로세스의 활동이 보안 정책에 위반되지 않는지를 검
사하지만 시스템 성능에는 아무런 영향이 없다.
보안 운영체제는 보안 커널(Security Kernel)을 추가적으로 이식한 운영체제로 취약점을 탐지하여 차단한다. 단, 보안 커널로인하여 기존 운영체제보다는 성능이 떨어진다.
ß옆의 그림처럼 보안커널로 윈도우나 리눅스를 감싸서
사용자가 os에 접근하기 전에 보안 커널을 통과해야 함
à 추가적인 프로세스 진행으로 성능 저하 발생
정답 4번
X
09 다음 중 Nmap 명령의 기본적인 사용법과 그에 대한 설명으로 틀린 것은?
1 nmap -sS [target]: 대상에서 열려있는 포트를 확인하기 위해 TCP SYN 스캔을 사용한다.
2 nmap -sU [target]: 대상에서 열려있는 포트를 확인하기 위해 UDP 스캔을 사용한다.
3 nmap -sO [target]: 대상의 운영체제를 확인하려고 시도한다.
4 nmap -v [target]: 대상에 대한 운영체제, 소프트웨어 버전 및 기타 정보를 확인하려고 시
도한다.
Nmap은 포트 스캐닝 도구로 Nmap의 옵션 "-s"는 스캐닝을 한다는 의미이다. "-sS"는 TCP SYN 스캔, "-sU"는 UDP 스캔을 하는 옵션이다. 그리고 Nmap에서 가장 많이 출제된 -O 옵션은 운영체제를 식별한다.
정답4번
X
10 경량화된 loT(Internet Iof Things) 장치들은 도난 후 기계 분실을 통해 정보 유출과 같은 물리적 공격이 가능하다. 다음 중 공격자가 loT장치에 물리적으로 접근하여 수행할 수 있는 공격으로 틀린 것은?
1 입출력 포트를 이용한 공격
2 역공학을 통한 버스 프르빙(Bus Probing) 공격
3 펌웨어 다운그레이드 공격
4 부채널 공격
• 펌웨어는 하드웨어 칩 내에 소프트웨어가 내장된 것을 의미하고 다운그레이드는 펌웨어 내에 내장된 소프트웨어 버전을 낮추는 것이다. 따라서 펌웨어 다운그레이드는 의도적으로 취약점이 포함되어 있는 펌웨어 버전으로 낮추어 공격하는 것을 의미하는 것으로 물리적 접근이 반드시 필요한 것은 아니다.
ex) 펌웨어 다운그레이드 예: Log4j.jar 파일이 관리자 권한을 갖음 à 패치 진행됨 à 강제 다운그레이드로 관리자 권한 획득 공격
• 역공학을 통한 버스 프르빙(Bus Probing)공격은 물리적으로 마이크로 칩을 획득한 뒤 칩의 패키지를 제거하고 칩 내부의 레이아웃을 통해서 신호를 관찰하거나 데이터를 확인하는 것으로 회로 데이터를 분석하여 내부코드 추출까지 가능하다.
* Probing은 탐색하다, 조사하다, 살펴보다라는 뜻을 가진 영어 단어
정답 3번
O
11 다음 중 TCP SYN Ping을 이용하여 Ping Sweep Filter를 우회하는 방법으로 옳은 것은?
1 nmap -sP [target] -- disable-arp-ping
2 nmap -sn [target] -- disable-arp-ping
3 nmap -sP -PB [target] -- disable-arp-ping
4 nmap -sP -PS [target] -- disable-arp-ping
• Ping sweep는 ICMP 프로토콜을 사용하는 Ping 프로그램으로 내부 시스템 정보를 수집한다.
• "-PS"는 TCP SYN Ping으로 SYN 플래그가 설정된 빈 TCP 패킷을 전송하는 옵션이다.
• "-PA"는 TCP ACK Ping으로 방화벽을 우회하기 위해 ACK 플래그를 설정해서 전송하는 옵션이다.
• nmap은 기본적으로 이더넷 호스트의 ARP 또는 IPv6 Neighbor Discovery 검색을 수행하기 때문에 이를 비활성화하기 위해서 " -- disable-arp-ping"을 입력해야 한다.
정답 4번
X
12 다음 중 모의해킹 등 침투 테스트를 위한 리눅스 운영체제로 틀린 것은?
1 백 트랙(Back track)
2 칼리 리눅스(Kali linux)
3 미고(MeeGo)
4 패롯 리눅스(Parrot linux)
✅ 모의해킹 및 침투 테스트(Penetration Testing) 전용 리눅스 배포판은 다음과 같습니다.
1️⃣ BackTrack → 과거에 유명했던 침투 테스트용 리눅스 (현재 Kali Linux로 대체됨)
2️⃣ Kali Linux → 가장 널리 사용되는 침투 테스트 및 해킹 도구가 포함된 배포판
4️⃣ Parrot Linux → Kali Linux와 유사하지만, 개인정보 보호 및 디지털 포렌식 기능이 강화된 배포판
✅ MeeGo는 안드로이드와 경쟁할 모바일 OS로 개발되었지만, 시장에서 안드로이드에 밀려 2011년에 공식적으로 중단됨.
정담3번
X
13 다음 중 리눅스 passwd에 저장되어 있지 않은 필드는?
1 최근 로그인 정보
2 사용자 계정
3 사용자명
4 사용자 계정 홈 디렉터리
/etc/passwd 파일에는 최근 로그인 정보를 가지고 있지 않다. 다만 문제에서 다소 혼란스러울 수 있는 부분은 '사용자 계정' 과 '사용자명'이다. 본 문제에서는 사용자 계정과 사용자명을 각각 User ID, Login Name의 의미로 출제한 것으로 보인다.
è etc/passwd 에는 이름과 달리 “사용자 계정에 관련된 정보가 들어있다”
è 예컨데, 사용자 계정, 사용자 명, 사용자 계정 홈디렉토리
정답 1번
X
14 다음은 SSI 인젝션 취약점에 대한 설명이다. 괄호 안에 들어갈 내용으로 옳은 것은?
SSI 인젝션 취약점 점검을 위하여 사용자가 입력 가능한 파라미터 값에 <!-- #echo var="DOCUMENT_ROOT" -- >를 삽입하여 전송 후 반환되는 페이지에 사이트의 ( )이(가) 표시되는지 확인한다.
1 홈 디렉터리
2 유저 디렉터리
3 기본 웹 사이트
4 어드민 디렉터리
웹서버에서 "DOCUMENT_ROOT"라는 것은 웹서버의 홈 디렉터리를 의미한다.
Apache 웹서버 httpd.conf 파일
정답 1번
X
15 다음 중 Linux 시스템의 로그인 시 로그인 메시지와 관련된 설정 파일로 옳은 것은?
• /etc/( ㄱ ): telnet 또는 ssh로 shell 접속 시 로그인이 성공되었을 때 보이는 메시지
• /etc/( ㄴ): telnet 또는 ssh로 shell 접속 시 로그인 하기전에 출력되는 메시지
• /etc/( ㄷ): IDC센터에 있는 Real서버에 로컬로 KVM을 붙여서 확인했을 때 출력되는 메시지, 로컬 로그인 시 로그인 전 출력되는 메시지 설정
1 ㄱ: issue.net, ㄴ: issue, ㄷ: motd
2 ㄱ: motd, ㄴ: issue.net, ㄷ: issue
3 ㄱ: issue, ㄴ: issue.net, ㄷ: motd
4 ㄱ: motd, ㄴ: motd, ㄷ: issue.net
리눅스 시스템 배너(경고/안내) 설정 파일의 종류
파일명 설명
issue - 실제 서버에 로컬로 접속 시 로그인하기 전에 출력되는 메시지
issue.net - Telnet으로 접속 시 로그인하기 전에 출력되는 메시지
motd- Telnet, ssh로 성공적으로 로그인하였을 때 출력되는 메시지
à Message of the Day (오늘의 메시지)
#로그인메시지암기법
motd : 로그인 성공 메시지
issue.net: ssh, telnet 원격접속 전
issue: 로컬 콘솔 로그인 전
motd는 로그인 성공하면 message of the day가 기분좋게 나오니까
issue.net은 이름처럼 telnet이나 ssh에서 처럼 원격으로 붙으니까 로그인전
issue는 로컬에서 로그인 전에 나오는 메시지야. net이 없으니까.
정답2번
∆
16 유닉스 환경에서 다음 문장과 같은 기능을 수행하는 로깅 도구는?
syslog.conf 파일 설정에 따라 동작하는 로그 데몬으로 커널 로그, 메시지(message) 로그, secure 로그, 크론 로그, 부팅 로그 및 메일 로그, 네임서버 로그, ftp 로그 등의 로그를 관리할 수 있다.
1 tripwire
2 syslogd
3 ghost
4 glog
syslogd는 syslog.conf 파일의 설정 정보를 읽어서 로그를 기록하는 데몬 프로세스이다. 실제 시험문제에서는 2번 보기에 오타가 발생하여 "sysloged"로 출제되었으나, "syslogd"가 맞는 표기이다.
정답 2번
O
17 다음 중 칼리 리눅스(Kali Linux)에서 기본으로 제공하는 도구인 버프 스위트(Burp Suite)에서 무차별 대입 공격(Brute Force Attack) 및 퍼징(Fuzzing) 공격과 같은 자동화된 사용자 지정 공격을 수행할 수 있는 기능으로 옳은 것은?
1 Scope 2 Intruder 3 Intercept 4 History
Burp Suite는 웹브라우저와 웹서버 사이에서 패킷을 갈취하거나 변조할 수 있는 Web Proxy 도구로, 침투 테스트나 모의 해킹을 통한 웹 취약점의 분석 용도 등으로 사용된다.
(상식) fuzzing – 입력 가능한 모든 조합으로 공격하는 것
(기출문제)
web proxy – 클라이언트 웹서버 통신 중간에 web proxy가 끼어든다. (정보를 갈취하거나 원하는 공격을 웹서버에 할 수 있다)
정답 2번
X
18 다음 문장에서 괄호 안에 들어갈 용어로 옳은 것은?
방화벽(Firewall)은 외부로부터의 불법적인 접근이나 해커의 공격으로부터 내부 네트워크를 방어하기 위해 내부 네트워크와 외부 네트워크 사이의 통로에 설치된다. ( )은/는 인터넷 쪽과 내부 네트워크 쪽에 패킷 필터링 라우터를 설치하고 그 라우터들 사이에 배스천 호스트를 설치하는 구성을 가진다.
1 듀얼-홈드 게이트웨이(Dual-homed gateway)
2 스크린드 서브넷 게이트웨이(Screened subnet gateway)
3 스크린드 호스트 게이트웨이(Screened host gateway)
4 배스천 호스트(Bastion host)
📌 Bastion Host (배스천 호스트)란?
✅ Bastion Host(배스천 호스트)는 보안이 강화된 중간 서버로, 외부에서 내부 네트워크로 접근할 때 사용하는 게이트웨이 역할을 합니다.
✅ 관리자가 SSH, RDP(원격 데스크톱) 등을 이용해 내부 서버에 안전하게 접속하기 위한 보안 장치입니다.
✅ "요새(Bastion)"라는 의미처럼, 네트워크의 최전선에서 보안을 강화하는 역할을 합니다.
#중요개념
Bastion Host를 둠으로써 IP가 노출되지 않는다. 이거 괜찮으네
ex) ssh user@10.0.0.10 # 내부 서버로 직접 접속 (보안 취약)
ssh -J bastion@bastion-host user@10.0.0.10
➡ Bastion을 거쳐야만 내부 서버에 접속 가능 → 직접 노출되지 않음! 🔐
< screened subnet gateway 개념>
사용자 ---> 방화벽 🔥 ---> Bastion Host ---> 방화벽 🔥 ---> 내부 서버 (10.0.0.10) 🔐 안전
ssh -J bastion@bastion-host user@10.0.0.10
스크린드 서브넷 게이트웨이는 내부 네트워크와 외부에 각각 스크리닝 라우터를 설치하고 라우터들 사이에 배스천 호스트를 설치하여 완충지대인 DMZ를 구성, 내부 네트워크와 외부 네트워크를 분리하는 구조이다.
#중요#원리이해
"Screened Subnet Gateway"를 단순히 해석하면?
"Screened" = 방화벽(Firewall)으로 보호됨
"Subnet" = DMZ(별도의 네트워크)
"Gateway" = 외부와 내부 네트워크 사이의 관문
즉, bastion host를 구축해서, 안전하게 스크린되는 별도 네트워크를 만들어서 관문으로 사용
정답 2번
O
19 윈도우에서 관리 목적상 기본적으로 공유되는 폴더 중 Null Session 공유 취약점을 가지고 있는 것은?
1 C$ 2 Print$
3 IPC$ 4 ADMIN$
Null Session은 윈도우가 설치된 네트워크에서 다른 컴퓨터에 사용자명과 패스워드를 입력하지 않고(Nul) IPC$에 접속하는 것으로 NetBIOS의 취약점을 이용한다.
Windows 기본 공유폴더 제거
1) C$, D$, Admin$ 등의 기본 공유 폴더 제거
2) 기본 공유 폴더 제거 후 시스템 재부팅 시 "기본 공유 폴더가 자동으로 공유되는 것"을 방지하기 위해 해당 레지스트
리의 AutoShareServer 값을 "0"으로 제거
3) 일반 공유 폴더 사용 시 공유 폴더 접근 권한에 "Everyone" 제거
4) 일반 공유 폴더 사용 시 접근이 필요한 계정에만 적절한 (읽기, 변경) 권한 설정
5) 일반 공유 폴더 사용 시 공유 폴더 접근을 위한 암호 설정
정답 3번
∆
20 힙 오버플로우 공격에 대한 설명으로 틀린 것은?
1 프로그래머가 malloc()과 같은 함수를 이용한다.
2 힙 영역을 오버플로우시켜 특정 코드를 실행하여 공격한다.
3 버스를 통해 전달되는 중요 정보를 엿보고 가로채는 공격이다.
4 프로그램이 실행되면서 메모리를 동적으로 할당하는 영역을 이용한다.
#힙암기요령#메모리원리#메모리암기요령
📌힙 영역이란 프로그램 내부에서 동적 메모리를 할당(예: malloc(). new()) 시에 사용되는 메모리 영역이다. 힙 영역에서는 하위주소에서 상위 주소로 메모리를 할당하며, 경계 값을 검사하지 않고 메모리를 할당하면 하위 주소의 메모리가 경계를 초과하여 상위 주소를 침범하는 오버플로우가 발생할 수 있다. 이 과정에서 데이터를 덮어씌워 임의의 코드를 실행시키는 공격을할 수 있으며, 그 예시로는 힙 영역에 Shellcode를 삽입하여 실행시키는 Heap Spray 공격이 있다.
정답 3번 (버스는 cpu와 메모리 사이의 정보 연결 통로)
1과목: 시스템보안
2과목: 네트워크보안
3과목: 애플리케이션 보안
4과목: 정보보호일반
5과목: 정보보호관리 및 법규
다음 중 다음 중 리눅스 /etc/passwd 파일에 대한 설명으로 옳은 것은?
1 저장되는 필드 중 첫번째에는 사용자 계정 UID가 있다.
2 사용자 계정과 패스워드가 저장되어 있다
3 사용자 계정 UID 값이 '0'이면 root 이다
4 총 5개의 필드로 이루어져 있다.
틀림: /etc/passwd 파일의 첫 번째 필드는 사용자 계정 이름입니다. UID는 세 번째 필드에 위치합니다13.
틀림: /etc/passwd 파일에는 사용자 계정 정보는 있지만, 실제 패스워드는 저장되어 있지 않습니다. 대신 'x'로 표시되며, 실제 암호화된 패스워드는 /etc/shadow 파일에 저장됩니다15.
맞음: UID 값이 0인 계정은 root 계정입니다. 이는 시스템에서 가장 높은 권한을 가진 관리자 계정을 의미합니다24.
틀림: /etc/passwd 파일은 총 7개의 필드로 구성되어 있습니다. 각 필드는 콜론(:)으로 구분되며, 사용자 계정, 패스워드 표시자, UID, GID, 사용자 정보, 홈 디렉토리, 기본 셸 순으로 구성됩니다1
정답 3번
X
02 리눅스/유닉스 시스템 로그에서 로그인 계정 이름, 로그인한 환경, 로그인한 디바이스, 로그인한 쉘(Shell)의 프로세스 ID, 로그인한 계정의 형식, 로그오프 여부, 시간에 대한 저장 구조를 갖는 로그 파일은?
1 wtmp
2 utmp
3 loginlog
4 sulog
utmp 실시간 로그인 파일(현재) --> who, w, users
wtmp 로그오프 이력(과거) --> last
sulog à su – 명령에 대한 로그
#utmp암기법#wtmp암기법#who암기법#last암기법
유투브(utmp) 누가(who, u, users) 지금(현재 login 정보) 보냐?
wtmp à 과거 à last
정답 2번
X
03 개인정보처리자는 개인정보의 오 · 남용, 분실 · 도난 · 유출 · 위조 · 변조 또는 훼손 등에 대응하기 위해 개인정보처리시스템의 접속기록을 점검하여야 한다. 특히 그 사유를 반드시 확인해야 하는 점검사항은?
1 개인정보 추가가 발견된 경우
2 개인정보 수정이 발견된 경우
3 개인정보 조회가 발견된 경우
4 개인정보 다운로드가 발견된 경우
나머지는 업무중 가능한 것! 하지만, 나머지 하나는 심각함!
정답 4번
O
04 시스템 관리자가 다음 문장에서 설명하는 작업을 위하여 설치할 프로그램은?
유닉스 계열 파일 시스템의 무결성을 점검하는데 높은 신뢰성을 제공하며, 파일의 스냅샷을 저장하고 이를 기준으로 변경된 파일 정보를 관리자에게 보고하여 파일 시스템의 변화를 모니터링한다.
1 Nessus 2 John the ripper 3 Tripwire 4 PAM
#암기법(아래 보기는 모두 실기 기출 문제)
* 내 취약한 데를 쑤시나. 네쓰스(Nessus)à Nessus : 클라이언트/서버 기반의 취약점 도구
* 살벌하데이~프스워~(password) ~ 쪼개지네(crack)~
: Joth the ripper : 패스워드 크랙을 위한 도구
* Tripwire : 유닉스 계열에서 파일 무결성 검사를 위한 도구
* PAM (Pluggable Authentication Modules)란?
PAM(Pluggable Authentication Modules)은 리눅스에서 인증(Authentication)을 담당하는 모듈화된 시스템입니다. 즉, 사용자가 시스템에 접근할 때, 인증을 어떻게 수행할지 결정하는 프레임워크입니다.
🔑 PAM이 인증하는 것들
PAM은 리눅스 시스템에서 사용자의 신원을 확인하는 다양한 인증 방식을 제공합니다. 주요 인증 대상은 다음과 같습니다.
1️⃣ 사용자 로그인 인증
사용자가 터미널, SSH, GUI 등을 통해 로그인할 때
su, sudo, sshd, gdm 등 다양한 프로그램에서 사용됨
2️⃣ 비밀번호 인증
비밀번호 입력 시, /etc/passwd 또는 /etc/shadow를 조회하여 인증
암호 정책(예: 최소 길이, 복잡성 요구) 적용 가능
3️⃣ 생체 인증 및 2FA (Two-Factor Authentication)
OTP(One-Time Password), 지문 인식, 보안 키 등 추가 인증 지원 가능
4️⃣ 서비스 접근 제어
특정 사용자가 SSH, su, sudo, FTP 등에 접근할 수 있는지 확인
/etc/security/access.conf 등과 연계하여 접근 제한 가능
5️⃣ 비밀번호 변경 및 만료 관리
사용자의 비밀번호 변경 요청을 처리 (passwd 명령어)
비밀번호 만료 정책 설정 가능
6️⃣ 스크린세이버 잠금 해제
GUI 환경에서 화면 보호기(Screen Saver) 해제 시 사용
7️⃣ sudo 명령어 인증
특정 사용자가 sudo 명령을 실행할 때 인증 여부 확인PAM : 리눅스 인증 모듈
정답 3번
05 다음 중 포맷 스트링의 점검 도구로 틀린 것은?
1 gdb 2 objdump 3 iptables 4Itrace
* 포맷 스트링 점검 도구
📌 GDB (GNU Debugger)란?
gdb: 리눅스 기본 디버거 도구
✅ GDB (GNU Debugger)는 리눅스에서 동작하는 기본 디버거 도구입니다.
✅ 실행 중인 프로그램을 중단(Breakpoint), 변수 확인, 단계별 실행(Step-by-step), 역추적(Backtrace) 하며 버그를 찾을 수 있는 디버깅 도구입니다.
✅ 주로 C, C++ 프로그램을 디버깅하는 데 사용되지만, 어셈블리, Fortran, Go, Rust 등도 지원 가능합니다.
📌 GDB의 역할 (코드 점검 도구)
GDB는 코드의 논리적 오류, 실행 흐름, 변수 값, 메모리 상태 등을 확인하는 일반적인 디버거입니다. 즉, 특정한 "포맷 스트링 버그 탐지 전용 도구"는 아닙니다.
📌 objdump: object 파일을 덤프하는 도구
✅ objdump는 리눅스에서 오브젝트 파일(실행 파일, 라이브러리, 목적 파일 등)을 분석하고 내용을 출력하는 도구입니다.
✅ 즉, 바이너리 파일의 내부 정보를 사람이 읽을 수 있는 형태로 덤프(dump)하는 역할을 합니다.
✅ 컴파일된 실행 파일이나 라이브러리의 구조, 기계어 코드(어셈블리), 심볼 정보를 확인할 때 사용됩니다.
📌 오브젝트 파일(Object File)이란?
✅ 오브젝트 파일은 컴파일된 코드가 들어 있는 바이너리 파일을 의미합니다.
✅ 오브젝트 파일에는 기계어 코드, 심볼 정보, 재배치 정보(Relocation), 디버깅 정보 등이 포함될 수 있습니다.
✅ 보통 실행 파일을 만들기 전에 생성되며, 여러 개의 오브젝트 파일을 링크하여 최종 실행 파일을 생성합니다.
ltrace: 동적 라이브러리 호출을 추적하는 도구
※ library는 정적이지만, 프로그램 실행중 호출 여부가 결정되는 라이브러리
* 3 iptables : 리눅스 방화벽
(실기 기출)
* 리눅스 커널안에 있는 패킷 필터링 정책을 하는(ip를 막고 여는) 프로그램은?
à Netfilter
※ ufw: ubuntu firewall
* 포맷 스트링 취약점으로 하는 사이버 공격?
à 메모리 열람
à 메모리 변조
à shell code 삽입가능 ※ shell code à 악성코드
(포맷스트링: cs약속)
10 (10진수) à %d
10.1 (실수) à %f
‘a’ (캐릭터) à %c
“a” (스트링) à %s
6f (16진수) à %x
정답 3번
O
06 다음은 무차별 대입 공격에 대한 설명으로 옳은 것은?
1 SQL(Structured Query Language) 인젝션을 통해 단순히 참 · 거짓을 판단할 수 있는 상황
에서 실제 값을 파악하기 위한 공격이다.
2 별도의 인증없이 접근이 가능한 취약점을 이용한 악의적인 행위이다.
3 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미한다.
4 웹 페이지의 입력값을 통해서 SQL 명령어를 주입하여 오동작을 일으키는 해킹 방법이다.
무차별 대입 공격(=무작위 공격)은 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 공격이다.
1 blind sql injection
2 그냥 잘못 된듯
3 Brute force attack
4 sql injection
정답 3번
(아래 그림은 실기 기출)
(그림 설명) hydra라는 프로그램으로 루트 권한으로 패스워드를 입력하는데, pass.txt 파일에 있는 걸 막 입력하는데, 그 대상은 127.0.0.1이고 ssh 에 로그인 하는 공격을 해라
※ credential stuffing: 예컨데 훔쳐낸 네이버 pw를 구글에 넣어더니 되더라.
(실기기출) blind sql injection: sql + 참거짓
O
07 다음 문장에서 설명하는 공격은?
보안이 취약한 IoT 기기들을 해킹하여 악성코드에 감염시켜 좀비 네트워크를 만들고 해커의 명령을 받아 DDoS 공격을 발생시킨다.
1 워너크라이 2 익스플로잇 3 미라이 봇넷 4 제로데이 공격
(기출)
* 미라이(Mirai)는 ARC 프로세서에서 실행되는 스마트 장치를 감염시켜 원격으로 제어되는 봇 또는 맬웨어로 주로 DDoS 공격 (Mirai botnet à sensor 감염 à ddos 공격)
* 워너크라이는 랜섬웨어
* 익스플로잇(Exploit)은 취약점 공격
* 제로데이공격: 패치전 취약점 공격
정답 3번
O
08 다음 중 보안 운영체제(Secure OS)의 특징으로 틀린 것은?
1 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹으로부터 보호하기 위해 보안 기
능이 통합된 보안 커널을 추가로 이식한 운영체제이다.
2 기본적으로 열려있는 취약한 서비스를 모두 차단한다.
3 계정 관리 및 서비스 관리에 있어 좀 더 나은 보안 체계를 가지고 운영될 수 있도록 한다.
4 보안 운영체제는 시스템에서 일어나는 프로세스의 활동이 보안 정책에 위반되지 않는지를 검
사하지만 시스템 성능에는 아무런 영향이 없다.
보안 운영체제는 보안 커널(Security Kernel)을 추가적으로 이식한 운영체제로 취약점을 탐지하여 차단한다. 단, 보안 커널로인하여 기존 운영체제보다는 성능이 떨어진다.
ß옆의 그림처럼 보안커널로 윈도우나 리눅스를 감싸서
사용자가 os에 접근하기 전에 보안 커널을 통과해야 함
à 추가적인 프로세스 진행으로 성능 저하 발생
정답 4번
X
09 다음 중 Nmap 명령의 기본적인 사용법과 그에 대한 설명으로 틀린 것은?
1 nmap -sS [target]: 대상에서 열려있는 포트를 확인하기 위해 TCP SYN 스캔을 사용한다.
2 nmap -sU [target]: 대상에서 열려있는 포트를 확인하기 위해 UDP 스캔을 사용한다.
3 nmap -sO [target]: 대상의 운영체제를 확인하려고 시도한다.
4 nmap -v [target]: 대상에 대한 운영체제, 소프트웨어 버전 및 기타 정보를 확인하려고 시
도한다.
Nmap은 포트 스캐닝 도구로 Nmap의 옵션 "-s"는 스캐닝을 한다는 의미이다. "-sS"는 TCP SYN 스캔, "-sU"는 UDP 스캔을 하는 옵션이다. 그리고 Nmap에서 가장 많이 출제된 -O 옵션은 운영체제를 식별한다.
정답4번
X
10 경량화된 loT(Internet Iof Things) 장치들은 도난 후 기계 분실을 통해 정보 유출과 같은 물리적 공격이 가능하다. 다음 중 공격자가 loT장치에 물리적으로 접근하여 수행할 수 있는 공격으로 틀린 것은?
1 입출력 포트를 이용한 공격
2 역공학을 통한 버스 프르빙(Bus Probing) 공격
3 펌웨어 다운그레이드 공격
4 부채널 공격
• 펌웨어는 하드웨어 칩 내에 소프트웨어가 내장된 것을 의미하고 다운그레이드는 펌웨어 내에 내장된 소프트웨어 버전을 낮추는 것이다. 따라서 펌웨어 다운그레이드는 의도적으로 취약점이 포함되어 있는 펌웨어 버전으로 낮추어 공격하는 것을 의미하는 것으로 물리적 접근이 반드시 필요한 것은 아니다.
ex) 펌웨어 다운그레이드 예: Log4j.jar 파일이 관리자 권한을 갖음 à 패치 진행됨 à 강제 다운그레이드로 관리자 권한 획득 공격
• 역공학을 통한 버스 프르빙(Bus Probing)공격은 물리적으로 마이크로 칩을 획득한 뒤 칩의 패키지를 제거하고 칩 내부의 레이아웃을 통해서 신호를 관찰하거나 데이터를 확인하는 것으로 회로 데이터를 분석하여 내부코드 추출까지 가능하다.
* Probing은 탐색하다, 조사하다, 살펴보다라는 뜻을 가진 영어 단어
정답 3번
O
11 다음 중 TCP SYN Ping을 이용하여 Ping Sweep Filter를 우회하는 방법으로 옳은 것은?
1 nmap -sP [target] -- disable-arp-ping
2 nmap -sn [target] -- disable-arp-ping
3 nmap -sP -PB [target] -- disable-arp-ping
4 nmap -sP -PS [target] -- disable-arp-ping
• Ping sweep는 ICMP 프로토콜을 사용하는 Ping 프로그램으로 내부 시스템 정보를 수집한다.
• "-PS"는 TCP SYN Ping으로 SYN 플래그가 설정된 빈 TCP 패킷을 전송하는 옵션이다.
• "-PA"는 TCP ACK Ping으로 방화벽을 우회하기 위해 ACK 플래그를 설정해서 전송하는 옵션이다.
• nmap은 기본적으로 이더넷 호스트의 ARP 또는 IPv6 Neighbor Discovery 검색을 수행하기 때문에 이를 비활성화하기 위해서 " -- disable-arp-ping"을 입력해야 한다.
정답 4번
X
12 다음 중 모의해킹 등 침투 테스트를 위한 리눅스 운영체제로 틀린 것은?
1 백 트랙(Back track)
2 칼리 리눅스(Kali linux)
3 미고(MeeGo)
4 패롯 리눅스(Parrot linux)
✅ 모의해킹 및 침투 테스트(Penetration Testing) 전용 리눅스 배포판은 다음과 같습니다.
1️⃣ BackTrack → 과거에 유명했던 침투 테스트용 리눅스 (현재 Kali Linux로 대체됨)
2️⃣ Kali Linux → 가장 널리 사용되는 침투 테스트 및 해킹 도구가 포함된 배포판
4️⃣ Parrot Linux → Kali Linux와 유사하지만, 개인정보 보호 및 디지털 포렌식 기능이 강화된 배포판
✅ MeeGo는 안드로이드와 경쟁할 모바일 OS로 개발되었지만, 시장에서 안드로이드에 밀려 2011년에 공식적으로 중단됨.
정담3번
X
13 다음 중 리눅스 passwd에 저장되어 있지 않은 필드는?
1 최근 로그인 정보
2 사용자 계정
3 사용자명
4 사용자 계정 홈 디렉터리
/etc/passwd 파일에는 최근 로그인 정보를 가지고 있지 않다. 다만 문제에서 다소 혼란스러울 수 있는 부분은 '사용자 계정' 과 '사용자명'이다. 본 문제에서는 사용자 계정과 사용자명을 각각 User ID, Login Name의 의미로 출제한 것으로 보인다.
è etc/passwd 에는 이름과 달리 “사용자 계정에 관련된 정보가 들어있다”
è 예컨데, 사용자 계정, 사용자 명, 사용자 계정 홈디렉토리
정답 1번
X
14 다음은 SSI 인젝션 취약점에 대한 설명이다. 괄호 안에 들어갈 내용으로 옳은 것은?
SSI 인젝션 취약점 점검을 위하여 사용자가 입력 가능한 파라미터 값에 <!-- #echo var="DOCUMENT_ROOT" -- >를 삽입하여 전송 후 반환되는 페이지에 사이트의 ( )이(가) 표시되는지 확인한다.
1 홈 디렉터리
2 유저 디렉터리
3 기본 웹 사이트
4 어드민 디렉터리
웹서버에서 "DOCUMENT_ROOT"라는 것은 웹서버의 홈 디렉터리를 의미한다.
Apache 웹서버 httpd.conf 파일
정답 1번
X
15 다음 중 Linux 시스템의 로그인 시 로그인 메시지와 관련된 설정 파일로 옳은 것은?
• /etc/( ㄱ ): telnet 또는 ssh로 shell 접속 시 로그인이 성공되었을 때 보이는 메시지
• /etc/( ㄴ): telnet 또는 ssh로 shell 접속 시 로그인 하기전에 출력되는 메시지
• /etc/( ㄷ): IDC센터에 있는 Real서버에 로컬로 KVM을 붙여서 확인했을 때 출력되는 메시지, 로컬 로그인 시 로그인 전 출력되는 메시지 설정
1 ㄱ: issue.net, ㄴ: issue, ㄷ: motd
2 ㄱ: motd, ㄴ: issue.net, ㄷ: issue
3 ㄱ: issue, ㄴ: issue.net, ㄷ: motd
4 ㄱ: motd, ㄴ: motd, ㄷ: issue.net
리눅스 시스템 배너(경고/안내) 설정 파일의 종류
파일명 설명
issue - 실제 서버에 로컬로 접속 시 로그인하기 전에 출력되는 메시지
issue.net - Telnet으로 접속 시 로그인하기 전에 출력되는 메시지
motd- Telnet, ssh로 성공적으로 로그인하였을 때 출력되는 메시지
à Message of the Day (오늘의 메시지)
#로그인메시지암기법
motd : 로그인 성공 메시지
issue.net: ssh, telnet 원격접속 전
issue: 로컬 콘솔 로그인 전
motd는 로그인 성공하면 message of the day가 기분좋게 나오니까
issue.net은 이름처럼 telnet이나 ssh에서 처럼 원격으로 붙으니까 로그인전
issue는 로컬에서 로그인 전에 나오는 메시지야. net이 없으니까.
정답2번
∆
16 유닉스 환경에서 다음 문장과 같은 기능을 수행하는 로깅 도구는?
syslog.conf 파일 설정에 따라 동작하는 로그 데몬으로 커널 로그, 메시지(message) 로그, secure 로그, 크론 로그, 부팅 로그 및 메일 로그, 네임서버 로그, ftp 로그 등의 로그를 관리할 수 있다.
1 tripwire
2 syslogd
3 ghost
4 glog
syslogd는 syslog.conf 파일의 설정 정보를 읽어서 로그를 기록하는 데몬 프로세스이다. 실제 시험문제에서는 2번 보기에 오타가 발생하여 "sysloged"로 출제되었으나, "syslogd"가 맞는 표기이다.
정답 2번
O
17 다음 중 칼리 리눅스(Kali Linux)에서 기본으로 제공하는 도구인 버프 스위트(Burp Suite)에서 무차별 대입 공격(Brute Force Attack) 및 퍼징(Fuzzing) 공격과 같은 자동화된 사용자 지정 공격을 수행할 수 있는 기능으로 옳은 것은?
1 Scope 2 Intruder 3 Intercept 4 History
Burp Suite는 웹브라우저와 웹서버 사이에서 패킷을 갈취하거나 변조할 수 있는 Web Proxy 도구로, 침투 테스트나 모의 해킹을 통한 웹 취약점의 분석 용도 등으로 사용된다.
(상식) fuzzing – 입력 가능한 모든 조합으로 공격하는 것
(기출문제)
web proxy – 클라이언트 웹서버 통신 중간에 web proxy가 끼어든다. (정보를 갈취하거나 원하는 공격을 웹서버에 할 수 있다)
정답 2번
X
18 다음 문장에서 괄호 안에 들어갈 용어로 옳은 것은?
방화벽(Firewall)은 외부로부터의 불법적인 접근이나 해커의 공격으로부터 내부 네트워크를 방어하기 위해 내부 네트워크와 외부 네트워크 사이의 통로에 설치된다. ( )은/는 인터넷 쪽과 내부 네트워크 쪽에 패킷 필터링 라우터를 설치하고 그 라우터들 사이에 배스천 호스트를 설치하는 구성을 가진다.
1 듀얼-홈드 게이트웨이(Dual-homed gateway)
2 스크린드 서브넷 게이트웨이(Screened subnet gateway)
3 스크린드 호스트 게이트웨이(Screened host gateway)
4 배스천 호스트(Bastion host)
📌 Bastion Host (배스천 호스트)란?
✅ Bastion Host(배스천 호스트)는 보안이 강화된 중간 서버로, 외부에서 내부 네트워크로 접근할 때 사용하는 게이트웨이 역할을 합니다.
✅ 관리자가 SSH, RDP(원격 데스크톱) 등을 이용해 내부 서버에 안전하게 접속하기 위한 보안 장치입니다.
✅ "요새(Bastion)"라는 의미처럼, 네트워크의 최전선에서 보안을 강화하는 역할을 합니다.
#중요개념
Bastion Host를 둠으로써 IP가 노출되지 않는다. 이거 괜찮으네
ex) ssh user@10.0.0.10 # 내부 서버로 직접 접속 (보안 취약)
ssh -J bastion@bastion-host user@10.0.0.10
➡ Bastion을 거쳐야만 내부 서버에 접속 가능 → 직접 노출되지 않음! 🔐
< screened subnet gateway 개념>
사용자 ---> 방화벽 🔥 ---> Bastion Host ---> 방화벽 🔥 ---> 내부 서버 (10.0.0.10) 🔐 안전
ssh -J bastion@bastion-host user@10.0.0.10
스크린드 서브넷 게이트웨이는 내부 네트워크와 외부에 각각 스크리닝 라우터를 설치하고 라우터들 사이에 배스천 호스트를 설치하여 완충지대인 DMZ를 구성, 내부 네트워크와 외부 네트워크를 분리하는 구조이다.
#중요#원리이해
"Screened Subnet Gateway"를 단순히 해석하면?
"Screened" = 방화벽(Firewall)으로 보호됨
"Subnet" = DMZ(별도의 네트워크)
"Gateway" = 외부와 내부 네트워크 사이의 관문
즉, bastion host를 구축해서, 안전하게 스크린되는 별도 네트워크를 만들어서 관문으로 사용
정답 2번
O
19 윈도우에서 관리 목적상 기본적으로 공유되는 폴더 중 Null Session 공유 취약점을 가지고 있는 것은?
1 C$ 2 Print$
3 IPC$ 4 ADMIN$
Null Session은 윈도우가 설치된 네트워크에서 다른 컴퓨터에 사용자명과 패스워드를 입력하지 않고(Nul) IPC$에 접속하는 것으로 NetBIOS의 취약점을 이용한다.
Windows 기본 공유폴더 제거
1) C$, D$, Admin$ 등의 기본 공유 폴더 제거
2) 기본 공유 폴더 제거 후 시스템 재부팅 시 "기본 공유 폴더가 자동으로 공유되는 것"을 방지하기 위해 해당 레지스트
리의 AutoShareServer 값을 "0"으로 제거
3) 일반 공유 폴더 사용 시 공유 폴더 접근 권한에 "Everyone" 제거
4) 일반 공유 폴더 사용 시 접근이 필요한 계정에만 적절한 (읽기, 변경) 권한 설정
5) 일반 공유 폴더 사용 시 공유 폴더 접근을 위한 암호 설정
정답 3번
∆
20 힙 오버플로우 공격에 대한 설명으로 틀린 것은?
1 프로그래머가 malloc()과 같은 함수를 이용한다.
2 힙 영역을 오버플로우시켜 특정 코드를 실행하여 공격한다.
3 버스를 통해 전달되는 중요 정보를 엿보고 가로채는 공격이다.
4 프로그램이 실행되면서 메모리를 동적으로 할당하는 영역을 이용한다.
#힙암기요령#메모리원리#메모리암기요령
📌힙 영역이란 프로그램 내부에서 동적 메모리를 할당(예: malloc(). new()) 시에 사용되는 메모리 영역이다. 힙 영역에서는 하위주소에서 상위 주소로 메모리를 할당하며, 경계 값을 검사하지 않고 메모리를 할당하면 하위 주소의 메모리가 경계를 초과하여 상위 주소를 침범하는 오버플로우가 발생할 수 있다. 이 과정에서 데이터를 덮어씌워 임의의 코드를 실행시키는 공격을할 수 있으며, 그 예시로는 힙 영역에 Shellcode를 삽입하여 실행시키는 Heap Spray 공격이 있다.
정답 3번 (버스는 cpu와 메모리 사이의 정보 연결 통로)
|
필드 번호 |
필드 내용 |
의미 |
|
1 |
root |
사용자 계정 이름 (username) |
|
2 |
x |
암호 필드 (현재는 /etc/shadow에서 관리됨) |
|
3 |
0 |
UID
(User ID, 사용자 ID) |
|
4 |
0 |
GID (Group ID, 그룹 ID) |
|
5 |
root |
사용자 설명 (코멘트 필드) |
|
6 |
/root |
홈 디렉터리 |
|
7 |
/usr/bin/zsh |
로그인 셸 (기본 쉘) |
|
메모리 영역 |
역할 |
예제 |
|
코드(Code) 영역 |
실행할 프로그램 코드 (기계어) 저장 |
함수 본체, 실행 코드 (main(),
printf() 등) |
|
데이터(Data) 영역 |
전역 변수, 정적 변수 저장 |
int
globalVar = 10;, static int x = 5; |
|
힙(Heap) 영역 |
동적 메모리 할당 (malloc() 등) |
int
*ptr = malloc(10 * sizeof(int)); |
|
스택(Stack) 영역 |
지역 변수, 함수 호출 정보 저장 |
함수 내 지역 변수 int
a = 10; |