일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring MVC
- hacking
- Lord of BOF
- Pwnable.kr
- 정보보안기사
- Spring
- Shell code
- stack overflow
- 네트워크
- Buffer Overflow
- 해킹
- OS
- 웹해킹
- Payload
- wargame
- Operating System
- webhacking.kr
- system hacking
- 정보처리기사 실기
- 운영체제
- 워게임
- PWN
- System
- SQL
- BOF
- LOB
- 정보보안기사 실기
- pwnable
- webhacking
- Spring Framework
- Today
- Total
DongDD's IT
[정보보안기사 실기] 시스템 보안 - 기초 본문
[정보보안기사 실기] 시스템 보안 - 기초
Windows(윈도우)
윈도우 인증
1. 인증 구성 요소
1) LSA(Local Security Authority)
- 모든 계정의 로그인을 검증, 시스템 자원 접근 권한 검사
- 계정명과 SID 매칭, SRM이 생성한 감사 로그에 기록
- NT 보안의 중심 서비스(보안 서브시스템)
2) SAM(Security Account Manager)
- 사용자/그룹 계정 정보에 대한 DB 관리
- 로그인 정보와 SAM 파일의 정보를 비교해 인증 여부 결정
- SAM 파일 : 계정과 암호화된 패스워드를 저장한 DB(C:\Winnt or C:\Windows에 저장)
3) SRM(Service Reference Monitor)
- 인증된 사용자에게 SID 부여
- SID를 기반으로 파일 접근 여부 결정, 이에 대한 감사 메시지 생성
2. Local 인증
- 윈도우 부팅 후 로그인을 시도하면 LSA 서브 시스템이 인증 정보를 받아 NTLM 모듈에 넘기고 SAM이 다시 받아 접근 토큰을 넘겨줌
3. Remote 인증
- 윈도우 부팅 후 로그인을 시도하면 LSA 서브 시스템이 인증 정보를 받아 local인지, domain인지 확인하고 kerberos를 이용해 도메인 컨트롤러(DC)에 인증을 요청함
- 도메인 컨트롤러는 인증 정보를 확인해 사용자에게 접근 토큰을 부여하고 해당 권한으로 프로세스 실행
4. SAM 파일 접근 통제(시스템 취약점 분석 항목)
- SAM 파일은 계정을 관리하고 LSA를 통한 인증을 제공하므로 적절한 접근 통제 필요
- Administrator, System 그룹 외에 접근 제한
- 불필요한 계정 접근 권한 제거
- C:\System32\config에 위치
윈도우 보안 식별자(SID : Security IDentifier)
- 사용자, 그룹에 부여되는 고유 식별 번호
- 접근 토큰에 SID 정보가 있음
- 사용자 프로세스에 접근 토큰 할당됨
- SAM 파일에 SID 정보 저장
S-1-5-21-1234567890-1234567890-1234567890-500
1) S-1 : 윈도우 시스템을 의미
2) 5-21 : 도메인 컨트롤러, 단독 시스템을 구분
3) 1234567890-1234567890-1234567890 : 해당 시스템 고유 식별자
4) 500 : User를 나타냄(500 : Administrator, 501 : guest, 1000 이상 : 일반 user)
- whoami /user : 현재 로그인한 사용자 SID 출력(도메인 접속은 표시 X)
- wmic Useraccount list brief : 사용자 SID 출력
윈도우 인증
- Challenge & Response 방식
- 인증 요청 -> Challenge -> Response -> 인증 성공 순으로 진행
1) 인증 요청
- 사용자가 윈도우에 인증 요청
2) Challenge
- 서버가 랜덤한 Challenge 값 생성해 사용자에게 전달
3) Response
- 사용자가 Challenge 값과 Password 정보를 이용해 Response값을 생성해 서버에 전달
4) 인증 성공
1. 인증 암호 알고리즘
1) LM(LAN Manager) 해시
- Windows 2000,XP의 기본 알고리즘
- 취약한 점이 많아 현재 사용 X
2) NTLM 해시
- LM 해시에 MD4 해시를 추가함
3) NTLMv2 해시
- Windows Vista 이후의 윈도우에 사용되는 기본 인증 프로토콜
- 현재까지 크래킹이 어려움
- LM 인증 수준을 설정할 수 있음(시스템 취약점 분석 항목) : 기본은 Kerberos이고 원하는 프로토콜 선택 가능
Password Cracking
1. Dictionary Attack
- 자주 사용되는 단어들을 미리 저장해놓고 하나씩 대입해 일치하는지 확인하는 방법
2. Brute Force Attack
- 범위를 정하고 범위 내에서 사용 가능한 모든 경우의 수를 대입하는 방법
3. Rainbow Table Attack
- 해시 테이블과 변이 함수 R을 반복해 일치하는 해시 값을 찾는 방법
- Rainbow table : 하나의 패스워드를 특정 변이 함수를 이용해 여러 변이된 패스워드를 생성하고 각 패스워드를 연결해 해시체인 생성
Linux/Unix
로그인/로그아웃
1. 로그인
- 입력한 패스워드와 /etc/passwd 파일 비교
- /etc/passwd에 기록된 HOME, SHELL, USER 값 등을 이용해 초기 쉘 변수들 설정
- 설정 후 로그인 쉘 실행(passwd 파일 끝 부분 - sh, csh, ksh 등)
2. 로그아웃
- logout, exit 명령어, [ctrl+d]를 이용해 로그아웃
사용자 정보
1. /etc/passwd 파일
- 사용자 관련 정보 저장
- ':' 구분자를 이용해 7개의 필드로 구성
account:password:uid:gid:comment:home_dir:login_shell
1) account : 계정 이름
2) password : x -> shadow 패스워드 사용
3) uid,gid = 0 -> root 계정 -> 취약점에 이용할 수 있음
4) home_dir : 쉘 실행 시 초기 홈
5) login_shell : 초기에 실행되는 쉘 종류
2. 사용자 확인
- id 명령어 사용
- id account : account 계정의 정보 확인
- id : 현재 account 정보 확인
3. 패스워드 변경
- passwd 명령어 사용
- passwd account : account 계정의 password 변경(root만 사용 가능)
- passwd : 현재 account의 password 변경
그룹 정보
- 하나의 기본 그룹과 여러 개의 보조 그룹에 소속될 수 있음
- /etc/passwd의 4번째 필드
- /etc/group : 시스템의 모든 그룹 정보
- cat /etc/group
group_name:X:gid:accounts
1) group_name : 그룹 이름
2) X : 그룹의 암호화된 패스워드
3) gid : 그룹 id
4) accounts : 그룹에 속한 계정들
Redirection
- 입출력을 표준 입출력을 사용하지 않고 다른 파일로 지정
- < : input, > : output
- cat aa > a.txt
- ./a.out < b.txt
Pipe
- 동시에 둘 이상의 명령어를 묶어서 사용
- 한 프로그램의 출력 결과를 한 프로그램의 입력으로 사용할 수 있음
- ex) cat aa | grep "search"
Shell Metacharacter
- shell에서 사용할 수 있는 특별한 특수 문자
- # : 주석
- $ : 쉘 변수
- & : background 실행
- * : 문자열 wildcard
ex) f* : f로 시작하는 모든 파일
- ? : 한 문자 wildcard
ex) a?c : a로 시작하고 c로 끝나는 3글자 파일
파일 시스템
- 물리적 저장장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조
- 물리적 저장장치의 각 파티션별로 다른 파일시스템 적용 가능
1. 구성
- 부트 블록(Boot Block) : 운영체제 부팅, 초기화시 사용되는 bootstrap 코드를 담고 있는 블록
- 슈퍼 블록(Super Block) : 해당 파일시스템을 관리하기 위한 정보를 담고 있는 블록
- i-node list : 파일에 대한 여러 정보를 담고 있음(파일명은 없음)
-> 특정 파일의 i-node 정보 확인 : stat 명령어 사용
- 데이터 블록(Data Block) : 실제 파일의 내용이 저장되는 블록, 고정된 크기의 block들로 구성
각종 명령어
1. ln
- 파일에 대한 link를 사용하기 위해 사용하는 명령어
1) Hard link
- 기존 파일과 동일한 i-node를 가지는 파일 생성
- 동일 파일시스템 내에서만 생성 가능
- link 생성 시 link count 증가
2) Symbolic link
- 원본 파일의 경로를 파일 내용으로 하는 파일 생성
- i-node 기반이 아닌 파일 경로 기반
- 원본 파일 삭제 시 dangling point
2. ls
- 디렉토리 내용 출력
- option : -l, -a, -R, -F, -i
-> -l : 리스트 형태로 보여줌
-> -a : 숨김 파일까지 모두 보여줌
-> -R : 하위 디렉토리 내용까지 보여줌
-> -F : 파일 종류를 보여줌
-> -i : inode를 보여줌
3. mkdir, rmdir, cd
1) mkdir
- 디렉토리 생성
- option : -m, -p
-> -m : 새로 만들 디렉토리의 접근 권한 설정
-> -p : 하위 디렉토리까지 한번에 만듬
2) rmdir
- 디렉토리 제거
- option : -p
-> -p : 하위 디렉토리까지 모두 삭제
3) cd
- 디렉토리 이동
4. chmod, chown, chgrp
1) chmod
- 파일 권한 설정
2) chown
- 소유주 변경
3) chgrp
- 소유 그룹 변경
5. umask
- 파일 생성 시 설정되는 권한 설정
- 일반 파일 default : 666, 일반 디렉토리 : 777
- default - umask
6. find
- 시스템 내의 파일을 찾기 위해 사용
- 논리적 연산 -o(or), -a(and) 사용 시 ()를 이용해 사용
-> ex) find \( -perm -4000 -o -perm -2000)
- option : -name -type, -user, -group, -size, -perm, -atime, -ctime, -mtime
-> -name file_name : file_name을 찾음
-> -type : 찾을 파일 종류 설정
-> -user : 찾을 파일의 소유자명
-> -group : 찾을 파일의 그룹명
-> -size : 찾을 파일의 크기
-> -perm : 찾을 파일의 권한
-> -atime : 찾을 파일의 마지막 접근 시간
-> -ctime : 찾을 파일의 마지막 속성 변경 시간
-> -mtime : 찾을 파일의 마지막 내용 변경 시간
프로세스
- 프로세스가 생성되면 프로세스마다 정보를 가지고 있는 PCB(Process Control Block) 생성
- 프로세스가 생성되면 프로세스가 사용하는 파일을 관리하기 위한 FDT(File Descriptor Table) 생성
1. PCB
- Process state
- Process number
- Program counter
- Register
- Memory limits
2. Foreground/Background Process
1) Foreground process
- 일반적으로 실행되는 프로세스로 터미널에 대한 제어권을 가지고 동작하는 프로세스
2) Background Process
- 보이지 않는 곳에서 실행되고 있는 프로세스로 터미널에 대한 제어권없이 동작하는 프로세스
3. ps
- 프로세스 정보를 확인하기 위해 사용하는 명령어
- option : -f, -l, -a, -A, -e
-> -f : 프로세스 정보를 한 줄씩 출력
-> -l : 자세한 정보 출력
-> -a : 최근에 많이 실행된 제어 터미널을 가진 프로세스의 정보 출력
-> -A, -e : 현재 실행중인 모든 프로세스 정보 출력
4. kill
- signal을 보내기 위한 명령어
- kill -sig_num process_id
'자격증 > 정보보안기사' 카테고리의 다른 글
[정보보안 기사] 네트워크 보안 - 보안 (0) | 2018.04.29 |
---|---|
[정보보안기사 실기] 네트워크 보안 - 기초 (0) | 2018.04.25 |
[정보보안기사 실기] 시스템 보안 - 서버 취약점 (0) | 2018.04.24 |
[정보보안기사 실기] 시스템 보안 - UNIX/LINUX (0) | 2018.04.24 |
2018 11회 정보보안기사 필기 합격 후기 (6) | 2018.04.20 |