본문 바로가기
자격증/보안기사

01_시스템 보안 정리_2

by Choraengyi 2021. 1. 21.

- 리눅스 특징 : 다중 사용자, 다중 작업, 다중 처리기, 다중 플랫폼, 계층형 파일시스템, POSIX 호환

           우수한 네트워킹, 가상콘솔, 가상 기억 장치

           GPL 라이센스 → 자유 소프트웨어

           LGPL 라이센스 → 수정할때 라이브러리 소스코드 공개

 

           *커널 : 주기억장치 상주, 사용자 프로그램 관리

           *셸 : 명령어 해석기, /bin 경로

           *시스템 구성 : 여러정보 저장하는 기본 구조

           ex) ls -l → 셸 → 커널 → 하드웨어

 

- 셸

           * bash_profile : 사용자 홈디렉터리 존재, 개별 셸환경 설정

           * bashrc : 사용자 정의 변수, alias 정의

           * bash_logout : 사용자 로그아웃 시 실행되는 파일 정의

           전역 설정파일은 /etc 에 존재

           홈디렉터리 확인 → echo $HOME

           - 셸 종류

           * C 셸 : .cshrc, bourne 셸 : .profile, korn 셸 : .kshrc, bash 셸 : C 셸 + korn 셸 특징, TC 셸 : C 셸 강화

 

- 셸 환경 변수

           env 명령은 환경변수 확인 명령어

SHELL

로그인 셸 절대 경로

HOME

홈 디렉터리 경로

PATH

실행할 명령어 경로

USER

사용자 이름

LOGNAME

로그인할 때 사용자 이름

TERM

단말기 설명

MAIL

전자메일 우편함

HOSTNAME

호스트 명

TMOUT

자동연결 종료 시간

 

          

#Shell Shock : bash 셸 관련 취약점 → 악의적 명령 실행, 관리자 권한 획득

           리눅스 환경변수에서 빈 함수를 넣어 그 뒤에오는 코드는 무조건 실행되는 심각한 버그

 

- 리눅스 파일

           * 루트 파일 : 하나의 시스템, 시스템 프로그램

           * 일반 파일 : 수행 가능 프로그램, 텍스트 파일, 데이터 파일 등

           * 디렉터리 파일 : 다른 파일과 디렉터리들에 관한 정보를 저장, 파일명과 inode 번호 연결부분

           * 특수파일 : 주변장치에 연결된 파일, 하나 이상 가지고 있어야함

                      ex) tty7 → 사용자 터미널

 

- 리눅스 파일 시스템 구조

          

부트블록

슈퍼블록

inode

데이터 블록

 

           * 부트 블록 : 부팅관련 이미지, 커널 적재

           * 슈퍼 블록 : 파일시스템 크기, 빈 블록 리스트, inode 목록 크기, 플래그 등

           * inode : 파일이나 디렉터리에 대한 정보

           * 데이터 블록 : 실제 데이터 저장

 

           #inode : 커널이 현재 사용하는 자료구조를 유지하는 구조체, 커널과 파일시스템은 inode를 통해 파일 관리, ls -li 명령으로 번호 확인(첫번째 항목)

           소유자ID, 그룹ID, 크기, 생성된 시간, 사용된 시간, 변경된 시간, 링크 수, 접근 모드, 블록주소

 

- inode 블록 관리

           단일 간접 블록, 이중 간접 블록, 삼중 간접 블록

 

- 심볼릭 링크 : 링크정보만 가진 inode 생성, 원본 삭제 하면 같이 삭제됨, ln -s

- 하드 링크 : 원본을 복사하여 동일한 inode 생성, 원본 삭제 해도 남아 있음, ln

 

- fdisk : 디스크 파티션 수행

           -l : 목록 확인, -v : 버전, -s 장치 : 입력 장치 크기, -d : 삭제, -n : 새로운 파티션 생성

           -p : 설정상태 확인

 

- mkfs : 파티션 생성 후 파일 시스템 생성

           -V : 모든 정보 출력, -t : 형식 선택, -C : Bad Block 검사, -l : 파일로부터 BadBlock 읽음

           -v : 진행사항 출력

           ex) mkfs -t ext4 dev/sdb1 또는 mke2fs -j → EXT3 생성

 

- fsck : 파일 무결성 검사

           -t : 파일 시스템 지정, -A : etc/fstab 에 기술된 파일 시스템 모두 검사

           -N : 검사수행 안함, 내용 출력, -P : 병렬 처리 수행, 루트 파일 시스템 점검

           -R : 루트 제외, -V : 세부 내역 출력, -a : 무결성 검사 후 자동 검사

           -r : 대화형, -n : 오류 수정 안함, -y : 오류 자동 수정

 

