Security/뭐했니2017. 5. 30. 22:48

google keep메모 정리하던중에

이런걸 발견함

그래서 toc-tou에 대해 알아보기로 했다

친구가 예전에 알아보라고 알려준 건데..

tic-tou(Time of Check to Time of Use)

 > 위키백과CWE를 본 후

저 toc-tou 풀어쓴거 직역한거랑 의미 비슷함

어떠한 자원이나 기능을 사용하는 것에 있어서, 이에 대해 확인(인증) 후 사용 할 때, 그 사이에 대상을 수정한다든지

영향을 줘서 의도치 않은 동작을 하게 만드는 것! 이다.

race(경쟁) condition에 속하고, 버그클래스로 취급된다

예제를 하나 보도록 하자

...
if (access("file", W_OK) != 0
{
   exit(1);
}
 
//이 사이에 file에 영향을 줌
 
fd = open("file", O_WRONLY);
 
write(fd, buffer, sizeof(buffer));
...
cs

공격이 성공하려면, 타이밍이 맞아떨어져야 한다.

보통 원하는 파일을 같은 이름으로 symbolic link 생성해서 접근한다고 한다.

> 리눅스에서는 이를 통해, 파일로 취급되는 소켓과 같은 것들에 접근이 가능함


공격 방식은, 그냥 브루트포싱(..) 하는거랑, 매 연산(?)마다 실행되도록 설정하는(schedule) single-stepping 등이 있다고 한다.

다음 글에는 실습과 방어기법(예방법)을 알아보도록 노력..하겠ㄷr..


+ 잘 정리된 문서(번역된 문서라 약간 어색)

> https://wiki.kldp.org/HOWTO/html/Secure-Programs-HOWTO/avoid-race.html

'Security > 뭐했니' 카테고리의 다른 글

Reversing.kr 현황  (0) 2019.02.13
cache memory에 대한 이해  (0) 2018.01.16
20170305  (0) 2017.03.05
20170302..3  (0) 2017.03.03
20170301..2  (0) 2017.03.02
Posted by Palette14