1. 교착상태(deadlock)의 4가지 발생 조건에 대해 서술하시오.
2. UNIX의 파일 시스템에는 ( A ), ( B )등이 있으며, 파일시스템에 필요한 블록에는 부팅 시 필요한 코드를 저장하고 있는 ( C ) 블록, 전체 파일 시스템에 대한 정보를 저장하고 있으며, logical volume의 4096 바이트 오프셋에 위치하며 크기가 4096바이트인 ( D ) 블록, 각 파일이나 디렉터리에 대한 모든 정보를 저장하고 있으며, 파일 시스템 내에 있는 개개의 파일을 관리하기 위한 데이터 구조를 의미하는 ( E )블록, 마지막으로 디렉터리 별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록인 데이터 블록이 있다.
이 중 ( E ) 블록에 저장되는 정보 중 ( F )는 저장되지 않으며, ( F )와 ( E ) 번호는 디렉터리 안에 저장된다.
3. Unix Run Level이란 부팅 혹은 재부팅을 할 경우 선택되는 모드로, ( A ) 명령으로 각 레벨 별 모드를 선택할 수 있다. 이중 레벨 0은 시스템 종료 상태를 의미하며, CLI 단독 사용자 모드는 레벨 ( B ), 네트워크가 되지 않는 다중 사용자 모드는 레벨 ( C ), GUI 환경인 경우는 레벨 ( D ) 이다.
4. 유닉스 시스템에서 디렉터리 및 파일이 생성되는 기본 퍼미션을 정하는데 사용하는 명령어는 ( A )로, 시스템의 기본 설정의 ( A )는 일반적으로 ( B ) 이고, 퍼미션은 디렉터리일 경우 ( C ), 파일일 경우 ( D ) 가 된다.
개별적으로 디렉토리 및 파일의 퍼미션을 변경해주는 명령어에는 ( E )가 있다.
5. 유닉스 시스템에서 특수 권한을 설정하는 방법에 sticky bit, SetUID, SetGID 가 있다.
위의 3가지 특수권한을 설정하는 명령어와, find를 이용하여 특수권한을 가진 파일을 검색하는 명령어를 적으시오.
6. 유닉스 시스템에서 다음의 설정 관련 파일의 위치를 적으시오.
(1) DNS를 사용하기 전 자체적으로 호스트 이름과 IP 주소를 정의해 놓은 파일
(2) 네트워크의 이름과 각각의 인터넷 주소를 포함하고 있는 파일
(3) 호스트의 이름이 들어가져 있는 파일
(4) TCP/IP의 서비스와 그 이름을 사용하는 포트 번호, 하부 프로토콜인 전송 프로토콜의 종류가 정의되어 있는 파일
(5) DNS 시스템과 검색 이름이 등록되어 있는 파일
(6) 데몬 프로그램이 초기화 될 때 사용하게 될 프로세스를 정의하여 인터넷 환경을 관리할 때 쓰이는 파일
(7) 사용자 계정에 관련된 파일로 LoginID : x : UID : GID : Comment : Home-Directory : Login-Shell의 순서로 저장된 파일
(8) TCP Wrapper가 설치된 경우, 특정 호스트의 접속 허용 내용을 정의한 파일
(9) 외부에서 사용자의 인증 절차 없이 접속할 수 있는 사용자를 정의한 파일
7. 윈도우즈 NTFS 파일시스템에서 ( A )는 각 파일의 정보를 포함한 고정길이 레코드(1KB)며, NTFS가 관리하는 디스크에 있는 모든 파일과 일대일로 대응된다. 이 ( A ) 레코드에는 다양한 속성을 담을 수 있는데, 특히 보안속성을 이용하여 파일시스템 레벨에서 접근권한을 설정할 수 있다.
과거 ( B ) 파일시스템의 경우 구조가 간단한 반면, 보안이나 장애 발생 시 회복 기능이 없는 문제점이 있어, 이를 보완하고 기능을 확장하여 Windows NT 전용 파일시스템으로 NTFS를 개발하였다.
8. 윈도우의 모든 시스템 정보를 백업 및 복구 하기 위해서 꼭 백업해야 하는 파일은 무엇인가?
9. 윈도우에서 로컬 사용자 계정의 해쉬값은 기본적으로 각각 컴퓨터의 ( A ) 에 저장되어 존재하며, 이 파일의 위치는 ( B )에 있으며, 이를 통해 특정 컴퓨터에서 자원에 대한 접근권한을 얻을 수 있다. 하지만 도메인 사용자 계정은 사용자들이 도메인에 로그온 하고, 네트워크에 있는 자원들의 액세스를 획득하는 것을 가능하게 해 주는 계정으로 ( C )에 저장되어 존재한다.
10. 유닉스 쉘 중 csh를 사용하는 경우 영향을 미치게 되는 대표적인 설정 파일을 2개 이상 적으시오.
11. 공유 라이브러리를 사용하여 응용 프로그램이 어떤 방법으로 사용자를 인증할 것인지 설정하는 것으로, Login, FTP, Telnet 등의 일반적인 서비스 인증 부분에 접근통제를 할 수 있으며, 이 데몬을 활용하여 SU 접근통제 설정도 가능하다. 이것은 무엇이며, 이것의 사용으로 얻을 수 있는 효과는 무엇인가?
12. Unix나 Linux 운영체제 프로그램 중 프로그램이 실행되는 동안 프로그램 소유자의 권한을 가지도록 지정하는 방법을 무엇이라 하는가? 또한 이것이 설정되면 파일 퍼미션 정보가 x에서 어떤 글자로 바뀌게 되는가?
13. Unix 시스템에서 sticky bit 설정이 되어 있는 디렉터리는 ( A ) 이며, 커널 및 각 프로세스에 대한 정보들을 관리하고 있으며 디바이스 드라이버 동작 감시, 제어 흐름을 바꾸는 등 커널 동작에 필요한 매개변수를 제어할 수 있으나 일반 파일시스템과 달리 데이터를 저장하지 못하는 디렉터리는 ( B ) 이다.
14. "파티션 섹터" 또는 "마스터 파티션 테이블"이라고 불리는 이것은 하드디스크의 첫번째 파티션을 생성할 때 만들어진다. 항상 디스크의 첫번째 섹터에 위치하며, 디스크의 파티션 테이블과 부팅에 필요한 작은 실행파일을 저장하게 된다. 앞쪽 446 바이트는 실행파일이고, 바로 뒤 64바이트가 파티션 테이블, 마지막 2바이트가 시그니처로 항상 0x55AA를 갖게되어 한 섹터가 512바이트가 되는 이것은 무엇인가?
15. 리눅스/유닉스 파일 시스템인 ext2, ext3에서, 설정파일의 경우 root라도 파일을 변경 및 삭제 할 수 없도록 하는 방법은 무엇이며, 이를 설정하려면 어떤 명령어를 이용해야 하는가?
16. 리눅스 시스템의 /etc/sysctl.conf 파일에 커널 보안을 설정하는 내용을 7가지 이상 기술하고, 그 기본값을 설명하시오.
17. Apache 서버의 httpd.conf 파일 설정의 내용과 기본 값에 대해 설명하시오.
18. 다음의 내용을 서술하시오.
(1) SetUID, SetGID, Sticky Bit 의 각각 권한 비트가 어떻게 되는지 8진수로 적으시오.
(2) rwsrwsrwt에는 어떤 권한설정이 되어 있는지 설명하시오.
(3) 위의 권한을 8진수로 나타내 보시오.
19. 다음 로그에 대해서 아는 대로 기술하시오.
(1) history
(2) secure
(3) messages
(4) dmesg
(5) utmp
(6) wtmp
(7) lastlog
(8) xferlog
(9) acct, pacct
답-------------------------------------------------------------------------
1. 교착상태는 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상으로, 교착상태의 발생 조건에는 프로세스들이 각각 필요자원에 대해 배타적 통제권을 요구하는 상호 배재 상태(Mutual Exclusion), 프로세스가 다른 자원을 요구하면서, 자신에게 할당된 자원을 해제하지는 않는 점유와 대기 상태(Hold & Wait), 프로세스에 할당된 자원을 끝날 때까지 해제할 수 없는 비 중단 상태(Non Preemption), 그리고 프로세스들이 순환을 이루어서 순환 내 이전 프로세스가 요청하는 자원을 점유하고, 다음 프로세스가 점유하고 있는 자원을 요구하는 상태(Circular Wait)의 4가지가 있다.
2. A, B- ext2, ext3
C - 부팅
D - 슈퍼
E - i-Node(index-node)
F - filename
3. A - init
B - 1, C -2, D -4
4. A- umask
B -022C -755 (drwxr-xr-x)
D -644 (-rw-r--r--)
E-chmod
5. 특수권한 설정 명령어
sticky bit : chmod 1777 [Sticky-bit Directory]
SetUID : chmod 4777 [SetUID-File]
SetGID : chmod 2777 [SetGID-File]
특수권한 설정 파일 검색 명령어
sticky bit : find -perm 1000 -print
setUID : find -perm 4000 -print
setGID : find -perm 2000 -print
모두 다 : find -perm 7000 -print
or find \(-perm 1000 -o -perm 2000 -o -perm 4000\) -print
or find / -perm 4000 -o -perm 2000 -o -perm 1000 -exec ls -al {} \;
6.(1) /etc/hosts
(2) /etc/Networks
(3) /etc/hostname
(4) /etc/services
(5) /etc/resolv.conf
(6) /etc/xinetd.conf
(7) /etc/passwd
(8) /etc/hosts.allow
(9) $Home/.rhosts
7. A - MFT (Master File Table)
B - FAT
8. user.dat, system, system.ini, win.ini
9. A - SAM, B- %systemroot%\system32\config\SAM C -Active Directory
10. login, logout, profile, .cshrc
11. PAM(Pluggable Authentication Modules) 패스워드 방식.
서비스 인증에 접근통제 설정은 물론, 특정한 사용자가 특정 시간, 특정 장소에서만 로그인할 수 있게 제한할 수도 있고, 사용자가 쓸 시스템 자원을 제한할 수 있어 Local DoS 공격을 어느정도 막을 수 있다. 또한 패스워드 암호화에 DES를 사용하지 않기 때문에 Crack이나 Brute Force 공격에도 강하다. 또한 SU 명령에 PAM을 사용하여 사용 제한을 할 수 있다. (/etc/pam.d/su )
12. SetUID, s
13. A - /tmp, B -/proc
14. MBR (Master Boot Record)
15. inode flag에 쓰기금지/삭제금지 속성으로 설정하면 된다.
chattr +i filename (변경 및 삭제 금지 flag)
16.
(1) ping 요청에 응답하지 않도록
(2) 브로드캐스트 주소로는 ping을 하지 못하도록 (기본값 0)
(3) Syn flooding 공격에 대비해 백로그 큐 설정 값 키우기 (기본값 256)
(4) ICMP redirect 공격을 막기 위해 redirect를 끈다 (기본값 1)
(5) BAD icmp 패킷 무시 (기본값 0)
(6) IP 스푸핑 방지 (기본값 0)
(7) 연결 종료 시간을 줄인다 (기본값 60)
(8) 열 수 있는 로컬 포트 수를 늘린다 (기본값 1024 4996)
(9) Keepalive 시간을 줄인다 (기본값 7200)
(10) IP스푸핑 로그 남긴다 (기본값 0)
17.
(1) Port : http 서비스 포트 번호 지정 (80)
(2) ServerAdmin : 웹 서버 관리자의 전자우편 주소
(3) Timeout: Timeout 값 설정 (1200)
(4) PidFile : 웹 서버 시작 데몬 프로세스 번호
(5) User와 Group : 웹 서버 운영자에 대한 사용자 및 그룹 정보,
보안을 위해 주로 root보다는 nobody로 설정 (nobody)
(6) ServerRoot : 홈 디렉터리 설정 (/usr/local/httpd)
(7) AccessFileName : Directory별로 접근 제어할 정보를 담고 있는 파일 (.htaccess)
(8) KeepAlive : 한번 접속한 채 특별 요청이 없어도 지속 연결 허용 여부(ON --> Off)
(9) ServerSignature : 버전 정보 표시 (On --> Off)
18.
(1) 4000, 2000, 1000
(2) 모든 사용자(소유자, 그룹, other) 모두 읽고 쓰고 실행권한이 있으며,
SetUID, SetGID, Sticky Bit가 설정되어 있다.
SetUID가 설정되면, 실행중일 동안 소유자의 권한으로 실행이 되며,
SetGUD가 설정되면, 실행중일 동안 그룹의 권한으로 실행이 되며,
Sticky Bit가 설정되면, 파일 소유자, 그룹, other 모두 실행할 수 있지만, 파일 소유자, 디렉터리 소유자, root를 제외하고는 파일을 삭제할 수는 없다.
(3) 7777
19.
(1) 위치 : $home/.history, $home/.bash_history
사용자가 입력한 명령어에 대한 기록이 남은 파일이다. acct나 pacct에도 명령어에 대한 기록이 남지만 history에서는 디렉토리 정보와 argument까지 상세한 정보가 남아 공격자의 행위 분석에 용이하다. 백도어 설치 등에 대한 확인을 위해서는 root의 홈 디렉토리 내의 history 파일을 확인하는 것이 좋다.
(2) 위치 : /var/log/secure
secure 파일은 주로 보안과 관련된 기록이 남은 파일로 사용자 인증 관련 로그를 포함하고 있다. 여기서의 인증은 telnet, ssh, ftp외에도 pop 인증 등 모든 네트워크 상의 인증이 포함된다. secure 파일은 syslogd 데몬에 의해서 남겨지게 되며, 바이너리 로그가 아니기 때문에 cat이나 vi 명령어로도 쉽게 확인이 가능하다. secure 파일 내에는 timestamp 정보, demon, host명 등의 형식으로 기록이 된다.
(3) 위치: /var/log/messages
messages는 콘솔상에 출력되는 메시지들에 대한 기록이 남은 파일이다. 주로 시스템 관리자들이 시스템 장애 원인 분석 등을 확인하기 위해서 messages 파일을 점검한다. 이 파일에는 디스크 full, 디바이스 오류 메시지, 시스템 설정 오류 메시지 등 다양한 내용이 들어 있다. messages 역시 slsogd 데몬에 의해 남겨지며 로그인/설정/장치 정보의 전체적인 로그가 남겨져 있다.백도어 등의 설치 시도나 공격에 대한 오류메시지 등이 남아 있을 수 있으므로 어떤 취약점으로 공격 받았는지 확인하기 위해 보기도 한다.
(4) 위치 : /var/log/dmesg
dmesg는 부팅 시 기록되는 로그로 "dmesg"라는 명령어를 실행하여 볼 수 있다. 커널에서 출력되는 메시지가 표시 되기 때문에, kernel의 crash된 메모리 주소 등을 볼 수 있다.
(5) 위치 : /var/run/utmp
"w"나 "who", "users", "finger" 등의 명령어를 이용하여 볼 수 있으며 바이너리 파일 형태이다. 현재 시스템에 로그인 한 각 사용자의 상태가 남겨져 있다.
(6) 위치 : /var/log/wtmp
"last" 명령어를 이용하여 볼 수 있으며, 바이너리 형태의 파일이다.
(예. last [계정명] : last -n 3 root //root 계정에 대한 3개의 최근 접속정보)
로그인, 로그아웃, 시스템의 재부팅에 대한 정보가 남겨져 있다.
(7) 위치 : /var/log/lastlog
"lastlog" 명령어를 이용하여 볼 수 있으며, 시스템 계정 사용자들이 마지막으로 로그인 한 정보가 남는다.
(8) 위치 : /var/log/xferlog
FTP 서버의 데이터 전송 관련 로그로 파일의 송수신 모드, 특수 행위 플래그 정보, 전송 방향, 로그인한 사용자 종류에 대해 남는다.
(9) 위치 : /var/account/pacct
프로세스 어카운트에 대한 정보로, 시스템에 로그인한 모든 사용자 별로 실행한 프로세스에 대한 정보, 명령어가 기록된다. 이 로그는 "lastcomm" 명령어나 "acctcom" 명령어를 이용해서 볼 수 있다. 이 로그를 통해 사용자별로 사용한 명령어를 구분하는데에는 유용하지만, 그 명령어가 어느 파일시스템의 어느 디렉토리에서 실행되었는지를 알수는 없다.
댓글 없음:
댓글 쓰기