- mount : 특정 디렉터리 연결

           -v : 자세한 정보 출력, -f : 마운트 가능한지 점검, -n : etc/mtab 파일에 쓰기 없이 마운트

           -r : 읽기만 가능하도록, -w : 읽기 쓰기 모드로, -t vfstype : 파일시스템 유형 지정

 

- umount : 마운트 해제

           -n : /etc/mtab 변경 않고 마운트 해제, -v : 정보 출력, 

           -a : /etc/mtab 에 지정된 파일시스템 모두 해제, -t : 지정된 파일시스템 해제

 

- fstab 파일은 마운트 시 참조하는 파일, 파일시스템 마운트 관한 정보

           * 필드 구성

           파일시스템 장치, 마운트 포인터, 파일 시스템 형식, 옵션(ro, rw), 덤프, 파일점검 옵션(0, 1)

          

           * 필드 옵션 구성

           default : 일반 파일 시스템, auto : 부팅 시 자동 마운트, exec : 실행파일 실행 허용

           suid : setuid, setgid 허용, ro : 읽기 전용, rw : 읽기 쓰기, user : 일반 사용자 마운트 가능

           nouser : 루트만 마운트, noauto : 자동 마운트 안함, noexec : 실행파일 실행 못함

           nosuid : setuid, setgid 허용 안함, usrquota : 쿼터 설정 가능, grpquota : 그룹별 쿼터

 

- 리눅스 부팅

           * LILO : 리눅스의 부트로더, /etc/lilo.conf

           * GRUB : 최근 LILO 대신 사용, /boot/grub/grub.conf

           → default=0 : 부트순서 지정, timeout=0 : 지정시간 경과 시, defualt : 지정된 운영체제

           splashimg : 부팅 이미지 지정, hiddenmenu : 부트로더 숨김, title : 부트 엔트리

 

           * 부팅 순서

           전원 → ROM BIOS → MBR 의 부트로더 → 커널 → root 읽기 전용 마운트 → root 쓰기전용 마운트 → init 프로세스 실행 및 PID 1번 할당

 

- init 프로세스, /etc/initab

           0: PROM 감사

           1: 단일 사용자, 관리상태

           2: 다중 사용자, 공유 불가

           3: 다중 사용자, 기본 실행, 텍스트

           4: 사용 안함

           5: 3 모드에서 X-WINDOWS

           6: 재부팅, 3 으로

           init 명령어 → init [Run Level]

 

           # 3.20 사이버 테러, 2013년 3월 20일

           방송국, 금융사 전산망 마비, MBR과 VBR 삭제 후 무의미 문자열로 변경

 

- 리눅스 패스워드

           * /etc/passwd 구조

           root : X : 0 : 0 : root : /root : /bin/bash

 

           1. 사용자 계정, 

           2. 암호, X 이면 /etc/shadow 에 저장

           3. user id

           4. group id

           5. comment

           6. 홈디렉터리

           7. 셸

           ##셸의 경우 /bin/false 는 로그인 시 셸 실행 안됨

           ##shadow 에 저장 위해서 pwconv 명령, 안쓸거면 pwunconf

 

- John The Ripper: 패스워드 무작위 대입 공격 툴

           ex) John --format=raw-MD5 /root/passwd.txt --crack-status

 

- /etc/shadow 구조

           root : $1$F…… : 14806 : 0 : 99999 : 7 : : :

           1. 사용자 계정

           2. 암호화된 패스워드, $해시 알고리즘 $salt $해시 결과

           3. 1970.01.01 부터 패스워드 수정된 일 수 계산

           4. 패스워드 최소 사용 기간

           5. 패스워드 최대 사용 기간

           6. 패스워드 만료 전 경고 일수

           7. 로그인 접속 차단 일 수

           8. 로그인 사용 금지 일수

           9. 사용 안함

          

           # chage -l [사용자] → 만료 날짜 확인

 

- umask : 파일은 666, 디렉터리 777 기준

           022 이면 파일 644

- chmod 764 test.txt

- chmod u+x,g+w,o-r test.txt

           u,g,o,a         +,-,=         r,w,x

 

- chown : 파일 사용자와 그룹 변경

           -R : 하위 디렉터리, -C 파일 내용 출력

           chown 사용자.그룹 파일

 

