11. xfile(파일)에 대한 접근권한을 숫자로 올바르게 표현한 것은?
-r-s-wsrwt 1 root root 11 11월 8 13:11 xfile
-
① 6426
-
② 7537
-
③ 1537
-
④ 1426
총길이는 1,3,3,3 >> 맨앞은 파일인지 디렉토리인지.537 그리고 스티키 비트 sst 소문자. 이말은 특수권한 내용이 다 들어갔다 그래서 7이 맨 앞으로 나옴. 특수 권한 내용을 제일 먼저 써준다.
보시면 setuid(4), setgid(2), sticky bit(1) 다 있어서 합 7(4+2+1)이 맨앞에 오는게 맞습니다.
sticky bit
스티키 비트(1000)가 설정된 디렉터리는 누구나 파일을 만들수 있지만 자신의 소유가 아닌 파일은 삭제할 수 없습니다. 즉 일종의 공유 디렉터리라고 볼수 있는데 sticky bit 가 붙은 가장 유명한 사례는 유닉스의 임시 파일을 쓰는 디렉터리인 /tmp 입니다.
"s(SetUID), s(SetGID), t(StikcyBit)" 모두 기존 파일에 실행권한 "x"가 있었다면 소문자 "s, s, t"가 들어가고 , 실행권한 "x"가 기존에 없었다면 대문자 "S, S, T"가 들어갑니다
- 1. 다음 중 세마포어에 대한 설명으로 올바르지 못한 것은?
-
① 여러 개의 프로세스가 동시에 그 값을 수정하지 못한다.
-
② 상호배제 문제를 해결하기 위해 사용된다.
-
③ 세마포어에 대한 연산은 처리 중에 인터럽트 되어야 한다.
-
④ 다익스트라(E.J. Dijkstra)가 제안한 방법이다.
-
세마포머
세마포어 S는 정수값을 가지는 변수이며, 다음과 같이 P와 V라는 명령에 의해서만 접근할 수 있다. (P와 V는 각각 try와 increment를 뜻하는 네덜란드어 Proberen과 Verhogen의 머릿글자를 딴 것이다.) P는 임계 구역에 들어가기 전에 수행되고, V는 임계 구역에서 나올 때 수행된다. 이때 변수 값을 수정하는 연산은 모두 원자성을 만족해야 한다.
다시 말해, 한 프로세스(또는 스레드)에서 세마포어 값을 변경하는 동안 다른 프로세스가 동시에 이 값을 변경해서는 안 된다. = 원자성을 만족해야 하므로 한 프로세스가 세마포어 값을 변경하는 동안은 인터럽트가 되어서는 안된다
해석
→ 더 이상 명령이 중간에 (물질을 이루는 더 쪼개질 수 없는 최소한의 구성요소가 마치 “원자”인 것처럼) 기타 요인으로 인해 나누어질 수 없어야 함
→ 즉, interrupt가 되지 않아야 한다(uninterruptable).
상호 배제
상호 배제란, 임계 구역을 어느 시점에서 단지 한 개의 프로세스만이 사용할 수 있도록 하며, 다른 프로세스가 현재 사용 중인 임계 구역에 대하여 접근하려고 할 때 이를 금지하는 행위를 말합니다.
3. 다음 중 비밀번호 등 암호화된 원문의 안전성(기밀성)을 높이기 위해 첨가되는 작은 길이의 문자열은?
-
① 0TP
-
② 솔트
-
③ HMAC
-
④ 스트레칭
단방향 해시 함수는 어떤 수학적 연산(또는 알고리즘)에 의해 원본 데이터를 매핑시켜 완전히 다른 암호화된 데이터로 변환시키는 것을 의미한다. 이 변환을 해시라고 하고, 해시에 의해 암호화된 데이터를 다이제스트(digest)라고 한다.
문제점
1. 동일한 메시지는 동일한 다이제스트를 갖는다.
그 것은 바로 그동안 해커들이 여러 값들을 대입해보면서 얻었던 다이제스트들을 모아놓은 리스트에서 찾아보는 것이다. 이러한 다이제스트들의 테이블을 우리는 레인보우 테이블(Rainbow Table)이라고 한다.
2. 무차별 대입 공격 (브루트포스)
해시 함수의 경우 원래 빠른 데이터 검색을 위한 목적으로 설계된 것이다. 그렇다보니 해시 함수를 써도 원문의 다이제스트는 금방 얻어진다. 바로 이 점이 문제점인데, 우리가 다이제스트를 빠르게 얻을 수 있는 것과 동일하게 해커도 똑같이 빠르게 값을 얻을 수 있다는 것이다. 즉, 해커는 무작위의 데이터들을 계속 대입해보면서 얻은 다이제스트와 해킹할 대상의 다이제스트를 계속 비교를 해보는 것이다.
단방향 해시 함수 보완하기
1. 해시 함수 여러 번 수행하기 [키 스트레칭 _ Key Stretching]
2. 솔트 (Salt)
솔트란 해시함수를 돌리기 전에 원문에 임의의 문자열을 덧붙이는 것을 말한다. 단어 뜻 그대로 원문에 임의의 문자열을 붙인다는 의미의 소금친다(salting) 는 것이다.
9. 하드웨어와 소프트웨어 설치 드라이버 설정에 대한 정보를 포함하고 있는 윈도우 레지스트리 키(Registry Key)는?
-
① HKEY_LOCAL_MACHINE
-
② HKEY_CLASS_ROOT
-
③ HKEY_CURRENT_USER
-
④ HKEY_USERS
1. HKEY_CLASSES_ROOT : *OLE 데이터와 확장자에 대한 정보, 파일과 프로그램 각 연결 정보가 포함됨, 파일 확장자들이 서브트리로 구성, 각 확장자는 파일타입과 연결되어 해당 프로그램을 확인가능하다. 예를 들면 아래 화면처럼 .exe 같은 확장자의 파일을 실행 시 어떤 프로그램으로 실행될지의 정보가 존재한다.
*OLE(Object Linking and Embedding) 는 마이크로소프트 기반 기술로 일반적인 복합 문서로 복합문서는 다양한 종류의 정보객체가 포함되는데 이는 OLE Object 라고 한다. 이 OLE Object 는 문서, 동영상, 표와 같은 작업물이다. 종류로는 Linked Object(원본 파일 데이터에 대한 포인터) 와 Embedded Object(원본 파일의 데이터 사본)가 있다.
2. HKEY_CURRENT_USER : 환경 정보가 저장, 다수 사용자가 사용할 경우 사용자별 정보가 저장되어있다.
이름처럼 현재 로그인한 사용자의 설정을 담고 있다.
3. HKEY_LOCAL_MACHINE : 컴퓨터 모든 사용자의 설정을 담고 있다. 즉 설치된 하드웨어가 동작하는 데 필요한 드라이버나 설정 관련 정보를 저장하고 있기 때문에 컴퓨터를 켜고 부팅 시에 설정된 값도 들어있다. 사용자의 계정 정보나 시스템 정보와 같은 크리티컬한 정보들이 들어 있다.
4. HKEY_USERS : 데스크탑 설정 및 네트워크 연결정보가 저장되어 있다.
5. HKEY_CURRENT_CONFIG : 디스플레이와 프린터에 관한 정보가 들어있다. 레지스트리 중에서 가장 단순한 부분으로 HKEY_LOCAL_MACHINE에 서브로 존재하는 config 내용이 있다.
빨간 줄의 레지스트리는 악성코드에서 자주 변경하는 값들이다. 프로그램이 시작될 때 악성코드가 자동으로 실행되게 설정하는 등에 행위를 할 수 있기 때문에 관리를 잘하는 것이 중요하다. 오늘은 레지스트리에 대해 배워보았다.
13. 보안에 관한 일반적인 지침이다. 다음 중 가장 부적절한 행위는?
-
① 주요 개인정보는 암호화하여 저장하고 관련 키는 별도 백업하여 관리한다.
-
② /etc/passwd 파일의 변경은 자주 발생하므로 /etc/shadow 파일에 한해 무결성 점검도구로 관리한다.
-
③ 커널로그, Cron 로그 등은 접근통제를 위한 모니터링 대상으로 내용 및 퍼미션 등을 주기적으로 확인한다.
-
④ 웹 서버의 환경설정 파일은 주기적으로 백업받고, 무결성 점검도구를 통해 변경 유무를 확인한다.
백업 하는 법
etc란
/etc와 /usr/etc 디렉토리는 시스템의 부팅, 셧다운 시에 필요한 파일들과 시스템의 전반에 걸친 설정 파일들 및 초기 스크립트 파일들이 있다. 시스템에 어떠한 문제가 발생한다거나, 시스템 전체 환경에 관한 설정을 바꾸기 위해서는 이들 디렉토리내에 포함되어 있는 파일들에 대하여 잘 알아야 한다.
/etc/rc : /bin/sh shell이 시스템이 부트되면, 자동적으로 실행되는 스크립트이다. 이것은 update, crond, inetd 같은 프로그램을 백그라운드로 실행시키며, 파일 시스템 마운팅, 스웹 영역 활성, 그리고 이런 유사한 다른 작업들을 한다. /etc/rc.local 과 /etc/rc.[0-9] 파일이 포함되기도 한다.
/etc/passwd : 사용자에 대한 정보를 포함하고 있는 문서 파일이다.
/etc/fstab : 이 파일은 /etc/rc 파일 안의 mount -a 명령에 의해 마운팅되는 파일 시스템과 스웹 영역의 목록이다.
/etc/getty : 이 프로그램은 터미널로 누군가가 login하기를 기다린다. 명령어 init에 의해 자동적으로 실행되며, login가능한 터미널 라인이나 가상 콘솔 당 한번씩 실행된다. 또한, 사용자의 패스워드를 기다리며, login을 실행한다.
/etc/gettydefs or /etc/gettytab : getty가 터미널 라인의 속도, 패러티 검사 등을 어떻게 사용할 것인가를 설정한다.
/etc/group : /etc/passwd와 유사하며, 사용자 대신에 그룹을 설정한다.
/etc/init : 이 프로그램은 부팅 시에 커널에 의해 첫 번째 프로세스로 실행된다. init가 실행된 후에 커널을 부팅이 완료된다. init는 /etc/rc와 gettys 등을 실행한다.
/etc/inittab : init가 시작할 때의 gettys의 목록 파일이다.
/etc/issue : 로그인 프롬프트 이전에 출력되는 getty 출력 문서 파일이다.
/etc/magic : 명령어 file의 설정 파일이며, file이 파일의 형식을 알게 해주는 다양한 형식이 기술되어 있다.
/etc/mtab : 이 파일은 마운팅된 파일 시스템을 포함하고 있다. /etc/rc와 mount나 unmount 명령에 의한 셋업이며, 마운팅된 파일 시스템의 목록이 필요할 때 사용된다.
/etc/mtools : 유닉스 상에서 MS-DOS 포맷 디스크를 사용하게 해주는 mtools를 위한 설정 파일이다.
/etc/shadow : 시스템의 shadow 패스워드를 포함하는 파일이다.
/etc/login.defs : login 명령에 사용되는 설정 파일이다.
/etc/printcap : /etc/termcap 과 유사하며, 프린터를 사용할 때(lpr) 쓰인다.
/etc/profile : Bourne shell(/bin/sh or bash)에 의해 로그인할 때 실행되는 파일이다.
/etc/securetty : 터미널을 보안하는 것으로서, root는 이 파일에 열거된 터미널로 로그인 할 수 있다. 보통 가상 콘솔들이 열거되어 있으며, 모뎀이나 네트웤으로 시스템에 접근하여 수퍼 유저의 권한을 얻는 것을 막을 수 있다.
/etc/shells : shell의 목록으로 chsh 명령으로 사용자 로그인 shell을 바꿀 때, 이 파일의 목록에 있는 shell만 바꿀 수 있게 한다.
/etc/termcap : 터미널의 기능 데이터베이스이다. 이것은 문서 파일로서 ESCAPE 문자들로서 터미널을 제어할 때 사용된다.
/etc/ttytype : 터미널 라인을 위한 디폴트 터미널 형태의 목록이다.
/etc/update : /etc/rc 에 의해 백그라운드로 실행되는 프로그램의 하나로 매 30 초마다 버퍼 캐시에 있는 하드로 쓰여지지 않은 데이터를 저장한다. 이러한 것은 전원의 단절이나, 커널의 이상 등을 대비하여 매 30초마다 데이터를 저장함으로서 데이터 손실의 위험부담을 줄이는 것이다.
/etc/utmp : 각각의 터미널에 로그인한 사용자나, 로그인에 관한 정보가 기록되어 있는 이진 파일이다. 사용자가 로그인하면, login은 누가 로그인을 하고 언제 로그 아웃을 하였는가에 대한 정보를 기록한다.
/etc/wtmp : /etc/utmp와 유사하며, 단지 존재하는 정보를 덮어쓰지 않고 계속 추가된다.
/etc/ftpusers, /etc/ftpaccess, /etc/rpc, /etc/rpcint, /etc/exports : 네트워크에 관한 파일들이다.
passwd, shadow 둘다 무결성 점검 해야 하는 거죠. 지문이 좀 유치하게 구성 돼 있네요
커널 로그
dmesg(diagnostic message) 는 kernel 의 ring buffer 를 출력하는 명령어로 부팅시에 인식한 장치등 시스템 진단에 필요한 유용한 정보를 제공합니다.
dmesg 메시지는 양이 많기 때문에 원하는 내용을 검색하려면 pipe 로 연결한 후에 grep 을 실행해 줍니다.
$ sudo dmesg | grep -i nvidia
스크롤하면서 천천히 보려면 less 나 more 같은 pager 를 연결해 주면 됩니다.
$ sudo dmesg | less
level 별 출력
너무 많은 정보가 제공될 경우 level 을 지정해서 원하는 레벨의 로그만 출력할 수 있습니다. 다음은 error 레벨의 커널 로그 메시지만 출력합니다.
$ sudo dmesg --level err
지원하는 로그 레벨은 --help 옵션을 주고 실행하면 확인할 수 있습니다.
$ sudo dmesg --help
Supported log levels (priorities):
emerg - system is unusable
alert - action must be taken immediately
crit - critical conditions
err - error conditions
warn - warning conditions
notice - normal but significant condition
info - informational
debug - debug-level messages
For more details see dmesg(1).
facility 별 출력
로깅시 어떤 프로그램이 logging 을 남겼는지 확인하기 위해 facility 라고 부르는 분류 코드가 있으며 dmesg 에는 -f 옵션으로 facility 를 정해서 출력할 수 있습니다. 다음은 인증 관련한 오류만 출력합니다.
$ sudo dmesg -f auth
syslog 에서 생성된 로그를 보려면 facility 를 syslog 로 지정합니다.
$ sudo dmesg -f syslog
모든 facility 를 보려면 마찬가지로 --help 옵션을 주고 실행하면 됩니다.
$ sudo dmesg --help
Supported log facilities:
kern - kernel messages
user - random user-level messages
mail - mail system
daemon - system daemons
auth - security/authorization messages
syslog - messages generated internally by syslogd
lpr - line printer subsystem
news - network news subsystem
dmesg 를 실행하면 현재 로그를 출력하고 종료합니다. 새로운 로그가 추가되었는지 확인하려면 반복해서 dmesg 를 실행해야 합니다. -w 옵션을 추가하면 tail -f 처럼 대기하면서 메시지가 추가되면 콘솔에 출력합니다.
$ sudo dmesg -w
가독성 개선

