Windows Server 운영체제 사용자 계정 관리 방식
- 워크그룹 방식, 도메인 방식
- 로컬 사용자 계정은 %SystemRoot%System32\config\SAM 에 저장
이벤트 뷰어
이벤트 로그 파일명
%SystemRoot%\system32\winevt\Logs\application.evtx
윈도우 로그 관리 시 '감사 정책'을 가장 먼저 고려해야 한다.
- 감사 정책은 어떤 로그를 남길지 정의한 규칙
- 실행 > secpol.msc
감사 항목 | 설명 |
개체 액세스 | 파일, 디렉터리 등 객체에 대한 접근 성공/실패 여부 |
계정 관리 | 사용자 계정, 그룹의 생성/변경/삭제/암호 설정 및 변경 등의 이벤트 성공/실패 기록 |
계정 로그온 이벤트 | 도메인 계정에 대한 로그온 성공/실패 기록 |
권한 사용 | 권한 사용의 성공/실패 기록 |
디렉터리 서비스 액세스 | AD 개체에 액세스 할 때 이벤트 기록 |
로그온 이벤트 | 로컬 계정에 대한 로그온/오프 성공/실패 기록 |
시스템 이벤트 | 시스템 시작/종료, 보안 로그 이벤트 등 감사 여부 |
정책 변경 | 감사 정책 변경 성공/실패 기록 |
프로세스 추적 | 실행되는 프로세스에 대한 추적정보. 프로세스 생성/종료 등의 이벤트 감사 여부 |
Windows 바이너리 로깅 시스템
- Security, System, Application 로그
널 세션 취약점
- 네트워크의 다른 원격 컴퓨터에 사용자명과 패스워드를 널값으로 접속하는 취약점
사전 대입 공격, 무차별 대입 공격, 혼합 공격
Pass the Hash 공격
- 패스워드 자체를 몰라도 인증용 해시값을 탈취하여 인증하는 기법
미미카츠 - 윈도우 시스템에서 자격증명 정보를 수집할 수 있는 도구
크리덴셜 스터핑(Credential Stuffing) 공격
운영체제 보안
물리적 분리 - 사용자별 별도 장비 사용 제한
논리적 분리 - 운영체제가 프로그램의 접근을 제한
시간적 분리 - 프로세스를 서로 다른 시간에 운영
암호적 분리 - 다른 프로세스가 인식할 수 없도록 암호화
보안 커널 - 주체, 객체 간 모든 접근과 기능 중재하는 보안 절차를 구현한 하드웨어, 펌웨어, 소프트웨어
참조 모니터 - 객체 간의 접근 통제 기능 수행
인터럽트 - 입출력 프로그램에 의한 입출력 단점 개선 방식. 시스템에 예기치 않은 상황이 발생했을 때 운영체제에게 알리고 이를 해결하는 매커니즘
1) CPU가 인터럽트 신호를 받으면
2) 프로그램 카운터의 복귀 주소를 메모리 스택에 저장 후
3) 입출력 전송을 위한 인터럽트 핸들러로 제어를 이동한다. (인터럽트 핸들러를 PC로 옮긴 후 인터럽트 핸들러를 수행)
운영체제의 핵심 - Kernel
시스템 내의 메모리 접근, 프로세스 생성 및 관리 등의 역할
유닉스의 핵심 컴포넌트 - 커널, 쉘, 파일시스템
소스 프로그램을 기계어로 번역하는 과정 - 컴파일
init 프로세스 - 런 레벨에 따른 초기화 작업, 고아 프로세스의 대리모 역할
Bash 쉘 환경에서 표준에러 - 2, 표준출력 - 1
프로세스는 준비, 실행, 대기 상태로 구분
둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유한 자원을 요구하며 무한정 기다리는 현상을 교착 상태라고 함.
PCB는 운영체제가 프로세스에 대한 정보를 관리하기 위해 사용하는 자료구조 테이블로 각 프로세스 생성,완료 될때 함께 생성/제거 됨.
리눅스 프로세스 관리 명령어
top - CPU, MEM, DISK 및 프로세스 현황 파악
pstree - 프로세스의 트리 구조 조회
nice - 프로세스 우선 순위 조절 및 NICE 값 변경
메모리 공간 부족 시 사용되는 디스크 영역 - Swap 영역
페이지 교체 방식
LRU - 가장 오랫동안 미사용
LFU - 가장 적은 빈도
NUR - 최근 미사용
FIFO - 선입선출
유닉스 파일 시스템
부트 블록 - 부팅 정보
슈퍼 블록 - 파일시스템 관리 정보
아이노드 리스트 - 파일 속성 정보. 아이노드 구조체
데이터 블록 - 데이터 저장
저널링 - ext2에서 사용하는 fsck의 시간이 오래 걸리는 단점 보완한 기술
데이터를 쓰기 전에 로그에 남겨 비정상적인 종료가 발생해도 로그에 저장된 데이터로 fsck보다 빠르고 안정적으로 복구
ext4에서는 기본적으로 사용 됨.
버퍼 오버플로우 공격
스택, 힙
스택 버퍼 오버플로우 대응방안
1) 운영체제 커널 업데이트
2) 함수에서 복귀하기 전 스택 무결성 검증
3) 스택에서 쓰기 제한
4) 스택에서 프로그램 실행 금지
5) 가능성이 있는 SUID 제한
ASLR - 프로세스의 주소 공간을 랜덤하게 배치하는 기법
레이스 컨디션 공격 - 시스템 프로그램과 경쟁 상태로 만들어 시스템 프로그램이 갖는 권한으로 파일 접근을 가능하게 하는 기법
포맷 스트링 취약점의 보안 위협
- 프로세스 공격
- 프로세스 메모리 읽기/쓰기
포맷 스트링 공격 - 출력 함수의 서식 문자열을 악용해 실제 메모리 주소 공간을 공격자가 원하는 값으로 변경
심볼릭 링크 파일 생성
ln -s [source] [target]
shadow 파일
$ID - 암호화에 적용된 일방향 해시 알고리즘 식별 ID
리눅스 시스템에서 암호화 강도를 높이기 위해 사용하는 랜덤 값 - salt
리눅스 시스템에서 파일 생성 시 제거할 전급 권한을 명시하는 명령어 - umask
umask 022 설정시
파일: 644, 디렉터리: 755
4000 setuid, 2000 setgid
find / -user root -perm -4000 -print
root 사용자로 SUID 부여된 파일 찾기
TCP Wrapper - 네트워크 서비스에 관련한 트래픽을제어하고 모니터링할 수있는 UNIX 기반 정책
hosts.allow, hosts.deny
TCP Wrapper 실행 경로
/usr/sbin/tcpd
로그 기록 추적
utmp - 현재 로그인한 사용자 상태 기록. 'who' 명령어
wtmp - 로그인/로그아웃 정보 기록. 'last' 명령어
acct - 사용자에 실행된 모든 명령어 기록. 'lastcomm' 명령어
lastlog - 가장 최근에 성공한 로그인 정보를 바이너리 형태로 저장
btmp(loginlog) - 실패한 로그인 시도에 대한 기록 - 'lastb' 명령어
sulog - su 명령어 사용 결과
xferlog - FTP 로그파일
접속 로그 추적
// 모든 계정 접속 확인
lastog
// 해당 계정 최근 접속 확인
lastlog -u 계정명
// 해당 일 수 내 접속 기록 확인
lastlog -t 일수
/var/log/messages - 기본적인 로그 파일
/var/log/secure - 사용자 및 그룹 생성/삭제, 사용자 인증 정보 기록. PAM, su 결과 기록
/var/log/boot.log - 부팅 로그
로그 수준
emerg > alert > crit > err > warning > notice > info > debug
BEEP - syslogd 보안 향상
logrotate, cron
logrotate.conf - 설정 파일
/etc/logrotate.d - 디렉터리
crontab
분 시 일 월 요일 파일
'공부 > 정보보안기사' 카테고리의 다른 글
이메일 보안 (0) | 2024.11.19 |
---|---|
웹 서버 보안 대책 - Apache 기준 (0) | 2024.11.18 |
웹 서버 취약점 (0) | 2024.11.17 |
웹 애플리케이션 취약점 - 개발 보안관리 (0) | 2024.11.16 |
웹 애플리케이션 취약점 - 기타 (0) | 2024.11.16 |