- 계정 관리 : 사용자를 식별하는 가장 기본적인 인증수도나은 아이디와 패스워드로, 이를 통한 계정 관리는 시스템 보안의 시작
- 세션 관리 : 일정 시간이 지나면 세션을 종료하고 비인가자의 세션 가로채기를 통제하는 것
- 접근 제어 : 네트워크 안에서 시스템을 다른 시스템으로부터 보호, 네트워크 관점에서 접근을 통제 하는것
- 권한 관리 : 각 사용자가 적절한 권한으로 적절하게 정보 자산에 접근하도록 통제하는 것
- 로그 관리 : 시스템 내외에서 시스템에 어떠한 영향을 미칠 경우 내용을 기록하여 관리하는 것
- 취약점 관리 : 시스템 자체의 결함을 체계적으로 관리하는 것
- 알고 있는 것 : 머릿속에 기억하고 있는 정보를 이용하여 인증 (패스워드)
- 가지고 있는 것 : 신분증이나 OTP 장치 등
- 자신의 모습 : 홍채, 지문과 같은 생체 정보
- 위치하는 곳 : 현재 접속을 시도하는 위치의 적절성을 확인 (비콘, 콜백, 갤럭시 버즈 화면 잠금 기능)
윈도우 계정 관리
- Administrator - 관리자 권한. 기본적으로 설치되는 계정
- 일반 사용자 - net user 명령으로 확인
- 그룹 - net localgroup 명령으로 확인
1. Administrators - 관리자 그룹, 윈도우 시스템의 모든 권한을 가짐
2. Power users - local 컴퓨터에서만 관리자, 밖에서는 일반 사용자
3. Backup operators - 시스템 파일을 백헙하는 권한
4. Users - 대부분의 사용자, 다른 도메인 구성 요소에 로그인 가능
5. Geusts - Users와 같은 권한을 가지지만, 서버로의 로컬 로그인은 불가능유닉스 계정 관리
- Root - 기본 관리자 계졍
- /etc/passwd - 계정 목록을 담은 파일
[계정]:[패스워드(암호화)]:[사용자번호]:[그룹번호]:[실제이름]:[Home Directory]:[사용하는 shell]
ex) root:x:0:0:root:/root:/bin/bash- /etc/group - 그룹 목록을 담은 파일
[그룹이름]:[패스워드]:[그룹번호]:[그룹에 속한 계정목록]데이터베이스 계정 관리
- MS-SQL
관리자 계정 - sa(system administrator)- 오라클
관리자 계정 - sys, system (system은 db생성 불가)
기본 계정 - scott, 솔루션 설치, 테이블 생성 시 관련 계정이 자동 생성응용 프로그램의 계정 관리
취약한 응용프로그램을 통해 공격자가 운영체제에 접근하여 민감한 정보를 습득하거나, 공격하는 데 이용할 수 있음.
*TFTP 같은 인증이 필요하지 않은 응용 프로그램은 관리 필요
네트워크 장비의 계정 관리
아래 두가지 패스워드만 존재
계정을 생성하여 계정 별 명령어 권한을 제한 가능
- 장비 상태 확인용 (사용자 모드)
- 설정 변경용 (관리자 모드)
대규모의 경우 통합된 계정 관리를 위해 TACAC5+(Unix 인증 프로토콜)와 같은 솔루션을 적용함
부적절한 패스워드
- 길이가 너무 짧거나 NULL인 경우
- 사전에 나오는 단어나 그 조합 또는 변형
- 키보드 자판이 일련 나열
- 사용자 개인 정보로 유추할 수 있는 단어
적절한 패스워드
- 기억하기 쉽지만 크래킹 하기 어려운 패스워드
패스워드 정책
- 패스워드 설정 정책 : 길이나 복잡도 설정
- 패스워드 길이 8자 이상
- 패스워드 연속된 숫자, 알파벳 사용 금지
- 숫자, 알파벳, 특수문자를 적절히 섞었는지 검사
- 패스워드 변경 정책 : 패스워드를 자주 변경하여 유출에 대한 보호
- 60일 또는 90일 간격으로 패스워드 변경
- 인증 실패 시 계정 잠금 : 인증 실패가 반복되면 크래킹으로 판단하여 계정 보호
- 5회 실패 시 계정 30분 잠금
- 사용자와 시스템 사이 또는 두 시스템 사이의 활성화된 접속
- 세션 인증을 위한 보안 : 세션 하이재킹이나 네트워크 패킷 스티핑의 대응을 위한 암호화 및 지속적인 인증
- 지속적 세션 인증 문제 : 일정 시간 경과 후 재 인증.
- 적절한 권한을 가진 인가자만 특정 시스템이나 정보에 접근하도록 통제
- 가장 기본적인 수단은 IP와 서비스 포트 제어
운영체제의 접근 제어
- SSH(Secure Shell) : 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사 할 수 있도록 해 주는 응용프로그램 또는 프로토콜
- XDMCP : X manager를 이용한 서버 접속 프로토콜(Unix 용 GUI)
- VCN : 가상 네트워크 환경을 제공. 가상환경 원격 제어
- Radmin : 자신의 컴퓨터에서 Remote 컴퓨터를 원격 제어하는 프로그램. 파일 전송, NT 보안, 텔넷 등 주요한 기능 포함
- Inetd 데몬 : 텔넷, SSH, FTP 등 요청 시 서비스 연결, 데몬과 클라이언트 요청을 연결.
- 데몬 : 시스템에 상주하여 시스템이 특정한 상태로 되었을 때 자동으로 서비스를 제공하는 프로그램
- TCPWrapper : inetd를 관리하는 솔루션. 적절한 권한이 있는지 확인. 연결에 대한 Logging 작업 수행.
- 호스트 기반 네트워킹 ACL(Access Control List) 시스템
데이터베이스의 접근 제어
- 오라클 : $ORACLE_HOME/network/admin/sqlnet.ora 파일에서 설정
- 허용 : tcp.invited_nodes=(1.1.1.1, 2.2.2.2)
- 차단 : tcp.excluded_nodes=(3.3.3.3)
- MS-SQL : IP 접근제어를 제공하지 않음. 방화벽을 통한 제어가 필요.
응용 프로그램의 접근 제어
- 접근제어를 프로그램의 성격에 따라 제공하거나 하지 않음.
- 웹 서비스를 제공하는 IIS와 아파치 역시 IP 접근 제어 제공
네트워크 장비의 접근 제어
- IP 접근 제어 : 관리 인터페이스
- 네트워크 트래픽 접근 제어 : ACL(Access Control List)
- 유닉스의 접근 제어와 거의 같음
- ACL을 통한 접근 제어는 방화벽과 기본적으로 같음
운영체제의 권환 관리
윈도우
- NTFS(New Technology File System) 6가지 권한
모든 권한 수정 읽기 및 실행 디렉터리 내용 보기 읽기 쓰기
- 주의점
- 접근 권한은 누적된다.
- 파일 접근 권한이 디렉터리 접근 권한보다 우선한다.
- 허용 보다 거부가 우선이다.
유닉스
- 파일의 종류와 권한 - 파일의 소유자 - 파일에 대한 그룹
- ls -l 로 확인 가능
- ex) drwxrwxrwx root root
- 파일 및 디렉터리 종류 : 파일(-), 디렉터리(d), 링크 구분(l)
- 소유자권한, 그룹의 권한, 제 3의 사용자 권한
- r : 읽기
- w : 쓰기
- x : 실행
데이터베이스 권한 관리
- DDL(Data Definition Language) - 구조 정의
- CREATE, DROP, ALTER
- DML(Data Manipulation Language) - 조작, 사용
- SELECT, INSERT, UPDATE, DELETE
- DCL(Data Control Language) - 권한 관리
- GRANT, DENY, REVOKE
- VIEW를 사용해 가상 테이블을 만들어 특정 작업에 대한 권한 설정.
응용 프로그램의 권한 관리
- 프로그램 내의 권한 관리보다 프로그램 자체의 실행 권한이 더 중요.
- 운영체제의 권한 관리를 잘 지켜야함
- 유닉스의 경우 nobody(프로그램이 권한이 없을 경우 사용하는 계정)
AAA
- Authentication(인증)
- 자신의 Identity를 시스템에 증명 (아이디 패스워드 입력)
- Authorization(인가)
- 지문이나 패스워드 등을 통해 로그인이 허락된 사용자로 판명되어 로그인하는 관정
- Accounting
- 로그인 했을 때 시스템에 기록을 남기는 활동
- 이는 해커같은 시스템에 접근한 사용자 추적에 사용
- 책임 추적성(accountability) : 기록의 충실도, 로그가 충분히 남아있는가
- 감사 추적(audit trail) : 보안과 관련된 시간대별 이벤트를 기록한 로그
윈도우의 로그 관리
- 이벤트라 불리는 중앙 집중형 로그를 수집
- 종류 : 실패/성공
- 날짜 시간 : 로그를 남긴 시간, 날짜
- 원본, 범주 : 로그와 관계있는 영역
- 이벤트 : 로그별로 고유한 번호
- 사용자 : 로그를 발생시킨 사용자
- 컴퓨터 : 로그를 발생시킨 시스템
- 로그 종류
- 개체 액세스 감사 : 객체에 대한 접근을 시도, 속성 변경 시도
- 계정 관리 감사 : 계정 추가, 활성화, 패스워드 변경 등
- 계정 로그인 이벤트 감사 : 도메인 계정의 사용으로 생성
- 로그인 이벤트 감사 : 로컬 계정의 사용으로 생성
- 권한 사용 감사 : 권한 설정 변경, 관리자 권한이 필요한 작업 수행
- 디렉터리 서비스 액세스 감사 : 액세스 디렉터리 개체에 접근하는 사용자
- 정책 변경 감사 : 정책에 대한 변경 사항
- 프로세스 추적 감사 : 프로세스 시작/중지
- 시스템 이벤트 : 시스템 시작/종료, 보안 로그 삭제 등 시스템에 주요한 사항
유닉스의 로그 관리
- /var/adm (최근), /usr/adm (초기) : 데이터베이스 객체에 권한을 부여
- /var/log, /var/run, /var/log(리눅스) 등
- UTMP
- 가장 기본적인 로그
- 현재 로그인한 상태 정보를 바이너리 형태로 저장
- w, who, users, whodo, finger 등으로 확인 가능
- WTMP
- utmp 데몬과 비슷하게 로그인과 로그아웃, 시스템 재부팅에 대한 정보
- last 로 확인 가능 (last reboot, last [계정])
- Secure(sulog)
- 원격지 접속 로그, su(switch user), 사용자 생성 등 보안 로그
- 유닉스의 su 로그는 /var/adm/sulog 에 텍스트 형태로 남음
- History
- history 명령으로 명령창에서 실행한 명령 목록 확인 가능
- Syslog
- 하드웨어 구동, 서비스동작과 에러 등 시스템 운영의 전반적인 로그
- /var/log/messages 파일에 저장
데이터베이스의 로그 관리
- MS-SQL
- 일반 로그인 감사 : 로그인 정보
- C2 감사 추적 : 데이터베이스가 생성, 삭제, 변경 되는지 로깅
- 오라클
- 오라클 파라미터 파일($ORACLE_HOME\dbs\init.ora)의 AUDIT_TRAIL 값을 'DB' or 'TRUE'로 지정
- $ORACLE_HOME\rdbms\admin\cataudit.sql을 실행
- 감사의 종류
- 문장 감사 : 지정된 문장을 실행했을 때 기록
- AUDIT TABLE BY wishfree : wishfree의 TABLE 작업 감시
- AUDIT SESSION BY wishfree
- 객체 감사 : 특정 객체에 대한 작업 시 기록
- AUDIT SELECT ON wishfree.test BY SESSION WHENEVER successful : wishfree.test 테이블에 select 실행이 성공하면 세션별로 로그 생성
- 데이터 베이스 모니터링
- 별도의 데이터베이스 모니터링 툴을 사용하는게 좋음
- 탭 장비를 네트워크에 설치해 트래픽을 모니터링 하고, 패킷 중 데이터베이스 질의문을 확인하여 로그로 남김.
응용 프로그램의 로그 관리
- IIS 웹 서버의 로그
- W3C 형식으로 남도록 설정되어 있음.
- NCSA, IIS, 사용자 지정 방식으로 변경 가능
- 날짜와 시간, IP, Method, URL, Port, 데이터 크기 등
- 아파치 웹 서버의 로그
- access_log에 남고 형식은 combined로 지정됨
- 일반적인 common log로 바꿀 수 있음
- 클라이언트 IP, 시간, Method, URL, 상태코드, 데이터 크기 등
네트워크 장비의 로그 관리
- 보안
- IDS, IPS 의 시스템 로그
- 통합 로그 관리 시스템(SIEM)에 의해 수집 관리
- 관리
- 네트워크 트래픽 모니터링 시스템(MRTG)
- 네트워크 관리 시스템(NMS)
- 인증 시스템
- 라우터나 스위치의 인증을 일원화 하기 위해 TACAS+ 사용
- 대부분 로그 서버를 별도로 두고 운영
- 해커가 침입해도 흔적을 지우기 어려움
패치 관리
- 윈도우 업데이트를 통해 자동으로 보안 패치를 확인/적용
응용 프로그램 별 고유 위험 관리
- 운영체제에 파일이나 명령을 실행할 수 있는, 접근이 가능한 함수나 기능이 있으면 검토 필요.
응용 프로그램의 정보 수집 제한
- 응용 프로그램의 특정 기능이 운영체제의 정보를 노출 시키기도 함
- 유닉스 sendmail 데몬이 메일 전송 시 해당 계정이 있는지 확인하는 과정에 특정 명령 실행
- 텔넷을 이용해 시스템에 존재하는 계정 목록 파악 가능
- 이런 기능들을 제한해야함