Run The Bridge

2020. 07. 06시스템보안 본문

정보보안산업기사/시스템보안

2020. 07. 06시스템보안

anfrhrl5555 2020. 7. 7. 00:41
728x90
반응형

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.  빠른 검색을 위해서
  2.  파일 복구를 쉽게 하기위해

 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/~ 터미널을 모두 제거한다.

728x90
반응형

'정보보안산업기사 > 시스템보안' 카테고리의 다른 글

2020. 07. 08시스템보안  (0) 2020.07.09
2020. 07. 07시스템보안  (0) 2020.07.08
Comments