정보보호론 - 시스템 보안

Fortice·2020년 12월 6일
0

강의

목록 보기
1/2

시스템 보안 기본 6가지

  • 계정 관리 : 사용자를 식별하는 가장 기본적인 인증수도나은 아이디와 패스워드로, 이를 통한 계정 관리는 시스템 보안의 시작
  • 세션 관리 : 일정 시간이 지나면 세션을 종료하고 비인가자의 세션 가로채기를 통제하는 것
  • 접근 제어 : 네트워크 안에서 시스템을 다른 시스템으로부터 보호, 네트워크 관점에서 접근을 통제 하는것
  • 권한 관리 : 각 사용자가 적절한 권한으로 적절하게 정보 자산에 접근하도록 통제하는 것
  • 로그 관리 : 시스템 내외에서 시스템에 어떠한 영향을 미칠 경우 내용을 기록하여 관리하는 것
  • 취약점 관리 : 시스템 자체의 결함을 체계적으로 관리하는 것

보안의 네 가지 인증 방법

  • 알고 있는 것 : 머릿속에 기억하고 있는 정보를 이용하여 인증 (패스워드)
  • 가지고 있는 것 : 신분증이나 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 데몬이 메일 전송 시 해당 계정이 있는지 확인하는 과정에 특정 명령 실행
  • 텔넷을 이용해 시스템에 존재하는 계정 목록 파악 가능
  • 이런 기능들을 제한해야함
profile
서버 공부합니다.

0개의 댓글