일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 달리기
- 힐링
- docker
- zabbix
- 중식
- 대구
- 유산소
- 건대입구역
- 10km
- 뚝섬유원지
- Python
- 한강
- Grafana
- 오답노트
- 하체
- Run The Bridge
- 2021
- 맛집
- Podman
- Kubernetes
- 러닝
- DSEC
- 대전
- Shell
- 정보처리기사
- 자전거
- 성수대교
- GitHub
- Linux
- 소모임
- Today
- Total
Run The Bridge
2020. 07. 06시스템보안 본문
1) 윈도우 인증 과정
LSA(Local Security Authority) 서비스 기능
- 모든 계정의 로그인에 대한 검증 및 시스템 자원에 대한 접근 권한을 검사
- 계정명과 SID를 매칭하며 SRM이 생성한 감사 로그를 기록
- NT 보안의 중심 서비스이며 보안 서브시스템이라 불림
SAM(Security Account Manager) 서비스 기능
- 사용자/그룹 계정 정보에 대한 DB를 관리
- 사용자 로그인 정보와 SAM파일에 저장된 사용자 패스워드 정보를 비교해 인증 여부를 결정
- SAM파일은 사용자, 그룹 계정 및 암호화된 패스워드 정보를 저장하고 있는 데이터베이스로 윈도우 설치 디렉터리에 위치하고 있다.
SRM(Security Reference Monitor) 서비스 기능
- 인증된 사용자에게 SID를 부여
- SID를 기반으로 하여 파일이나 디렉터리에 대한 접근을 허용할지 여부를 결정하고 이에 대한 감사 메시지를 생성
SID구조
Administrator: S-1-5-21-4243233100-31....41651....-500
Guest: 501
User: 1000이상
2) 윈도우 인증 구조

