1. 접근의 개요
- 접근의 3단계 : 식별-> 증명/인증 -> 승인 -> 기록 -> 추적성(책임)
- Race Condition
경쟁은 유독 대한민국에서 익숙하게 접하는 단어이다. 그리고 경쟁 상태는 내 생활에 매우 밀접하게 있었고 나를 트랙 안에 밀어 넣었다. 1등이라는 목표는 하나기에 그것에 달려드는 우리는 경쟁 상태에 있어야 했다. 2등, 3등보다는 1등이 매우 중요했으니깐. 그런데 이러한 우리의 실 생활이 컴퓨터 안에도 있었다. 원래 있었으나 감히 느끼고 살아가지는 않는다. 컴퓨터를 일반적으로 사용하는 사람들은 모른다. 하지만 해커들은 이러한 경쟁상태를 이용하여 원하는 것을 얻으려고 하고 컴퓨터 안에서 그것을 이루어 낸다.
접근 통제 부분에서 이 부분이 소개된 것은 조금 의아했다. 사실 Race Condition(경쟁 상태)라는 것은 위키백과에서는 "전산학에서 경쟁 상태란 공유 자원에 대해 여러 개의 프로세스가 동시에 접근을 시도하는 상태를 말한다."라고 정의를 한다. 일반적으로 OS에서 일어나는 상태인 것 같다. 그런데 정보보안 분야로 오면 이것은 매우 심각한 문제가 된다. (실제로 현업에서도 겪어 보았다. 파일에 대해서 경쟁적으로 접근하다 보면 권한이 없는데도 접근 및 변조가 가능하다) 결론적으로 보면 "공격자가 경쟁조건을 이용하여 인증 단계 이전에 의도적으로 권한 부여 단계를 수행할 수 있다"라는 것이 그 문제이다.
역시나 내용이 어려우니 예를 한번 들어보자. 사실 실생활에서 경쟁은 공정하지 않을 때 많은 문제를 일으킨다. 동생과 싸워 본 적이 있지 않은가? 장난감 혹은 어떤 물건을 두고 심하게 싸워 본 적이 있을 것이다. 그리고 싸우다 결국 그 물건은 부모님의 것이 된다. 만약 부모님이 아닌 낯선 강도라면? 동생과 물건을 두고 싸우는 사이에 강도는 그 물건을 가져가 버릴 수 있다. 우리가 방심한 사이에 말이다. 컴퓨터 내에서도 인가되지 않은 프로세스라는 것이 있다. 이것은 강도와 같은 것인데, 이 프로세스가 어떤 파일에 대해서 허가되지 않은 상태로 접근하여 가져가 버릴 수 있는 상황이 발생한다. 다시 말해, "공격자는 권한 부여 단계를 인증 단계 전에 수행하도록 하여 자원에 대해 허가되지 않은 권한을 획득할 수 있게 된다."
이러한 상황에 있어 Race Condition이라고 하며 현업에서는 취약점으로 분류를 하기도 한다. 물론 이 것은 싱글 프로세스 환경에서는 생기지 않는다. 하지만 요즘 모든 사람들, 컴퓨터들 모두 멀티 플레이어 아닌가?ㅎㅎ 그래서 어쩜 우리는 취약하다.