Computer Science/Security

[HUFS/정보보안] #2 시스템 보안

성중 2022. 9. 24. 21:02

서버 운영체제

단일 사용자 운영체제 구성 모델

  • 서버 운영체제: 윈도우 서버, 리눅스 서버
  • 용도: 웹 서버, DB 서버, 메일 서버, 업무용 애플리케이션 서버
  • 특징: 고성능, 고효율, 다양한 서비스, 보안, 가상화, 클러스터링

 

윈도우 발전 과정

 윈도우의 커널(Kernel)은 인터럽트 처리, 프로세스 / 메모리 / 파일 시스템 관리, 프로그래밍 인터페이스 제공 등 운영체제의 기본 기능을 제공한다

 

윈도우 링 / 시스템 구조

리눅스는 사용자가 응용프로그램에서 셸(Shell)을 통해 커널에 명령을 전송할 수 있다

 

리눅스의 구조

시스템 보안과 관련된 기능

  • 계정 관리: 사용자 인증을 위한 가장 기본적인 수단 (ID, PW)
  • 세션 관리: 사용자와 시스템, 두 시스템 간의 활성화된 접속
  • 접근 제어: 네트워크 안에서 다른 시스템으로부터 보호될 수 있는 접근 통제
  • 권한 관리: 시스템 사용자의 권한과 정보 자산의 접근 통제
  • 로그 관리: 시스템의 내부, 외부의 접근 사항 기록
  • 취약점 관리: 각 분야의 결함을 체계적으로 관리

 

계정 관리

인증의 4가지 접근법

  • 알고 있는 것: 비밀번호, 암구어
  • 가지고 있는 것: 신분증, OTP, 출입카드
  • 자신의 모습: 생체 정보, 지문, 홍채, 정맥
  • 위치하는 곳: 접속하려는 위치, GPS, 콜 백(전화)

* 여러 가지 인증을 결합하면 보안이 더욱 강해진다!

 

I-PIN(인터넷상 개인 식별번호) 기반 인증은 주민등록번호를 입력하지 않고도 웹 서비스를 이용할 수 있는 개개인을 식별하는 별도의 식별번호이다

 

개인정보 보호법에 따라 모든 포털 사이트는 회원가입에 주민번호를 대체하는 수단이 필요

윈도우 서버는 기본적으로 운영자 권한 계정Administrator (기본 계정)가 있고, 일반 사용자 계정을 추가하는 형태로 계정을 관리한다. 또한 같은 권한을 가진 계정들을 그룹으로 묶어줄 수 있다 (운영자 그룹 Administrators, 사용자 그룹 Users)

* 관리자 권한으로 실행: 시스템 파일에 접근 가능

 

윈도우의 주요 그룹

net users
net localgroup
net localgroup administrators
net group

터미널에서 위 명령어로 윈도우 계정들을 확인할 수 있다

 

유닉스의 계정관리도 윈도우 서버와 유사하다 (administrator = root)

 

/etc/passwd 파일에 계정 목록

데이터베이스 계정 관리

  • MS_SQL: sa
  • 오라클: sys, system
  • MySQL: root

 

응용 프로그램 계정 관리

  • 취약한 응용 프로그램을 통해 운영체제에 접근하는 수단
  • TFTP (인증이 필요 없는 ftp)

 

네트워크 장비 계정 관리

  • 계정을 생성하여 명령 집합을 제어
  • TACACS+ (인증 프로토콜)

 

비밀번호

패스워드 조합에 따른 크랙 예상 소요 시간

계정을 노리는 이유

  • 내부망의 침입: 방화벽을 피해 코어 시스템에 접근
  • 일반 계정 확보: 시스템 계정과 권한 확보, 권한 상승
  • 시스템 권한: 설정 변경, 웜의 침투, 리부팅

 

세션 관리

세션(Session) = 사용자와 컴퓨터 또는 두 컴퓨터 간의 활성화된 접속 (보통 로그인 이후)

 

세션을 위한 보안

  • 세션 하이재킹 방지 (화면 보호기)
  • 세션의 지속적인 인증 (카카오톡의 잠금모드)
  • 네트워크 패킷 스니핑에 대한 대응 (데이터 암호화)

 

접근 제어

  • 적절한 권한을 가진 사용자만 시스템/네트워크에 접근 가능하도록 함
  • 시스템 보안의 가장 기본이며, 접근 제어 수단은 IP포트
  • 권한/위치별로 서버에 접근할 수 있는 다양한 경로를 관리 (포트 번호 분리)

 

운영체제 서비스별 기본 제공 포트 번호
inetd가 들어오는 요청에 따라 서비스 데몬 연결
tcpd 를 추가해 접근 제어 기록 및 원활한 차단 관리

* DBMS/응용 프로그램에서 접근 가능한 IP 영역대를 지정하는 경우 (Oracle/IIS, 아파치)

 

권한 관리

윈도우 파일(NTFS)의 권한
리눅스 파일의 권한 리눅스 파일의 권한

리눅스의 권한 상승

  • 리눅스의 사용자 목록은 /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): 특정 객체에 대한 작업을 했을 때 기록을 남김

 

별도의 DB 모니터링 시스템으로 DB 부하를 줄이기도 함

웹 서버의 로그는 기본적으로 W3C 형식으로 남도록 설정한다

 

W3C 형식

로그 관리

  • 네트워크 장비의 로그 관리: 침입 차단/탐지/방지 시스템의 로그
  • 네트워크 관리 시스템 로그: 네트워크 트래픽 모니터링 시스템(MRTG), 네트워크 관리 시스템(NMS)
  • 네트워크 장비 인증 시스템: 대규모 네트워크 장비가 있을 때 라우터나 스위치 인증 (TACACS+)

 

자체 저장 공간이 없는 네트워크 장비를 위해 별도의 로그 서버를 운영
지속적인 패치로 윈도우 보안을 업데이트