점검을 진행할 때 관리자 권한의 계정을 요청드릴 때가 있습니다.
처음엔
"취약점을 찾으시려면 당연히 직접 뚫으셔야 하는 거 아니에요?
라는 질문을 받았을 때,
솔직하게 말하자면...
공감했습니다. 가끔 왜 다들 맞는 말만 하는 건지.. 원망 아닌 원망도 조금 해보지만,
취약점 업무를 하는 우리라면 그럼에도 할 말을 찾아보도록 합시다.
그럼 왜 계정을 받아서 진행하는 걸까요??
여러 가지 이유가 있겠지만,
취약점 점검을 진행할 때 계정을 탈취하는 과정 자체도 찾아봐야 하지만
계정이 탈취된 상황도 전제하고 진행을 해야 합니다. 어딘가 대규모 개인정보 침해사고가 있어 정보를 획득했던가
좀 더 집요한 해커가 서비스 취약점을 찾아 인증 단계 또는 권한을 우회한 경우, 그리고 때로는 로그인할 수 있는 권한을 정당하게 부여받았지만 마음은 정당하지 않은 사용자가 있을 경우 등등 여러 상황을 전제해서 보아야 합니다.
계정이 탈취된 후 발생되는 2차 공격도 있을 테니까요. 탈취된 계정이 전체 메뉴를 수정할 수 있는 계정이 아니더라도 인증, 인가 취약점 등을 추가로 이용하여 탈취된 권한 이상의 행위를 할 수 있습니다. 그리고 우리가 아는 취약점인 XSS(Cross Site Scripting) 공격 구문을 공지사항에 삽입하여 우리 서비스에 접속할 때 악의적인 사이트로 접속되도록 할 수도 있습니다. 그렇기 때문에 안전한 서비스를 제공하기 위해서는 관리자 사이트 자체에서 발생할 수 있는 취약점도 고려해야 하므로 사이트 전체 메뉴에 대한 점검을 위해 계정을 받아서 진행하기도 합니다.
그리고 관리자 페이지 노출 항목은 왜 존재하는 걸까요?
관리자 계정이 있는 사용자만 이용하는 페이지일 텐데요.. 그 이유는 우리 앞서 설명했던 계정 탈취 시나리오들을 떠올려봅니다. 탈취된 계정이 관리자라면..? 그리고 내가 공겨자라면? 웹 페이지의 메인 화면을 바꾸기도 하고 가입된 사용자 정보를 가져오는 것도 가능할 수 있습니다. 그리고 2차 공격을 시도해 보려고 샅샅이 살펴보고 악성코드를 유포하는 행위를 할 것입니다.
관리자 페이지에 대한 가이드를 달라는 전화를 받는다면 당황하지 말고 다음 내용들을 전달해 봅시다.
관리자 페이지는 가급적 노출 되지 않도록 하기 위해 유추할 수 있는 주소를 사용하지 않을 것을 권고하고 있습니다. admin, manager, adm 등 디폴트로 사용하고 있는 키워드들을 이용해서 페이지를 유추해 내기도 하기 때문입니다. 그리고 접근 권한이 있는 관리자만 접근할 수 있도록 IP 접근 제어를 하거나 추가 2차 인증을 통해 인증 과정을 강화하도록 권고드린다고 답변하면 됩니다.