관리 메뉴


Kinesis´s Open Document

진단항목 : 안전한 인증 및 세션 관리 - 처리과정 #03 본문

기획 시리즈/보안 : 진단항목 이해하기

진단항목 : 안전한 인증 및 세션 관리 - 처리과정 #03

Kinesis 2016. 6. 28. 17:14


※ 최대한 이해하기 쉽게 서술하고자 하였으나 보안 지식은 기초라 할지라도 일반적인 기초 과정보다 높은 수준을 필요로 합니다.

※ 본 내용은 초안이며, 저작권은 저 Kinesis(Hae Kwang, Kim) 에게 있으므로 무단으로 펌하여 재배포하는 것을 금지합니다. (단, 본 게시물의 일부만을 발췌하여 출처 주소를 남겨 본 게시물에 접근할 수 있는 링크를 남기는 경우는 허용합니다. 이는 제가 여러분들을 믿고 양질의 게시물을 작성하고 여러분들은 접할 기회를 제공받기 위한 서로의 배려입니다.)


※ 본 내용은 보안 기초를 학습하는 사람이나, 개발자들에게 유용할 수 있습니다.


최종본 바로보기

처리과정의 세 번째 이슈는 세션의 재사용이다. 세션아이디(SessionId) 또는 세션토큰(SessionToken)은 로그인을 할 때 또는 보안상 인증 정보를 재 갱신할 필요가 있을 때 새로 발급된다. 문제는 사용자가 새롭게 인증과정을 거침으로서 새로운 세션식별자를 발급 받았는데 기존의 세션식별자가 파기되지 않고 남아있을 때 발생한다.


기존의 세션식별자에 대한 파기가 이루어지지 않고 남아있는 경우 서버는 하나의 사용자에 대해 복수의 세션식별자를 가지고 있게 되며, 공격자는 새로 발급된 세션식별자를 알아낼 필요 없이 기존에 확보한 세션식별자를 이용해 인증여부를 유지할 수 있게 된다. 만약 서비스 내에 2차 인증을 요구하는 것 없이 모든 기능을 이용할 수 있다고 가정한다면 공격자는 아이디나 패스워드조차 알 필요 없이 해당 사용자로서의 권한을 모두 사용할 수 있게 된다.


비 전공자를 위한 추가 서술

이는 기존의 출입증을 분실함으로 인해 새로운 출입증을 발급 받았다고 가정할 때, 시스템적으로 기존의 출입증을 무력화 하지 않는 것과 같다고 할 수 있다. 이 경우 한 사람에 대해 2개의 출입증을 발급해 준 것과 같은 효력이 발생하고, 해당 사람이 이용할 수 있는 시설이나 장소에 대해서는 기존의 출입증을 획득한 사람 역시 동일한 권한을 갖게 되기 때문이다.


예를 들어 기존의 출입증을 얻은 A라는 사람이 출입증을 분실한 소유자의 정보를 모르더라도 어디에서 사용되는 출입증인지 알고 있고 내부에서 별도로 추가적인 본인인증을 거치지 않는 시스템이라고 가정한다면 A는 소유자의 정보를 알지 못해도 자신이 접근할 수 있는 장소나 공간 등에 소유자와 동일한 권한으로 이용할 수 있게 되는 것이다.


문제는 이러한 문제로 인해 귀중품을 도난당했거나 민감한 정보가 노출되는 등의 문제가 발생한 경우 책임을 출입증을 분실한 당사자가 아닌 기존의 출입증을 사용할 수 없도록 조치하지 않은 담당자 또는 해당 업체에 묻게 된다는 것에 있다.


이러한 문제점을 막기 위해 담당자는 인증된 하나의 사용자에 대해 하나의 세션식별자만 갖도록 시스템을 설계하거나 개선조치를 고려해볼 필요가 있다.


비 전공자를 위한 추가 서술

즉 새로운 출입증을 발급할 때, 기존의 출입증을 사용할 수 없도록 조치하도록 절차나 시스템을 개선하면 이러한 문제를 사전에 예방할 수 있게 됨으로 이러한 사고 및 피해의 발생 가능성을 더욱 낮출 수 있게 되는 것이다.




Comments