ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Google Safe Browsing
    카테고리 없음 2020. 4. 29. 21:45
    반응형

     

    구글에서 지원하는 API 중 하나인 구글 Safe Browsing 이다 

    먼저 Safe Browsing 이 무엇이냐 하면은 구글에서 지원하는 웹 리로스 목록과 비교하여 안전한지 판단한다고 한다 .

    Safe Browsing List 에 있는지 비교 하기위해 기본적으로

    Lookup API (v4) ,Update API (v4) 를 지원한다고 한다 .

     

    Lookup API (v4)

    Lookup API를 사용하면 클라이언트 응용 프로그램이 세이프 브라우징 서버에 요청을 보내어 세이프 브라우징 목록에 URL이 포함되어 있는지 확인합니다. 하나 이상의 목록에 URL이 있으면 일치하는 정보가 반환됩니다.

    HTTP POST요청은 최대 500 개의 URL을 포함 할 수 있습니다.

    HTTP POST응답은 캐시 기간과 함께 일치하는 URL을 반환합니다.

     

      request 방식은

      POST https://safebrowsing.googleapis.com/v4/threatMatches:find?key=API_KEY HTTP/1.1
      Content-Type: application/json
      

    포스트 방식으로 키를 보내며 

     {
        "client": {
          "clientId":      "yourcompanyname",
          "clientVersion": "1.5.2"
        },
        "threatInfo": {
          "threatTypes":      ["MALWARE", "SOCIAL_ENGINEERING"],
          "platformTypes":    ["WINDOWS"],
          "threatEntryTypes": ["URL"],
          "threatEntries": [
            {"url": "http://www.urltocheck1.org/"},
            {"url": "http://www.urltocheck2.org/"},
            {"url": "http://www.urltocheck3.com/"}
          ]
        }
      }

    바디 구성은 json 형태로 아래처럼 구성 되어있다고한다 

     

    해당 요청이 정상적으로 반환되면 

    {
      "matches": [{
        "threatType":      "MALWARE",
        "platformType":    "WINDOWS",
        "threatEntryType": "URL",
        "threat":          {"url": "http://www.urltocheck1.org/"},
        "threatEntryMetadata": {
          "entries": [{
            "key": "malware_threat_type",
            "value": "landing"
         }]
        },
        "cacheDuration": "300.000s"
      }, {
        "threatType":      "MALWARE",
        "platformType":    "WINDOWS",
        "threatEntryType": "URL",
        "threat":          {"url": "http://www.urltocheck2.org/"},
        "threatEntryMetadata": {
          "entries": [{
            "key":   "malware_threat_type",
            "value": "landing"
         }]
        },
        "cacheDuration": "300.000s"
      }]
    }

    똑같이 json 형태로 반환된다 . 

     

    반환되는 바디에 타입들을 살펴보면은 먼저 

    ThreatType

    Types of threats.

    Enums

    THREAT_TYPE_UNSPECIFIED Unknown.
    MALWARE Malware threat type.
    SOCIAL_ENGINEERING Social engineering threat type.
    UNWANTED_SOFTWARE Unwanted software threat type.
    POTENTIALLY_HARMFUL_APPLICATION Potentially harmful application threat type.

    ThreatType - 위협유형 

    THREAT_TYPE_UNSPECIFIED - 알수없는 유형 

    MALWARE - 악성코드 위협 유형 

    SOCIAL_ENGINEERING - 사회 공학 위험 

    UNWANTED_SOFTWARE -원치않는 소프트웨어 위협

    POTENTIALLY_HARMFUL_APPLICATION - 잠재적인 프로그램 위협 

     

    PlatformType

    Types of platforms.

    Enums

    PLATFORM_TYPE_UNSPECIFIED Unknown platform.
    WINDOWS Threat posed to Windows.
    LINUX Threat posed to Linux.
    ANDROID Threat posed to Android.
    OSX Threat posed to OS X.
    IOS Threat posed to iOS.
    ANY_PLATFORM Threat posed to at least one of the defined platforms.
    ALL_PLATFORMS Threat posed to all defined platforms.
    CHROME Threat posed to Chrome.

     

    PLATFORM_TYPE_UNSPECIFIED - 알수없는 플랫폼 

    WINDOWS - 윈도우에 대한 위협 

    LINUX - 리눅스에 대한 위협

    ANDROID - 안드로이드에 대한 위협 

    OSX - OS X 에 대한 위협 

    IOS - IOS 에 대한 위협 

    ANY_PLATFORM - 정의된 플랫폼 중 하나 이상에 위협이 발생 할 때 

    ALL_PLATFORMS - 정의된 모든 플렛폼들에 위협이 발생 할 때 

    CHROME - 크롬에 위협이 발생 할  때 

     

     

    ThreatEntryType

    Types of entries that pose threats. Threat lists are collections of entries of a single type.

    Enums

    THREAT_ENTRY_TYPE_UNSPECIFIED Unspecified.
    URL A URL.
    EXECUTABLE An executable program.

    위협이되는 항목의 유형 위협 목록

     

    THREAT_ENTRY_TYPE_UNSPECIFIED - 지정되지 않음 

    URL - URL 

    EXECUTABLE - 실행 가능한 프로그램 

     

     

    그렇다면 Google SafeBrowsing은 무엇을 기준으로 얘네가 안전한지 위험한지 판단하는것일까? 

    그 방법은 캐쉬를 가지고 비교한다고 한다 .

    첫째, 클라이언트는 긍정적 인 캐시 적중을 확인해야합니다. 관심있는 전체 해시에 대해 만료되지 않은 포지티브 캐시 항목이 있으면 안전하지 않은 것으로 간주해야합니다.

     

     프로토콜에 따라 서버가 전체 해시를 반환하면 안전하지 않은 것으로 간주됩니다. 그렇지 않으면 안전하다고 간주됩니다.

     

    반응형

    댓글

Designed by Tistory.