Upload
donar
View
67
Download
1
Embed Size (px)
DESCRIPTION
백업 및 비상상황 대비. 2014 SPARCS WHEEL SEMINAR CHOCHO 조현성. I. 백업 BACKUP. 백업 BACKUP. ‘ 임시 보관을 일컫는 말로 , 정보 기술에서는 데이터 백업이라고 하며 , 데이터를 미리 임시로 복제하여 , 문제가 일어나도 데이터를 복구할 수 있도록 준비해 두는 것을 말한다 .’. 백업의 이유. 파일이 손상되거나 없어질 때를 대비 Hardware failure (ex. disk breaking) Accidentally deleting wrong file - PowerPoint PPT Presentation
Citation preview
백업 및 비상상황 대비2014 SPARCS WHEEL SEMINAR
CHOCHO 조현성
I. 백업 BACKUP
백업 BACKUP
‘ 임시 보관을 일컫는 말로 , 정보 기술에서는 데이터
백업이라고 하며 , 데이터를 미리 임시로 복제하여 ,
문제가 일어나도 데이터를 복구할 수 있도록 준비해 두는
것을 말한다 .’
백업의 이유 파일이 손상되거나 없어질 때를 대비
1. Hardware failure (ex. disk breaking)
2. Accidentally deleting wrong file
3. Computer being stolen
… 등등
백업의 종류BACKUP TYPE DATA BACKED
UPBACKUP TIME RESTORE TIME STORAGE
SPACE
Full Backup All data Slowest Fast High
Incremental Backup
Only new/modi-fied files/folders Fast Moderate Lowest
Differential Backup
All data since last full Moderate Fast Moderate
Mirror Backup Only new/modi-fied files/folders Fastest Fastest Highest
백업의 종류 : Full Backup 할 때마다 모든 데이터 백업
메모리 소모 ↑
전부 압축 하나의 zip 파일로 보관
- 시간 ↑
- 복구는 가장 간단
- 해킹당하면 모든 정부를 내줄 수 있으니 강력한 보안 조치 필요 !
다른 백업들이 Full 에 의존하기 때문에 주기적으로 해줘야 함
백업의 종류 : Incremental Backup 마지막 백업 후 바뀐 내용만 백업 (Full/Incremental/Differential/Mirror 전부 다 !)
적은 내용 백업 백업 시간이 빠르다
Full backup 에 매우 dependent
복구시 각각 백업을 해야 함 ! 느림 !
백업의 종류 : Differential Backup 마지막 Full Backup 이후 바뀐 내용만 백업 백업에 걸리는 속도는 더 느리지만 복구는 더 빠르다
백업의 종류 : Mirror Backup Full backup 과 비슷
압축 X
- 빠르다
※ 원본에서 삭제되면 백업본에서도 삭제되므로 주의 !
백업하기 : 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
백업하기 : tar1. Backup 용 Directory 를 만든다
$ cd /
$ sudo mkdir backups
$ cd backups
2. 하나의 tar 파일로 모은다
$ sudo tar –cvpf /backups/fullbackup.tar -–directory=/ --exclude=proc
–-exclude=sys -–exclude=dev/pts –-exclude=backups .
--directory 로 백업하고 싶은 디렉터리를 지정 (e.g. --directory=/etc)
--exclude 로 제외할 항목 지정
백업하기 : tar
+ 간편하다
‐ 압축 X 용량이 크다 !
백업하기 : gzip / bzip 그냥 tar 로 묶기는 용량이 너무 크니
gzip 이나 bzip 을 압축하는 것도 좋은 방법 !
$ sudo tar –zcvpf /backups/fullbackup.tar.gz –-directory=/ --exclude=proc –-exclude=sys
–-exclude=dev/pts --exclude=backups .
unzip 하는 법은 다들 알죠 ? ( D° Fʖ D° )
만약 ...
서버가 통째로 날라간다면 ?!
다른 서버로 백업백업 서버를 만들어서 백업 파일을 그 서버로 전송 !
다른 서버로 백업 : rsync
= Remote Sync; a file transfer program for Unix systems
Transfers just the differences between two sets of files across the network con-
nection
빠름 !
rsync 로 백업하기1. Client 서버와 백업 서버에 ssh 와 rsync 가 설치되어 있어야 한다
$ sudo apt-get install ssh rsync
2. Client 서버에서 (1) public key 발급 , (2) 백업 서버로 public key 복사
$ ssh-keygen –t rsa
$ scp .ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys
3. Client 서버에서 백업하기
$ rsync –avz –-progress –e ssh /home/chocho [email protected]:backup
}protos 회원의
보안 세미나 참조
백업 스크립트 작성일일이 코드치기 귀찮으니 스크립트를 작성 해놓자 !
$ vi backup.sh
$ chmod +x backup.sh
$ ./backup.sh
$ rsync –avz –-progress –e ssh /home/chocho [email protected]:backup
Tips
※ 오래된 백업 파일은 용량 관계상 제거
※ 백업용 디스크나 저장 매체를 만든 다음 백업 전 mount, 백업 후엔 unmounts 하는 명
령을 백업 스크립트 앞뒤에 끼워 넣으면 rm –rf / 공격에도 살아남을 수 있다
※ 백업용 디스크는 백업 후 읽기 전용 혹은 하드웨어적으로 쓰기 및 변조 방지를 걸어두는
것이 좋다
+ 정기적 백업을 위해
cron# 2014 두 번째 WHEEL SEMINAR
# 쉘 스크립트와 크론
II. 비상상황 대비하기
주로 접하게 될 문제들
크게 세가지로 나뉜다
1. 소프트웨어적
2. 하드웨어적
3. 인적
소프트웨어적 문제 내부 :
- 파일시스템 에러
- 장치설정 오류
- 부팅 에러
- 기타 프로그램 에러
- 커널 패닉 ( 블루스크린 )
- 메모리 overflow
… 등등
외부 :
- 해킹
- 악성코드 및 바이러스
- 접속자 폭주 및 유사 상황
… 등등
하드웨어적 문제 내부 :
- 랜선 고장
- 케이블 절단
- 전원장치 고장
- 파워 이상
- 냉각 이상
- 특정 부품 / 부분 망가짐
… 등등
외부 :
- 먼지
- 물 쏟음
.. 등등
인적 문제 내부 :
- 관리자의 실수
- 잘못된 입력 혹은 오타
… 등등
외부 :
- 도둑
- 해커
- 그 외의 악의적 사용자
.. 등등
주로 접하게 될 문제들
1. 소프트웨어적 – 여기 집중 !
2. 하드웨어적
3. 인적
소프트웨어 내부 문제
깨진 파일 시스템 가장 흔함
/etc/fstab 에서 장치명 지정 오류
- Linux 설치 CD 등으로 Linux secure 로 부팅한 후 수정 재부팅
소프트웨어 내부 문제 - e2fsck 리눅스의 파일 시스템을 점검 및 복구를 할 수 있는 명령어 ; fsck 의 확장
주로 슈퍼블록 및 파일 시스템의 오류를 수정
- indo, block, sizes 점검 - 전체파일 개수 점검
- 디렉터리 구조 점검 - 전체 블록 수 중 사용 중인 블록 점검
- 디렉터리 연결성 점검 - 파일 링크 정보
… 등등
※ 하기 전에 unmount 하세요 !
$ e2fsck [options] [device to check]
만약 root 가 맛이 갔으면 ,
USB 등에 부트로더를 담아서 부팅 /root 언마운트 후 점검
부팅이 되지 않는 경우
사전에 CD/DVD 나 USB 로 부팅 될 수 있게 미리 setting!
- 설치 CD 엔 Rescue 모드가 있어 CD/DVD 가 더 좋다
그 후 GRUB 등 부팅 관련 파일 복구
커널 패닉 Kernel Panic 운영 체제가 치명적인 내부 오류를 감지하여 안전하게 복구가 불가능할 때 취하는 동작
원인 :
장치 드라이버 문제
메모리 문제
오작동의 누적
등등…
하드웨어 문제 대비
단순 접촉불량 랜선 고장 랜선 바꿔보고 접촉부위 점검
먼지는 주기적으로 털어줄 것
시끄럽게 울리는 비프음은 대체로 냉각 OR 파워 문제
해킹 주로 명령어를 못 쓰게 하거나 중요 파일 삭제 / 변조 , 로그 삭제 / 변조 , 비밀번호 에러가 뜨도록 변조
미리 백업해 놓은 시스템 코어로 대체 후 작업
데미지가 클 수도 있는 강경책 :
- 해킹 감지 즉시 시스템 싱글 유저 모드 부팅
- 랜선 등 기타 네트워크 강제 차단
- 로그 보존을 위한 하드의 즉각적인 unmount
해킹 대비하기 안 쓰는 port 닫기
의심 가는 process 는 죽이기
모의 해킹 등으로 보안 점검
주기적으로 프로그램 update
Root 으로 로그인하고 자리 비우지 않기
비밀번호 적어놓기 OR 숨기지 않은 파일에 중요한 것들 적어놓기 절대 X
서버실 물리적 보안
2012 KAIST/SPARCS 해킹 사건 2012년 1월 10 일 .
KAIST 연구실들이 해킹당함 . 스팍스
도 ?!?
/var/run/sshd.sync/ 에 사용자들
비밀번호가 plain text 로 저장 .
root 아이디에 g0t4nyr00ts 를 치면
접속이 된다 .
2012 KAIST/SPARCS 해킹 사건
YUI란 아이디의 해커가 스팍스 IRC 에 접속
2012 KAIST/SPARCS 해킹 사건 해킹 루트 분석 :
zeroboard4 취약점으로 root 획득 획득한
서버에 백도어 설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와 pw 를 획득 다른
서버에 같은 작업 반복
해킹 루트 분석 :
Zeroboard?
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어 설치
획득한 서버의 sshd 를 변조 ssh
사용자의 id 와 pw 를 획득 다른
서버에 같은 작업 반복
해킹 루트 분석 :
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“
해킹 루트 분석 :
Backdoor? 시스템의 보안이 제거된 비밀통로로서 , 서비스 기술자나
유지보수 프로그래머들의 액세스 편의를 위해 시스템 설계자가
고의적으로 만들어 놓은 것
debugfs 로 hair.so 라는 라이브러리를 만든 것을 발견
readdir 을 변조해 일반적인 명령으로 __ 인 디렉이 검색되지
않게 함
accept 를 변조해 특정 포트로 오는 패킷에 해커가 설정한
문자열이 나오면 root 를 줌
ld.so.preload 를 변조해 hair.so 라이브러리를 로드함
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어
설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와
pw 를 획득 다른 서버에 같은
작업 반복
해킹 루트 분석 :
readdir
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어
설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와
pw 를 획득 다른 서버에 같은
작업 반복
해킹 루트 분석 :
accept
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어
설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와
pw 를 획득 다른 서버에 같은
작업 반복
해킹 루트 분석 :
변조된 sshd 파일
php 의 preg_replace 에 null 을 넣으면
정규식의 끝으로 인식하는 취약점으로 쉘을 땀
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어
설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와
pw 를 획득 다른 서버에 같은
작업 반복
해킹 루트 분석 :
php 의 preg_replace 에 null 을 넣으면 정규식의
끝으로 인식하는 취약점으로 쉘을 땀
ssh client 와 daemon 을 변조
사용자들이 로그인을 시도할 시 기록을 남기도록 함
변조된 sshd 파일
zeroboard4 취약점으로 root
획득 획득한 서버에 백도어
설치 획득한 서버의 sshd 를
변조 ssh 사용자의 id 와
pw 를 획득 다른 서버에 같은
작업 반복
2012 KAIST/SPARCS 해킹 사건 : 복구
정보통신팀과 CERT 에 연락
해킹사건 공지
모든 서버 재설치 작업
대부분의 비밀번호 reset
wheel 계정은 전부 ssh certificate 을 쓰도록 바뀜
‘ 한번의 백업이
하룻밤 삽질 , 10 번의 복구작업 ,
100 번의 후회와 해고를 막습니다…’
by sillo
References 2010, 2011, 2012, 2013 Wheel Seminar (sillo, cling, whitegold, veri-
tas)
http://www.debianhelp.co.uk/backup.htm
http://www.debiantutorials.com/remote-backups-using-rsync/
2012 KAIST Hacking