// 피싱 사이트의 주소를 썼다가 다운보트 먹네요 -_-
근 며칠동안 큰 일 하나가 있었네요.
님께서 피싱 사이트에 계정이 탈취당해
스팸 글이 양산되어 명성도가 좍 깎인 일이 있었는데요.
sleemit 으로 헷갈리게 만든 사이트로 유도하고
ID와 비번을 넣게 하여 이걸 탈취하는 수법인데요.
https://steemit.com/kr/@marabara/sleemit-com
저 사이트를 보면, 우리가 사용하는 스티밋과 너무 완벽히 똑같아요.
이렇게 되면 저희같은 사람들은
이 피싱을 위하여 이걸 다 그대로 개발했다고 생각하지 않아요.
본체를 불러와 뒤에 숨기고 스티밋 사이트를 그대로 보여줬다고 생각하죠.
그래서 그 피싱 사이트를 한 번 열어보았습니다.
이런 수법은 옛날에 한창 유행했던 수법이고,
보안을 배우게 되면 가장 먼저 배우는 2가지 해킹 기법 중 XSS라고 합니다.
남의 사이트를 띄운 다음에 보팅 버튼이나 로그인 버튼의 행동만 갈아끼는 건데요.
이걸 방지하는 방법은 간단해요.
웹 사이트 응답에 x-xss-protection:1; mode=block 란 문구만 넣으면 되긴 해요.
그래서 스팀잇.. 이것도 안해놓았나 했어요.
저도 처음엔 이런 줄 알았어요......
어?? 이미 해놓긴 했네??
갑자기 가설이 깨지니 당황스럽네요 허허허
그리고.. 어떻게 저걸 했나 더욱 더 궁금해졌네요.
이럴 땐 HTML부터 까 봅니다.
이 본문들을 모두 긁어서 보았는데요.
보통 HTML이 찍히는 형태가 아닌...
우리들이 쓰는 그 마크다운들이 HTML 코드에 JSON 형태로 그대로 들어가 있네요!
그리고 sleemit 을 통하여 사이트를 들어가게 되면
못생긴 사이트가 떠 있다가
주소창을 자세히 보시면
갑자기 뭔가 엄청 많은 주소들이 지나간 다음에
스티밋 사이트가 보이게 될 거예요.
그럼 이제 뭔가 짐작이 됩니다...
이건 스팀 블록체인 긁어서 띄우는 겁니다.
해당 ID로 접속하면 보이는 모든 링크를 수집해서 sleemit 으로 바꿔 끼고
스팀 망의 어느 창구를 통하여 본문을 긁어모으며
사이트의 코드를 그대로 쓰는데, 업보트와 로그인 부분만 바꿔 끼워 구현하게 되는 것이죠!
역시 나쁜짓 하려면 머리 좋아야 하고 부지런해야뎌
그럼 개발자는 무슨 수로 막냐?
보통 구글, 네이버같은 서비스 제공자들은 이것을 막기 위하여
API 키라는 것을 발급해서 쓰게 하고
하루 사용량을 일 몇천건 정도로 제한하거나, 돈을 내게 만들죠.
하지만, 스티밋의 API는 너무 오픈이 되어 있습니다 ㅜㅜ
로그인 안해도 steemd에서 체인은 다 보이잖아요...
그렇다고 체인 열람에 이제서야 로그인 후 열람 이런걸 넣을 수는 없는 노릇이고..
현재까지 가장 좋은 방법은
같은 컴퓨터(IP)로 너무 많이 체인을 가져올 때 접속을 끊어버리는 방법이 있습니다.
혹여나 개발자라면 아시겠지만,
구글 검색 결과를 긁어오려고 할 때,
쉬는 시간 없이 계속 긁기만 하면 어느샌가 갑자기 503 응답이 오면서 긁히지 않을 때를 보셨을텐데요.
해당 컴퓨터에서 사람의 동작이 아닌, 컴퓨터의 자동 동작같으면
그것을 감지하여 바로 접속을 끊어버리는 방법이예요.
아무리 우리가 손이 빠르다고 해도 1초에 10~20번 클릭하진 않잖아요?
그런데 그 피싱사이트를 보면 1초도 안되는 시간에 20~30개의 링크에 해당하는 본문 블럭을 긁어오고요.
스팀도 이제 슬슬 이런 크롤링 방지 레이어를 탑재할 때가 오지 않았나 싶네요.
(생각보다 구현은 간단해요! 사서 쓸 곳도 많고요!)
전번에 스팀잇 팀을 만나고 온 덕분에 컨택 포인트가 있어서
리포트는 드렸습니다.
곧 스팀잇 측에서 조치를 취할 것이니 기다려보도록 하죠.