2019-2020-1 20,199,321 주에서 "리눅스 커널 원리 및 분석은"11 일

경쟁 조건 취약점 실험

본 연구에서는 몇 가지 환경 문제를 구축 실험실, 당신은 환경 리턴 투 libc의 공격 실험을 사용할 수 있습니다.
경쟁 상태를 참조하거나 복수의 스레드가 동시에 데이터의 동일한 부분에 액세스 동작의 결과는 데이터에 액세스 다른 스레드가 실행되는 순서에 의존한다. 루트 권한을 가진 프로그램이 경쟁 조건 취약점이있는 경우, 공격자는 따라서 프로그램의 동작을 변경, 허점과 경쟁하기 위해 병렬 프로그램의 스레드를 실행할 수 있습니다.

준비

  • 당신이 보호를 해제해야하므로 환경 보호의 실험은, 경쟁 조건에 대한 공격을 열었다. 지역 전체가 스티키 비트를 쓸 수 있도록이 옵션 수단은 링크를 대상 폴더로 열린 폴더 아니다
  • 우리의 새로운 작업 디렉토리
  • 은 / 홈 / shiyanlou / 씨앗의 새로운 vulp.c 파일 :

(1) 실험 : 루트 파일의 소유자를 다시 작성

  • 아래 그림과 같이 첫째,이 문서의 임금 권한에 대한 관심과 소유자를 여러 개의 파일을 생성
$ ls -l
-rw-rw-r-- 1 shiyanlou shiyanlou   10 Apr 23 13:33 append_text  《--VULP输入文件
-rw-rw-r-- 1 root      root         0 Apr 23 13:32 root_file  《--目标文件
-rw-rw-r-- 1 shiyanlou shiyanlou    0 Apr 23 13:45 tmp_file  《--助攻
-rwsr-xr-x 1 root      root      7403 Apr 23 13:27 vulp  《--漏洞文件
-rw-r--r-- 1 root      root       454 Apr 23 13:27 vulp9321.c
  • 타임 스탬프 check.sh을 확인하는 스크립트를 작성하고 명령 추가 vulp을 실행
  • 공격 코드와 컴파일 attacker.c 만들기

  • 터미널에서 파일 -> 열기 탭 새 탭을 클릭하여 공격자의 실행 check.sh을 실행

실험 2 : 보호 A : 반복

우리는 공격자의 성공 확률을 줄일 수 있도록 우리는 더 많은 경쟁 조건을 추가 할 수 있습니다

  • 변경 vulp9321.c 파일, 재 컴파일 반복 공격

실험 세 : 보호 B : 최소 권한의 원칙

이 프로그램의 근본적인 문제는 액세스 제한 기능의 도입, 그러나 또한 경쟁 조건의 위험을 도입 그래서, 최소 권한의 프로그래머는 사용자가 프로그램이 바로 너무 클 수 있습니다 실행 인식 원칙을 위반하는 것입니다. 더 나은 방법이 필요 복원 할 때 setuid를 루트 권한을 일시적으로 금지하는 시스템 호출을 사용하는 것입니다.

추천

출처www.cnblogs.com/20199321zjy/p/11946072.html