1 / 20

레이스 컨디션 (Race Condition)

레이스 컨디션 (Race Condition). 발표자 : 박율기 (20052224). 레이스 컨디션 링크의 이해 및 실습 레이스 컨디션의 이해 및 실습 임시파일을 이용한 레이스 컨디션 Q & A. 목차. 레이스 컨디션 발표 순서. 레이스 컨디션. 레이스 컨디션 – 경쟁 상태 두개 이상의 프로세스가 경쟁하는 상태 운영체제상 레이스 컨디션이 발생하면 예기치 못한 결과가 초래된다. 레이스 컨디션과 공격. 레이스 컨디션 (Race Condition).

mele
Download Presentation

레이스 컨디션 (Race Condition)

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. 레이스 컨디션 (Race Condition) 발표자 : 박율기 (20052224)

  2. 레이스 컨디션 링크의 이해 및 실습 레이스 컨디션의 이해 및 실습 임시파일을 이용한 레이스 컨디션 Q & A 목차 레이스 컨디션 발표 순서 Page 2

  3. 레이스 컨디션 • 레이스 컨디션 – 경쟁 상태 • 두개 이상의 프로세스가 경쟁하는 상태 • 운영체제상 레이스 컨디션이 발생하면 예기치 못한 결과가 초래된다. 레이스 컨디션과 공격 레이스 컨디션(Race Condition) 레이스 컨디션(Race Condition) 공격 • 관리자 권한으로 실행중인 프로세스(A)와 경쟁 상태(Race Codnition)를 만듦 • A 프로세스가 사용하는 임시파일을 목표(target)로 한다. • A 프로세스가 사용중인 파일에 아주 짧은 공백 시간 동안 접근 하여 수정 Page 3

  4. 프로세스 A a = 5 b = 10 a = 10 b = 5 프로세스 B Page 4

  5. 링크의 이해 및 실습 • 원본과 링크한 파일의 inode가 다르다. • 원본 파일을 가리키는 파일 • 원본 파일 삭제 시 링크한 파일은 없는 파일을 가리키게 된다. • 디렉토리 링크 가능 • 다른 FileSystem 에서도 사용가능 링크의 이해 심볼릭 링크 하드 링크 • 원본과 링크한 파일의 inode가 같다. • 원본 파일에 복수의 이름을 지정하는것과 같다. • 링크한 파일을 모두 삭제하여야 원본파일 삭제 된다. • 파일만 링크 가능 • 같은 FileSystem 에 사용가능 Page 5

  6. 심볼릭 링크 Name:../A inode:100 Data Hello World Data link:../A Name:../B inode:200 하드 링크 Name:../A inode:100 Data HelloWorld Name:../B inode:100 Page 6

  7. 링크의 이해 및 실습 • 원활한 실습을 위하여 wishfree라는 일반권한 계정을 생성 • /wishfree(홈 디렉토리) 디렉토리에 race 디렉토리 생성 • /root 디렉토리 확인 • /root 디렉토리에 a.txt 라는 이름의 관리잔 소유 파일생성 후 실행 확인을 위하여 실행 시 눈에 띄는 문구삽입 실습 전 준비 준비사항 Page 7

  8. 링크의 이해 및 실습 링크의 이해 하드 링크 1 2 3 4 5 • /root/a.txt 파일 내용 확인 • a.txt 의 권한, 링크 수, 소유자, 소유그룹 확인 • /root/a.txt 파일을 링크하는 link.txt 파일을 /wishfree/race 에 생성 • /wishfree/race/link.txt 파일내용 표시 • a.txt 의 권한, 링크 수, 소유자, 소유그룹 확인 • 링크의 변화가 있는 것을 확인 할 수 있다. Page 8

  9. 링크의 이해 및 실습 링크의 이해 심볼릭 링크 1 2 3 4 5 • /root/a.txt 파일 내용 확인 • a.txt 의 권한, 링크 수, 소유자, 소유그룹 확인 • /root/a.txt 파일을 링크하는 symlink.txt 파일을 /wishfree/race 에 생성 • /wishfree/race/symlink.txt 파일내용 표시 • a.txt 의 권한, 링크 수, 소유자, 소유그룹 확인 • 링크의 변화가 없는 것을 확인 할 수 있다. Page 9

  10. 링크의 이해 및 실습 링크의 이해 /wishfree/race 디렉토리 내용 결과 • 심볼릭 링크는 원본 파일의 링크 수에 영향을 주지 않는다. • 링크한 파일을 수정하면 원본 파일이 수정된다. Page 10

  11. 레이스 컨디션의 이해 및 실습 • Linux 6.2 / 7.0 (6.2를 추천함) • Vmware 6.0 에서 작동(6.5 에서 Linux 6.2 / 7.0 구동 안됨) • 일반권한 계정 필요(실습의 원활한 진행을 위해 wishfree로 진행) 임시파일을 이용한 레이스 컨디션 준비 사항 Page 11

  12. 레이스 컨디션의 이해 및 실습 if (argc != 3) { fprintf (stderr, „usage : %s file message\n“, argv[0]) exit(EXIT_FAILURE);} • 실행 시 argument의 개수 오류검증 slep(20);if ((fp = fopen (argv[1], “w”)) == NULL) { fprintf (“stderr, “Can’t open\n”); exit(EXIT_FAILURE);} • 쓰기권한으로 파일열수 없을 경우 오류검증 임시파일을 이용한 레이스 컨디션 소스 해석 Page 12

  13. 레이스 컨디션의 이해 및 실습 fprintf (fp, “%s\n”, argv[2]); • 3번째 argument 파일로 저장fclose (fp); • 쓰기권한으로 열었던 파일 닫기 • 소스보기 및 소스 다운 http://qkrdbfrl.dothome.co.kr/ 임시파일을 이용한 레이스 컨디션 소스 해석 Page 13

  14. 레이스 컨디션의 이해 및 실습 임시파일을 이용한 레이스 컨디션 /etc/shadow 파일 백업 • 계정에 대한 정보가 저장되어 있고 shadow 파일을 수정하므로 백업 한다 • shadow 실습 후 root 계정 정보를 변경하므로 백업이 필요하다. 컴파일 및 SetUID 설정 • chmod 4755 : UID구분 / 소유주 권한 / 그룹권한 / 다른 사용자 권한 Page 14

  15. 레이스 컨디션의 이해 및 실습 • wishfree 계정으로 로그인 한다. • 읽어 들일 임시 파일을 생성 후 tempbug을 background(&)로 실행한다. • 파일을 실행할 때 읽어 들일 파일명, 삽입할 문자열을 순서대로 기입한다. 임시파일을 이용한 레이스 컨디션 /wishfree/race/ 에 빈 temp 파일 생성 tempbug 실행 중 파일수정 • 임의로 주어놓은 20초 안에 삭제와 링크를 하여야 한다. • fg 를 이용하여 background 작업중인 프로세스를 foreground 로 돌린다. Page 15

  16. __①__:__②__:__③__:__④__:__⑤__:__⑥__:__⑦__:__⑧__:__①__:__②__:__③__:__④__:__⑤__:__⑥__:__⑦__:__⑧__: Page 16

  17. /etc/shadow tmpbug 프로세스 temp temp link:/etc/shadow B 프로세스 Page 17

  18. 레이스 컨디션의 이해 및 실습 • password 없이 로그인이 가능하다 임시파일을 이용한 레이스 컨디션 root 계정 로그인 /etc/shadow 복구 • 이전에 백업 해둔 /etc/shadow.backup 를 /etc/shadow 로 덮어쓴다. • 이제 로그인시 password 를 물어보며, password 는 레이스 컨디션 전의 비번이다. Page 18

  19. ptrace 레이스 컨디션 실패 화면 입니다 기회가 된다면 ptrace 레이스 컨디션과 레이스컨디션 방어법에 대해 추가 발표를 원합니다. Page 19

  20. Q & A 질문 및 부탁 드립니다. Page 20

More Related