본문 바로가기

[2018 학생부문 / 금상] TextShield

OSS관리자 게시글 작성 시각 2019-08-19 10:46:23
TextShield
Digital Warriors
학생
원하지 않는 스크래핑으로부터 민감한 정보를 보호해 주는 JavaScript 라이브러리
* 시연동영상 : https://youtu.be/L4IBHOPTtew
금상_정보통신산업진흥원장상
2018 년
보안

우리가 웹을 통해 공유한 다량의 정보들은 웹 크롤링(crawling) 및 스크래핑(scrapping)에 항시 노출되어 있습니다. 이런 기술이 존재하기에 우리는 거대한 웹에서 원하는 정보를 검색하거나 필요에 맞게 가공하여 사용할 수 있게 되었지만,  무분별한 웹 스크래핑은 민감한 개인정보 및 비즈니스 데이터를 노출시킬 수 있고, 악의적인 용도로 사용될 경우 해킹이나 스팸메일의 통로가 되기도 합니다.

저희가 제안하는 TextShield는 원하지 않는 스크래핑으로부터 민감한 정보를 보호해 주는 JavaScript 라이브러리입니다. 스크래핑되길 원하지 않는 웹상의 텍스트에 TextShield를 적용하면 스크래퍼가 해당 텍스트를 추출해 읽어오는 것이 매우 어려워집니다.

보호된 텍스트는 Canvas로 렌더링하되, 텍스트 디코딩에 PoW(Proof of Work)를 요구하는 것이 기본 아이디어입니다. HTML 파서를 바탕으로 한 기본적인 스크래퍼부터, (매우 드물지만) 스크린 OCR을 적용한 스크래퍼까지 모두 방어가 가능합니다. 서버에서 접속 패턴을 통해 스크래퍼임이 식별되면, 클라이언트 측에서 보호된 텍스트를 디코드하는데 필요한 PoW를 높히기 때문에 TextShield를 특정하여 파쇄하는 스크래퍼를 개발하기도 어렵습니다.

기존의 Anti-scrapping 솔루션은 서버에서 네트워크를 감시하고 있다가 스크래퍼가 의심되면 접속을 차단하거나 캡챠(Captcha)를 요구하는 방식입니다. 이 경우 서버사이드 스택에 추가로 소프트웨어 인스톨이 필요합니다. TextShield도 서버 측의 스크래퍼 감지와 연동하면 더욱 강력한 보호 성능을 낼 수 있지만, TextShield를 특정하여 공격하지 않는 대다수의 스크래퍼들은 단순히 HTML에 TextShield 라이브러리를 불러와서 사용하는 것으로 간단히 막을 수 있으며, 캡챠를 요구하지 않기 때문에 사용자 불편도 줄일 수 있습니다.

TextShield를 통해 민감한 정보의 웹 스크래핑을 손쉽게 방어할 수 있게 되리라

맨 위로
맨 위로