1 / 88

√ 원리를 알면 IT 가 맛있다

정보 보안 개론과 실습 시스템 해킹과 보안. √ 원리를 알면 IT 가 맛있다. ehanbit.net. 학습목표. 윈도우의 개별 서비스에 따른 취약점 이해 취약점에 대한 적절한 보안 설정 보안 설정 적용 시 대안 설정. 계정관리. ■ 계정관리. 패스워드 관리 주기적으로 관리하는 시스템의 패스워드를 크랙하여 취약한 패스워드를 가진 계정을 체크한다. 불필요한 계정의 제거 계정의 생성은 반드시 문서화하여 기록하고 주기적으로 불필요한 계정을 삭제한다. 계정 정책의 설정

Download Presentation

√ 원리를 알면 IT 가 맛있다

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. 정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net

  2. 학습목표 • 윈도우의 개별 서비스에 따른 취약점 이해 • 취약점에 대한 적절한 보안 설정 • 보안 설정 적용 시 대안 설정

  3. 계정관리 • ■ 계정관리 • 패스워드 관리 주기적으로 관리하는 시스템의 패스워드를 크랙하여 취약한 패스워드를 가진 계정을 체크한다. • 불필요한 계정의 제거 계정의 생성은 반드시 문서화하여 기록하고 주기적으로 불필요한 계정을 삭제한다. • 계정 정책의 설정 5회 이상 잘못된 패스워드 입력 시 계정이 자동으로 잠기도록 설정한다.

  4. 로컬 보안 설정 • ■ 로컬 보안 설정 1 • 네트워크에서 이 컴퓨터 액세스 / 거부 윈도우의 대부분의 설정은 ‘거부’가 우선권을 갖는다. ‘네트워크에서 이 컴퓨터 액세스 거부’를 설정할 경우에는 원격에서만 접속이 불가능하다.

  5. 로컬 보안 설정 • ■ 로컬 보안 설정 2 • 로컬 로그인/거부 ‘로컬 로그인 거부’를 사용할 경우에는 원격에서는 접속이 가능하지만 시스템 앞에서 로그인할 수는 없다. • 시스템 종료 / 원격에서 강제로 시스템 종료 ‘시스템 종료’는 기본으로는 Administrators, Backup Operators, Power Users 그룹만이 로컬에서 시스템을 종료시킬 수 있다. ‘원격에서 강제로 시스템 종료’는 ‘Administrators’그룹만이 가능하다. • 로그인 스크린에 마지막 사용자 이름 표시 안 함 ‘로그인 스크린에 마지막 사용자 이름 표시 안 함’을 다음과 같이 ‘사용’으로 바꾼다.

  6. 로컬 보안 설정 • ■ 로컬 보안 설정 3 • 로그인 시도하는 사용자에 대한 메시지 제목 / 텍스트 GUI 환경의 터미널 접속에서 경고 창을 생성하여 로그인 시도자에게 알려주는 역할을 한다. • 로그인하지 않고 시스템 종료 허용 로그인 시 ‘옵션’을 누르면 ‘시스템 종료’ 버튼이 활성화된다. 기본적으로 금지하는 것이 좋다. • 보안 감사를 로그할 수 없는 경우 즉시 시스템 종료 감사 로그가 꽉 차거나, 로깅을 정상적으로 시행할 수 없을 때 시스템을 재부팅하게 하는 설정 • Administrator 계정 이름 바꾸기 공격자가 윈도우의 기본 관리자 계정을 추측하여 패스워드 크래킹 공격을 시도할 수 있으므로 기본 관리자 계정의 이름을 바꾼다.

  7. 데몬 관리 • ■ 데몬 관리 - FTP • 익명계정 로그인 FTP의 취약점 중 가장 일반적인 취약점은 익명계정(anonymous)의 로그인 허용이다. 윈도우 시스템에서는 익명 계정이 기본적으로 허용되어 있다. 이러한 익명계정에 의한 FTP 로그인을 금지한다. • 동시 접속자 수 FTP에 접속할 필요가 있는 세션 수 이상의 접속이 이루어지지 않도록 설정한다. • FTP의 W3C 로깅 정보가 남는 파일 c:/winnt/system32/logfiles/MSFTPSVC1 • FTP로그인 시 경고문 설정 • FTP 접근제어 설정

  8. 데몬 관리 • ■ 데몬 관리 - SMTP • telnet 명령을 이용한 배너 그래빙 SMTP 데몬의 버전과 운영체제를 추측할 수 있다. 예제) telnet 172.16.0.100 25 • SMTP의 W3C 로깅 정보가 남는 파일 c:/winnt/system32/logfiles/MSFTPSVC1 • SMTP 접근제어 설정 • SMTP 릴레이 설정

  9. 데몬 관리 • ■ 데몬 관리 - HTTP • 기본 가상 디렉토리 변경 기본 웹 가상 디렉토리인 C:\inetpub\wwwroot 를 다른 임의의 디렉토리로 변경 필요 • 디렉토리 보안 익명 액세스와 인증 제어, IP 주소 및 도메인 이름 제한, 보안 통신에 대한 설정 ■ 데몬 관리 – HTTPS 1/2 HTTPS는 443번 포트를 사용해서 운영되며, 암호화된 웹 접속을 할 수 있게 한다.

  10. 데몬 관리 • ■ 데몬 관리 – HTTPS 2/2 Step 1. 인증 서버의 설치 Step 2. 웹 서버에서 인증 서버로 인증서 발급 요청 Step 3. 인증 서버에서 웹 서버의 인증서 요청 승인 Step 4. 인증 서버에서 승인받은 인증서를 웹 서버에 설치 Step 5. 클라이언트 웹 브라우저 인증서 발급 요청 Step 6. 인증 서버에서 클라이언트 웹 브라우저 인증서 승인 Step 7. 클라이언트에 승인받은 인증서 설치 Step 8. 클라이언트로부터 웹 서버로 HTTPS를 이용한 접속

  11. 데몬 관리 • ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 1/3 • 널 세션 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa의 restrictanonymous 값을 2로 설정해준다. 이 값을 2로 설정하면 널 세션을 생성할 수 없다.

  12. 데몬 관리 • ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 2/3 • PSEXEC를 이용한 원격 시스템 로그인 원격 시스템에 관리자 권한을 가진 계정을 이용하여, 로그인 후 명령창을 획득할 수 있다.

  13. 데몬 관리 • ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 3/3 • NetBIOS에 대한 취약점 제거 제어판의 네트워크 설정에 대한 등록정보에서 ‘Microsoft 네트워크용 클라이언트’ 프로토콜만 남겨두고, ‘Microsoft 네트워크용 파일 및 프린터 공유’ 프로토콜을 사용하지 않는다.

  14. 데몬 관리 • ■ 데몬 관리 – SNMP SNMP는 시스템의 여러 정보를 원격에서 수집할 수 있도록 한다.

  15. 데몬 관리 • ■ 데몬 관리 – PRINTER 프린터와 TCP/IP를 이용해서 연결할 때 쓰는 포트. 프린터를 굳이 사용하지 않는다면, 데몬을 중지시켜준다. ■ 데몬 관리 – NFS or IIS - IIS 시스템이 DCE(Distributed Computing Environment)를 운영하기 위한 포트로 메신저 서비스가 이 포트에 의해 운영된다. - 메신저 서비스는 근래에 악용되어 인터넷을 통해 상업용 메시지를 뿌리는 데 사용되어 이를 중지시키는 경우가 많은데, 웹 서버의 경우에는 이를 중지시킬 경우 웹 서버가 정상적으로 동작하지 않는다. net send 192.168.68.3 "메신저 서비스를 악용한 사례“

  16. 데몬 관리 • ■ 데몬 관리 – LSA or nterm 브리지 또는 라우터와 IP를 이용한 통신을 할 때 이를 조절하는 역할을 한다. ■ 데몬 관리 – MSDTC 설정의 변경 사항에 대한 클러스터링 시스템간 동기화에 쓰이며, 가장 일반적인 경우는 ‘윈도우 업데이트’가 자동으로 뜨게 만드는 데몬이다. ■ 데몬 관리 – MS-Term-Serv 윈도우에서 제공하는 터미널 서비스에 대한 포트 터미널 포트에 대한 비인가 접속을 막기 위해 포트 번호를 변경한다. 레지스트리 키 값 : ‘HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\ Wds\Rdpwd\Tds\Tcp\PortNumber’

  17. 데몬 관리 • ■ 데몬 관리 –패치 마이크로 소프트 사이트에서 해당 패치를 검색하여 업데이트한다.

  18. 접근 제어 • ■ 접근제어 – Sygate 1 • Sygate를 이용해 현재 동작중인 응용 프로그램 확인

  19. 접근 제어 • ■ 접근제어– Sygate 2 • Sygate를 이용한 네트워크 트래픽 확인

  20. 접근 제어 • ■ 접근제어– Sygate 3 • Sygate 사이트에서의 원격 취약점 분석

  21. 접근 제어 • ■ 접근제어– Sygate 4 • Sygate 방화벽에서의 접근제어 설정

  22. 파일 및 디렉토리 관리 • ■ 파일 및 디렉토리 관리 • 디렉토리에 대한 보안 옵션 • 모든 권한 : 디렉토리에 대한 접근 권한과 소유권을 변경할 수 있으며, 서브 폴더와 파일을 삭제할 수 있다. • 수정 : 폴더를 삭제할 수 있으며, 수정의 권한이 있으면, ‘읽기 및 실행’ 그리고 ‘쓰기’ 권한이 주어진 것과 같다. • 읽기 및 실행 : 읽기를 수행할 수 있으며, 디렉토리나 파일을 이동할 수 있다. • 폴더 내용 보기 : 디렉토리 내의 파일이나 서브 디렉토리의 이름을 볼 수 있다. • 읽기 : 디렉토리 안의 내용의 읽기만 가능하다. • - 쓰기 : 해당 디렉토리의 서브 디렉토리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있다.

  23. 파일 및 디렉토리 관리 • ■ 파일 및 디렉토리 관리 • 권한 적용을 위한 계정 또는 그룹 선택 창

  24. 파일 및 디렉토리 관리 • ■ 파일 및 디렉토리 관리 • EFS의 적용

  25. Thank you ehanbit.net

  26. 리눅스/유닉스 설정과 취약점

  27. 학습목표 • 계정에 대한 정책 수행 및 적용 • 유닉스의 개별 서비스에 따른 취약점 이해 • 취약점에 대한 적절한 보안 설정 • 시스템/파일 및 디렉토리에 대한 접근 제어 설정

  28. 계정관리 • ■ 계정 관리 • 취약한 패스워드의 점검 • 사용하지 않는 계정의 제거 • 중복된 root 계정의 존재 여부 grep ':0:' /etc/passwd

  29. 서비스 관리 • ■ 서비스 관리 – Inetd 데몬 • Inetd 데몬의 구성 및 동작

  30. 서비스 관리 • ■ 서비스 관리 • /etc/services

  31. 서비스 관리 • ■ 서비스 관리 • /etc/inetd.conf telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd ① ② ③ ④ ⑤ ⑥ ⑦

  32. 서비스 관리 • ■ 서비스 관리 ① : 서비스 : 서비스 이름을 정의하며, /etc/services에 정의되어 있어야 한다. ② : 소켓 타입(Socket Type) : TCP일 경우에는 stream, UDP일 경우에는 dgram이라고 표기한다. ③ : 프로토콜 : /etc/protocols 에 정의된 프로토콜 종류와 그 번호이다. tcp는 /etc/protocols 파일에서 확인할 수 있듯이 프로토콜 번호가 6번이다. ④ : 대기 설정 : inetd가 클라이언트로부터 서비스를 요청받은 경우, 이후에 즉시 또 다른 요청을 처리할 것인지 여부에 따라 nowait, wait로 구분한다. tcp의 경우에는 반드시 nowait여야 한다. ⑤ : 로그인 이름 : 데몬을 어떤 사용자의 권한으로 수행할 것인지 명시해준다. ⑥ : 서버 : 해당 서비스를 수행하기 위해 어떤 프로그램을 실행시킬 것인지를 적는다. 절대 경로로 적는다. ⑦ : 인자(Argument) : 데몬을 실행하는 데 필요한 인자 값을 적는다.

  33. 서비스 관리 • ■ 서비스 관리 • ECHO ( 포트 7 ) 어떤 시스템이 echo 포트로 데이터를 보내면, echo 포트에 데이터를 받은 시스템은 보낸 시스템에 똑같은 데이터를 보낸다. 특별한 서비스를 위한 것이라기보다는 ping과 비슷한 역할을 한다. • Discard ( 포트 9 ) echo 포트와는 달리 discard 포트는 어떤 데이터를 받더라도 그 데이터를 소거하는 역할을 한다. 응답을 보내지 않는다. • Daytime ( 포트 13 ) 현재 날짜와 시간을 알려준다. telnet 192.168.68.5 13

  34. 서비스 관리 • ■ 서비스 관리 • Charen ( 포트 19 ) 입력 값에 관계없이 임의의 문자열을 보낸다. telnet 192.168.68.5 19 • /etc/inetd.conf 에서 ECHO, Discard, Daytime, Charen 서비스 중지

  35. 서비스 관리 • ■ 서비스 관리 • FTP ( 포트 21 ) 주요 보안 이슈는 원격 버퍼 오버플로우 공격과 포맷 스트링 공격, 그리고 anonymous 로그인과 root 계정의 로그인 허용이 있다. • FTP – Anonymous 계정 생성법 1. useradd 명령으로 ftp 계정을 생성한다. 2. Anonymous 계정이 사용할 디렉토리를 생성하고, 실행에 필요한 ls 명령 등을 복사해둔다. Anonymous 계정의 역할에 따라 필요한 파일을 복사한다. 3. 생성된 ftp 계정의 /etc/passwd 파일 내용을 바꾼다. 4. 생성된 ftp 계정의 /etc/shadow 파일 내용을 바꾼다. 5. /etc/group에 ftpg 그룹을 생성해준다. 6. Anonymous 계정으로 로그인한다.

  36. 서비스 관리 • ■ 서비스 관리 • FTP – /etc/ftpusers 를 이용한 접근제어 등록된 계정은 ftp 를 이용한 로그인 불가

  37. 서비스 관리 • ■ 서비스 관리 • SSH (포트 22) SSH는 암호화된 Telnet 서비스. SSH1은 접속과 인증을 위해서 RSA(Rivest-Shamir-Adleman)를 이용하며, 통신의 암호화를 위해서는 Blowfish, DES, 3DES, RC4 및 IDEA 등을 사용한다. .

  38. 서비스 관리 • ■ 서비스 관리 • Telnet (포트 23) 평문 전송으로 암호화 되지 않은 통신. 네트워크를 이용한 다양한 공격에 매우 취약하다. • Telnet –관리자 원격 로그인 제한 - /etc/default/login • Telnet –로그인 시 경고문 출력 - /etc/issue

  39. 서비스 관리 • ■ 서비스 관리 • SMTP (포트 25) Sendmail에 대한 가장 일반적인 보안 이슈는 원격 버퍼오버플로우나 포맷 스트링 그리고, EXPN (Expansion)과 VRFY(Verify) 명령의 실행 여부다. telnet 192.168.68.5 25 Expn root Vrfy wishfree

  40. 서비스 관리 • ■ 서비스 관리 • SMTP – Expn, Vrfy 명령 금지 설정 Vi /etc/mail/sendmail.cf

  41. 서비스 관리 • ■ 서비스 관리 • Sendmail 배포판 무결성 확인 1. sendmail의 배포판과 전자서명 파일인 sig(signature : 서명) 파일을 다운로드 받는다.

  42. 서비스 관리 • ■ 서비스 관리 2. md5sum 유틸리티를 이용해서 해시 값을 구한다. md5sum sendamil.8.12.11.tar.gz 3. GNUPG 설치 rpm -Uvh gnupg-1.2.1-9.i386.rpm

  43. 서비스 관리 • ■ 서비스 관리 4. sendmail 배포 사이트의 공개 키 입력 http://www.sendmail.org/ftp/PGPKEYS gpg --import PGPKEYS 5. 서명 파일을 이용한 서명 확인 gpg --verify sendmail.VERSION.tar.gz.sig sendmail.VERSION.tar.gz

  44. 서비스 관리 • ■ 서비스 관리 • Time (포트 37) daytime(포트 13) 프로토콜과 마찬가지로 시간을 알려주는 프로토콜이다. • TFTP (포트 69) FTP를 이용해서 접속하고자 할 때, Anonymous 계정이 존재하는 경우를 제외하면 계정과 패스워드를 입력해야만 접속할 수 있다. 그러나 TFTP의 경우에는 이러한 인증 과정이 전혀 없다. TFTP를 이용하는데 계정과 패스워드는 필요 없다. 따라서, TFTP 데몬은 운영하지 않는 것이 최상이며, 운영하고자 할 경우에는 –s(secure) 옵션을 주어 실행한다.

  45. 서비스 관리 • ■ 서비스 관리 • TFTP를 이용한 임의 파일 전송 TFTP 데몬이 –s 옵션없이 실행되고 있을 경우 다음과 같이 임의의 사용자가 이를 다운로드 받을 수 있다.

  46. 서비스 관리 • ■ 서비스 관리 • Finger (포트 79) finger는 서버에 현재 로그인 중인 사용자 계정에 대한 정보를 확인할 수 있다. 이러한 정보는 해커에게 사용자의 이용 시간 및 계정의 존재 유무를 확인할 수 있게 한다. finger -l @192.168.68.5

  47. 서비스 관리 • ■ 서비스 관리 • HTTP (포트 80) 웹 서비스를 수행하는 매우 중요한 포트다. 또한 취약점이 많은 포트이기도 하다. • SUNRPC (포트 111) RPC는 자신에게 연결을 요청한 클라이언트에게 등록된 포트 중 적당한 포트를 클라이언트에게 할당해주고, 클라이언트는 RPC로부터 서버에 대한 연결 정보를 얻어 자신에게 필요한 서비스를 제공해주는 포트로 재접속한다.

  48. 서비스 관리 • ■ 서비스 관리 • SUNRPC - rpcinfo 현재 구동중인 rpc 정보를 확인할 수 있다. rpcinfo • SUNRPC – rpc 중단 /etc/init.d/rpc stop

  49. 서비스 관리 • ■ 서비스 관리 • SNMP (포트 121) 시스템에 대한 많은 정보를 유출할 수 있다.

More Related