티스토리 뷰

공부/정보보안기사

01. 시스템 기본 학습(2)

김대욱대욱 2020. 11. 20. 01:37

2. UNIX/Linux 기본 학습

(1) 시스템 기본

1) 시스템 접근

(가) 로그인 과정

 ① 계정과 패스워드 입력 시 /etc/passwd 파일의 해당 필드를 비교(유닉스는 별개의 프로그램으로 실행)

 ② 패스워드 확인 후 로그인 프로그램은 쉘이 사용할 변수들을 근거로 초기 환경을 설정

     HOME, SHELL, USER, LOGNAME 변수들은 /etc/passwd 파일에 기록된 정보로 값이 설정

  - HOME : 사용자의 홈 디렉터리 지정

  - SHELL : 로그인 쉘 지정

  - USER 또는 LOGNAME : 사용자의 사용자 계정을 지정

 ③ 모든 절차가 끝나면 로그인 쉘 실행

 ④ 로그인 쉘(/bin/sh, /bin/csh, /bin/ksh 등)은 일반적으로 /etc/passwd 파일의 마지막필드에 정의, 쉘은 사용자가 입력

    한 명령어를 해석하고 처리하는 기능

 

(나) 로그아웃

 ① UNIX 시스템에서 로그아웃 시 명령어 logout, exit, 조합키 [Ctrl+d]

 

2) 사용자 정보

(가) /etc/passwd 파일

 ① UNIX는 시스템 관리자가 사용자 계정을 만들 때마다 정보를 /etc/passwd 파일에 저장

 ② passwd 파일에는 UNIX 시스템을 이용하는데 필요한 기본 정보들이 담겨 있고 구분자 ':'를 이용하여 7개의 필드로

    구분

 ③ 형식

  [user_account]:[user_password]:[user_ID]:[group_ID]:[comment]:[home_directory]:[login_shell]

ex)    root       :          x         :      0    :       0     :    root     :        /root       :/bin/bash

  - user_account : 사용자 계정명

  - x : 사용자 패스워드(x는 shadow 패스워드를 사용한다는 의미)

  - 0 : 사용자 ID(UID)

  - 0 : 기본 그룹 ID(GID)

  - root : 사용자 관련 기타 정보(코멘트)

  - /root : 로그인에 성공한 후에 사용자가 위치할 홈 디렉터리

  - /bin/bash : 로그인 쉘

 ④ 해킹 시 주로 [user_ID], [group_ID]을 0으로 변경 ([user_ID], [group_ID] 값이 0 일 경우 root 권한)

 ⑤ [user_ID], [group_ID]이 0으로 변경 된 계정이 있는지 주기적으로 확인, [login_shell]을 변경하여 로그인시 악성 쉘이

    실행 되게 하는 경우 주의

 

(나) 사용자 확인

 ① UNIX 시스템에 접속 중인 사용자 확인 명령어 id(Identification), 실행 시 UID, GID 출력

 ② 입력 문법

  - 문법 : id [user_account]

  - 예문 : $id /* 명령을 실행한 사용자 확인 */

             $id hacker /* hacker 사용자 확인 */

 

(다) 패스워드 변경

 ① 명령어 passwd

 ② 일반사용자는 자신의 패스워드만, root는 자신 포함 모든 사용자 패스워드 변경 가능

 ③ 입력 문법

  - 문법 : passwd [user_account]

  - 예시 : $passwd /* 명령을 실행한 사용자 본인의 패스워드 변경 */

            $passwd hacker /* root가 hacker의 패스워드 변경 */

 

3) 그룹 정보

(가) 그룹명과 그룹 ID

 ① UNIX 시스템은 자원에 대한 접근 권한 및 보안 등의 관리를 위하여 사용자와 사용자가 소속된 그룹에 대한 식별이

    필요

 ② 사용자 ID와 그룹 ID는 사용자와 그룹을 식별하는 식별자로 시스템에 유일한 정 수 값으로 기술

 

(나) 기본 그룹과 보조 그룹

 ① UNIX 시스템은 자원의 소유주가 소속된 그룹에 별도의 접근권한을 지정, 같은 그룹에 소속된 사용자는 자원에 대하

    여 동일한 접근권한을 갖는다.

 ② UNIX 시스템의 사용자 계정은 하나의 기본 그룹과 복수의 보조 그룹에 소속될 수 있음

 ③ 기본 그룹은 사용자가 자원 생성 시 해당 자원의 소유그룹을 지정하는데 사용되며 /etc/passwd 파일의 4번째 필드에

    명시

 

