Post

정보보안기사 PART01 시스템

정보보안기사 PART01 시스템

SECTION1. 시스템 기본 학습

1. 윈도우 기본 학습

2. UNIX / Linux 기본 학습

  • 아래 /etc/passwd 파일 필드? 29p
    1
    
    root:x:0:0:root:/root:/bin/bash # 계정:패스워드:UID:GID:사용자정보:홈디렉토리:쉘
    
  • 사용자 확인 명령어? 30

    id <사용자명>, whoami

  • 패스워드 변경 명령어? 30

    passwd

  • /etc/group 파일? 31

    그룹명:패스워드:GID:그룹멤버

  • 파일시스템 구성? 34

    부트블록, 슈퍼블록, 아이노드, 데이터블록

  • 아이노드 구조? 34

    inode 번호, 파일타입, 접근권한, link 수, 소유자, 소유그룹, 파일크기, MAC 시간, Block index

  • 하드링크 vs 심볼릭링크? 35

    같은 inode를 공유 vs 다른 inode 사용 (원본 파일의 경로 정보만 저장)
    원본 삭세시 데이터 유지 vs 원본 삭제시 링크 끊김

  • umask ? 42

    /etc/profile 파일에 umask를 설정하면 시스템 전체에 적용

  • find 옵션? 43

    -name, -type, -user, -group, -size, -perm, -atime, -ctime, -mtime, -exec

  • PCB에 저장되는 정보? 47

    프로세스 상태, 프로세스 번호, 프로그램 카운터, 레지스터, 메모리 정보

  • FDT? 47

  • 좀비 프로세스? 50

    프로세스가 종료되었지만 PCB가 남아있는 프로세스
    부모 프로세스가 자식 프로세스의 종료 사실을 확인하지 않아 발생

  • 프로세스 실행과정? 51

  • pid, ppid, pgid, sid? 52

  • ps 명령어? 52

    -f, -l, -a, -A, -e

  • 프로세스 간의 통신? 53

    IPS - 파이프, 시그널, 메시지큐, 공유메모리, 세마포어

3. UNIX / Linux 시스템 관리

  • 사용자 계정 관리? 57

    useradd <사용자명> (-m: 홈디렉토리 생성, -s: 쉘 지정)
    userdel <사용자명> (-r: 홈디렉토리 삭제)

  • 그룹 관리? 58

    groupadd <그룹명> / groupdel <그룹명>
    usermod -G <그룹명> <사용자명> >> 사용자의 보조 그룹 변경
    usermod -aG <그룹명> <사용자명> >> 사용자의 보조 그룹 추가
    usermod -g <그룹명> <사용자명> >> 사용자의 주 그룹 변경

  • 하드디스크 용량? 59

    du, df

  • cron 명령어? 61

    crontab -u <사용자명> (-e: 편집, -l: 리스트, -r: 삭제)

  • crontab 접근 제어? 63

    /etc/cron.allow, /etc/cron.deny
    두 파일이 모두 존재하는 경우 cronallow 우선아혀 해당 파일에 등록디ㅗ 사용자만이 crontab 명령어 사용 가능 <br명 (allow 우선, 둘다 없으면 root만 가능)

4. UNIT / Linux 서버 보안

  • shadow 파일? 65

  • encrypted_password 필드 구성? 66

    $id$salt$encrypted
    *: 패스워드 잠김(별도 인증방식(SSH) 가능), !!: 패스워드 잠김(별도 인증방식(SSH) 불가능), 빈값: 패스워드 설정 필요

  • suid, sgid, sticky bit? 67

    suid: 파일 소유자의 권한으로 실행, sgid: 파일 소유자의 그룹 권한으로 실행, sticky bit: 자유롭게 파일을 생성하되 파일 삭제나 파일명 변경은 소유지만이 가능하도록 함
    명령어: chmod u+s, chmod g+s, chmod +t / chmod 4755, 2755, 1755 EUID, EGID 가 소유자의 권한으로 실소 (<-> RUID, RGID)

  • port 범위? 72

    0 ~ 1023: well-known, 1024 ~ 49151: registered port, 49152 ~ 65535: dynamic port

  • inetd 서비스 관리 ? 73

    /etc/inetd.conf

  • TCP Wrapper? 74

    /etc/inetd.conf 파일에 TCP Wrapper를 지원하는 서비스가 등록되어 있어야 함
    /etc/hosts.allow, /etc/hosts.deny (allow 우선) (ex> <daemon>: <ip>)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    # /etc/hosts.allow
    ALL: ALL # 모든 접속 허용
    ALL: xxx.xxx.xxx.xxx # 특정 IP만 모든 서비스 허용
    ALL : LOCAL # 로컬 접속만 허용
    ALL EXCEPT in.telnetd : ALL # 특정 서비스만 차단
    in.telnetd : xxx.xxx.xxx.xxx # 특정 IP만 텔넷 서비스 허용
    in.telnetd : .xxx.com # 특정 도메인만 텔넷 서비스 허용
    in.telnetd : xxx.xxx.xxx.xxx/<mask> # 특정 IP 대역만 텔넷 서비스 허용
    # /etc/hosts.deny
    ALL : ALL # 모든 접속 차단
    
  • 슈퍼 데몬? (xinetd)? 76

    /etc/xinetd.d/<daemon> 의 설정파일로 서비스 제어 cps: 초당 접속 제한, instances: 동시에 서비스 할 수 있는 서버의 수, per_source: 동일 출발지 최대 접속 수, only_from: 접속 허용 IP, no_access: 접속 차단 IP 등

  • PAM (Pluggable Authentication Modules)? 78

