[기출 문제 정리]
- 출제된 문제를 완벽하게 이해하기
- 연관 문제 정리
[windows 로그 파일 경로]
1. windows에서 로그 파일 저장 경로에 대한 설명이다. 빈칸을 채우시오
[+] 정답
ㄱ. HTTPERR
ㄴ. DHCP
[+] 해설
- windows server에 IIS(인터넷 정보 시스템) 설치 시 아래와 같은 IIS관련 파일이 생성되는 것을 확인할 수 있습니다.
[+] 기출 응용
- windows 로그 파일 경로
- event log : UNIX 시스템의 syslog나 messages 파일에 해당. 이벤트뷰어콘솔(eventvwr.msc)로 확인 가능
- IAS : 원격인증 전화접속 사용자서비스(RADIUS) 프로토콜을 사용하여 원격 Access 인증을 위한 집중식 관리인증 및 계정 제공
- 작업 스케줄러(Task Scheduler) 서비스의 작업 실행 기록을 저장하는 로그 파일
[Linux 함수 호출]
2. 64bit Linux에서 아래와 같은 코드를 실행하였다. 내용을 확인하여 각각 어느 영역에 해당하는지 답하시오.
int main()
{
print ('A', 'B', 'C'):
}
위와 같이 printf를 통해 함수를 호출시 각각의 파라미터 영역은 A( ㄱ ), B( ㄴ ), C(ㄷ) 영역에 저장된다.
[+] 정답
- A : RDI
- B : RSI
- C : RDX
[+] 해설
- 리눅스 64비트 환경에서는 'System V AMD64 ABI' 호출 규약
- 함수 호출 시 RDI, RSI, RDX를 사용하여 레지스터들을 표현
- RDI: "Destination Index"의 약자로, 함수에 전달되는
첫 번째 인자(argument)를 저장하는 레지스터
- RSI: "Source Index"의 약자로, 함수에 전달되는
두 번째 인자를 저장하는 레지스터
- RDX: "Data Register X"의 약자로, 함수에 전달되는
세 번째 인자를 저장하는 레지스터
[지역 바인딩]
3. 바이너리 파일을 실행하면 최종적인 재배치가 이루어진다. 지역 바인딩을 통해 프로그램이 실행되는데, 이 과정을 다음과 같이 설명한다. 빈칸에 답하시오
리눅스에서 (ㄱ) 방식으로 컴파일 할 경우 라이브러리가 프로그램 외부에 위치하는 주소를 가져온다. 외부라이브러리에서 받아오는데 (ㄴ) 테이블에서 실제 주소를 가져오기 위해 (ㄷ )를 참조한다.
[+] 정답
ㄱ. 동적 링킹(Dynamic Linking)
ㄴ. PLT(Procedure Linkage Table)
ㄷ. GOT(Global Offset Table)
[+] 해설
- 지연 바인딩의 핵심은 "PLT(Procedure Linkage Table)"와 "GOT(Global Offset Table)"
- GOT와 PLT는 동적 링크 바이너리에서 공유 라이브러리 함수 호출을 지연 바인딩으로 처리하여 실행 속도 향상 및 라이브러리 업데이트 시에도 프로그램 재컴파일을 최소화하여 유연성을 제공하는 주요 메커니즘 입니다.
- PLT : 외부 라이브러리 함수를 사용할 수 있도록 주소를 연결해주는 역할을 하는 테이블
- GOT : PLT에서 호출하는 resolve 함수를 통해 구한 라이브러리 함수의 절대 주소가 저장되어 있는 테이블 (상대 주소)
- 라이브러리가 MEM에 매핑된 후 라이브러리 함수가 호출되면, 해당 함수의 PLT와 GOT영역에 접근하여 상대주소를 찾아 실행
- 장점 : GOT와 PLT는 지연 바인딩을 통해 실행 시간에 함수 호출을 해결함으로써 실행 속도를 향상시키고, 라이브러리 업데이트 시에도 재컴파일을 최소화하여 유연성을 제공 합니다.
[+] 기출 응용
- ldd 명령어 실행 파일과 관련된 동적 링크 정보를 확인
[+] GOT와 PLT의 취약점
- GOT/PLT 오버플로우 : 라이브러리 함수 호출 시 사용되는 주소나 PLT의 주소를 조작하여 악의적인 코드를 실행 가능
- ROP 공격 : GOT/PLT의 주소를 이용하여 스니펫(ROP가젯)을 조작하여 시스템 권한 취득
[+] GOT와 PLT의 취약점 대응 방안
- ASLR(주소 공간 무작위화): 주소 공간 무작위화를 적용하여 GOT와 PLT의 주소를 예측하기 어렵게 만듭니다.
- NX/DEP(비실행 가능 영역): 실행 가능한 영역을 제한하여 악성 코드의 실행을 방지합니다.
- 입력 검증: 사용자 입력 값을 정확하게 검증하여 오버플로우 공격 방지
- 정적 및 동적 분석: 코드 리뷰와 보안 도구를 사용하여 취약점을 찾고 수정합니다.
- 라이브러리 업데이트: 사용하는 라이브러리를 최신 버전으로 업데이트하여 보안 패치 적용
- 버퍼 오버플로우 방지: 안전한 버퍼 조작 함수를 사용하여 오버플로우를 방지합니다.
- 안전한 버퍼 조작 함수
함수 | 설명 | 사용 방법 |
strcpy_s | 문자열을 버퍼에 안전하게 복사 | strcpy_s(dest, destSize, src) |
strncpy_s | 문자열을 버퍼에 안전하게 복사 (길이 제한) | strncpy_s(dest, destSize, src, count) |
strcat_s | 문자열을 기존 버퍼에 안전하게 연결 | strcat_s(dest, destSize, src) |
strncat_s | 문자열을 기존 버퍼에 안전하게 연결 (길이 제한) | strncat_s(dest, destSize, src, count) |
memcpy_s | 메모리 블록을 다른 위치로 안전하게 복사 | memcpy_s(dest, destSize, src, count) |
memmove_s | 메모리 블록을 다른 위치로 안전하게 이동 | memmove_s(dest, destSize, src, count) |
sprintf_s | 형식화된 문자열을 버퍼에 안전하게 생성 | sprintf_s(dest, destSize, format, ...) |
snprintf_s | 형식화된 문자열을 버퍼에 안전하게 생성 (길이 제한) | snprintf_s(dest, destSize, count, format, ...) |
memset_s | 메모리 블록을 특정 값으로 안전하게 초기화 | memset_s(dest, destSize, value, count) |
strnlen_s | 문자열의 길이를 안전하게 계산 | strnlen_s(str, maxCount) |
wcsncpy_s | 와이드 문자열을 버퍼에 안전하게 복사 | wcsncpy_s(dest, destSize, src, count) |
wcscat_s | 와이드 문자열을 기존 버퍼에 안전하게 연결 | wcscat_s(dest, destSize, src) |
[ISMS-P]
4. 정보보호 및 개인정보보호 관리체계 인증인 ISMS-P는 인증기준이 3개영역에 102개 인증 항목이 존재한다. 3개 영역을 적으시오.
[+] 정답
- 정보보호 정책 및 조직
- 정보자산 관리
- 정보보호 대책
※ 법규 관련하여는 추후 다시 기록 예정
[Linux /var/log/messages로그 ]
5. 리눅스 /var/log/messages 로그 파일의 필드를 5가지로 나눈다면 무엇인가?
Feb 7 11:48:34 toys network
Feb 7 11:48:34 toys network succeed
Feb 7 13:15:34 toys vsftpd(pam_unix)[12345]
authentication failure; ... user : chris
Feb 7 14:12:34 su (pam_unix)[11234]
[+] 정답
1) 날짜 및 시간 정보 (Timestamp)
2) 호스트명 또는 시스템 이름 (Hostname/System Name)
3) ㄱ. 이벤트 또는 메시지 (Event/Message)
4) ㄴ. 프로세스 또는 데몬 정보 (Process/Daemon Info)
5) ㄷ. 추가 정보 (Additional Information):
[+] 해설
1) 날짜 및 시간 정보 (Timestamp): 로그가 발생한 날짜와 시간 정보가 포함 "Feb 7 11:48:34", "Feb 7 13:15:34"
2) 호스트명/시스템 이름 (Hostname/System Name): 로그를 기록한 호스트명이나 시스템 이름이 이 필드에 포함 "toys"
3) 이벤트/메시지 (Event/Message): 로그에 기록된 이벤트, 동작, 메시지 등의 내용이 포함 "network"
4) 프로세스/데몬 (Process/Daemon Info): 로그와 관련된 프로세스,데몬의 이름/PID(프로세스 ID) 정보 "pam_unix)[12345]"
5) 추가 정보 (Additional Information): 로그에 따라 추가적인 정보가 필요한 경우, 해당 정보가 이 필드에 포함될 수 있습니다.
예를 들어 "authentication failure; ... user : chris"와 같이 특정 사용자의 인증 실패 원인이나 상세 정보 등이 포함
'소소한 IT이야기 > 정보보안기사 실기' 카테고리의 다른 글
정보보안기사 실기 - 법규 정리 (feat. 가명처리) (0) | 2023.08.11 |
---|---|
[정보보안기사] 메일 서버 구성 및 보안 설정 (feat. sendmail) (1) | 2023.07.28 |
[정보보안기사] 아파치 주요 설정(feat. apache2.conf) (0) | 2023.07.23 |