본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명을 상세하게 설명한다.
본 발명의 일실시예에 따른 웹 서비스 안정화 시스템의 구조 및 특징에 관해 도 2a 내지 도 3을 참조하여 설명하면 다음과 같다.
도 2a는 본 발명의 일실시예에 따른 웹 서비스 안정화 시스템을 나타내는 구성도이고, 도 2b는 본 발명의 일실시예에 따른 웹 서비스 안정화 시스템을 나타내 는 블럭도이며, 도 3은 본 발명의 일실시예에 따른 IP ADDRESS CLASS를 나타내는 도면이다.
우선, 도 2a를 참조하여 살펴보면 본 발명의 일실시예에 따른 웹 서비스 안정화 시스템은 정보통신망(N), 접속자 단말기(100), 관리자 단말기(200), 웹 서비스 서버(300) 및 웹 안정화 서버(400)를 포함한다.
이때, 다수의 접속자 단말기(100)는 웹 브라우저(Web browser)를 실행하여 정보통신망(N)을 통해 웹 서비스 서버(300)에서 제공하는 웹 사이트(Web site)에 접속한다.
또한, 관리자 단말기(200)는 접속자 단말기(100)의 웹 브라우저가 자신들이 제공하는 웹 사이트에 접속하여 정보 검색 또는 해당 정보의 링크(Link)에 접속할 수 있도록 서비스를 제공한다.
이때, 경쟁자 혹은 악의적인 이용자에 따른 반복 클릭 또는 반복 접속에 의한 부당 광고비의 지출 및 웹 서비스 차단을 방지하고자 특정기간, 특정 기간 내 접속 제한 횟수, 접속초과 횟수당 작동 시나리오, 접속 경로별 가중치, IP 주소(Internet Protocol Address)대역구간, IP 주소대역구간 초기화 시간을 포함하는 설정정보를 정의하여 후술되는 웹 안정화 서버(400)로 전송한다.
이때, 접속 경로별 가중치에 대한 정의는 상기 웹 서비스 서버(300)에서 제공하는 웹 사이트에 상기 접속자 컴퓨터(100)가 접속하는 경로에 의해 그에 따른 가중치를 정의 하는 것이다.
본 실시예에 있어서, A 사이트에 대하여 포털 사이트 검색 또는 키워드 검색 을 통해서 접속하는 접속자에게는 가중치를 높게 두고, 타 사이트 접속시에 링크를 통해서 접속하는 접속자에게는 가중치를 낮게 정의하는 것이 바람직하다.
예를 들면, 광고주가 A 광고에 대하여 클릭 및 접속 시간을 3시간에서 7일로 설정하고, 그에 따른 제한접속 횟수를 최소 10회에서 최대 100회로 설정하면, 접속된 횟수가 누적되어 제한접속 횟수를 초과한 경우 그에 따른 작동 시나리오에 의해서 특정 페이지로 이동 또는 경고 알림창을 접속자 단말기(100)로 전송 가능하다.
이로써, 관리자 단말기(200)는 경쟁자 혹은 악의적인 이용자에 대한 웹 브라우저의 부당한 접속에 따른 웹 사이트 서비스의 중단 사고를 방지할 수 있다.
즉, 특정 사이트에 대한 Dos(Denial of Service)/DDoS 공격이 발생할 때, 단시간내에 지속적인 접속이 이루어지기 때문에 정의된 설정정보에 의하여 접속자들을 임의적으로 차단시켜 웹 사이트가 중단되는 것을 방지할 수 있다.
참고적으로, 상기 IP 주소대역구간은 IP 주소의 서브넷마스크(Subnet Mask)를 뜻하며, 각 비트별로 IP 주소에 대한 서브네팅(Subnetting) 대역을 구분할 수 있다. 부연하여 IP 주소대역구간을 산출하는 방법은 IP 주소 서브네팅 대역 계산이라고 하며, IP 주소의 비트값에 따라 A, B, C, D, E Class 에 대한 가용 IP 주소대역구간을 산출할 수 있다. 즉, A 등급 클래스는 255.0.0.0을 표준 서브넷 마스크로 사용하고, 첫번째 옥◎에 0에서 126까지의 숫자를 갖는다. 예를 들어, 10.52.36.11이라는 주소는 첫번째 옥텟 10이 0에서 126 사이가 되므로, 이 주소는 A 등급의 주소가 된다. B 등급 클래스는 255.255.0.0을 표준 서브넷 마스크로 사용하며, 첫번째 옥텟에 128에서 191까지의 숫자를 가진다. C 등급 클래스는 255.255.255.0을 표 준 서브넷 마스크로 사용하며, 첫번째 옥텟에 192에서 223까지의 숫자를 가진다. D 클래스는 멀티캐스팅(Multicasting)을 하는 주소이며, NET ID 및 HOST ID를 포함하지 않는다. E 클래스는 특별용도로 예약된 주소이다.
C 등급의 네트워크 192.168.123.0을 할당받았다는 것은, 그 150개의 호스트용으로 192.168.123.1에서 192.168.123.254까지의 주소를 사용할 수 있다는 뜻이 된다. 위의 예에서 192.168.123.0과 192.168.123.255는 사용할 수 없는데, 그 이유는 호스트 주소 영역인 네 번째 옥텟의 값이 모두 1’이 되거나 모두‘0’이 될 수 없기 때문이다. ‘0’의 주소는 호스트를 특정하지 않은 채 네트워크를 특정하여 사용했기 때문에 쓸모가 없고, ‘255(2진수로는 11111111)’의 주소는 네트워크 상의 모든 호스트에 메시지를 전달하는 브로드캐스트 주소(Broadcast address)이다. 서브넷 마스크 255.255.255.192는 각각 62개의 호스트를 갖춘 4개의 네트워크를 제공하는데, 이를 2진수로 표현하면 11111111.11111111.11111111.11000000이 된다. 따라서, 마지막 옥텟의 앞쪽 두 자리는 네트워크 주소가 되므로, 00000000(0), 01000000(64), 10000000(128), 11000000(192)와 같은 추가 네트워크를 획득하게 된다.
즉, 서브넷 마스크 255.255.255.192를 사용하면, 192.168.123.0 네트워크는 192.168.123.0, 192.168.123.64, 192.168.123.128 및 192.168.123.192 등 네 개의 네트워크로 구분되어 사용 가능한 호스트 주소는 다음과 같다. 192.168.123.1~62, 192.168.123.65~126, 192.168.123.129~190, 192.168.123.193~254 이다.
상술한 바와 같이, 2진수의 호스트 주소에서 모두 ‘1’로 되거나 모두 ‘0 ’으로 된 주소는 소용이 없고, 첫번째 및 마지막 숫자도 사용할 수 없으므로, 0, 63, 64, 127, 128, 191, 192, 255 등의 주소는 사용 불가능하다.
예를 들면, 192.168.123.71 및 192.168.123.133 두 가지 주소에 있어서, 표준 C 클래스 서브넷 마스크인 255.255.255.0을 사용하고 있다면, 위의 두 주소는 192.168.123.0이라는 동일한 네트워크 상에 존재한다. 하지만, 255.255.255.192라는 서브넷 마스크를 이용하고 있다면, 192.168.123.71은 192.168.123.64 네트워크에, 192.168.123.133은 192.168.123.128 네트워크에 분리되어 존재하게 된다.
한편, 본 실시예에 있어서 접속자 단말기(100) 및 관리자 단말기(200)는 통신 가능한 컴퓨터 장치로서 웹 내용을 디스플레이할 수 있는 인터넷 브라우저를 가지고 있고, 노트북 컴퓨터 등과 같은 개인용 컴퓨터뿐만 아니라 이동통신 및 무선 인터넷 통신이 가능한 휴대폰(Portable telephone), PDA(Personal Digital Assistant), 휴대형 멀티미디어 플레이어 PMP(Portable multimedia player) 및 단말기 등을 포함하는 것으로 설정하겠으나, 본 발명이 이에 한정되는 것은 아니다.
또한, 웹 서비스 서버(300)는 관리자 단말기(200)로부터 전송받은 정보를 웹 사이트에 기재하여 서비스를 제공한다.
여기서, 웹 서비스 서버(300)는 웹 사이트에 접속하는 접속자 단말기(100)의 정보 즉, 접속자 웹 브라우저 내 쿠키(Cookie) 정보를 후술되는 안정화 서버(400)로 전송한다.
구체적으로, 쿠키정보에는 IP 주소(Internet Protocol Address), IP 주소대역구간정보, 접속 웹 사이트 주소, 접속시간(날짜) 및 접속횟수를 포함하는 것이 바람직하다.
그리고, 안정화 서버(400)는 이상클릭추적 및 방지를 작동시키는 스크립트를 실행한 후, 쿠키정보와 설정정보와 비교하여 신규 접속자인 경우 그에 따른 신규 쿠키정보를 생성하고, 기 접속자인 경우 악성클릭여부를 확인하여 접속자 단말기(100)의 접속을 차단하거나 특정 사이트로 강제 연결한다.
구체적으로 도 2b를 참고하여 살펴보면, 수신모듈부(410)는 관리자 단말기(200)로부터 설정정보를, 웹 서비스 서버(300)로부터 접속자 웹 브라우저 내 쿠키정보를 수신받는다.
쿠키정보확인모듈부(420)는 상기 수신모듈부(410)를 통해서 수신받은 쿠키정보 및 설정정보를 이용하여 접속자 단말기(100)의 악성클릭여부를 확인한다.
이는, 쿠키정보판별모듈(421)이 웹 사이트에 접속된 접속자 단말기(100)의 쿠키정보를 이용하여 기저장된 설정정보와 비교함으로써 기 접속여부를 판별하여, 최초 접속인 경우 쿠키정보생성모듈(422)이 상기 접속자 단말기(100)의 쿠키정보를 새롭게 생성한다. 다시 말하면, 쿠키정보판별모듈(421)은 IP 주소의 동일성 여부를 판별하는 것이 바람직하다.
이때, 기 접속자 단말기(100)의 접속이 최초가 아닌 경우 접속횟수확인모듈(423)은 상기 쿠키정보가 기 정의된 설정정보의 조건에 의해 특정 기간 내 접속 제한 횟수를 초과하였는지 여부를 판별한다. 이때, 접속제한 횟수를 초과하는 경우 시나리오작동모듈(424)이 접속 경로별 가중치와 초과 횟수별에 따른 작동 시나리오를 실행시킨다.
예를 들면, 3일 내에 50번의 접속제한 조건에 있어서, A 쿠키정보를 가진 A 접속자 단말기(100)가 3일 내에 50번 이상인, 60번을 접속한 경우 경고 메시지를 팝업창을 통해서 시각적으로 경고하며, 70번을 접속한 경우 특정 페이지로 강제 이동시킨다.
반면, 상기 접속자 단말기(100)의 접속이 최초가 아닌 경우에 한하여 상기 쿠키정보가 기 정의된 설정정보의 조건에 의해 특정 기간 내 접속 제한 횟수를 초과하지 않은 경우 쿠키정보기록모듈(425)이 상기 접속자 단말기(100)의 쿠키정보와 누적 접속 횟수를 기록한다.
또한, 상기 쿠키정보기록모듈(425)은 특정 기간 내 접속 제한 횟수를 초과한 쿠키정보와 초과 누적 접속 횟수도 기록하는 것이 바람직하다.
IP 주소대역구간비교산출모듈(426)은 쿠키정보에 포함된 IP 주소와 IP 주소대역구간정보를 기 정의된 설정정보에 의해 IP 주소대역구간의 비트레이트 값을 산출함으로써, IP 주소대역구간의 접속자 구분이 가능하다. 즉, IP를 변경하거나 쿠키를 삭제하여도 IP 주소대역구간을 추적하여 이상 접속자를 판별할 수 있다.
예를 들면, IP 주소가 C 클래스인 192.168.0.0 일 때, 서브넷 마스크를 가진다면 255.255.255.0 을 2진수로 표현하면 11111111.11111111.11111111.00000000 이다. 서브넷 마스크는 총 28Bit로 11111111.11111111.11111111.11000000이므로, 255.255.255.192 이 된다.
이로써, 서브넷은 4개로 쪼개지면 쪼개진 4개의 내트워크당 할 당할 수 있는 IP의 갯수는 64개가 된다. 즉, 192.168.0.0~192.168.0.63(1번 서브넷), 192.168.0.64~192.168.0.127(2번 서브넷), 192.168.0.128~192.168.0.191(3번 서브넷), 192.168.0.192~192.168.0.255(4번 서브넷)임을 알 수 있다.
따라서, 상기 IP 주소대역구간에 속하는 IP 주소 전체의 차단이 가능하다.
참고적으로 도 3에 도시된 바와 같이, 총 32비트로 구성된 IP 주소의 비트값에 따른 IP ADDRESS CLASS에 대한 가용 IP 주소대역구간의 비트레이트 값 산출이 가능하다. 여기서, IP는 특성에 따라 A, B, C, D, E 클래스 이렇게 5개의 클래스로 구분 가능하다.
상기 IP 주소대역구간비교산출모듈(426)에 의해서 산출된 IP 주소대역구간의 비트레이트 값을 쿠키정보기록모듈(425)에 의해 기록되는 것은 자명하다.
초기화모듈(427)은 특정 기간 내 접속 제한 횟수를 초과한 IP 주소대역구간을 초기화시키기 위해 타이머를 작동시킨다.
즉, 기 정의된 IP 주소대역구간 초기화 시간 값에 따라 타이머가 설정된다. 타이머가 작동된 후, 타이머 시간 초과시 IP 주소대역구간 정보가 쿠키정보기록모듈(425)에서 삭제된다.
따라서, 접속자관리모듈(428)은 특정 기간 내 접속 제한 횟수를 초과한 접속자 단말기(100)를 관리자가 별도로 관리할 수 있도록 상기 접속자 단말기(100)의 상세정보를 기록하여 관리자 단말기(200)로 전송함으로써, 정상 접속자와 이상 접속자를 구분하여 관리할 수 있다.
예를 들면, 부동산 중계 사이트에 대하여 부동산 중계 업자는 7일 동안 200번 접속을 실행하고, 일반 개인은 3일 동안 50번 접속을 실행하므로, 개인과 부동 산 업자와의 구분이 가능하다. 따라서, 의도적인 웹 서비스 차단을 유발하는 접속자의 관리가 가능하다. 즉, 개개인의 IP 주소구간대역을 추적하여 해당 IP 주소대역구간에 따른 비트레이트를 산출함으로써 이상 접속시 작동 시나리오에 의해 특정 페이지로 이동 또는 경고 알림창을 제공한다.
본 실시예에 있어서, 상기 접속자 단말기(100)의 상세정보에는 접속시간(날짜), IP주소 및 접속횟수 등을 포함하며, E-MAIL을 통해서 전송 가능한 것으로 설정하였지만, 본 발명이 이에 한정되는 것은 아니다.
전송모듈부(430)는 특정 기간 내 접속 제한 횟수를 초과한 경우에 따른 작동 시나리오를 접속자 단말기(100)가 확인 가능하도록 작동 시나리오를 웹 서비스 서버(300)로 전송하고, 이상 접속자 상세 정보를 관리자 단말기(200)로 전송한다.
데이터베이스모듈부(440)는 관리자 단말기(200)로부터 수신받은 특정기간, 특정 기간 내 접속 제한 횟수, 상기 접속초과 횟수당 작동 시나리오, 접속 경로별 가중치, IP 주소대역구간, IP 주소대역구간 초기화 시간을 포함하는 설정정보와, 그리고 웹 서비스 서버(300)로부터 수신받은 IP 주소, IP 주소대역구간정보, 접속 웹 사이트 주소, 접속시간(날짜) 및 접속횟수를 포함하는 쿠키정보를 저장하는 기능을 수행한다.
그리고, 제어모듈부(450)는 상기 수신모듈부(410), 쿠키정보확인모듈부(420), 전송모듈부(430) 및 데이터베이스모듈부(440)를 제어하는 기능을 수행한다.
이하, 전술한 바와 같은 본 발명의 일실시예에 따른 도 2의 구성으로 이루어진 시스템을 통해 웹 서비스 안정화 방법에 따른 전체적인 흐름에 관해 도 4a 및 4b를 참조하여 설명하면 다음과 같다.
도 4a는 본 발명의 일실시예에 따른 웹 서비스 안정화 방법을 나타내는 전체 흐름도이고, 도 4b는 본 발명의 일실시예에 따른 IP 주소대역구간을 산출하는 단계를 나타내는 상세 흐름도이다.
우선, 도 4a 에 도시된 바와 같이 접속자 단말기(100)가 관리자 단말기(200)가 제공하는 웹사이트에 웹브라우저를 이용하여 접속하면(S2), 웹 안정화 서버(400)가 자바스크립트를 실행한다(S4).
이때, 상기 제 S2 단계 이전에, 접속자 단말기(100)에 웹사이트를 서비스하는 관리자 단말기(200)는 경쟁자 혹은 악의적인 이용자에 따른 반복 클릭 또는 반복 접속에 의한 부당 광고비의 지출 및 웹 서비스 차단을 방지하고자 설정정보를 설정한다.
상기 설정정보에는 특정기간, 특정 기간 내 접속 제한 횟수, 접속초과 횟수당 작동 시나리오, 접속 경로별 가중치, IP 주소대역구간, IP 주소대역구간 초기화 시간을 포함하는 것으로 설정하였지만, 본 발명이 이에 한정되는 것은 아니다.
다음으로, 웹 안정화 서버(400)는 웹 서비스 서버(300)에 접속한 접속자 단말기(100)에 따른 쿠키정보를 확인한다(S6).
이때 쿠키정보에는 IP 주소, IP 주소대역구간정보, 접속 웹 사이트 주소, 접속시간(날짜) 및 접속횟수를 포함하는 것이 바람직하다.
구체적으로 살펴보면, 웹 안정화 서버(400)는 상기 쿠키정보와 상기 설정정보를 비교하여 상기 접속자 단말기(100)의 신규접속 여부를 판별한다(S8).
다시 말하면, 상기 쿠키정보에 포함된 IP 주소와 이에 따른 IP 주소대역구간정보가 상기 설정정보의 IP 주소대역구간에 기록되어 있는지 여부를 판별한다.
상기 제 S8 단계의 판별결과, 상기 접속자 단말기(100)가 신규접속이 아닌 경우 웹 안정화 서버(400)는 접속 경로별 가중치에 따른 특정 기간 내 접속 제한 횟수를 확인하여 제한횟수를 초과하였는지 여부를 판단한다(S10).
상기 제 S10 단계의 판단결과 특정 기간 내 접속 제한 횟수를 초과한 경우 웹 안정화 서버(400)는 접속초과 횟수당 작동 시나리오에 따라 상기 시나리오를 실행한다(S12).
예를 들면, 접속횟수를 초과한 경우 시나리오작동모듈(424)이 이상 접속한 접속자 단말기(100)로 팝업창을 통해 경고 메시지를 전송하거나(S121), 특정 페이지로 강제 이동시킨다(S122).
다음으로, 웹 안정화 서버(400)는 이상 접속한 접속자 단말기(100)의 IP 주소와 IP 주소대역구간정보를 기 정의된 접속 경로별 가중치에 따른 해당 IP 주소대역구간을 산출하여, 해당 접속자를 판별한다(S14).
해당 접속자를 판별하는 상기 제 S14 단계를 도 4b를 참고하여 구체적으로 살펴보면 다음과 같다.
웹 안정화 서버(400)는 먼저, 이상 접속한 접속자 단말기(100)의 쿠키정보를 저장한 후(S141), IP 주소대역구간의 비트레이트 값을 산출한다(S142).
예를 들면, 123.456.789.1에 대한 24Bit 서브네팅의 경우 나올 수 있는 IP 주소의 수는 123.456.789.0~254까지로 총 255개의 IP 주소가 예상된다. 따라서, 12Bit라면 그 반의 수가 나오는데 마지막 IP 주소가 1번이므로 12비트로 나누면 123.456.789.0부터 127이 된다.
웹 안정화 서버(400)는 상기 산출된 IP 주소대역구간의 비트레이트 값을 이용하여 해당 접속자를 판별한다(S143). 이로써, IP 주소를 변경하거나 쿠키를 삭제하여 해당 접속자의 판별이 가능하다.
다음으로 웹 안정화 서버(400)는 확인된 이상 접속자 단말기(100)의 IP 주소대역구간을 초기화시키기 위해 타이머를 설정한다(S144). 이때, 타이머 시간 설정은 IP 주소대역구간의 비트레이트 값에 따른 초기화 시간이다.
상기 제 S144의 단계에 의해서 설정된 타이머 시간이 초기화되면, 웹 안정화 서버(400)는 이상 접속자 단말기(100)의 IP 주소대역구간 정보를 삭제한다(S145).
다음으로, 웹 안정화 서버(400)는 특정 기간 내 접속 제한 횟수를 초과한 접속자 단말기(100)의 상세정보를 관리자 단말기(200)로 전송하고(S16), 정상 접속자와 이상 접속자를 구분하여 관리한다(S18).
본 실시예에 있어서 상기 접속자 단말기(100)의 상세정보에는 접속시간(날짜), IP, 접속횟수 등을 포함하며, E-MAIL을 통해서 전송 가능한 것으로 설정하였지만, 본 발명이 이에 한정되는 것은 아니다.
한편, 상기 제 S10 단계의 판단결과 특정 기간 내 접속 제한 횟수를 초과하지 않은 경우 웹 안정화 서버(400)는 상기 접속자 단말기(100)의 쿠키정보와 접속 횟수를 누적하여 저장한다(S20).
반면, 상기 제 S8 단계의 판별결과, 신규접속인 경우 웹 안정화 서버(400)는 상기 접속자 단말기(100)의 쿠키정보를 새롭게 생성하여 저장한다(S22).
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서, 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.