/etc/pam.d/<service> 파일로 인증 제어
/lib/security/<module>.so 파일로 인증 모듈 제공
/etc/security/<module>.conf 파일로 인증 모듈 설정 auth, account, password, session 4가지 모듈로 구성

  • SSH root 원격 접속 제한 설정? 81

    /etc/ssh/sshd_config 파일에서 PermitRootLogin no 설정

  • 계정 잠금 임계값 설정? 82

    /etc/pam.d/system-auth 파일에 pam_tally2.so 모듈 추가

    1
    
    auth required pam_tally2.so deny=3 unlock_time=120 no_magic_root # deny: 잠금 횟수, unlock_time: 잠금 시간 (초), no_magic_root: root 제외
    
  • root 계정 su 제한? 84

    /etc/pam.d/su 파일에 pam_wheel.so 모듈 추가

    1
    
    auth required pam_wheel.so use_uid group=wheel # wheel 그룹에 속한 사용자만 su 가능
    
  • sudo 명령 제한? 85

    /etc/sudoers 파일에 설정, visudo 명령으로 수정

    1
    2
    3
    4
    5
    
    \<user\> ALL=(ALL) ALL # <user> 계정은 sudo 명령을 통해 모든 호스트에서 모든 명령을 root 권한으로 실행 가능
    \<user\> ALL=(ALL) /bin/ls # <user> 계정은 sudo 명령을 통해 /bin/ls 명령만 root 권한으로 실행 가능
    \<user\> ALL=(ALL) NOPASSWD: ALL # <user> 계정은 sudo 명령을 통해 패스워드 입력 없이 모든 명령을 root 권한으로 실행 가능
    \<user\> xxx.xxx.xxx.xxx=(ALL) ALL # <user> 계정은 xxx.xxx.xxx.xxx 호스트에서 모든 명령을 root 권한으로 실행 가능
    \<user\> ALL=(test1,test2,test3) ALL # <user> 계정은 test1, test2, test3 계정 권한으로 모든 명령을 실행 가능
    
  • 주요 로그 파일? 88
    구분명령어파일내용
    utmpw, who, finger/var/run/utmp현재 로그인한 사용자 정보 (바이너리 파일)
    wtmplast/var/log/wtmp로그인, 로그아웃 정보 (바이너리 파일), ex> last <사용자명>, finger <사용자명>
    btmplastb/var/log/btmp로그인 실패 정보 (바이너리 파일), ex> lastb <사용자명>
    lastloglastlog/var/log/lastlog마지막으로 성공한 로그인 정보 (바이너리 파일), ex> lastlog -u <사용자명>, lastlog -u <사용자명> -t <시간>
    sulog-/var/log/securesu 명령어 사용 정보, ex> tail -f /var/log/secure
    acct/pacctlastcomm/var/account/pacct시스템에 로그인한 모든 사용자가 실행한 명령어 정보 (바이너리 파일), ex> lastcomm <사용자명>
    histsoryhistory~/.<쉘종류>_history계정별 명령어 이력 정보, ex> history, history -c, history -w
    secure-/var/log/secure시스템 보안 로그 정보, ex> tail -f /var/log/secure
    message-/var/log/messages시스템 메시지 로그 정보, ex> tail -f /var/log/messages
    cron-/var/log/croncron 로그 정보, ex> tail -f /var/log/cron
  • syslog 설정? 99

    /etc/syslog.conf, /etc/rsyslog.conf

  • 로그파일 순환 관리? 104

5. 시스템 해킹

  • 버퍼 오버플로우? 106
  • 스택 버퍼 오버플로우 대응기술? 112

    스택 가드, 스택 쉴드, ASLR

  • 레이스 컨디션? 113
  • 포맷 스트링 공격? 115

SECTION2. UNIX/Linux 서버 취약점

1. 계정 관리

  • 패스워드 최소 길이 설정? 120

    /etc/login.defs 파일에 PASS_MIN_LEN 설정

  • 패스워드 최대 사용기간 설정? 120

    /etc/login.defs 파일에 PASS_MAX_DAYS 설정

  • 패스워드 최소 사용기간 설정? 121

    /etc/login.defs 파일에 PASS_MIN_DAYS 설정

  • Session Timeout 설정? 121

    /etc/profile 파일에 TMOUT 설정

  • 패스워드 복잡도 설정? 121

    /etc/pam.d/system-auth 파일에 pam_cracklib.so 모듈 추가

    1
    
    password requisite pam_cracklib.so retry=3 minlen=8 dcredit=1 ucredit=1 lcredit=1 ocredit=1 difok=3
    

2. 파일 및 디렉터리 관리

  • 소유자 or 소유그룹 존재하지 않는 파일 검색? 125
    1
    
    find . \( -nouser -o -nogroup \) -exec ls -l {} \;
    
  • word writable 파일 검색? 125
    1
    
    find / -perm -2 -type f -exec ls -l {} \;
    

SECTION3. 윈도우 서버 취약점

생략

This post is licensed under CC BY 4.0 by the author.