(다) /etc/group 파일

 ① /etc/group 파일은 현재 시스템에 정의되어 있는 모든 그룹의 정보를 저장(/etc/passwd 파일에 담긴 GID의 정보)

 ② 형식

  [group_name]:[unvariable]:[group_ID]:[user_account_entry_in_group]

  ex)   bin       :       x       :      1      :        root,bin,daemon

  - bin : 그룹명

  - x : 그룹의 암호화된 패스워드(사용안함)

  - 1 : 기본 그룹 ID(GID)로 그룹명을 대신하는 정수형 숫자

  - root, bin, daemon : 소속된 사용자 계정들

 

4) 입출력 재지정(I/O Redirection)

 ① 입출력 대상으로 표준 입력, 표준 출력, 표준 에러를 사용하지 않고 다른 경로인 파일로 재지정하는 것

 ② 키보드(표준 입력)에서 들어오는 입력을 파일에서 받도록 대체하는 것을 입력 재지정(Input Redirection)

 ③ 명령의 실행 결과나 에러 상황을 화면(표준 출력, 표준에러)에 출력하지 않고 파일로 대체하는 것을

     출력 재지정(Out Redirection)

 ④ 입력 문법

  - 문법 : command [0]< file_name (입력 재지정)

            command [1 or 2]>file_name (출력 재지정, 1:표준 출력, 2: 표준에러, 미지정시 표준출력)

  - 예문 : $who -l > who.txt /* > : 출력 재지정(출력 파일 존재 시 새롭게 출력)*/

            $who -l >> who.txt /* >>: 출력 재지정(출력 파일 존재 시 추가하여 출력)*/

 

5) 파이브(Pipe)

 ① 둘 이상의 명령을 함께 묶어 출력의 결과를 다른 프로그램의 입력으로 전환하는 기능

 ② 명령어와 명령어 연결은 "|" 기호를 사용하며, 선행 명령의 출력 데이터가 후행 명령의 입력 데이터로 전달

 ③ 입력 문법

  - 문법 : command1 | command2 [ | command3 ....]

  - 예문 : $ls -l | more /* ls -l 명령 결과를 끊어서 보여줌(more) */

            $ps -ef | grep vsftpd /* ps -ef 명령 결과에서 필터링 기능 수행(grep) */

 

6) 특수문자(Metacharacter)

 ① Shell Metacharacter는 쉘 명령에서 사전에 정의된 특별한 기능이 있는 특수 문자

  - ~ : 홈 디렉터리

  - . : 현재 디렉터리

  - .. : 상위 디렉터리

  - # : 주석

  - $ : 쉘 변수

  - & : 백그라운드 작업

  - * : 문자열 와일드카드

  - ? : 한 문자 와일드카드

  - ; : 쉘 명령 구분자

  - | : 파이프

  - < : 입력 재지정

  - > : 출력 재지정

 

(2) 파일시스템 응용

1) 파일시스템 개요

(가) 개요

① 물리적인 저장장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조를 파일시스템이라 한다.

② 물리적인 디스크는 논리적인 파티션으로 나누어지며, 각 파티션별로 고유한 파일시스템을 생성

    (ex. NTFS, EXT2, EXT3, EXT4)

 

(나) 파일시스템 구성

 ① 부트 블럭(Boot block)

  - 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있는 블럭

 ② 슈퍼 블럭(Super block)

  - 파일 시스템을 관리하기 위한 정보를 담고 있는 블럭

 ③ 아이노드 리스트

 

속성 설명
inode nember 파일시스템 내에서 해당 파일을 식별하기 위한 고유한 식별자
파일타입 일반파일, 디렉터리, 장치파일 등 파일 유형
접근권한 파일에 대한 접근권한
link count 해당 inode를 참조하는 링크 개수(하드링크 카운트)
소유자 파일의 소유자/UID
소유그룹 파일의 소유그룹/GID
파일크기 파일의 크기
MAC Time ①last Modification Time
 - 파일의 내용을 마지막으로 수정한 시간
②last Access Time
 - 파일을 마지막으로 접근한 시간
③last Change Time
 - 파일의 속성을 마지막으로 변경한 시간
 - 파일의 속성은 inode 정보를 의미. 즉 소유자, 접근권한 등의 속성이 변경되면 last Change Time이 변경
Block index Data blocks에 저장되어 있는 파일 내용에 대한 색인 정보

  - 파일들에 대한 속성정보를 담고 있는 inode 구조체 리스트로 이루어여 있다.

  - inode에는 파일명이 없으며 파일명은 디렉터리를 통해 관리된다.

  - 침해 사고가 발생하게 되면 피해 시스템 파일에 대한 무결성 확인을 위한 타임라인 분석을 수행, inode 이 때 구조체

    의 MAC Time을 점검

  - 특정 파일의 inode에 대한 속성정보는 stat(Linux) 명령을 통해 확인 가능

 ④ Data blocks

  - 실제 파일의 내용(데이터)이 저장되는 블럭

  - 고정크기 block들로 이루어져있다.

'공부 > 정보보안기사' 카테고리의 다른 글

01. 시스템 기본 학습(1)  (0) 2020.11.19
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
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