- User Account Control (사용자 계정 컨트롤)
윈도우 운영체제에서 관리자가 권한 수준을 높이는 것을 허용할 때까지 응용 프로그램들은 표준 사용자 권한으로 제한을 두는 보안기술 - CPU 취약점
1. Meltdown (멜트다운)
영향: 사용자 영역 프로그램에서 운영체제 권한 영역(커널) 메모리를 읽을 수 있음
원인: CPU 마이크로 아키텍처 구조에서 마이크로옵 단위에서 발생하는 경쟁 상태(Race Condition) 이용
연관된 CPU 기술: 추측 실행(Speculative Execution), 비순차적 명령어 처리(Out of Order Execution)
2. Spectre (스펙터)
영향: 다른 유저 프로그램의 메모리를 읽을 수 있음
원인: CPU 명령어에서 발생하는 버그를 악용
연관된 CPU 기술: 추측 실행(Speculative Execution), 분기 예측(Branch Prediction)
※ 멜트다운과 스펙터 공통점
CPU 처리 속도를 향상 시키기 위한 기술들을 도입하면서 발생한 취약점
펌웨어 패치만으로는 대응하는데 한계가 있으며, 취약점 해결 과정에서 CPU 성능 하락이 발생함 - 부채널 공격 (Side Channel Attack)
물리적인 구현 과정의 정보를 기반으로 공격하는 방법
공격 대상에 직접 접근하지 않고, 연관된 다른 정보로 우회하는 공격 방법(ex: 타자 소리를 녹음해서 비밀번호 유추)
멜트다운 및 스펙터도 부채널 공격에 해당 - Null Session Share 취약점
영향: 공격자가 인증 절차를 거치지 않고 사용자 정보를 탈취하거나, 레지스트리에 접근 할 수 있음
대상: Windows OS의 IPC$ (Iner Processing Commnunication)
원인
- Windows OS는 관리 목적을 위한 기본 공유로 ADMIN$, C$, D$, IPC$ 있음
- 레지스트리 수정으로 공유 설정을 간단하게 종료할 수 있으나, IPC$는 임의로 끌 수 없게 되어있음
- IPC$를 통해 원격 접속을 할 때 패스워드를 Null로 설정하여 접속할 수 있음 - 좀비 프로세스
원인
- 부모 프로세스의 오류로 인하여 종료한 자식 프로세스의 종료 절차가 적절히 이루어지지 않음
- 이런 상태를 defunct 라고 표현함
// 리눅스 명령어
// 좀비 프로세스 개수 확인
top -b -n 1 | grep zombie
// 좀비 프로세스 정보 확인
ps -ef | grep defunct
// 좀비 프로세스 종료
ps -ef | grep defunct | awk '{print $3}' | xargs kill -9
- FIDO (Fast IDentity Online)
종류
1. UAF (Universal Authentication Framwork)
- 패스워드를 대체하는 사용자 인증 방식
- 휴대 단말에 저장된 생체 정보를 이용해서 인증
- 추가적인 패스워드 입력이 필요 없음
2. U2F (Universal 2nd Factor)
- 아이디, 비밀번호 인증을 강화하기 위한 별도의 인증을 추가하는 방식
- 별도(두번째) 인증을 위해 USB나 NFC 디바이스의 버튼 클릭 필요(ex: Yubikey) - DEP (Data Execution Prevention)
의미: 실행 방지 메모리 영역에서 코드가 실행되지 않도록 하는 윈도우 운영체제에 포함된 보안 기능
효과: 버퍼 오버플로우, 힙스프레이 등 메모리 기반의 실행 공격을 예방 - 윈도우 인증 요소
1. SRM (Security Reference Monitor)
- 의미: 인증된 사용자에게 SID를 부여
- 용도: SID를 기반으로 파일/디렉터리의 접근 제어를 수행하고, 이에 대한 감사 메시지를 생성
2. LSA (Local Security Authority)
- 의미: 계정명과 SID(Security ID)를 매칭 후, SRM이 생성한 감사 로그를 기록
- 용도: 로컬, 원격 로그인에 대한 검증 및 시스템 자원에 대한 접근 권한 검사
3. SAM (Security Account Manager)
- 의미: 윈도우 운영체제에서 사용자의 비밀번호를 저장하는 데이터베이스 파일
- 용도: 사용자의 로컬 또는 원격 인증에 사용 - 윈도우 Power User (Group 포함)
- 로컬 사용자 계정의 자원을 공유 및 수정가능
- 관리자 권한보다는 한단계 낮지만, 일반 사용자보다는 한단계 높은 제한적인 권한 - inode
- 리눅스 운영체제의 파일시스템에서 파일에 부여하는 고유 번호
- 파일 이름을 제외한 파일에 대한 모든 정보를 가지고 있음
1. 접근 권한
2. 파일 유형
3. 파일 크기
4. 파일 위치
5. 링크 개수
6. 소유자/소유 그룹
7. 최근 파일 수정/접근 정보
8. inode 수정 정보 - 무차별 대입 공격 (Brute Force Attack)
- 암호 해독을 위해 모든 값을 대입하는 것을 의미
- 툴
1. John the ripper
2. Hydra
3. Medusa
4. Cain and abel (ARP Spoofing 에서도 활용) - 윈도우 루트키(Root Key)
- 윈도우 레지스트리 중 가장 상위레벨에 있는 레지스트리 키
1. Master Key
- Hive파일에 저장되어 있는 키
- HKEY_LOCAL_MACHINE(HKLM) : 설치된 하드웨어 정보를 구동시키는데 필요한 정보
- HKEY_USERS(HKU) : 사용자들의 정보
2. Derived Key
- Master Key를 토대로 재구성 되는 키로 메모리에 존재
- HKEY_CLASSES_ROOT(HKCR) : 파일의 각 확장자에 대한 정보와 프로그램 간 연결 정보
- HKEY_CURRENT_USER(HKCU) : 현재 시스템에 로그인하고 있는 사용자와 관련된 시스템 정보
- HKEY_CURRENT_CONFIG(HKCC) : 시스템이 시작할 때 사용하는 하드웨어 프로파일 정보 (ex: 디스플레이, 프린트 정보) - Format String
- printf 처럼 문자열 관련 함수에서 문자열 포맷을 잘못된 형태로 입력하는 경우에 나타나는 버그를 이용한 취약점 - 리눅스 로그
1. wtmp
- 성공한 로그인, 로그아웃 기록
- last 명령어로 사용
2. utmp
- 현재 로그인한 사용자들에 대한 정보
- w, who, finger 명령어로 사용
3. btmp
- 5번이상 로그인에 실패한 경우에 대한 기록
- lastb 명령어로 사용
4. pacct
- 로그인 ~ 로그아웃까지 입력한 명령어 사용 기록
- lastcomm, acctcom 명령어로 사용
5. history
- 사용자가 입력한 명령어 기록
- pacct 와 다르게 파일 시스템의 어느 디렉토리에서 실행되었는지 알 수 있어서 공격자 행위 추적에 용이
6. lastlog
- 사용자별 가장 마지막에 로그인한 시간, 접속 IP등에 대한 기록
- lastlog 명령어로 사용
7. sulog
- Switch User(su) 명령어를 사용한 기록
8. xferlog
- FTP 를 통한 데이터 전송 기록 - 리눅스 파일권한
- 8진수로 표기하며, 최대 네 자리로 각 자리수별 의미가 있음
- 각 자리수별로 {특수권한}/{소유자 권한}/{그룹 권한}/{기타 사용자 권한} 네가지를 의미
- 예제: chmod 0777 file(777 과 동일한 의미) : 모든 사용자/그룹에 대해 해당 파일의 읽기, 쓰기, 실행을 허용함
특수 권한 | 소유자 권한(u, user) | 그룹 권한 (g, group) |
기타 사용자 권한 (o, other) |
||||||||
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
setuid | setgid | sticky bit | r (읽기 허용) | w (쓰기 허용) | x (실행 허용) | r | w | x | r | w | x |
- 8진수를 사용하지 않고, 명령어를 활용할 수도 있음
- 예제: chmod u+x file : 소유자에게 파일의 실행 권한을 부여함
- 예제: chmod o=rw : 기타 사용자에게 읽기, 쓰기 권한 지정
- 명령어: + (권한 추가), - (권한 삭제), = (권한 지정)
- 특수 권한 설명
1. ls -al 처럼 파일 정보를 보는 명령어를 보면 실제로 권한은 아래처럼 표기됨
ex:) -rwxrw-r--
위 예제에서 맨 앞의 - 는 파일 유형을 의미하고, r부터 권한을 의미
소유자는 파일에 대한 모든 권한을 가지고 있음
소속 그룹은 읽고, 쓰기 권한만 있음
이외 사용자는 읽기 권한만 있음을 의미
2. ls -al 파일 정보 명령어에서 특수 권한 SetUID 에 대한 예시
ex:) -rwsr--r--
파일을 실행할 때 파일 소유자의 권한 (UID)을 임시로 사용함을 의미
파일 실행이 종료될 때까지 소유자의 UID 로 실행이 됨
만약 실행 권한이 없는 파일에 SetUID 권한을 부여하면, 대문자 S 로 표기됨
3. ls -al 파일 정보 명령어에서 특수 권한 SetGID 에 대한 예시
ex:) -r--rwsr--
파일을 실행할 때 파일 그룹의 권한(GID)을 임시로 사용함을 의미
SetUID 와 소유자/그룹 차이라는 점만 다르며 이외 기능 동일함
4. ls -al 파일 정보 명령어에서 특수 권한 Sticky Bit 에 대한 예시
ex:) -r--r--rwt
특정 디렉토리를 누구나 자유롭게 사용할 수 있게 사용함을 의미
해당 디렉토리내에서 파일/디렉토리 생성은 누구나 가능하나 삭제는 소유자와 그룹만 가능
만약 실행 권한이 없는 파일에 Sticky Bit 권한을 부여하면, 대문자 T 로 표기됨
- UTM (Unified Threat Management)
- 의미: 방화벽, 침입 탐지·방지 시스템, 백신, 가상사설망 등 다양한 보안 장비를 하나의 장비로 통합한 것 (IPS·IDS와 방화벽이 결합된 형태)
- 한계: 경제성이 있고 보안 관리가 편해지지만 장애 발생시 보안기능에 심각한 영향 - IDS (Intrusion Detection System)
- 네트워크 또는 호스트로의 비정상적인 접근을 탐지하는 시스템
- 종류
1. 지식기반 침입탐지 (Knowledge-based Detection 또는 오용탐지(Misuse Detection))
- 비정상 행위에 대한 패턴을 입력하여 일치하는 패턴을 탐지
- 오탐률은 낮으나 새로운 패턴은 탐지 불가
2. 행위기반 침입탐지 (또는 이상탐지(Anomaly Detection))
- 정상 행위와 비정상 행위를 프로파일링 하여 통계 및 AI를 이용하여 정상/비정상을 구분
- 어느정도 예측을 기반으로 새로운 패턴 감지 가능하나 오탐률이 높음