일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- slow http
- drdos 대응
- zerowindow
- slowloris
- 해쉬 dos
- 해시 dos
- icmpp drdos
- DHCP
- from sql injection
- 네트워크 대역폭 소진
- ntp drdos
- OFFSET
- slow http post dos
- hash dos
- snmp drdos
- hulk dos
- ruddy
- tcp syn flooding
- tcp drdos
- drdos와 ddos 차이
- backlog queue
- http get flooding
- 헐크 dos
- 핑오브데스
- slow http read dos
- 반사 서버
- slow dos
- udp drdos
- dns drdos
- slow http dos
- Today
- Total
Tech Juny
[01]-04 윈도우 Client 및 Server 보안 본문
1. 윈도우 (Windows)
1) 윈도우 시스템
: 마이크로소프트에서 개발한 GUI 기반의 운영체제
- Plug & Play 기능 : 윈도우의 HAL 계층이 하드웨어를 인식하는 기능
- 윈도우 파일 시스템
요소 | 내용 | |
FAT (Flie Allocation Table) |
FAT16 | - DOS와 윈도우 95이 첫 버전 - 최대 디스크 용량 2G - NTFS, FAT로 변환 가능 |
FAT32 | - 2G 이상 파티션 지원 및 대용량 디스크 지원 - NTFS로 변환 가능, But. FAT로 변환 X |
|
NTFS (NT File System) |
- 파일 암호화 및 파일 레벨 보안 지원 - 디스크 압축 및 파티션 단위로 쿼터 - FAT16이나 FAT32로 변환 불가 - 사용되는 운영체제 : 윈도우 NT, 윈도우 2000, 윈도우 XP |
2) 윈도우 인증 시스템
- winlogon은 내부적으로 msgina.dll이라는 GINA 프로그램을 구동시켜 검증을 위해 ID를 LSA에 전달
- NTLM 값과 SAM에 저장된 NTLM 값을 비교하여 같으면 SRM에게 권한 부여
- 윈도우 인증 프로세스 구성
구성 | 내용 |
winlogon | 윈도우 로그인 프로세스 |
GINA (msgina.dll) | Winlogon은 msgina.dll을 로딩하여 사용자 입력 ID를 LSA에 전달 |
LSA (lsas.exe) | - ID/PW를 검증하기 위해 NTLM(암호화)모듈을 로딩하여 검증 - SRM이 작성한 감사로그 기록 |
SAM | - 사용자 계정정보 해시값 저장 - 리눅스의 /etc/shadow 파일과 같은 역할 |
SRM | 사용자에게 고유 SID 부여 및 SID 권한 부여 |
3) 윈도우 실행 프로세스
- 윈도우 운영체제 관련 프로세스 세부 내역
프로세스 | 내용 |
wininit.exe | 윈도우 시작 프로그램 |
services.exe | 윈도우 서비스 관리 |
lsm.exe | - 시스템 관리 작업, 주요 함수 실행, 호스트 컴퓨터와 서버의 연결 관리 - Local Session Manager |
lsass.exe | - LSASS (Local Security Authority Subsystem Service) - 사용자 로그인 검사, 비밀번호 변경 관리, 엑세스 토큰 생성 - Windows Security Log 기록 |
svchost.exe | 서비스를 관리하기 위한 프로세스 |
conhost.exe | 키보드, 마우스 입력 허용, 문자 출력, 콘솔 API 등 셸의 기본 기능 수행 |
4) 윈도우 사용자 계정
- 내장된 사용자 계정 : 관리자 계정 생성을 안해도 자동으로 생성 되는 계정
- 유니버설 그룹 계정
구분 | 내용 |
Administrators | - 해당 컴퓨터의 모든 관리 권한과 사용 권한을 가짐 - 기본적으로 사용자 계정과 Domain Admins를 포함 |
Users | - 기본적인 권한 X - 컴퓨터에서 생성되는 로컬 사용자 계정 포함 - Domain Users 글로벌 그룹이 구성원으로 포함 |
Guests | 관리자에 의해 허락된 자원가 권한만 사용 |
Backup Operators | Windows 백업을 이용해 모든 도메인 컨트롤러에 있는 파일과 폭터를 백업하고 복수할 수 있는 권한을 가짐 |
Power User | - 로컬 사용자 계정을 생성 및 수정 가능 - 자원 공유를 멈출 수 있음 - 시스템 전체 권한 X, But. 시스템 관리 권한 O |
2. NTFS 시스템
: 기존 FAT 파일 시스템을 개선하고 윈도우 서버용으로 사용하기 위해 개발
- NTFS 파일 시스템의 주요 특징
특징 | 내용 |
USN 저널 | - 저널링 기능 - 파일 시스템이 변경될 때 그 내요을 기록 및 복구 가능 |
ADS (Alternate Data Stream) | - MAC 파일 시스템과 호환성을 위해 만든 공간으로 다중 데이터 스트림 지원 - 데이터 은닉 기술 |
Sparse 파일 | 파일 데이터가 대부분 0일 경우 실제 데이터 기록 없이 정보 기록 |
파일 압축 | LZ77의 변형된 압축 알고리즘 지원 |
VSS (Volme Shadow Copy Service) | 덮어써진 파일과 디렉터리 백업을 유지하여 복구 기능 제공 |
EFS (Encrypting File System) | 대칭키 기법으로 파일 데이터 암호화 |
Quotas | 사용자별 디스크 사용 용량 제한 가능 |
Unicode | 다국어 지원 |
동적 Bad 클러스터 할당 | Bad Sector 발생 클러스터를 자동 재할당 |
대용량 지원 | 2TB 이상 대용량 볼륨 지원 |
- NTFS 파일 시스템
구분 | 내용 |
VBR (Volume Boot Record) | - NTFS 파일의 제일 처음에 존재 - 부트 섹터, 부트코드, NTLDR 위치 등의 정보 보유 - VBR의 Boot Sector는 0번에 위치 |
MFT (Master File Table) | - NTFS의 메타정보, 파일 및 디렉터리 정보 관리 - 파일 위치, 속성, 시간정보, 파일명, 크기 정보 보유 |
Data Area | 데이터 영역 |
3. 공유 폴더 취약점
1) 공유 폴더 사용
- net share : 공유폴더 확인 명령어
- net share [폴더명] /delete : 공유 폴더 삭제
- 공유 폴더 취약점
- 공유폴더를 통해서 악성코드를 유포하거나 시스템 정보를 획득할수 있음
- nmap -O -v 192.168.1.1 -> 포트스캐닝(-O : 운영체제 식별, -v : 상세 출력)
- 445 포트가 오픈되있는지 확인 (445 : 파일 및 프린터 공유프로그램 서비스 실행시 탐색되는 포트)
4. 레지스트리 (Registry)
1) 레지스트리
: 윈도우 운영체제에서 운영체제 및 응용 프로그램 등에 필요한 정보를 저장하고 관리하는 계층형 데이터베이스
- regedit.exe로 실행
- 계층형 데이터베이스
- Key, Value, Data Type, Data
- 루트 키 (Root Key) : 윈도우 레지스트리 키 중에서 가장 상위 레벨의 키
- 루트 키 역할
루트 키 | 설명 |
HKEY_CLASSES_ROOT | 피일의 각 확장자에 대한 정보와 파일과 프로그램 간의 연결에 대한 정보 |
HKEY_LOCAL_MACHINE | 설치된 하드웨어와 소프트웨어 설치 드라이버 설정에 대한 정보 |
HKEY_USERS | 사용자에 대한 정보 |
HKEY_CURRENT_CONFIG | 디스플래이 설정과 프린트 설정에 관한 정보 |
2) 하이브(Hive) 파일
: 레지스트 정보를 가지고 있는 물리적인 파일
- 윈도우 레지스트 프로그램 (regedit.exe)는 하이브 파일을 읽어서 보여주는것으로 레지스트의 모든 정보는 하이브 파일이 보유
- 커널에 의해서 관리됨, 일반적인 에디터로 삭제 불가능
- C:\windows\system32\config 에 하이브 파일 존재
- 하이브 파일 (Hive File)
하이브 파일 | 내용 |
SYSTEM | 시스템 부팅에 필요한 시스템 전역 구성 정보 |
SOFTWARE | - 시스템 부팅에 필요 없는 시스템 전역 구성정보 - 소프트웨어 정보 |
SECURITY | - 시스템 보안정책과 권한 할당 정보 - 시스템 계정만 접근가능 |
SAM | - 로컬 계정의 정보와 그룹정보 - 시스템 계정만 접근 가능 |
HARDWARE | 시스템 하드위ㅔ어 디스크립션과 모든 하드웨어 장치 드라이버 매핑 정보 |
COMPONETS | 설치된 컴포넌트 관련 정보 |
BCD00000000 | - 부팅 환경 데이터 관리 - 과거 윈도우 XP의 Boot.ini의 대체 품 |
3) 주요 윈도우 레지스트리 키
- 윈도우 버전 정보를 가지고 있는 레지스트리 키
- HKLM\SOFTWARE\Microsoft\windows NT\CurrentVersion
- 컴퓨터 이름을 가지고 있는 레지스트리 키
- HKLM\SYSTEM\ControlSet00X\Control\ComputerName\ActiveComputerName
- 윈도우 시작 프로그램 레지스트리 키
- 악성코드에 감염되면 시작프로그램에 등록을 시도하기 때문에 중요함
- autoruns 프로그램으로 확인 가능
- 악성코드가 시작 프로그램 레지스트리 키를 이용해 공격하는 방법
- 시작 프로그램의 백신 프로그램 미가동
- 악성코드를 시작프로그램에 등록하여 시작될 때마다 악성코드 실행
- 단순 등록 뿐만아니라 여러개로 나누어 은닉 등록 가능
- 시작프로그램 레지스트리 키
구분 | 내용 |
Run | 매번 시작 될때 마다 실행 |
RunOnce | 시작 할때 한번 |
RunServices | 서비스에 대한 시작프로그램 |
- 최근 실행한 명령어 확인
- RunMRU 키 : 최근 실행한 명령어 정보 보유
- HKU\{USER}\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU 에 존제
5. 이벤트 로그 및 웹 아티팩트 분석 (Web Artifact Analysis)
1) 윈도우 이벤트 로그 (Event Log)
- 이벤트 뷰어 (Event Viewer) 관리 도구로 확인
- *.evt 확장자로 로그파일 저장
- 보안 관리자는 이벤트 로그파일 크기 변경 가능
- 윈도우 로그 종류
윈도우 로그 유형 | 내용 |
응용 프로그램 로그 | 프로그램 개발자에 의해 이벤트를 정의하고 분류하여 응용 프로그램에 기록할 이벤트들이 수록된 자료 |
보안 로그 | - 관리자에 의해서 보안 로그에 기록된 이벤트 유형을 기반 - 로그온 횟수, 로그인 오류 정보, 파일 생성 및 다른 개체 생성, 파일 열기, 파일 삭제 등 리소스 사용관련 이벤트 기록 |
시스템 로그 | 윈도우 시스템에서 사전에 정한 윈도우 시스템 구성요소에서 기록한 이벤트 자료 |
2) 웹 아티팩트 분석 (Web Artifact Analysis)
: 사용자가 웹 사이트를 이용한 흔적을 분석
- 웹 아티팩트 분석 대상
구분 | 내용 |
웹브라우저 캐시 | 다운로드 받은 이미지 텍스트 파일, 아이콘 등 |
히스토리 분석 | 웹 사이트 접속 정보(방문 URL, 방문시간, 방문 횟수, 사이트 제목)를 월별, 일별 방문기록 저장 |
쿠키 정보 | 방문시 자동 저당 되는 저장 공간으로 호스트 정보, 경로, 수정시간, 만료시간 등의 값이 있음 |
- 인터넷 익스플로어에 대한 아티팩트 수집 데이터
- Windows XP, 7 : index.dat
- Windows 10 : WebCachev01.dat or WebCacheV24.dat
6. 바이러스와 악성코드
1) 세대별 컴퓨터 바이러스
세대별 바이러스 | 설명 |
1세대 원시형 바이러스 (Primitive Virus) |
- 단순 분석이 쉬움 - 고정된 크기 - 주기억장치에 상주하여 부트 영영 감염 - Ex) 돌(Stonde) 바이러스, 예루살렘(Jerusalem) 바이러스 |
2세대 암호화 바이러스 (Encryption Virus) |
- 컴푸터 프로그램 일부 또는 전체를 암호화 시켜서 백신으로 감염 탐지 어렵게함 - 단, 암호화 방식이 일정해서 복호화 방식도 일정 - Ex) 폭포(Cascade) 바이러스, 느림보(Slow) 바이러스 |
3세대 은폐형 바이러스 (Stealth Virus) |
- 스스로 은폐하는 바이러스 - 다른 실행파일에 기생하여 용량 크기를 증가 시킴 - 파일 크기가 변경 되기 때문에 발견이 쉬움 - Ex) 맥가이버 (MacGyver) 바이러스, 브레인(Brain) 바이러스, 512 바이러스 |
4세대 갑옷형 바이러스 (Armor Virus) |
- 다양한 암호화 기법을 사용하여 은폐 -> 백신 진단 어려움 - 전문 프로그래머에 의해서 개발 - 진단이나 치료가 불가능은 아님 - Ex) 다형성(Polymorphic) 바이러스, 자체 변형(Self-encryption) 바이러스, Blue Sky, Whale |
5세대 매크로 바이러스 (Macro Virus) |
- 엑셀이나 워드처럼 매크로 명령을 사용하는 프로그램을 주로 감염 - 전문 프로그래머가 아니여도 쉽게 만들고 배포 가능 - Ex) Melisa, Laroux, Nimda 바이러스 |
- 감염 대상에 따른 바이러스
- 부트 바이러스 : 부트 섹터에 영향을 주는 바이러스
- Ex) 브레인 바이러스, 미켈란젤로 (Michelangelo) 바이러스 - 파일 바이러스 : 사용자가 사용하는 파일에 감염되는 바이러스
- Ex) 기생형 바이러스, 겹쳐쓰기형 바이러스, 산란형 바이러스 , 연결형 바이러스 - 부트 및 파일 바이러스 : 부트 섹터와 파일 영역 모두 감염시키는 바이러스
- Ex) 게킬라, 나타스, 침입자 바이러스
2) 윈도우 DDE 취약점 공격
- 윈도우 DDE (Dynamic Data Exchange)
: 윈도우에서 애플리케이션 간 데이터를 전송하기 위한 프로토콜
- 취약점은 DDE의 정상적인 기능을 악용한 것으로 MS Word의 경우 문서를 열때 자동 연결 업데이트를 해제하면 방어 가능
- Word 같은 문서를 저장하고 열때 자동으로 프로그램을 실행 시켜 공격
- But. MS Word 옵션에서 "문서를 열때 자동 연결 업데이트" 옵션을 체크 해제하여 방어 가능
3) Shellcode와 Heap Spray
- Shellcode
: 짧은 기계어 코드
- 어셈블리어로 작성 되며 기계어로 번역되어 사용
- Heap Spray
: Shellcode를 Heap 영역에 임의적으로 삽입 후 실행시켜 공격
# ASLR (Address Space Layout Randomization) : 실행 파일이 메모리에 로드될때 항상 동일한 주소를 갖게되면 공격에 취약하여 해당 주소에 악성코드 삽입이 쉬움
-> 윈도우 Vista부터는 메모리의 주소를 항상 동적으로 실행
- 리눅스에서도 기본 주소를 동적으로 할당 가능
- sysctl -w kernel.ramdomize_va_space=0 -> 고정 주소
- sysctl -w kernel.ramdomize_va_space=1 -> 동적 주소
4. 버퍼 오버플로우 (Buffer Overflow)
: 프로세스가 사용 가능한 메모리 공간을 초과해서 발생되는 보안 취약점
- C나 C++로 개발 할때 공간에 제한을 두지 않는 API를 사용해서 발생
- 프로세스가 사용하는 메모리 공간은 Stack, Heap, Data, Text 4개로 나눔
- 스텍(Stack) 영역
- 프로그램 함수 내에서 사용하는 지역변수가 저장
- 함수를 호출하는 경우 되돌아오는 복귀주소를 보유
- 함수 인자 값 보유
- 힙(Heap) 영역
- 프로그램 실행 중 메모리를 동적으로 할달하는 경우
- 포인터(*) 변수 선언
- malloc( ) 함수 선언
- free( ) 함수를 통해 할당 해제
- 데이터(Data) 영역
- 전역변수 선언
- 정적변수 선언
- 데이터 영역에 변수가 선언되면 자동 초기화
- 텍스트(Text) 영역
- 읽기만 가능한(Read Only) 메모리 영역
- 프로그램 코드 저장
- 스텍 버퍼오버플로우 공격 (Stack Buffer Overflow Attack)
: 스텍에 저당되어 있는 복귀주소가 지역변수에 의해서 침범 당하는 공격
- 길이 제한 함수를 사용하여 예방 [ strncat( ), strncpy( ), fgets( ), fscanf( ), vfscanf( ), snprintf( ), vsnprintf( ) ]
- 버퍼 오버런 (Buffer Overrun)
: 메모리 공간에 할당된 공간보다 더큰 데이터를 입력하여 오류 유발하여 공격
- 힙 버퍼 오버플로우 공격 (Heap buffer Overflow Attack)
: 힙 영역은 하위 주소에서 상위 주소로 메모리를 할당한다 이때 경계값을 검사하지 않고 메모리를 사용하면 경계를 초과하는 취약점으로 공격
- 힙 영역은 동적으로 할당되는 공간이 저장
5. 경쟁조건 (Race Condition)
: 다중 프로세스 환경에서 두 개 이상의 프로세스가 동시에 수행 될때 발생되는 비정상적인 상태
- 임의의 공유자원을 여러 개의 프로세스가 경쟁하여 발생
- setuid와 심볼링 링그를 사용하여 백도어(Backdoor) 프로그램으로 공격
6. APT 공격
: 특정 기법 및 조직을 대상으로 가양한 공격 기법을 사용하여 지속적으로 공격을 수행하는 행위
- 사회관계망 서비스를 사용하여 정보수집, 악성코드 배포 등 지속적을 공격 수행
구분 | 내용 |
Zero Day Attack | 소프트웨어 패치 전에 취약점을 이용한 공격 |
Mail APT | 악성코드를 메일에 첨부하여 발송하여 정보 획득 |
백도어 APT | 포적에 침투 후 백도어 설치 및 재 침입 유입경로 확보 |
# 바이너리 디핑 (Binary Diffing) : Zero Attack 취약점을 찾을 수 있는 기법
- APT 공격 단계
① 침투 -> ② 탐색 -> ③ 수집/공격 -> ④ 유출
'정보보안기사 필기' 카테고리의 다른 글
[02]-06 네트워크 활용(TCP/IP) (0) | 2021.02.17 |
---|---|
[02]-05 네트워크 일반 (0) | 2021.02.16 |
[01]-03 리눅스 서버 보안 (0) | 2021.02.13 |
[01]-01 운영체제 이해 및 관리 (0) | 2021.02.02 |