1 / 58

정보 보안 시스템 보안 최미정 강원대학교 컴퓨터과학전공

정보 보안 시스템 보안 최미정 강원대학교 컴퓨터과학전공. 계정과 패스워드의 중요성을 이해한다. 1. 적절한 패스워드 설정 방법을 익힌다. 2. 4. 6. 세션의 의미와 관리 방법을 살펴본다. 사용자 및 클라이언트에 대한 접근 제어와 관리 방법을 알아본다. 3. 5. 시스템에 존재할 수 있는 취약점의 종류를 알아본다. 로그의 의미와 수행 가능한 로그의 범위를 살펴본다. Section 01 계정과 패스워드 관리. 인증 수단 식별 (Identification)

Download Presentation

정보 보안 시스템 보안 최미정 강원대학교 컴퓨터과학전공

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 정보 보안 시스템 보안 최미정 강원대학교 컴퓨터과학전공

  2. 계정과 패스워드의 중요성을 이해한다. • 1 적절한 패스워드 설정 방법을 익힌다. • 2 • 4 • 6 세션의 의미와 관리 방법을 살펴본다. 사용자 및 클라이언트에 대한 접근 제어와 관리 방법을 알아본다. • 3 • 5 시스템에 존재할 수 있는 취약점의 종류를 알아본다. 로그의 의미와 수행 가능한 로그의 범위를 살펴본다.

  3. Section 01계정과 패스워드 관리 • 인증 수단 • 식별 (Identification) • 아이디라는 문자열을 통해 그 사람이 누구인지 확인하는 과정. • 인증 (Authentication)의 네 가지 방법 • 당신이 알고 있는 것(Something You Know): 군대의 암구어처럼 머릿 속에 기억하고 있는 정보를 이용해 인증을 수행하는 방법예) 패스워드 • 당신이 가지고 있는 것(Something You Have): 신분증이나OTP(One Time Password) 장치 등을 통해 인증을 수행하는 방법예) 출입카드 • 당신 모습 자체(Something You Are): 홍채와 같은 생체 정보를 통해 인증을 수행하는 방법. 경찰관이 운전면허증의 사진을 보고 본인임을 확인하는 것도 이에 해당된다고 볼 수 있음.예) 지문인식 • 당신이 위치해 있는 곳(Somewhere You Are): 현재 접속을 시도하는 위치의 적절성을 확인하는 방법예) 콜백(Call Back)

  4. Section 01계정과 패스워드 관리 • 운영체제의 계정 확인 • 윈도우: 운영체제에 대한 관리자 권한을 가진 계정을 administrator라고 칭하는데, 이는 시스템에 가장 기본으로 설치되는 계정 • 유닉스: 기본 관리자 계정으로 root가 존재. • 계정 생성과 삭제시 적절한 승인 절차가 마련되어 있어야 하고, 불필요한 계정이 존재하는지와 불필요하게 관리자 권한 등이 부여되어 있지 않은지를 주기적으로 확인해야 함.

  5. 운영체제의 계정 관리 • 윈도우 관리자 계정 확인 • net localgroup administrators 명령 • 유닉스 계정 목록 확인 • /etc/passwd 파일

  6. 운영체제의 계정 관리 • /etc/passwd 파일의 구성 • 사용자 계정 • 패스워드가 암호화되어 shadow 파일에 저장되어 있음을 나타낸다. • 사용자 번호 • 그룹 번호 • 실제 이름. 시스템 설정에 영향이 없는 것으로, 자신의 이름을 입력해주어도 된다. • 사용자의 홈 디렉토리 설정. 앞의 예는 관리자이므로 홈 디렉토리가 /root다. 일반 사용자는 /home/wishfree와 같이 /home 디렉토리 하위에 위치한다. • 사용자의 셸 정의. 기본 설정은 bash 셸이다. 사용하는 셸을 이곳에 정의해준다. • 관리자 권한은 사용자 번호와 그룹 번호로 식별. • 관리자는 사용자 번호가 0번이고, 그룹 번호도 0. • root 이외에 사용자 번호가 0번인 계정이 존재하면, 그 계정도 관리자 권한을 가짐 root : x : 0 : 0 : root : /root : /bin/bash ➊ ➋ ➌ ➍ ➎ ➏ ➐

  7. 운영체제의 계정 관리 • 윈도우 일반 사용자 계정 확인 • net user 명령 • 유닉스 일반 사용자 계정 확인 • 역시 /etc/passwd 파일에서 확인 • /etc/passwd 파일의 구조에서 ➋와 ➐부분을 확인해야 함. • 리눅스나 유닉스의 옛날 버전에서는 ➋가 빈 것이 패스워드 없이 로그인이 가능한 계정이였으나, 최근의 유닉스는 시스템의 보안 설정으로 인해 로그인이 차단되어 계정이 동작하지 않음. • ➐도 /bin/sh, /bin/csh, /bin/bash, /bin/ksh와 같이 정상 셸이 아니라 /bin/false처럼 명시적으로 사용이 금지되어 있거나 빈 경우에는 누군가에게 할당된 계정이 아님.

  8. 운영체제의 계정 관리 • 윈도우 그룹 목록 확인 • net localgroup 명령

  9. 운영체제의 계정 관리 • 윈도우의 기본 그룹

  10. 운영체제의 계정 관리 • 유닉스그룹 목록 확인 • /etc/group • /etc/group 구조 • 그룹 이름. 여기서는 root 그룹을 말함. • 그룹에 대한 패스워드를 설정하는데, 일반적으로는 설정되지 않음. • 그룹 번호. 0은 root 그룹. • 해당 그룹에 속한 계정 목록. 하지만 이 목록은 완전하지 않기 때문에 패스워드 파일과 비교해보는 것이 가장 정확. root : x : 0 : root ➊ ➋ ➌ ➍

  11. Section 01계정과 패스워드 관리 • 데이터베이스의 계정 관리 • MS-SQL에서는 윈도우의 관리자계정으로 데이터베이스에 로그인할 수 있지만 오라클에서는 할 수 없음. • 운영체제와 데이터베이스 계정이 완전히 분리되어 있지 않은 경우 데이터베이스 계정 이외에 운영체제의 계정 역시 잘 확인해야 한다. • 데이터베이스에서도 계정이 운영체제처럼 관리자 계정과 일반 사용자 계정으로 나뉨. • MS-SQL에서 관리자 계정은 sa(system administrator). • 오라클에서 관리자계정은 sys, system. (sys와 system은 둘다 관리자 계정이지만, system은 sys와 달리 데이터베이스를 생성할 수 없음.) • 오라클은 Scott이라는 기본 계정이 존재하고, 솔루션을 설치하거나 테이블을 생성할 때 관련 계정이 자동으로 생성되는 경우가 많음. 그리고 그 계정들은 보통 아이디와 패스워드가 동일하기 때문에 불필요한 경우에는 잠금 상태(LOCK)로 바꾸어 주고 그렇지 않은 경우에는 패스워드를 적절히 바꾸어 주어야 함.

  12. 패스워드 관리 • 패스워드 관리 • 좋지 못한 패스워드의 예 • 길이가 너무 짧거나 널(Null)인 패스워드 • 사전에 나오는 단어나 이들의 조합 • 키보드 자판의 일련 나열 • 사용자 계정 정보로 유추 가능한 단어들 • 좋은 패스워드 • 단어와 간단한 숫자, 특수문자 한두 개를 조합한 적절한 길이의 패스워드

  13. Section 02세션 관리 • 세션 • 사용자와 컴퓨터 또는 두 컴퓨터간의 활성화된 접속

  14. Section 02세션 관리 • 컴퓨터에서 세션을 적절히 유지하기 위한 보안 사항. • 세션 하이재킹 또는 네트워크 패킷 스니핑에 대응하기 위한 암호화 • 세션에 대한 지속적인 인증(Continuous Authentication). • 지속적인 인증 • 인증 절차를 거쳐 시스템에 접근하는 데 성공했다면, 얼마 후 같은 아이디로 시스템에 접근하는 사람이 인증에 성공한 처음의 그 사람인가라는 의문에 대한 해답을 찾기 위한 방책 • 윈도우 : 화면 보호기 • 유닉스 : /etc/default/login이나 /etc/profile과 같이 사용자의 일반 환경을 설정하는 파일에서 타임아웃 값을 명시적으로 설정.

  15. Section 03접근 제어 • 운영체제의 접근 제어 • 접근 제어를 수행해야 할 관리 인터페이스 • inetd 데몬 • 클라이언트로부터 inetd가 관리하고 있는 Telnet이나 SSH, FTP 등에 대한 연결 요청을 받은 후 해당 데몬을 활성화시켜 실제 서비스를 하는, 데몬과 클라이언트의 요청을 연결하는 역할

  16. 운영체제의 접근 제어 • TCPWrapper • TCPWrapper 가 설치되면, inetd 데몬은 연결을 TCPWrapper의 tcpd 데몬에 넘겨줌. tcpd 데몬은 접속을 요구한 클라이언트에 적절한 접근 권한이 있는지 확인한 후 해당 데몬에 연결을 넘겨줌. 이때 연결에 대한 로그도 실시할 수 있음.

  17. 데이터베이스의 접근 제어 • 데이터베이스의 접근 제어 • 오라클은 $ORACLE_HOME/network/admin/sqlnet.ora 파일에서 IP 에 기반한 접근 제어 설정 • 200.200.200.100과 200.200.200.200라는 두 IP의 접근을 허용하고 싶으면 1 과 같이, 200.200.200.150의 접근을 차단하고 싶으면 2 와 같이 추가. • MS-SQL은 운영체제처럼 IP에 대한 접근 제어를 기본으로 제공하지 않음. tcp.invited_nodes=(200.200.200.100, 200.200.200.200) tcp.excluded_nodes=(200.200.200.150)

  18. 네트워크 장비의 접근 제어 • 네트워크 장비의 접근 제어 • 네트워크 장비도 IP에 대한 접근 제어가 가능. • 네트워크 장비에서 수행하는 IP에 대한 접근 제어로는 관리 인터페이스의 접근 제어와 ACL(Access Control List)을 통한 네트워크 트래픽의 접근 제어를 생각할 수 있음. • 네트워크 장비의 관리 인터페이스에 대한 접근 제어는 유닉스의 접근 제어와 거의 같고, ACL을 통한 네트워크 트래픽에 대한 접근 제어는 방화벽에서의 접근 제어와 기본적으로 같음.

  19. Section 04권한 관리 • 윈도우의 권한 관리 • 윈도우NT 4.0 이후부터는 NTFS(New Technology File System)를 기본 파일 시스템으로 사용. • 모든 권한: 디렉토리에 대한 접근 권한과 소유권을 변경할 수 있으며, 하위에 있는 디렉토리와 파일을 삭제할 수 있음. • 수정: 디렉토리를 삭제할 수 있음. 읽기 및 실행과 쓰기 권한이 주어진 것과 같음. • 읽기 및 실행: 읽기를 수행할 수 있으며, 디렉토리나 파일을 옮길 수 있음. • 디렉토리 내용 보기: 디렉토리내의 파일이나 디렉토리의 이름을 볼 수 있음. • 읽기: 디렉토리의 내용을 읽기만 할 수 있음. • 쓰기: 해당 디렉토리에 하위 디렉토리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있음.

  20. 운영체제의 권한 관리 • 윈도우의 특정 권한으로는 좀 더 세부적인 쓰기, 읽기 등이 있음. • 윈도우에서 디렉토리 및 파일에 대해 설정되는 접근 권한의 규칙 • 규칙 1 : NTFS 접근 권한은 누적. • 규칙 2 : 파일에 대한 접근 권한이 디렉토리에 대한 접근 권한보다 우선. • 규칙 3 : ‘허용’보다‘거부’가 우선

  21. 운영체제의 권한 관리 • 윈도우에서는 파일 및 디렉토리에 대한 권한을 cacls 명령으로도 확인할 수 있음

  22. 운영체제의 권한 관리 • 유닉스의 권한 관리 • 유닉스는 파일 및 디렉토리에 대한 권한 설정 방법이 모두 같음. • ls -al 명령으로 해당 디렉토리의 내용을 확인.

  23. 운영체제의 권한 관리 • 파일의 종류와 권한. 다시 다음 4부분으로 나눌 수 있다. - rw- r-- r-- ⓐ ⓑ ⓒ ⓓ ⓐ 파일 및 디렉토리의 종류. - 표시는 일반 파일을, d 표시는 디렉토리를 나타냄. ⓑ 파일 및 디렉토리 소유자의 권한. ⓒ 파일 및 디렉토리 그룹의 권한. ⓓ 해당 파일 및 디렉토리의 소유자도 그룹도 아닌 제3의 사용자에 대한 권한. • 읽기(r: read), 쓰기(w: write), 실행(x: execute)의 권한을 부여. • 권한은 숫자로 표기할 수도 있음. 읽기는 4, 쓰기는 2, 실행은 1로 바꾸어 환산. • 파일에 대한 소유자 • 파일에 대한 그룹. 유닉스에서 dba 그룹에 속한 계정은 /etc/group에서 dba의 그룹번호로 확인. -rw-r--r-- 1 oracle dba 312 Nov 30 13:05 listener.ora ➊ ➋ ➌ rw- r-- r-- = 42- 4-- 4-- → 644

  24. 데이터베이스의 권한 관리 • 질의문에 대한 권한 관리 • DDL(Data Definition Language) • 데이터 구조를 정의하는 질의문으로, 데이터베이스를 처음 생성하고 개발할 때 주로 사용하고 운영 중에는 거의 사용하지 않음. • CREATE: 데이터베이스 객체를 생성한다. • DROP: 데이터베이스 객체를 삭제한다. • ALTER: 존재하는 기존 데이터베이스 객체를 다시 정의한다 • DML(Data Manipulation Language) • 데이터베이스의 운영 및 사용과 관련해 가장 많이 사용하는 질의문으로, 데이터의 검색과 수정 등을 처리. • SELECT: 사용자가 테이블이나 뷰의 내용을 읽고 선택한다. • INSERT: 데이터베이스 객체에 데이터를 입력한다. • UPDATE: 기존 데이터베이스 객체에 있는 데이터를 수정한다. • DELETE: 데이터베이스 객체에 있는 데이터를 삭제한다. • DCL(Data Control Language) • 권한 관리를 위한 질의문. • GRANT: 데이터베이스 객체에 권한을 부여한다. • DENY: 사용자에게 해당 권한을 금지한다. • REVOKE: 이미 부여된 데이터베이스 객체의 권한을 취소한다

  25. 데이터베이스의 권한 관리 • 권한 부여와 관련되어 일반적으로 다음과 같은 구조로 적용됨.

  26. 데이터베이스의 권한 관리 • MS SQL에서 권한 관리 • 데이터베이스 테이블에 대한 권한 변경시 계정 또는 그룹의 권한 항목만 체크하면 됨. • With Grant는 내가 A에게 Select에 대한 With Grant 옵션을 부여하면, A가 내 허락을 받지 않고도 C나 F와 같은 다른 사람에게 Select 권한을 부여할 권한을 갖게 해주는 것(일종의 권한 위임)

  27. 데이터베이스의 권한 관리 • 오라클(오라클 11g)에서 권한 관리 • 권한 부여와 제거 명령어 형식 • 권한 부여와 제거 명령어 예 권한 부여: SQL> grant [권한] on [테이블 이름] to [사용자나 Role]; 권한 제거: SQL> revoke [권한] on [테이블 이름] from [사용자나 Role]; SQL> grant select on member to wishfree; SQL> grant select on address to sysweaver;

  28. 데이터베이스의 권한 관리 • 권한이 부여된 내역 확인 • wishfree 계정에 부여된 권한 확인 SQL> select * from user_tab_privs where grantee in ('WISHFREE')

  29. 데이터베이스의 권한 관리 • 권한 내용을 모두 보고 싶을 때는 조건을 뺀, 즉 select * from user_tab_privs만 입력. wishfree에게 부여된 Select 권한은 Revoke 명령으로 제거할 수 있음 SQL> revoke select on member from wishfree; SQL> select * from user_tab_privs where grantee in ('WISHFREE')

  30. 데이터베이스의 권한 관리 • 뷰 • 각 사용자에 대해 참조 테이블의 각 열에 대한 권한을 설정하는 것이 매우 번거롭고 관리가 어려워 만든 가상 테이블.

  31. Section 05로그 • Authentication (인증) • 자신의 신원(Identity)을 시스템에 증명하는 과정. 가장 일반적인 경우가 아이디와 패스워드를 입력하는 과정. • 아이디가 신원을 나타내고 패스워드가 정상이면 인증이 됨. • Authorization (인가) • 올바른 패스워드를 입력해 시스템에 로그인이 허락된 사용자라고 판명되어 로그인되는 과정. • Accounting • 접근한 객체나 파일에 대한 기록. • 추적을 위한 로그의 충실도를 책임 추적성(Accountability)이라 함.

  32. 운영체제의 로그 • 윈도우의 로그 • 윈도우 2003은 최소한의 로그가 기본으로 설정되어 있어 시스템에 남겨진 로그를 확인 할 수 있음. 윈도우에서는 이벤트 뷰어라는 로그 열람 기능을 제공하는데, 운영체제 수준에서 남기는 거의 모든 로그를 이 기능을 통해 볼 수 있음 • 이벤트 뷰어에 표시되는 내용

  33. 운영체제의 로그 • 윈도우의 로그 정책 설정 • [관리도구]-[로컬 보안 설정]에서 설정

  34. 운영체제의 로그 • 윈도우의 로그 종류

  35. 운영체제의 로그

  36. 운영체제의 로그 • 유닉스의 로그 • 주요 시스템의 로그 디렉토리 위치 • 레드햇 리눅스는 /var/log 디렉토리 아래에 로그 파일이 존재.

  37. 운영체제의 로그 • 유닉스 로그의 종류

  38. 운영체제의 로그 • Last 명령 실행 결과

  39. 데이터베이스의 로그 • 데이터베이스 로그 • 데이터베이스는 모든 접근 및 실행 SQL 문에 대해 로그를 남길 수 있음. • 하지만 로그를 활성화시키면 CPU 점유율이 30% 가량 상승하는 시스템 자원의 문제 때문에 보안보다 데이터베이스 운영상의 문제점을 확인하기 위해 필요할 때만 활성화시키고, 평소에는 데이터베이스에 대한 간단한 접근 로그만 남기는 것이 일반적임. • MS-SQL 2000에서는 오른쪽과 같이 로그인 시도에 대한 실패와 성공 로그를 각각 남길 수있음. • 오라클은 네트워크를 통해 데이터베이스에 로그인하면 $ORACLE_HOME/network/log/listener.log에 그 기록을 남김.

  40. 데이터베이스의 로그 • 데이터베이스에 대한 로그를 남기는 가장 좋은 방법은 별도의 데이터베이스 모니터링 툴을 도입하는 것. • 네트워크에 네트워크 트래픽을 모니터링할 수 있는 태핑(Tapping) 장비를 설치하고, 네트워크 패킷 중 데이터베이스 질의문을 확인하여 이를 로그로 남김.

  41. 네트워크 장비의 로그 • 네트워크 장비의 로그 • 라우터나 스위치는 자체적으로 로그를 남기는 저장공간이 없음. 각 네트워크 장비에서 생성되는 로그를 네트워크를 통해 로그 서버에 전송. • 해커가 어떤 네트워크 장비에 침투하더라도 자신의 흔적을 지우기가 쉽지 않음.

  42. Section 06취약점 관리 • 패치 • 마이크로소프트에서는 시스템의 보안 취약점을 확인하기 위한 MBSA(Microsoft Baseline Security Analyzer)와 같은 툴을 배포하고 있음(http://www.microsoft.com/ technet/security/tools/mbsahome.mspx). MBSA를 이용해 현재 윈도우의 취약점과 적용되어 있지 않은 패치 목록을 확인할 수 있음.

  43. Section 06취약점 관리 • 솔라리스의 패치 관련 사이트(http://sunsolve.sun.com/show.do?target=patchpage)

  44. Section 06취약점 관리 • 응용 프로그램의 보안 설정 • 응용 프로그램의 잘못된 설정이 공격자가 운영체제에 침투하는 경로를 제공하는 경우도 많기 때문 운영체제뿐만 아니라 응용 프로그램에 대한 보안 설정도 매우 중요. • 응용 프로그램의 실행 프로세스 권한 설정 • 공격자는 응용 프로그램의 취약점을 통해 해당 프로세스의 운영체제 권한을 얻는 것이가능. 따라서데이터베이스나 다른 응용 프로그램도 필요에 따라 프로세스의 실행 권한을 제한해야 함. • 특히 웹은 취약점이 많이 노출될 수 있어, 윈도우에서는 IIS에서 그 실행 프로세스 권한을 별도로 만들어 사용하고 유닉스에서는 nobody와 같이 제한된 계정 권한을 사용해야 함.

  45. Section 06취약점 관리 • 응용 프로그램의 통한 운영체제의 접근 제한 • 응용 프로그램 중에는 해당 응용 프로그램을 통해 운영체제의 파일이나 명령을 실행시킬 수 있는 것이 있음. • MS-SQL의 xp_cmdshell은 데이터베이스를 통해 운영체제의 명령을 실행하고, 파일 등에 접근할 수 있음. • 응용 프로그램의 동작과 관련하여 운영체제에 접근할 수 있는 함수나 기능이 있으면 그 적절성을 검토해야 함.

  46. Section 06취약점 관리 • 응용 프로그램의 통한 운영체제의 정보 수집 제한 • 응용 프로그램이 운영체제에 직접적인 영향을 미치지 않아도 응용 프로그램의 특정 기능이 운영체제의 정보를 노출시키기도 함. • 유닉스에서는 이메일을 보낼 때, 수신자가 있는 시스템의 sendmail 데몬에 해당 계정이 존재하는지 확인하기 위해 일반 계정은 vrfy(verify) 명령을, 그룹은 expn(expansion) 명령을 시스템 내부적으로 사용. 일반 사용자는 다음과 같이 Telnet을 이용해 시스템에 존재하는 계정의 목록을 어느 정도 파악할 수 있음. • 이러한 응용 프로그램의 기능은 제한하는 것이 바람직함.

  47. Section 06취약점 관리 • 불필요한 서비스 및 악성 프로그램의 확인과 제거 • 응용 프로그램의 통한 운영체제의 정보 수집 제한

  48. Section 06취약점 관리 • 현재 동작 중인 프로세스의 확인 • 시스템에 동작 중인 악성 프로그램을 확인하기 위해 현재 동작중인 프로세스를 확인하는 것도 매우 중요. • [Windows 작업 관리자] 창을 이용한 프로세스 확인

  49. Section 06취약점 관리 • 현재 동작중인 프로세스의 확인 • 유닉스에서는 ps -ef 명령을 통해 시스템에서 운영 중인 프로세스를 확인

  50. Section 06취약점 관리 • 열린 포트 확인 • 악성 프로그램이나 운영 중인 서비스는 열린 포트를 통해서도 확인할 수 있음. 윈도우와 유닉스 모두 netstat -an 명령으로 확인이 가능.

More Related