직원 정보가 노출되는 걸 확인하면 진단하는 사람들끼리 정말 많은 토론을 합니다. 사번, 직원 계정, 직원 이름, 전화번호 등등 이런 정보들이 노출될 경우 취약점으로 잡을 것인가로 말이죠.
때론 이 정도의 정보까지 정보 노출까지 잡는 건 너무 가혹한 거 아닐까 하는 결과보고서를 볼 때도 있기는 합니다.
그래서 오늘 나눠볼 이야기는
직원과 관련된 모든 정보
에 대한 이야기입니다.
모든 정보 노출을 막아야 한다거나 막지 말아야 한다가 아니라, 점검을 할 때 어떤 정보가 취약점에 이용될 수 있는지에 대한 이야기를 해보려고 합니다.
직원이 사용하는 회사 메일 계정이나 관리자 페이지 계정은 어떻게 확인해 볼 수 있을까요?
우선 계정이야 확인하는 일은 그다지 어렵지 않습니다. 여러 업무 연관성으로 받은 명함들과 그 안에 있는 전화번호, 메일 주소를 손쉽게 획득하면 되니까요. 만약 그 회사 직원들과 전혀 모르는 사이라면? 그럴 때는 저는 구글링을 합니다. 키워드로 회사 메일을 사용하는 사람이 올린 게시물이나 사이트를 확인합니다. 담당자가 이메일로 신청서나 접수를 받는 경우가 있기 때문에 그런 게시물을 찾아봅니다.
그리고 회사가 오래되지 않거나 소규모라면 생각보다 쉽게 풀리는 경우도 있습니다. 회사 메일 계정을 관리자 계정과 동일하게 사용하는 경우도 있거든요.
그러고 나서 정말 만약에 관리자페이지 접근도 가능하다면?
관리자 페이지에 인증 우회 취약점이나 인가 취약점을 찾아봅니다. 관리자 페이지 없이 해당 회사 공개 사이트에 관리자 권한의 메뉴가 있는지, 있다면 우리가 획득한 관리자 계정으로 파라미터 값을 변조해 보면서 관리자 권한으로 해볼 수 있는 게 무엇인지 분석합니다.
또 마이페이지, 비밀번호 변경 페이지 등에서 추가 취약점을 찾아내어 관리자의 정보를 변경시킬 수 있는지도 확인합니다.
사번의 경우는 어떨까요? 사번의 경우 내부망 pc의 계정이나 내무 사내 업무에서 계정으로 사용되는 경우가 많이 있습니다. 그래서 조치를 하도록 하고 있지만 내부 업무를 사용할 때 인증과 관련된 키값으로 개발하시는 경우가 있을 수도 있습니다. 어차피 내부에서 사용되는 건데 노출되어도 영향이 크지 않다고 말하시는 분도 있으실 겁니다. 보안의 관점에서 정보 노출 부분으로 생각해 본다면 사번이 굳이 노출되어야 하는 정보인지를 따져보아야 합니다. 외부에서 내부로 침투하는 시나리오가 구현이 어려운 거지, 실현이 아예 불가능한 것도 아니니까요.
그래서 어떤 정보가 언제, 어떻게 악용될지 모르기 때문에 가급적 많은 정보가 노출되지 않도록 해야 합니다.
직원 조회용 페이지이고, 화면상이나 응답값에 보이는 정보가 이름, 내선번호, 근무처 정도만 보인다고 한다면 전체 직원의 정보인지, 특정 직원의 정보인지 확인해봐야 합니다.
단순 조회나 와일드카드와 같은 문자를 입력할 때 전 직원의 정보가 보인다면, 각각 개인의 노출되는 정보는 적더라도 이름과 내선번호, 근무처 등이 리스트화되어 공격자가 해당 정보를 이용해서 어떻게 사용할지는 알 수 없기 때문입니다.