- chgrp : 파일 그룹 변경

           -C : 변경된 것 보여줌, -h : 심볼릭 링크 자체그룹 변경, -v : 진행 상태

           -R : 하위 모든 파일, -f : 작업 안되는 파일 오류 메세지 숨김

 

##setuid 유형

           chmod 4000 [파일] 만할 경우 → ---S------

           chmod 4755 [실행파일] → -rwsr-xr-x

           chmod 4744 [실행X 파일] → -rwSr--r--

 

- setgid : 그룹의 권한으로 실행, 보통 메일 박스

 

 

##find / -perm 4000 -print

 

- WORM(Write Once Read Many) 스토리지

           한번만 기록, 그다음은 읽기만 가능 → 로그파일 기록

           삭제나 변조 불가

 

- 리눅스 로그, /var/log

           1. 현재 로그인 사용자 정보 → /var/run/utmp → w, who 명령

          

           2. 사용자 로그인 로그아웃 정보 → wtmp → last

                      로그인, 로그아웃, 시스템 관련, 종료 및 부팅, 재부팅, telnet 및 ftp 등 정보

 

           3. 로그인 실패 정보 → btmp → lastb

          

           4. syslog 운영체제 대한 로그, syslogd 데몬, /etc/syslogd.conf

                      /var/log/kern.log → syslog가 기록한 커널 수준 로그 파일

                      /var/log/syslog

           - 주체별

                      kern : 커널 요청 시 기록

                      mail : 메일 서브 시스템 요청 시 기록

                      lpr : 프린팅 서브시스템 요청 시 기록

                      daemon : 시스템 서버 프로세스 요청 시 기록

                      auth : 로그인 인증 시스템 요청 시 기록

 

           * 위험성

           emerg > alert > crit > err > warn > notice > info > debug

 

           * /etc/syslogd.conf 예제

           kern.*             -/var/log/kern.log           → 모든 커널 로그 해당 경로

           mail.err           -/var/log/mail.log           → 메일 err 수준 로그 해당 경로

 

- 작업 스케줄 cron, /etc/crontab

           프로세스 확인, ps -ef | grep cron

          

           * crontab 구조

           분           시           일           월           요일           사용자                      실행명령

           ## 분 → */10 : 10분마다 실행

          

           * crontab 옵션

           -l : 현재 로그인 계정 기준 스케줄 확인, -e : 현재 로그인 계정 기준 작업 등록

           -r : 작업 삭제, -u : 삭제 시킬 유저명 설정

 

           ##at : cron과 달리 정해진 시간에 한번만 실행

 

- 리눅스 리다이렉션

           ls > test.txt                      파일 존재 시 덮어 씀

           ls >> test.txt                      파일에 내용 추가

          

- 리눅스 파이프 : 명령 실행 결과 전달

           ls -al | grep “test”

- 리눅스 침입자가 수행하는 공격

           백도어 설치, 흔적 삭제를 위한 로그 삭제 및 변조, 리버스 연결 시도, 과도한 권한 부여          

 

- find 탐지 : 파일명, 특정 권한, 시간 검색

           ex) find / -name *.php > result.txt

                      실행가능 스크립트 탐색, 형식 php, asp, jsp

                      rootshell 악성 코드

           find / -name “[A-Z]*”           #첫글자 대문자 탐색

                            “[a-z][A-Z][0-9]*”           #소문자 대문자 숫자로 시작하는 파일(sS7)

                            “ “                              #공백 들어간 파일

 

           find / -perm +6000 2>/dev/null                      #setuid, setgid 부여된 파일

           find / -mtime -20                      #최근 20일동안 변경된 파일

           find / -nouser                      #소유자 없는 파일

 

- 파일 무결성 검사

           tripwire : 해시값 사용하여 파일 무결성 검사

           tripwire --init : 해시값 저장 DB 초기화

           tripwire --check : 무결성 검사 수행

           # twpol.txt : 보안정책 파일 감시대상과 위치

           # site.key file : 정책 파일, 환경파일 설정

           # local.key file : 데이터 베이스와 레포트, 파일 초기화 및 보호

 

- 패스워드 크래킹 도구

           John The Ripper, pwdump, hydra

 

참고 서적 : www.yes24.com/Product/Goods/89220771

728x90
반응형

'자격증 > 보안기사' 카테고리의 다른 글

02_네트워크_3  (0) 2021.01.23
02_네트워크_2  (0) 2021.01.23
02_네트워크_1  (0) 2021.01.22
01_시스템 보안 정리_3  (0) 2021.01.22
01_시스템 보안 정리_1  (0) 2021.01.21

댓글