UNIV

2022-04-12 14:34

컴퓨터보안 - 5강. 서버 보안

서버 보안의 개요

  • 서버: 서비스를 제공하는 컴퓨터
  • 클라이언트: 서버에 접근하여 서비스를 제공받는 컴퓨터
  • 통신 채널: 인터넷
  • 서버 / 클라이언트 구조
    • 클라이언트
      • 응용 프로그램
      • 운영체제
      • 트래픽 제어, 암호화
    • 서버
      • 응용 프로그램
      • 운영체제
      • 트래픽 제어, 암호화
    • 인터넷을 통해 클라이언트와 서버가 통신
  • 인터넷 공격에 대한 방어 지점
    • 응용 프로그램 계층
      • 서버 응용 프로그램의 백도어, 버그 (취약성)
      • 취약성을 이용하여 운영체제에 대한 접근 권한 획득
    • 운영체제 계층
      • 보안의 가장 근본적 레벨
      • 대부분의 공격 목적은 운영체제의 제어권 확보하는 것
    • 네트워크 제어
      • 시스템의 In / Out 트래픽을 제어
      • 운영체제 내에서 수행 가능. 별도 독립된 장비에서도 수행 가능.
    • 전송 데이터 제어
      • 인터넷을 통하여 전송되는 정보는 누구나 열람 가능
      • 데이터 절도를 방지하려면 전송자는 암호화하여 정보를 전송한 뒤 수신자 쪽에서 복호화 하여 확인하는것이 바람직

서버의 침임 및 정보 유출 단계

  • 정보 획득 단계
    • 공격대상 시스템 설정
  • 권한 획득 단계
    • 일반 사용자 권한 획득 후
    • 관리자 권한 획득 (!): 궁극적인 목적 (Root 권한 취득)
  • 공격 단계
    • 침입 흔적 지움
    • 백도어 설치
  • 재 침임 단계
    • 다른 시스템 공격
    • 정보 변경 또는 유출
    • 다른 비권한 행위 수행

서버 공격 유형

  • 결함을 통해서 보안 허점 활용
  • 서버 공격 유형
    • 계정 크랙 공격
    • 네트워크 공격
    • 시스템 취약점 이용 공격
    • 사회 공학적인 공격
    • 응용 프로그램 취약적을 이용한 공격
    • 웹 서버 취약점을 이용한 공격
  • 계정 크랙 공격
    • 무차별 공격 (Brute Force Attack)
      • 시스템 또는 서비스의 ID, 패스워드를 자동 조합하여 크랙하는 공격
    • 사전 공격 (Dictionary Attack)
      • ID와 패스워드가 될 가능성이 있는 단어를 사전 파일로 만들어 놓고 사전 파일의 단어를 대입하여 크랙하는 공격
  • 시스템의 취약점을 이용한 공격
    • 버퍼 오버플로우 공격
      • Buffer Overflow
      • Buffer의 양을 초과하는 데이터를 입력
      • 프로그램의 복귀 주소를 조작함으로써 공격자가 원하는 코드를 실행하는 것
      • Stack Overflow 공격과 Heap Overflow 공격 존재
    • 레이스 컨디션 공격
      • 프로세스 경쟁을 이용한 공격
      • 경쟁상태에 이르게 하여 시스템 프로그램이 갖는 권한으로 파일에 접근하게 하는 방법
    • 기본 설정오류를 이용한 공격
      • 잘못된 시스템 설정에 대한 공격

서버 보안 대책

  • 계정 관리
    • 사용자별 또는 그룹별 접근 권한 부여
    • 불필요한 사용자 계정 삭제
    • 루트권한에 대한 사용 제한
    • 새로운 사용자 추가 시 일관성 있는 정책 유지
  • 패스워드 관리
    • 패스워드를 생성할 때에 여러 조합을 사용
    • 유추가능한 단어를 패스워드로 사용 지양
    • Shadow 패스워드 사용
      • UNIX /etc/passwd 는 일반 사용자의 접근이 가능
      • /etc/shadow 라는 파일에 /etc/passwd의 패스워드 필드를 암호화하여 저장하고 루트만 읽을 수 있는 권한으로 설정
  • 파일 접근 권한 (read/write/execute) 관리
  • 파일 암호화
  • 파일 시스템 백업 및 복구
  • 무결성 점검 도구를 이용한 파일 시스템의 위변조 검사
  • UNIX 계열
    • mount 테이블을 이용한 파일시스템 관리
    • TCP-wrapper, xinetd 등을 이용한 호스트 접근제어 관리
    • telnet 대신 ssh 사용 등
  • 윈도우
    • NTFS에 대한 사용권한 설정
    • 레지스트리 원격 액세스 권한 제한 및 레지스트리 백업
  • 접근제어 목록 (ACL: Access Control List) 설정
  • 접근제어 정책
    • 임의적 접근제어
      • 개별 소유자의 자율적 판단에 따라 접근 권한을 사용자들에게 부여
    • 강제적 접근제어
      • 개별객체에는 비밀 등급을, 사용자에게는 허가등급을 부여
      • 사용자가 객체에 접근할때마다 사전에 정해진 규칙과 비교하여 일치하는 사용자에게만 권한 부여
    • 역할기반 접근제어
      • 권한은 역할과 관계
      • 예: 운영자 역할은 모든 자원에 접근 가능 하나 접근권한을 바꾸지는 못함
  • UNIX 계열의 접근제어 명령어 - chmod, chown
  • 시스템 파티션 분리 (작업용도에 따라)
  • 불필요한 서비스 중지 및 프로그램 제거
  • 자원관리 최적화
  • 최소권한의 프로세스 수행
  • 시스템 로그 설정과 관리
    • UNIX - syslog를 통하여 시스템 로그 설정
    • 윈도우 - 이벤트 뷰어를 통해 시스템 로그 관리