1. 윈도우 시스템
1) 윈도우 인증 시스템
winlogon은 내부적으로 magina.dll 이라는 GINA 프로그램을 구동시키며 검증을 위해 아이디를 LSA에 전달한다.
구성 내용 | 세부 내용 |
Winlogon | - 윈도우 로그인 프로세스 |
GINA(msgina.dll) | - Winlogon은 msgina.dll을 로딩하여 사용자가 입력한 계정과 암호를 LSA에게 전달 |
LSA(lsas.exe) | - 계정과 암호를 검증하기 위해서 NTLM(암호화)모듈을 로딩하고 계정을 검증 - SRM이 작성한 감사 로그를 기록 |
SAM | - 사용자 계정 정보에 저장 - 리눅스의 /etc/shadow 파일과 같은 역할을 수행 |
SRM | - 사용자에게 고유 SID를 부여하고 SID에 권한을 부여 |
2) 윈도우 실행 프로세스
윈도우 운영체제 관련 프로세스는 아래와 같이 존재하며, c:\windows\system32 폴더에 위치한다.
프로세스 | 설명 |
wininit.exe | - 윈도우 시작 프로그램 |
services.exe | - 윈도우 서비스를 관리 |
lsm.exe | - Local Session Manager - 시스템 관리 작업, 주요 함수 실행, 호스트 컴퓨터와 서버의 연결을 관리 |
lsass.exe | - LSASS(Local Security Authority Subsystem Service) - 사용자 로그인 검사, 비밀번호 변경 관리, 액세스 토큰 생성 |
svchost.exe | - 서비스를 관리하기 위한 프로세스 |
conhost.exe | - 키보드, 마우스 입력 허용, 문자 출력, 콘솔 API 등 Shell의 기본 기능을 수행 |
2. 바이러스와 악성코드
컴퓨터 바이러스는 컴퓨터 프로그램의 한 종류로, 사용자 몰래 은닉하여 정상적인 프로그램이나 사용자의 데이터를 파괴하며 자기 스스로 복제해서 증식하는 자기 복제 특성을 지닌 악성 프로그램이다.
1) 세대별 컴퓨터 바이러스
바이러스 유형 | 내용 |
1세대 원시형 바이러스 | - 프로그램 구조가 간단하고 분석이 쉬움 - Jerusalem, Stoned 바이러스 |
2세대 암호화 바이러스 | - 바이러스를 암호화 시킴 - Cascade, Slow 바이러스 |
3세대 은폐형 바이러스 | - 기억장치에 있으면서 감염된 파일의 길이가 증가하지 않는 것처럼 보이게 함 - 감염된 부분을 읽으면 감염되기 전의 내용을 보여주어 은폐 - MacGyver, Brain, 512 바이러스 |
4세대 갑옷형 바이러스 | - 암호화 및 다양한 기법을 사용 - Maltese_Ameoba, Blue Sky, Whale 바이러스 |
5세대 매크로 바이러스 | - 운영체제와 관계없이 응용 프로그램에서 동작하는 바이러스 - Melisa, Laroux, Nimda 바이러스 |
2) 윈도우 DDE취약점을 이용한 공격
DDE는 윈도우에서 Application 간 데이터를 전송하기 위한 프로토콜로, 윈도우 Application 간에 공유 메모리를 사용하여 데이터를 공유한다. (DDE 취약점은 DDE의 정상적인 기능을 악용한 것이다.)
- MS Word 문서 사용 시 자동으로 프로그램 실행 등
3) Shell Code와 Heap Spray
Shell Code는 작은 크기의 코드로 소프트웨어 취약점을 이용하는 짧은 기계어 코드로, 일반적으로 Instruction Shell을 실행시켜서 피해자의 컴퓨터를 공격자가 컨트롤한다.
Heap Spray는 짧은 기계어 코드인 Shell Code를 Heap 영역에 뿌리는 것으로, Heap 영역에 임의적으로 Shell Code를 삽입하여 실행시키는 공격 기법이다.
Cf) ASLR(Address Space Layout Randomization)
- 실행 파일이 메모리에 Load될 때 기본주소는 항상 동일한 주소 사용
- 동일한 메모리 주소를 가지면 공격자가 악용하기 쉬움
- 위 문제를 해결하기 위해 메모리 주소를 항상 동적으로 할당
4) Buffer Overflow
Process가 사용 가능한 메모리 공간을 초과해서 발생되는 공격으로, 메모리 공간에 제한을 두지 않는 API를 사용해서 발생하는 공격이다.
Cf) Buffer Overflow가 취약한 코드
아래 코드는 strcpy() 함수를 사용할 때 길이 제한을 두지 않기때문에 취약하다.
- 대응책: 길이제한을 두는 기능이 있는 함수를 사용, ASLR, DEP
void main(int argc, char* argv[]){ char buffer[10]; strcpy(buffer, argv[1]); printf("test\n", buffer); } |
Cf) Stack, Heap, Data 영역
- Stack: 지역 변수가 저장되며, 함수를 호출하는 경우 되돌아오는 주소인 복귀주소를 가지고 있음
- Heap: 프로그램 실행 중 메모리를 동적으로 할당하는 경우, Heap 영역에 할당
- Data: 전역 변수를 선언하면 전역변수 저장, 정적변수를 선언하면 정적변수 저장, 변수가 선언되면 자동으로 초기화
Cf) Buffer Overrun
- 메모리 공간에 할당된 공간보다 더 큰 데이터를 입력하면 프로그램의 오류를 유발할 수 있음
- 공격자는 프로그램의 오류를 유발하여 시스템 Control 또는 Shell Code 복사하여 악성코드 실행 가능
5) Race Condition
다중 프로세스 환경에서 두개 이상의 프로세스가 동시에 수행될 때 발생되는 비정상적인 상태를 의미한다.
임의의 공유 자원을 여러개의 프로세스가 경쟁하기 때문에 발생한다.
6) APT(Advanced Persistent Threat) 공격
특정 기법 및 조작을 대상으로 다양한 공격 기법을 사용하여 지속적으로 공격을 수행하는 행위를 말한다.
Cf) Binary Diffing
Zeroday Attack 취약점을 찾을 수 있는 기법으로, 자동으로 Malware를 탐지하고 오픈소스 라이선스 준수 여부를 확인
# 참고
해당 글은 '이기적 정보보안기사 필기 1권 이론서'을 읽으며 필요한 부분만 정리한 내용입니다.
'자격증 > 정보보안기사(필기)' 카테고리의 다른 글
정보보안기사(필기) - 네트워크 보안(네트워크 기반 공격 기술) (0) | 2021.07.29 |
---|---|
정보보안기사(필기) - 네트워크 보안(네트워크 기초) (0) | 2021.07.22 |
정보보안기사(필기) - 시스템 보안(리눅스) (0) | 2021.07.20 |
정보보안기사(필기) - 시스템 보안(운영체제) (0) | 2021.07.20 |
정보보안기사(필기) - 시스템 보안(CPU, Memory) (0) | 2021.06.23 |