경쟁 조건이란 무엇입니까?
여러 프로세스가 동시에 액세스할 때 경쟁 조건과 같은 데이터를 조작, 그리고 실행의 결과가 발생하는 장소는 액세스 소요되는 특정 순서에 따라 달라집니다.
경쟁 조건은 관심의 해커가 시스템에 액세스 권한이 때 경쟁 조건으로 활용될 수있다.
경쟁 조건을 설명하는 다음 코드 스니펫을 고려 :
(액세스 ( "/ tmp를 / datafile"만약, R_OK) == 0) (
FD = 열 ( "/ tmp를 / datafile
프로세스 () FD;
주변 () FD;
이 코드는 / tmp를 / datafile과 다음 임시 파일을 만듭니다 그것 열립니다.
잠재적인 경쟁 조건을 열고 ()와 전화 접속에 대한 호출 사이에 발생 ().
만약 공격자는 / tmp를 / 액세스 사이 datafile의 내용을 바꿀 수있습니다 ()와 그가 datafile는 사용하는 프로그램의 동작을 조작할 수있다 () 함수를 엽니다. 이것은 경주입니다.
때문에 ""승리를하기 전에 레이스 "여러 번 실행해야 할 수도있습니다 그것은 경쟁 조건을 악용, 어려울 수있습니다." 후 취약점 열리고 닫힙니다 전에 취약점 너 전에 시대의 취약점 테스트 도구를 실행하기 위해 프로그램을 실행하기 위해 수천명의 취약 expolit 코드를 얻을수가있습니다. 그것은 때로는 공격을 사용하여 별도의 가장자리에게`좋은 가능하다`합법 suid 프로그램의 우선 순위가 낮은합니다.
함수의 부적 절한 사용으로 액세스 (), chown (), chgrp (), chmod를 (), mktemp (), tempnam (), tmpfile (), tmpnam 전화 ()는 경쟁 조건의 일반적인 원인입니다.
|






