RSS 전체공개, 예고된 악용 1. IDG by 도아
오픈 리뷰
IDG 오픈리뷰는 어찌보면 오픈블로그와 성격적으로 비슷하다. '오픈블로그'는 블로그 메타 사이트로 글을 모으고 미디어몹은 이렇게 수집된 글을 이용해서 일종의 블로그 미디어를 구축하고 있기 때문이다. 그러나 '오픈리뷰'는 국내 다른 블로그 서비스와 차이점이 있다. 국내 블로그 관련 사이트는 RSS를 통해 블로거의 글을 수집해도 RSS 전체 공개, 부분 공개 여부와 무관하게 '글 전체를 자사 DB에 저장하지는 않는다'. 그러나 IDG는 전체 공개를 하면 글 전체를 자사의 DB에 저장한다. 따라서 전체 공개한 블로그는 사본이 IDG에 만들어 진다.
부분 공개
얼마 전까지 RSS를 부분 공개해 왔다[1]. 부분 공개한 이유는 여러 가지가 있지만 한 이유는 'RSS를 불펌으로 악용할 가능성'이 많기 때문이다. 설사 블로그나 홈페이지에서 불펌을 금지하고 불펌을 금지하는 여러 가지 장치를 한다고 해도 RSS 전체 공개를 통해 이러한 노력이 한순간에 사라질 수 있다. 또 개인적으로는 전체 공개 보다는 부분 공개를 좋아한다는 점, 설치형 블로그라 전송량 압박[2]이 심하다는 점도 한 이유였다. 그리고 예상대로 전체 공개에 대한 후유증이 여기 저기 보인다.
IDG
IDG는 나름대로 상당히 양질의 IT 관련 기사를 올리는 사이트이다. idg.com의 번역 기사와 국내 IT 관련 뉴스가 올라온다. 또 얼마 전 부터 오픈리뷰라는 서비스를 시작하며 노트북을 걸고 블로거를 모았다. 나 역시 올블로그 이벤트를 보고 이때 가입했고 상당히 많은 블로거가 이 이벤트를 통해 IDG에 가입했다.
개진 화면
IDG의 오픈리뷰는 어찌보면 오픈블로그와 성격적으로 비슷하다. '오픈블로그'는 블로그 메타 사이트로 글을 모으고 미디어몹은 이렇게 수집된 글을 이용해서 일종의 블로그 미디어를 구축하고 있기 때문이다. 그러나 '오픈리뷰'는 국내 다른 블로그 서비스와 차이점이 있다. 국내 블로그 관련 사이트는 RSS를 통해 블로거의 글을 수집해도 RSS 전체 공개, 부분 공개 여부와 무관하게 '글 전체를 자사의 DB에 저장하지는 않는다'. 그러나 IDG는 전체 공개를 한 경우 글 전체를 자사의 DB에 저장한다. 따라서 전체 공개한 블로그는 사본이 IDG에 만들어 진다.
급조한 듯 사이트 곳곳에 문제가 발견된다. 특히 RSS의 스크립트를 전혀 처리하지 않아 애드센스 광고까지 나타난다. 그런데 막상 중요한 태그는 무시하기 때문에 한마디로 눈뜨고는 볼 수 없는 상태가 된다.
블로거 등록
그러나 더 큰 문제는 '외부 블로거 등록에 아무런 제한 사항이 없다'는 점이다. 유일한 제한이 "블로그는 자신의 블로그만 가져와야 하며, 가져온 블로그 항목은 편집할 수 없습니다."라는 문구 뿐이다. 또 "가져온 블로그 항목은 편집할 수 없다"고 되어 있지만 얼마든지 편집 가능하다.
외부 블로그를 등록할 때 아무런 제한 사항이 없다. 인증도 없고 블로그 소유주도 확인[3]하지 않는다. 하나의 블로그만 등록할 수 있는 것도 아니고 원하면 원하는 대로 등록[4]할 수도 있다.
인증 절차가 없기 때문에 mepay님이 블로그에 올린 글까지 내가 올린 글처럼 보인다. 원 블로그의 이름이나 별명이 나오면 좋을 텐데 외부 블로그 등록자의 이름이 표시되기 때문에 다른 곳에서 가져온 글인지 알 수 있는 방법이 없다.
편집할 수 있는 외부글
프로파일이나 블로그를 클릭하면 '수정' '삭제' 링크가 표시된다. 여기서 수정 단추를 누르면 본문 및 제목을 수정할 수 있다. 즉, RSS로 몰래 퍼온 글을 자신의 글처럼 수정하는 것이 얼마든지 가능하다는 점이다.
'수정'을 클릭하면 'Namo Interactive'의 'ActiveSquare 6'이 설치된다. ActiveX가 설치된다는 것도 문제지만 이 ActiveX의 덩치가 상당히 크다.
IDG의 '외부 블로그 가져오기'는 악용의 소지가 아주 많다. 특히 전체 공개된 블로그를 여러 개 등록하고 수정 기능을 통해 적당히 수성한 뒤 삭제를 통해 글을 골라내면 아주 쉽게 양질의 블로그를 만들 수 있다. 또 수정하지 않고 글만 추려도 괜찮다. 특히 공개된 RSS를 통해 가져왔기 때문에 저작권의 문제도 어느 정도 피할 수 있다.
오픈리뷰
물론 'IDG'의 오픈리뷰는 이런 악용을 목적으로 만든 것은 아니다. 그 동안 사용해 본 결과 '사이트를 급조한 것'으로 보인다. RSS에서 글을 읽어 오며 아무런 처리를 하지 않아 배치가 어긋난다. 프로파일에는 글 목록이 표시되며 블로그에는 글 내용이 표시된다. 그러나 프로파일에서 글을 삭제해도 블로그의 글은 삭제되지 않는다. 블로그에서 글을 삭제해도 마찬가지다.
여기에 글을 선택해서 삭제할 수 있는 기능도 없다. 개발자에게는 미안한 이야기지만 정말 "발로 만든 것이 아닌가 "하는 생각이 들정도이다. RSS를 읽어오며 보안에 전혀 신경을 쓰지 않았다. 따라서 본문에 스크립트가 포함되면 목록의 수정, 삭제 단추가 보이지 않았다[5]. 그래서 결국 웹 페이지를 로컬로 저장, 웹페이지를 바꿔 글 삭제를 시도했다. 어이 없지만 이런 방법으로 글을 삭제할 수 있다. 즉, 참조 URL을 검사하지않는다. 이 부분은 보안상 심각한 위험이 될 수 있다[6].
현재 'IDG'에 등록된 글은 모두 삭제했다. 블로그의 300개 가까운 글을 일일이 하나씩 삭제했다. 여기에 프로파일에서도 똑 같은 작업을 했다. 그런데 이 삭제 인터페이스도 너무 복잡하다. '삭제'를 클릭하면 '삭제하겠느냐'는 확인 창이 나타나며 여기서 '확인' 단추를 클릭하면 '삭제 되었다'는 확인창이 또 나타난다. 여기서 확인을 클릭해야 글이 삭제된다. 즉, 글 하나를 삭제하기 위해 총 세번을 클릭해야 하기 때문에 600개의 글을 삭제하기 위해서는 1800을 클릭해야 한다.
삭제 링크를 클릭하는 것과 삭제 확인창은 어쩔 수 없다고 해도 마지막 "삭제됐습니다"라는 메시지창은 띄울 필요가 없는 부분이다. 눈으로 삭제된 것을 확인할 수 있기 때문이다.
앞에서 이야기 했듯이 'IDG'는 IT에 관련된 상당히 양질의 기사가 올라온다. 서비스를 확대 개편하면서 '오픈리뷰'라는 서비스를 시작했다. 그러나 서비스를 시작하면 너무 안이하게 시작한 것이 아닌가 하는 생각이 든다. '서비스에 대해 고민한 흔적이 없다'. 오로지 노트북 한대로 사용자를 끌어 모으고 이렇게 끌어 모은 글로 서비스를 시작하는 것만 염두에 둔 것이 아닌가 하는 생각이 든다.
RSS를 전체 공개한 블로그의 경우 'IDG 서비스를 이용해서 RSS를 악용할 가능성'은 아주 많다. 따라서 설치형 블로그라면 반드시 '.htaccess'에 다음 코드를 삽입해서 IDG에서 글을 읽어가는 것을 막는 것이 좋다. IP 주소는 idg.co.kr의 IP 주소이다.
Deny from 222.239.74.141 #idg.co.kr
- 그러나 작년 10부터 부분 공개에서 다시 전체 공개로 바꿨다. 자세한 이유는 RSS 피드를 부분 공개에서 전체 공개로 바꿉니다를 읽어 보기 바란다. ↩
- 부분 공개에서 전체 공개로 바꾼 뒤 RSS 전송량이 20배 증가했다. 물론 이 부분은 압축 플러그인을 이용해서 5배 수준으로 줄였다. ↩
- 한RSS에서는 디렉토리를 등록할 때도 블로그 소유주를 확인한다. 블로그 소유주가 아닌 사람이 디렉토리를 바꿀 수 없도록 하기 위해서이다. ↩
- 물론 경고 문구에는 "너무 많으면 계정이 취소될 수 있다"고 하지만 실제 취소되는지는 미지수이다. ↩
- 한RSS에 디렉토리를 등록하며 디렉토리 등록글을 다른 글로 전환해 두었다. 이때 사용한 자바스크립트를 처리하지 못해 발생한 문제였다. ↩
- 자바스크립트 부분은 개발자가 모든 상황을 다 고려할 수 없기 때문에 얼마든지 발생할 수 있는 일이다. 그러나 참조 URL 부분은 너무 안이했다. ↩