brunch

You can make anything
by writing

C.S.Lewis

by penna Jun 24. 2024

URL Redirection

URL리다이렉션

"이건 원래 다른 url로 접속하도록 의도해서 개발된 건데 이게 취약점인가요?

이런 질의를 받으면 두 가지 생각이 듭니다.

첫 번째는 '아.. 그렇게 생각할 수 있지', 두 번째는 '정말 그러네? 진짜 취약점이 맞을까'

첫 번째 생각은 상대방을 이해시키면 되지만, 두 번째는 스스로를 이해시켜야 하기 때문에 고민이 커집니다... 그리고 이윽고 깨닫게 되죠. 두 번째를 해결해야 첫 번째도 해결할 수 있다는 사실을... 말입니다.


문자가 옵니다.

모르는 전화번호, 낯선 URL을 안내하며 빨리 해당 링크를 눌러보길 권합니다. 때로는 아는 전화번호로 오기도 합니다.

그리고 URL이 여전히 낯설다면?


누구든지 의심을 해볼 것입니다.


하지만,

@@은행에서 온 퇴직연금 안내장 문자를 보면 크게 이상이 없습니다. 보유교체 매매를 원하면 링크를 클릭하라고 하니 일단 눌러봅니다.

%%택배에서 오늘 배송된다는 문자도 언제쯤 도착할지 기대감을 가지고 실시간 정보에 관한 URL눌러보고요.

물론 보안을 걱정하고 의심하는 분들은 눌러보지 않겠지만,

URL 앞부분이 우리가 신뢰하는 @@은행이고, 자주 이용하는 %%택배 사이트라면 가끔 눌러보기도 할 겁니다.

우리가 알고 있는 전화번호, 자주 이용하는 URL이니까요.

전혀 모르는 사이트도 아니고 우리가 고객으로 이용 중인 서비스라서 내적 친밀감이 조금 올라가 있기 때문입니다.


이때 사용될 수 있는 기법 중 하나가

URL Redirection

입니다.


문자로 온 링크들을 눌러보면 기존 사이트와 조금 다른 느낌도 없습니다. 그리고 링크들이 실제로 해당 사이트에서 실제로 제공하는 url 주소이기도 합니다.

하지만 우리가 받은 링크가 악의적으로 변조된 URL이었다면,

화면상엔 아무렇지 않게 퇴직연금 안내장과 배송 실시간 정보가 보이지만,

우리도 모르게 휴대폰에 임의의 악성 파일을 다운로드하고 있을 수도 있게 됩니다. 아니면 보유상품 교체매매를 위해 아이디/패스워드, 생년월일, 휴대폰번호 등 추가 정보가 필요하다는 안내에 따라 정보 입력 후 개인 정보를 탈취당할 수도 있습니다.


해당 취약점을 이용하면

https://[@@은행].com?murl=[악성사이트]

그럴듯한 url을 만들어 낼 수 있거든요.


그래서 사이트를 운영하는 주체에서는

혹시라도 자사의 사이트 주소를 이용하여 악의적인 URL이 만들어지지 않도록 막아야 합니다. 


가끔 이런 문의도 옵니다.

murl 파라미터는 일부러 다른 url로 넘어가게 만든 거니까 원래 구조가 그런데 고쳐야 하냐고.

자 그럼 저희는 다시 위로 가서 설명을 시작하면 됩니다.

변조된 URL을 전달해서 들어가야만 취약점이 발생되는 거 아닌지, 그 URL을 전달하는 게 현실적으로 쉬운 건 아니지 않으냐고 정말 궁금해서 물어보는 전화도 받을 수 있습니다.


그렇다면 사이트에서 문자를 보내는 기능이 있는 서비스에서 발생되는 취약점을 이용하거나 악의적인 방법으로 신뢰할 수 있는 전화번호로 변조하여 보내는 것도 가능하다는 점을 말해주면 됩니다. 게시판, 메신저 등 URL을 전달할 수 있는 방법은 다양합니다. 


자사에서 제공 중인 URL에서 수행되는 공격이므로 고객의 입장에선 신뢰의 문제가 생기기 때문에 취약한 파라미터에 화이트리스트로 허용된 URL로만 넘어가도록 조치해 주시면 된다고 말하면 됩니다.



이전 01화 보안하는 사람
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari