UNIV
2022-04-12 14:34
컴퓨터보안 - 5강. 서버 보안
서버 보안의 개요
- 서버: 서비스를 제공하는 컴퓨터
- 클라이언트: 서버에 접근하여 서비스를 제공받는 컴퓨터
- 통신 채널: 인터넷
- 서버 / 클라이언트 구조
- 클라이언트
- 응용 프로그램
- 운영체제
- 트래픽 제어, 암호화
- 서버
- 응용 프로그램
- 운영체제
- 트래픽 제어, 암호화
- 인터넷을 통해 클라이언트와 서버가 통신
- 클라이언트
- 인터넷 공격에 대한 방어 지점
- 응용 프로그램 계층
- 서버 응용 프로그램의 백도어, 버그 (취약성)
- 취약성을 이용하여 운영체제에 대한 접근 권한 획득
- 운영체제 계층
- 보안의 가장 근본적 레벨
- 대부분의 공격 목적은 운영체제의 제어권 확보하는 것
- 네트워크 제어
- 시스템의 In / Out 트래픽을 제어
- 운영체제 내에서 수행 가능. 별도 독립된 장비에서도 수행 가능.
- 전송 데이터 제어
- 인터넷을 통하여 전송되는 정보는 누구나 열람 가능
- 데이터 절도를 방지하려면 전송자는 암호화하여 정보를 전송한 뒤 수신자 쪽에서 복호화 하여 확인하는것이 바람직
- 응용 프로그램 계층
서버의 침임 및 정보 유출 단계
- 정보 획득 단계
- 공격대상 시스템 설정
- 권한 획득 단계
- 일반 사용자 권한 획득 후
- 관리자 권한 획득 (!): 궁극적인 목적 (Root 권한 취득)
- 공격 단계
- 침입 흔적 지움
- 백도어 설치
- 재 침임 단계
- 다른 시스템 공격
- 정보 변경 또는 유출
- 다른 비권한 행위 수행
서버 공격 유형
- 결함을 통해서 보안 허점 활용
- 서버 공격 유형
- 계정 크랙 공격
- 네트워크 공격
- 시스템 취약점 이용 공격
- 사회 공학적인 공격
- 응용 프로그램 취약적을 이용한 공격
- 웹 서버 취약점을 이용한 공격
- 계정 크랙 공격
- 무차별 공격 (Brute Force Attack)
- 시스템 또는 서비스의 ID, 패스워드를 자동 조합하여 크랙하는 공격
- 사전 공격 (Dictionary Attack)
- ID와 패스워드가 될 가능성이 있는 단어를 사전 파일로 만들어 놓고 사전 파일의 단어를 대입하여 크랙하는 공격
- 무차별 공격 (Brute Force Attack)
- 시스템의 취약점을 이용한 공격
- 버퍼 오버플로우 공격
- 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를 통하여 시스템 로그 설정
- 윈도우 - 이벤트 뷰어를 통해 시스템 로그 관리