아래 옵션은 모두 linux 커널 3.5 이상이 필요합니다.
-T 옵션을 추가하면 출력 결과에 로그가 생성된 시각에 대한 timestamp 를 표시합니다.
$ sudo dmesg -T
-H 를 추가하면 사람이 좀 더 읽기 편하게 출력해 줍니다.
$ sudo dmesg -H
-L 옵션을 사용하면 color 로 출력합니다.
$ sudo dmesg -L
위 옵션을 모두 같이 사용할 수도 있습니다.
$ sudo dmesg -THL
cron
스케줄러 , 네트워크에 정리를 해놨을듯.
퍼미션 ( 권한)
Linux 기반 OS를 사용면서, 특히 Software Center에 없는 어플리케이션들을 설치할 때 자주 사용하게 되는 명령어가 있다. 주로 폴더, 또는 파일 이동 후 소유권과 파일권한을 변경할 때 사용하게 되는 명령어인 chown과 chmod이다.
우선 두 명령어의 차이부터 말하자면, chown은 "change owner", 즉 파일, 또는 폴더의 소유권을 변경하는 명령어이고, chmod는 "change mode", 파일이나 폴더의 권한(읽기, 쓰기, 실행)를 변경한다. "change mode"인 이유는 UNIX 시스템에서 이러한 권한들을 mode라 부르기 때문이다.
무결성 점검 도구
# 서버 보안용 SW 운영
1. 파일 무결성 점검
파일 무결성 점검 도구는 정상적인 디렉토리 및 파일 정보를 백업해두고, 파일 무결성 점검 시점에 점검하는 시점에서의 정보와 백업해둔 정보를 비교하여 변경사항을 점검한다.
tripWire 는 파일 무결성 점검 도구이다. MD5, SHA, CRC-32 같은 해시함수를 제공하고, 파일들에 대한 데이터 베이스를 만든다. 이를 통해 공격자들에 의한 파일들의 변조여부를 판별한다. 자신의 시스템 전체에 대해 '스냅사진'을 찍어서 보관하게 되고 , tripwire를 실행시킬 때마다 찍어둔 원본 스냅사진과 현재의 파일 시스템을 비교하면서 파일시스템의 변경사항을 판별하는 것이다.
tripwire 설치하기
사전작업으로, yum epel 저장소를 추가하고 , Extra Packages for Enterprise Linux 엔터프라이즈 리눅스를 위한 추가 패키지 저장소를 추가한다. epel-release 설치한다.
https://www.lesstif.com/lpt/log-dmesg-98926711.html
커널의 log 를 출력하는 dmesg 명령어 사용법
journalctl -k 명령도 dmesg 와 동일하게 kernel 의 ring buffer 를 출력합니다.
www.lesstif.com
'정보보안 > 정보보안기사 필기' 카테고리의 다른 글
개인정보 처리 정보 주체의 권리 [D-1](4/35) (0) | 2025.02.16 |
---|---|
개인정보보호법 개인정보 수집 동의필요한 경우[D-1] (3/35) (2) | 2025.02.16 |
DDos 공격프로그램 [D-1](2/35) (0) | 2025.02.16 |
vpn에 대한 설명 [D-1] (1/35) (2) | 2025.02.15 |
시스템 보안 1 [ 5문제 ] (0) | 2022.07.29 |