CHap(Challenge Authentication protocol, 윈도우) <--> PAP(Password Authentication protocol, 리눅스)
인증 암호 알고리즘
LM해시: 구조적으로 취약한 알고리즘
NTLM해시: LM 해시에 MD4해시가 추가된 형태
NTLMv2해시: 복잡도가 충분해 크래킹이 어렵다.
3) 패스워드 크래킹
1. 사전 공격/사전 대입 공격(Dictionary Attack)
2. 무차별 공격/무작위 대입 공격(Brute Force Attack)
3. 혼합 공격(Hybrid Attack)
4. 레인보우 테이블(Rainbow table)을 이용한 공격
UNIX/LINUX 기본 학습
/etc/passwd 파일
[사용자명] : [패스워드] : [UID] : [GID] : [Comment] : [홈디렉토리] : [로그인 쉘]
/etc/shodow 파일
kiwi99:$1$Tyc0bAE$CGxLH0k1yFWnzMvAHFLFZ.:16559:0:99999:7:::
[사용자명] : [암호화된 패스워드] : [last_change] : [minlife] : [maxlife] : [warn] : [inactive] : [expires]
- last_change: 마지막으로 패스워드를 변경한 날
- minlife: 패스워드 최소 사용기간 설정
- maxlife: 패스워드 최대 사용기간 설정
- warn: 패스워드 만료 이전 경고일수
- inactive: 계정이 잠기기 전까지 비활성 일수로 해당 비활성 기간 동안에 패스워드를 변경하지 않으면 계정이 잠긴다
- expires: 계정 만료일 설정
$Tyc0bAE$ = Salt값
$1 = MD5
$2 = BlowFish
$5 = SHA-256
$6 = SHA-512
*: 패스워드가 잠긴 상태로 패스워드 로그인은 불가하지만 별도의 인증방식을 사용하여 로그인 가능
!!: 패스워드가 잠긴 상태로 모든 로그인이 불가능하다. 기본적으로 사용자계정을 생성한 후 패스워드를 설정하지 않으면 !!로 설정된다
빈값: 패스워드가 설정되지 않은 상태
입출력 재지정(I/O Redirection)
>: 출력 재지정(출력 파일 존재 시 새롭게 출력)
>>: 출력 재지정(출력 파일 존재 시 추가하여 출력)
파이프(PIPE)
ls -l | more --> ls -l의 명령을 끊어서 보여줌
특수문자(Metacharacter)
~ 홈 디렉토리
. 현재 디렉토리
.. 상위 디렉토리
# 주석
$ 쉘 변수
& 백그라운드 작업
* 문자열 와일드카드
? 한 문자 와일드 카드
; 쉘 명령 구분자
< 입력 재지정
> 출력 재지정
파일시스템 구성
ext3 이상 파일시스템에서 저널링을 지원한다.
- 빠른 검색을 위해서
- 파일 복구를 쉽게 하기위해
1. 부트 블럭(Boot block): 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고있는 블럭
2. 슈퍼 블럭(Super block): 해당 파일시스템을 관리하기 위한 정보를 담고 있는 블럭
3. 아이노드 리스트(inode list)
-MAC Time
1. last modification Time: 파일의 내용을 마지막으로 수정한 시간
2. last Access Time: 파일을 마지막으로 접근한 시간
3. last Change Time: 파일의 속성을 마지막으로 변경한 시간(소유자, 접근권한)
1. 파일을 열었다. --> Access Time이 변경
2. 파일의 권한을 변경 --> Change Time이 변경
3. 파일의 내용을 수정, 추가 --> Modification Time이 변경
ex) 파일시스템 전체에서 10일이내에 파일의 내용이 변경된 파일을 찾아서 /tmp 디렉토리에 복사하는 명령어
find / mtime -10 -exec cp {} /tmp \;
ex) SetUID찾는 명령어
find / -perm -4000
ex) SetGID찾는 명령어
find / -perm -2000
하드링크 = 원본하고 inode가 같다.
심볼링 링크 = 원본하고 inode가 다르다. (윈도우의 단축아이콘 느낌)
파일 권한 관리(chmod)
디렉토리
R 권한: 디렉토리 안을 볼 수 있다.
w 권한: 디렉토리에 파일을 생성 or 삭제할 수 있다.
x 권한: 디렉토리안으로 들어갈 수 있다(cd)
파일
R 권한: 파일을 읽는다. (cat, more, ...)
w 권한: 파일 내용을 수정할 수 있다. ( 삭제는 상위 디렉토리에 w가 있어야한다.)
x 권한: 파일을 실행할 수 있다.
소유주 또는 소유그룹 변경(chown/chgrp)
chown 명령으로 소유주와 소유그룹 둘 다 변경가능
chgrp는 소유그룹만 변경가능
접근권한 마스크(Umask)
기본권한에 영향을 준다.
파일 검색(find)
프로세스 간 통신(시그널)
SIGKILL 9: 무시하거나 임의로 처리할 수 없는 시그널이다. 이 시그널을 받은 프로세스는 종료된다.
SIGHUP 1: 터미널 연결이 끊어지는 경우에 프로세스에게 이 시그널이 전달된다.
런 레벨(run level)
0 ~ 6까지 존재
- 0: PROM모드
- 1: 시스템 싱글 유저 모드
- 2: 멀티 유저 모드(NFS 클라이언트 모드)
- 3: 멀티 유저 모드, UNIX기본 Run level
- 4: 사용 안 함
- 5: 시스템 power off 모드
- 6: 시스템 리부팅
프로세스 스케줄 관리
정기적 스케줄 관리(cron)
분 시 일 월 요일 할작업
매 10분마다 = */10
매일 8시 9시 10시마다 = 8-10
매일 1시, 2시, 5시마다 = 1, 2, 5
crontab -e : crontab파일을 편집
-l : crontab파일을 출력
-r : crontab파일을 삭제
/var/log/cron = cron로그
/etc/cron.allow, /etc/cron.deny파일을 설정해준다.
일시적 스케줄 관리(at)
한번 실행 후 끝
OpenSSL의 취약점을 이용한 공격
HeartBleed --> https://blog.alyac.co.kr/76
Netfilter는 iptables에의해 제어되는 데몬
tcpd는 TCP_Wrapper(hosts.allow, deny)
실행전: /usr/sbin/in.telnetd
실행후: /usr/sbin/tcpd
슈퍼데몬[xinetd]
‐only_from = 접속을 허용할 ip주소나 호스트명
‐no_access = 접속을 거부할 ip주소나 호스트명
PAM(장착형 인증 모듈, Pluggable Authentication Modules)
•/lib/security : PAM의 모듈파일이 저장되어 있는 디렉토리
•/etc/pam.d : PAM의 설정파일들로서 인증방법을 결정하고 사용할 모듈을 정의함
Type: PAM모듈 종류
account(계정): 계정관리
auth(인증): 사용자 식별 및 인증관리
password(패스워드): 패스워드를 설정, 갱신, 최소길이 등
session(세션): 인증이 끝난 후 실행하는 내용-
Control: 각 모듈 실행 후 성공 또는 실패에 따른 PAM 라이브러리 행동 결정
requisite: 인증에 실패할 경우 즉시 인증을 거부 --> 실패즉시 알려줌
required: 인증에 실패하더라도 다음 라인의 모듈을 실행하지만 최종 결과는 인증 실패 --> 실패여부 모름
suffcient: 이전에 요청된 모듈이 성공하고, sufficient모듈이 성공하면 뒤에 모듈은 확인하지 않고 바로 성공
optional: 모듈의 성공, 실패결과 모두 무시
module-path: /lib/security에서 해당 모듈을 찾음
module-arguments: 모듈에게 전달되는 인수를 의미
•pam_securetty : root가 사용할 터미널 디바이스명을 설정하여 그 이외에는 접근을 거부하기 위하여 사용되는 모듈
/etc/securetty 파일에 pts/~ 터미널을 모두 제거한다.
'정보보안산업기사 > 시스템보안' 카테고리의 다른 글
2020. 07. 08시스템보안 (0) | 2020.07.09 |
---|---|
2020. 07. 07시스템보안 (0) | 2020.07.08 |