서버 운영체제
- 서버 운영체제: 윈도우 서버, 리눅스 서버
- 용도: 웹 서버, DB 서버, 메일 서버, 업무용 애플리케이션 서버
- 특징: 고성능, 고효율, 다양한 서비스, 보안, 가상화, 클러스터링
윈도우의 커널(Kernel)은 인터럽트 처리, 프로세스 / 메모리 / 파일 시스템 관리, 프로그래밍 인터페이스 제공 등 운영체제의 기본 기능을 제공한다
리눅스는 사용자가 응용프로그램에서 셸(Shell)을 통해 커널에 명령을 전송할 수 있다
시스템 보안과 관련된 기능
- 계정 관리: 사용자 인증을 위한 가장 기본적인 수단 (ID, PW)
- 세션 관리: 사용자와 시스템, 두 시스템 간의 활성화된 접속
- 접근 제어: 네트워크 안에서 다른 시스템으로부터 보호될 수 있는 접근 통제
- 권한 관리: 시스템 사용자의 권한과 정보 자산의 접근 통제
- 로그 관리: 시스템의 내부, 외부의 접근 사항 기록
- 취약점 관리: 각 분야의 결함을 체계적으로 관리
계정 관리
인증의 4가지 접근법
- 알고 있는 것: 비밀번호, 암구어
- 가지고 있는 것: 신분증, OTP, 출입카드
- 자신의 모습: 생체 정보, 지문, 홍채, 정맥
- 위치하는 곳: 접속하려는 위치, GPS, 콜 백(전화)
* 여러 가지 인증을 결합하면 보안이 더욱 강해진다!
I-PIN(인터넷상 개인 식별번호) 기반 인증은 주민등록번호를 입력하지 않고도 웹 서비스를 이용할 수 있는 개개인을 식별하는 별도의 식별번호이다
윈도우 서버는 기본적으로 운영자 권한 계정인 Administrator (기본 계정)가 있고, 일반 사용자 계정을 추가하는 형태로 계정을 관리한다. 또한 같은 권한을 가진 계정들을 그룹으로 묶어줄 수 있다 (운영자 그룹 Administrators, 사용자 그룹 Users)
* 관리자 권한으로 실행: 시스템 파일에 접근 가능
net users
net localgroup
net localgroup administrators
net group
터미널에서 위 명령어로 윈도우 계정들을 확인할 수 있다
유닉스의 계정관리도 윈도우 서버와 유사하다 (administrator = root)
데이터베이스 계정 관리
- MS_SQL: sa
- 오라클: sys, system
- MySQL: root
응용 프로그램 계정 관리
- 취약한 응용 프로그램을 통해 운영체제에 접근하는 수단
- TFTP (인증이 필요 없는 ftp)
네트워크 장비 계정 관리
- 계정을 생성하여 명령 집합을 제어
- TACACS+ (인증 프로토콜)
비밀번호
계정을 노리는 이유
- 내부망의 침입: 방화벽을 피해 코어 시스템에 접근
- 일반 계정 확보: 시스템 계정과 권한 확보, 권한 상승
- 시스템 권한: 설정 변경, 웜의 침투, 리부팅
세션 관리
세션(Session) = 사용자와 컴퓨터 또는 두 컴퓨터 간의 활성화된 접속 (보통 로그인 이후)
세션을 위한 보안
- 세션 하이재킹 방지 (화면 보호기)
- 세션의 지속적인 인증 (카카오톡의 잠금모드)
- 네트워크 패킷 스니핑에 대한 대응 (데이터 암호화)
접근 제어
- 적절한 권한을 가진 사용자만 시스템/네트워크에 접근 가능하도록 함
- 시스템 보안의 가장 기본이며, 접근 제어 수단은 IP와 포트
- 권한/위치별로 서버에 접근할 수 있는 다양한 경로를 관리 (포트 번호 분리)
* DBMS/응용 프로그램에서 접근 가능한 IP 영역대를 지정하는 경우 (Oracle/IIS, 아파치)
권한 관리
리눅스의 권한 상승
- 리눅스의 사용자 목록은 /etc/password에, 비밀번호는 /etc/shadow 파일에 위치
- 일반 사용자가 외부 프로그램을 통해 관리자 권한의 파일 접근 및 수정이 가능
- rwsr-xr-x 권한이 부여된 프로그램은 권한이 상승 (= 윈도우 관리자 권한으로 실행)
* 권한이 부여된 프로그램의 경우 해킹의 위험이 있음 (ex. vi 내에 셸 명령으로 시스템 권한 확보)
데이터베이스 명령의 종류 및 권한
- DDL(Data Definition Language): 데이터 구조를 정의하는 질의문
- DML(Data Manipulation Language): 데이터베이스 운영 및 사용과 관련된 질의문
- DCL(Data Control Language): 권한 관리를 위한 질의문
- 데이터베이스도 계정에 따른 권한 관리 O
응용 프로그램의 권한
- 응용 프로그램은 자신을 실행한 계정의 권한을 상속
- 보안상 문제가 있는 응용 프로그램의 경우 실행한 계정의 권한을 악용하는 문제 O
- 각 서비스별 계정을 별도 관리하고 쓰지 않는 계정은 삭제 및 차단해야 함
로그 관리
AAA
- Authentication(인증): 자신의 신원(Identity)을 증명하는 것으로 아이디와 패스워드를 입력하는 과정
- Authorization(인가): 지문이나 패스워드 등을 통해 로그인이 허락된 사용자로 판명되어 로그인하는 과정
- Accounding(기록): 로그인했을 때, 시스템이 이에 대한 기록을 남기는 활동
- 감사 추적(audit trail): 보안과 관련하여 시간대별 이벤트를 기록한 로그
* AAA에 대한 로그 정보는 해커나 악의적 사용자를 추적
윈도우의 로그는 이벤트의 중앙 집중화된 형태이다 (이벤트 뷰어)
유닉스의 로그는 서비스별로 분산되어 관리된다 (/var/log 폴더)
데이터 베이스의 로그는 과도한 로그나 성능 저하를 유발할 수 있어 활용에 주의가 필요하다
- 문장 감사(statement auditing): 지정된 문장을 실행했을 때 남는 기록
- 권한 감사(privilege auditing): 특정한 권한을 사용했을 때 남는 기록
- 객체 감사(object auditing): 특정 객체에 대한 작업을 했을 때 기록을 남김
웹 서버의 로그는 기본적으로 W3C 형식으로 남도록 설정한다
로그 관리
- 네트워크 장비의 로그 관리: 침입 차단/탐지/방지 시스템의 로그
- 네트워크 관리 시스템 로그: 네트워크 트래픽 모니터링 시스템(MRTG), 네트워크 관리 시스템(NMS)
- 네트워크 장비 인증 시스템: 대규모 네트워크 장비가 있을 때 라우터나 스위치 인증 (TACACS+)
'Computer Science > Security' 카테고리의 다른 글
[HUFS/정보보안] #5 코드 보안, 악성 코드 (0) | 2022.10.19 |
---|---|
[HUFS/정보보안] #4 웹 보안 (0) | 2022.10.18 |
[HUFS/정보보안] #3 네트워크 보안 (2) | 2022.10.06 |
[HUFS/정보보안] #1.5 서버 구성하기 (1) | 2022.09.16 |
[HUFS/정보보안] #1 컴퓨터 보안 개념 (0) | 2022.09.13 |