데몬이란, 운영체제에서 사용자가 직접 제어하지 않고 백그라운드에서 돌면서 여러 작업을 처리하는 프로그램을 의미
윈도우의 서비스 같은 개념
일반적으로 프로세스 형식으로 실행되면서, 데몬이라는 표시를 위해 뒤에 d가 붙음
결론적으로 항상 백그라운드에서 동작하며 여러 서비스를 제공하는 프로그램을 의미
inetd 데몬은 유닉스 시스템에서 동작하는 슈퍼 서버 데몬으로, 인터넷 서비스 제공
각 설정된 서비스들을 위해서 연결된 클라이언트로부터 요청을 리슨
지금까지 조사한 바로는 inetd 데몬은 유닉스 운영체제를 최초 시작할 때부터 구동되는 것으로 예상되며, TCPWrapper를 설치할 때 동작하는 tcpd와 같은 여러 특수 데몬을 연동하여 같이 동작할 수 있는 듯
클라이언트로부터 inetd가 관리하는 텔넷이나 SSH, FTP 등에 대한 연결 요청을 받은 후, 해당 데몬을 활성화하여 실제 서비스를 함으로써 데몬과 클라이언트의 요청을 연결하는 역할을 함
inetd 슈퍼데몬 외에 xinetd, systemctl 등이 유사한 기능으로 동작
데이터베이스는 조직의 영업 및 운영 정보를 담고 있는 핵심 응용 프로그램
데이터베이스에 대한 적절한 접근 제어는 필수지만, 모든 데이터베이스가 적절한 접근 제어 수단을 제공하는 것은 아님
오라클은 일정 수준 이상의 보안 정책을 적용할 수 있음
$ORACLE_HOME/network/admin/sqlnet.ora 파일에서 접근 제어 설정
위의 이미지는 오라클 sqlnet.ora 파일의 기본 내용
200.200.200.100과 200.200.200.200이라는 IP를 접근 허용하려면 다음 명령어를 추가
tcp.invited_nodes=(200.200.200.100, 200.200.200.200)
200.200.200.150의 접근을 차단하려면 아래의 명령어를 추가
tcp.excluded_nodes=(200.200.200.150)
MySQL의 경우, 특정 IP와 계정에 대한 접근에 다음과 같이 권한 부여
GRANT (권한) ON (데이터베이스).(테이블) TO (ID)@(IP주소) IDENTIFIED BY (패스워드)
MS-SQL은 IP 접근 제어를 기본으로 제공하지 않음
NT 4.0 이후 버전부터 NTFS(New Technology File System)를 기본 파일 시스템으로 사용
임의의 디렉터리에서 마우스 오른쪽 버튼을 눌러 (등록정보)-(보안)을 선택하면 권한 설정 화면이 나타남
개별 사용자에 대해 설정할 수 있는 권한의 종류는 기본적으로 6가지
위의 여섯 가지 권한에는 3가지 규칙이 적용됨
접근 권한이 누적된다.
: 개별 사용자가 여러 그룹에 속하면 특정 파일이나 디텍터리에 대한 접근 권한이 누적됨
파일 접근 권한이 디렉터리 접근 권한보다 우선한다.
: 파일을 포함하고 있는 디렉터리에 대한 접근 권한보다 파일에 대한 접근 권한이 우선한다는 의미
'허용'보다 '거부'가 우선한다.
: 유닉스와 달리 윈도우에서는 허용 권한 없음이 거부를 의미하지 않음
유닉스
디렉터리에 있는 etc 항목의 상세 내용
1번 항목은 다시 네 부분으로 세분할 수 있음
위에 명시된 설명들로 보았을 때, etc 항목은 일반 파일이며, 소유자에 대해서는 읽기와 쓰기 권한을 허용한 상태이고 그룹에게는 쓰기 권한만, 일반 사용자에 대해서도 쓰기 권한만 허용해 주었다는 걸 알 수 있음
유닉스에서는 파일 또는 디렉터리의 소유자, 그룹, 소유자도 그룹도 아닌 사용자로 구분하여 읽기(r, read), 쓰기(w, write), 실행(x, excute) 권한을 부여할 수 있음
질의문에 대한 권한 관리
데이터베이스 권한 괸리를 위해서는 DB의 질의문을 알아야 함
DDL과 DML은 DCL에 의해 허용 또는 거부됨
DCL에 의한 권한 부여와 회수 과정은 아래의 그림과 같음
뷰에 대한 권한 관리
뷰(View)는 데이터베이스에 대한 중요한 보안 사항 중 하나
참조 테이블의 각 열에 대해 사용자의 권한을 설정하는 것이 불편해서 만든 가상 테이블
회사의 연봉제를 예시로 들었을 때
직원의 연봉 정보는 비밀로 유지하는 것이 중요
직원 정보 테이블에 이름, 주소, 전화번호, 연봉 등의 정보가 저장되어 있다면, 특정 직책의 직원 외에는 연봉 정보에 대한 접근 권한을 모두 제한해야 함
직원의 이름이나 전화번호를 검색하려는 직원에게도 모두 적용한다면 불편함이 따름
이러한 경우에 뷰를 사용
뷰가 없다면 직원에 대한 데이터베이스의 특정 항목 각각에 대해서 접근 제한을 설정해야 함
대신 뷰가 있다면 특정 항목만이 담긴 뷰에만 접근 제어를 설정하면 됨
뷰에 설정된 권한 제한은 테이블에 대한 설정과 같음
Authentication(인증)
Autorization(인가)
Accounting
AAA는 모든 시스템에 존재
윈도우의 감사 정책(로깅 정책)은 기본적으로 수행하지 않게 설정되어 있음
정책이 필요한 경우에 수행하도록 설정해야 함
설정 시, 성공과 실패에 따라 선택적으로 로깅 수행 가능
이벤트 뷰어에서 로깅 정보 확인 가능
개별 로그에서는 아래의 표와 같은 항목을 확인할 수 있음
윈도우가 제공하는 각 감사 정책은 아래의 표에 제시한 사항을 로깅
윈도우의 모든 이벤트 로그는 엑셀로 정리된 파일 형태로 내려받을 수 있음
유닉스의 로그 종류는 다음과 같음
utmp
wtmp
secure(sulog)
(날짜) (시간) (+, 성공 or -, 실패) (터미널 종류) (권한 변경 전 계정 - 변경 후 계정)
history
syslog
MySQL은 다섯 가지 로그 제공
General 로그의 경우, 아래의 명령어를 통해 현재 설정을 확인할 수 있음
show variables like 'general%';
General 로그는 아래의 명령어를 통해 설정 및 해제될 수 있음
set global general_log = ON;
set global general_log = OFF;
오라클에서 감사 로그를 활성화하려면 오라클 파라미터 파일을 수정해야 함
$ORACLE_HOME/dbs/init.ora의 AUDIT_TRAIL 값을 DB 또는 TRUE로 지정해야 함
AUDIT_TRAIL 설정 가능 값은 아래와 같음
AUDIT_TRAIL 값을 지정한 다음 아래의 항목 실행
$ORACLE_HOME\rdbms\admin\cataudit.sql
감사 로그가 활성화된 후 오라클에서 남길 수 있는 데이터베이스 감사의 종류
문장 감사, 권한 감사, 객체 감사
각 감사는 아래의 표화 같은 감사 뷰를 통해 확인할 수 있음
제어판-관리 도구-IIS 관리자-IIS 대화상자의 로깅 항목에서 확인 가능
로그는 IIS 웹 서버의 기본 설정이며 가장 널리 이용되는 W3C 확장 로그 파일 형식으로 설정되어 있음
위의 로그는 다음과 같이 구성되어 있음
기본 접근 로그는 access_log에 기록
형식은 combined로 지정
LogFormat에서 설정된 combined 형식의 각 항목은 아래의 표와 같음
네트워크 장비는 대량의 트래픽이 생성되고, 트래픽이 일시적으로 존재했다가 사라지기 때문에 살펴볼 수 있는 로그가 다양하지 않음
네트워크 장비에서 확인할 수 있는 로그의 종류
기본적으로 라우터나 스위치에는 로그를 남기는 기능이 있음
대부분의 네트워크 장비에는 하드디스크와 같이 로그를 저장할 공간이 없기 때문에 별도의 로그 서버를 운영하여 그곳에 기록함
각 네트워크에서 생성된 로그는 네트워크를 통해 로그 서버로 전송
단순히 네트워크 장비에 관한 로그를 남길 수 있다는 장점뿐만 아니라 네트워크 공격자의 공격에서 유리함을 얻을 수 있음