1 / 49

백업 및 비상상황 대비

백업 및 비상상황 대비. 2014 SPARCS WHEEL SEMINAR CHOCHO 조현성. I. 백업 BACKUP. 백업 BACKUP. ‘ 임시 보관을 일컫는 말로 , 정보 기술에서는 데이터 백업이라고 하며 , 데이터를 미리 임시로 복제하여 , 문제가 일어나도 데이터를 복구할 수 있도록 준비해 두는 것을 말한다 .’. 백업의 이유. 파일이 손상되거나 없어질 때를 대비 Hardware failure (ex. disk breaking) Accidentally deleting wrong file

donar
Télécharger la présentation

백업 및 비상상황 대비

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. 백업 및 비상상황 대비 2014 SPARCS WHEEL SEMINAR CHOCHO 조현성

  2. I. 백업 BACKUP

  3. 백업 BACKUP • ‘임시 보관을 일컫는 말로, 정보 기술에서는 데이터 백업이라고 하며, 데이터를 미리 임시로 복제하여, 문제가 일어나도 데이터를 복구할 수 있도록 준비해 두는 것을 말한다.’

  4. 백업의 이유 • 파일이 손상되거나 없어질 때를 대비 • Hardware failure (ex. disk breaking) • Accidentally deleting wrong file • Computer being stolen …등등

  5. 백업의 종류

  6. 백업의 종류: Full Backup • 할 때마다 모든 데이터 백업 • 메모리 소모 ↑ • 전부 압축  하나의 zip파일로 보관 • - 시간 ↑ • - 복구는 가장 간단 • - 해킹당하면모든 정부를 내줄 수 있으니 강력한 보안 조치 필요! • 다른 백업들이 Full에 의존하기 때문에 주기적으로 해줘야 함

  7. 백업의 종류: Incremental Backup • 마지막 백업 후 바뀐 내용만 백업 (Full/Incremental/Differential/Mirror 전부 다!) • 적은 내용 백업  백업 시간이 빠르다 • Full backup에 매우 dependent • 복구시 각각 백업을 해야 함! 느림!

  8. 백업의 종류: Differential Backup • 마지막 Full Backup 이후 바뀐 내용만 백업 • 백업에 걸리는 속도는 더 느리지만 복구는 더 빠르다

  9. 백업의 종류: Mirror Backup • Full backup과 비슷 • 압축 X • - 빠르다 • ※원본에서 삭제되면 백업본에서도 삭제되므로 주의!

  10. 백업하기: dd (dump disk) • ※ andromeda의 파일시스템과 스왑공간 참조 • fdsik로 새로운 partition 생성 • dd명령어를 이용해 디스크 덤프 • 마운트 할 폴더 생성 • 생성된 폴더에 마운트 • ex.) # fdisk/dev/sda # dd if=/dev/sda1 of=/dev/sda13 #mkdir /backup-dd # mount /dev/sda13 /backup-dd

  11. 백업하기: tar • Backup용 Directory를 만든다$ cd /$ sudomkdir backups$ cd backups • 하나의 tar파일로 모은다$ sudo tar –cvpf /backups/fullbackup.tar -–directory=/ --exclude=proc –-exclude=sys -–exclude=dev/pts –-exclude=backups . --directory 로 백업하고 싶은 디렉터리를 지정 (e.g. --directory=/etc) --exclude 로 제외할 항목 지정

  12. 백업하기: tar • +간편하다 • ‐압축 X  용량이 크다!

  13. 백업하기: gzip / bzip • 그냥 tar로 묶기는 용량이 너무 크니 gzip이나 bzip을 압축하는 것도 좋은 방법! • $ sudo tar –zcvpf /backups/fullbackup.tar.gz –-directory=/ --exclude=proc –-exclude=sys –-exclude=dev/pts --exclude=backups . • unzip하는 법은 다들 알죠? ( ͡° ͜ʖ ͡° ) 

  14. 만약...서버가 통째로 날라간다면?!

  15. 다른 서버로 백업 백업 서버를 만들어서 백업 파일을 그 서버로 전송!

  16. 다른 서버로 백업: rsync • = Remote Sync; a file transfer program for Unix systems • Transfers just the differences between two sets of files across the network connection • 빠름!

  17. rsync로 백업하기 } • Client 서버와 백업 서버에 ssh 와 rsync가 설치되어 있어야 한다$ sudo apt-get install ssh rsync • Client 서버에서 (1) public key 발급,(2) 백업 서버로 public key 복사$ ssh-keygen –t rsa$ scp .ssh/id_rsa.pub chocho@wseminar4.sparcs.org:~/.ssh/authorized_keys • Client 서버에서 백업하기$ rsync –avz –-progress –e ssh /home/chocho chocho@wseminar4.sparcs.org:backup protos회원의 보안 세미나 참조

  18. 백업 스크립트 작성 일일이 코드치기 귀찮으니 스크립트를 작성 해놓자! $ vi backup.sh $ chmod +x backup.sh $ ./backup.sh $ rsync–avz –-progress –e ssh /home/chocho chocho@wseminar4.sparcs.org:backup

  19. Tips • ※ 오래된 백업 파일은 용량 관계상 제거 • ※ 백업용 디스크나 저장 매체를 만든 다음 백업 전 mount, 백업 후엔 unmounts 하는 명 령을 백업 스크립트 앞뒤에 끼워 넣으면 rm –rf/ 공격에도 살아남을 수 있다 • ※ 백업용 디스크는 백업 후 읽기 전용 혹은 하드웨어적으로 쓰기 및 변조 방지를 걸어두는 것이 좋다

  20. + 정기적 백업을 위해cron # 2014 두 번째 WHEEL SEMINAR # 쉘 스크립트와 크론

  21. II. 비상상황 대비하기

  22. 주로 접하게 될 문제들 • 크게 세가지로 나뉜다 • 소프트웨어적 • 하드웨어적 • 인적

  23. 소프트웨어적 문제 • 내부: • - 파일시스템 에러 • - 장치설정 오류 • - 부팅 에러 • - 기타 프로그램 에러 • - 커널패닉(블루스크린) • - 메모리 overflow • …등등 • 외부: • - 해킹 • - 악성코드 및 바이러스 • - 접속자 폭주 및 유사 상황 • …등등

  24. 하드웨어적 문제 • 내부: • - 랜선 고장 • - 케이블 절단 • - 전원장치 고장 • - 파워 이상 • - 냉각 이상 • - 특정 부품/부분 망가짐 • …등등 • 외부: • - 먼지 • - 물 쏟음 • ..등등

  25. 인적 문제 • 내부: • - 관리자의 실수 • - 잘못된 입력 혹은 오타 • …등등 • 외부: • - 도둑 • - 해커 • - 그 외의 악의적 사용자 • ..등등

  26. 주로 접하게 될 문제들 • 소프트웨어적– 여기 집중! • 하드웨어적 • 인적

  27. 소프트웨어 내부 문제 • 깨진 파일 시스템  가장 흔함 • /etc/fstab에서 장치명 지정 오류 • - Linux 설치 CD 등으로 Linux secure로 부팅한 후 수정  재부팅

  28. 소프트웨어 내부 문제 - e2fsck • 리눅스의 파일 시스템을 점검 및 복구를 할 수 있는 명령어; fsck의 확장 • 주로 슈퍼블록 및 파일 시스템의 오류를 수정 • - indo, block, sizes 점검 - 전체파일 개수 점검 • - 디렉터리 구조 점검 - 전체 블록 수 중 사용 중인 블록 점검 • - 디렉터리 연결성 점검- 파일 링크 정보 • …등등 • ※ 하기 전에 unmount하세요!$ e2fsck [options] [device to check] • 만약 root가 맛이 갔으면,USB 등에 부트로더를 담아서 부팅  /root 언마운트 후 점검

  29. 부팅이 되지 않는 경우 • 사전에 CD/DVD나 USB로 부팅 될 수 있게 미리 setting! • - 설치 CD엔 Rescue 모드가 있어 CD/DVD가 더 좋다 그 후 GRUB 등 부팅 관련 파일 복구

  30. 커널패닉Kernel Panic • 운영 체제가 치명적인 내부 오류를 감지하여 안전하게 복구가 불가능할 때 취하는 동작 • 원인: • 장치 드라이버 문제 • 메모리 문제 • 오작동의 누적 • 등등…

  31. 하드웨어 문제 대비 • 단순 접촉불량 랜선 고장  랜선 바꿔보고 접촉부위 점검 • 먼지는 주기적으로 털어줄 것 • 시끄럽게 울리는 비프음은 대체로 냉각 OR 파워 문제

  32. 해킹 • 주로 명령어를 못 쓰게 하거나 중요 파일 삭제/변조, 로그 삭제/변조, 비밀번호 에러가 뜨도록 변조 • 미리 백업해 놓은 시스템 코어로 대체 후 작업 • 데미지가 클 수도 있는 강경책: • - 해킹 감지 즉시 시스템 싱글 유저 모드 부팅 • - 랜선 등 기타 네트워크 강제 차단 • - 로그 보존을 위한 하드의 즉각적인 unmount

  33. 해킹 대비하기 • 안 쓰는 port 닫기 • 의심 가는 process는 죽이기 • 모의 해킹 등으로 보안 점검 • 주기적으로 프로그램 update • Root으로 로그인하고 자리 비우지 않기 • 비밀번호 적어놓기 OR 숨기지 않은 파일에 중요한 것들 적어놓기 절대 X • 서버실 물리적 보안

  34. 2012 KAIST/SPARCS해킹 사건 • 2012년 1월 10일. • KAIST 연구실들이 해킹당함. 스팍스도?!? • /var/run/sshd.sync/에 사용자들 비밀번호가 plain text로 저장. • root 아이디에 g0t4nyr00ts 를 치면 접속이 된다.

  35. 2012 KAIST/SPARCS 해킹 사건 YUI란 아이디의 해커가 스팍스IRC에 접속

  36. 2012 KAIST/SPARCS 해킹 사건 • 해킹 루트 분석: • zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치  획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  37. 해킹 루트 분석: • Zeroboard? zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치  획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  38. 해킹 루트 분석: • preg_replace • e modifier를 정규식에 넣고 NULL로 keyword 끝냄 •  앞까지의 문자열을 php로 실행! • preg_replace를 하면 /([^<]*)string/e 까지만 정규식으로 보고 string 앞 코드를 실행 zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치  획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복 $keyword_pattern = "/([^<]*)$keyword([^>]*)/i"; $memo = preg_replace($keyword_pattern, blahblahblah…); keyword= "string/e/0“ $keyword_pattern="/([^<]*)string/e/0([^>]*)/i“

  39. 해킹 루트 분석: • Backdoor? • 시스템의 보안이 제거된 비밀통로로서, 서비스 기술자나 유지보수 프로그래머들의 액세스 편의를 위해 시스템 설계자가 고의적으로 만들어 놓은 것 • debugfs로 hair.so 라는 라이브러리를 만든 것을 발견 • readdir을 변조해 일반적인 명령으로 __인 디렉이 검색되지 않게 함 • accept를 변조해 특정 포트로 오는 패킷에 해커가 설정한 문자열이 나오면 root를 줌 • ld.so.preload를 변조해 hair.so 라이브러리를 로드함 zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치 획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  40. 해킹 루트 분석: • readdir zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치 획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  41. 해킹 루트 분석: • accept zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치 획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  42. 해킹 루트 분석: • 변조된 sshd파일 • php의 preg_replace에 null을 넣으면 정규식의 끝으로 인식하는 취약점으로 쉘을 땀 zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치 획득한 서버의 sshd를 변조 ssh사용자의 id와 pw를 획득  다른 서버에 같은 작업 반복

  43. 해킹 루트 분석: • php의 preg_replace에 null을 넣으면 정규식의 끝으로 인식하는 취약점으로 쉘을땀 • ssh client와 daemon을 변조 • 사용자들이 로그인을 시도할 시 기록을 남기도록 함 • 변조된 sshd파일 zeroboard4 취약점으로 root 획득  획득한 서버에 백도어 설치 획득한 서버의 sshd를 변조  ssh사용자의 id와 pw를 획득 다른 서버에 같은 작업 반복

  44. 2012 KAIST/SPARCS 해킹 사건: 복구 • 정보통신팀과CERT에 연락 • 해킹사건 공지 • 모든 서버 재설치 작업 • 대부분의 비밀번호 reset • wheel 계정은 전부 ssh certificate을 쓰도록 바뀜

  45. ‘한번의 백업이 하룻밤 삽질, 10번의 복구작업, 100번의 후회와 해고를 막습니다…’by sillo

  46. References • 2010, 2011, 2012, 2013 Wheel Seminar (sillo, cling, whitegold, veritas) • http://www.debianhelp.co.uk/backup.htm • http://www.debiantutorials.com/remote-backups-using-rsync/ • 2012 KAIST Hacking

More Related