getReport

개요

  • getReport API 는 “Web Security Checker” 에서 제공하는 기능으로 진단 리포트를 출력하는 API 입니다.

요청

Method Request URI
GET https://wsc.apigw.ntruss.com/api/v1/jobs/{instanceId}/report

Path Variables

파라미터 필수 여부 타입 설명
InstanceId Yes integer 진단 식별 번호

요청 헤더

IAM 인증을 위한 요청 헤더입니다.

헤더명 설명
x-ncp-apigw-timestamp 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간을 밀리초(Millisecond)로 나타낸 것입니다.
API Gateway 서버와 시간 차가 5분 이상 나는 경우 유효하지 않은 요청으로 간주합니다.
x-ncp-iam-access-key 네이버 클라우드 플랫폼에서 IAM 에서 발급받은 AccessKey 입니다.
x-ncp-apigw-signature-v2 요청 경로 및 헤더를 AccessKey와 맵핑되는 SecretKey로 암호화한 서명으로
HMAC 암호화 알고리즘은 HmacSHA256 을 사용합니다.

응답

응답 바디

필드명 필수 여부 타입 설명
report_date Yes string 진단 완료 시간
Target_Info Yes string 진단 대상 정보
Crawl_Time Yes string 크롤링 작업 시간 (2001/01/01 00:00:00 ~ 2001/01/01 00:05:00)
Scan_Time Yes string 진단 작업 시간 2001/01/01 00:06:00 ~ 2001/01/01 00:10:00
Excluded_Url Yes string 진단 제외 대상 URL 리스트
Login_Info Yes string 인증 쿠키 정보
Vulnerability_Category Yes string 진단 항목 나열 (VulnTitle_1, VulnTitle_2, …)
User_Agent Yes string 진단/크롤러 브라우저 설정
Memo Yes string 진단 작업 생성시 작성한 메모
Scanned_Domain_List Yes array 진단 대상 도메인 리스트
Not_Scanned_Domain_List Yes array 진단 제외 도메인 리스트
Classify_byRisk_Level Yes object 위험도에 따른 취약점 갯수
Classify_byRisk_Level.Total Yes integer 총 취약점 갯수
Classify_byRisk_Level.High Yes integer 영향도 ‘상’ 취약점 갯수
Classify_byRisk_Level.Medium Yes integer 영향도 ‘중’ 취약점 갯수
Classify_byRisk_Level.Low Yes integer 영향도 ‘하’ 취약점 갯수
Classify_byRisk_Domain Yes object 도메인, 영향도 별 취약점 갯수
Classify_byRisk_Domain.“http://your-domain.com" Yes object http://your-domain.com 의 위험도별 취약점 갯수
Classify_byRisk_Domain.“http://your-domain.com"."VulnTitle_1" Yes object http://your-domain.com 의 “VulnTitle_1” 진단 항목의 위험도별 취약점 갯수
Classify_byRisk_Domain.“http://your-domain.com"."VulnTitle_1".High Yes integer http://your-domain.com 의 “VulnTitle_1” 진단 항목의 영향도 ‘상’ 취약점 갯수
Classify_byRisk_Domain.“http://your-domain.com"."VulnTitle_1".Medium Yes integer http://your-domain.com 의 “VulnTitle_1” 진단 항목의 영향도 ‘중’ 취약점 갯수
Classify_byRisk_Domain.“http://your-domain.com"."VulnTitle_1".Low Yes integer http://your-domain.com 의 “VulnTitle_1” 진단 항목의 영향도 ‘하’ 취약점 갯수
Classify_byRisk_Vulnerability Yes object 취약점 별 취약점 갯수
Classify_byRisk_Vulnerability.“VulnTitle_1” Yes integer “VulnTitle_1” 진단 항목의 취약점 갯수
Classify_byRisk_Vulnerability.“VulnTitle_2” Yes integer “VulnTitle_2” 진단 항목의 취약점 갯수
Details Yes object 진단 항목별 상세 정보
Details.“VulnTitle_1” Yes object “VulnTitle_1” 진단 항목의 취약점 상세 정보
Details.“VulnTitle_1”.“0” Yes object “VulnTitle_1” 진단 항목의 첫 번째 취약점 상세 정보
Details.“VulnTitle_1”.“0”.Title Yes object 취약점 이름 + 순번
Details.“VulnTitle_1”.“0”.URL Yes object 취약점 발생 경로(웹 URL) 및 메서드
Details.“VulnTitle_1”.“0”.Request_Header Yes object 취약점 진단 시 사용한 요청 헤더(Request Header) 정보
Details.“VulnTitle_1”.“0”.Referer Yes object 요청 헤더(Request Header) 정보 중 이전 참조 경로(URL, 레퍼러)
Details.“VulnTitle_1”.“0”.Request_Body Yes object 요청(Request)의 바디(body) 영역(FORM 데이터, JSON 데이터 등)
Details.“VulnTitle_1”.“0”.Response_Data Yes array 응답 BODY 데이터 리스트
Details.“VulnTitle_1”.“0”.Description Yes string 취약점 공격 방법에 대한 추가 설명
Details.“VulnTitle_1”.“0”.Reference Yes string 대응방안 외부 안내 문서 링크
Recommendation Yes object 취약점 대응방안 상세
Recommendation.“VulnTitle_1” Yes string “VulnTitle_1” 진단 항목의 취약점 대응방안 상세
Recommendation.“VulnTitle_2” Yes string “VulnTitle_2” 진단 항목의 취약점 대응방안 상세

예시

요청 예시

curl -X GET "https://wsc.apigw.ntruss.com/api/v1/jobs/{instanceId}/report"
   -H "accept: application/json"
   -H "x-ncp-iam-access-key: {x-ncp-iam-access-key}"
   -H "x-ncp-apigw-timestamp: {x-ncp-apigw-timestamp}"
   -H "x-ncp-apigw-signature-v2: {x-ncp-apigw-signature-v2}"

응답 예시

{
    "resource": {
        "report_date": "2020-05-21 00:00:00",
        "Target_Info": "http://your-domain.com",
        "Crawl_Time": "2020/05/21 00:00:00 ~ 2020/05/21 00:05:00",
        "Scan_Time": "2020/05/21 00:05:00 ~ 2020/05/21 00:15:00",
        "Excluded_Url": null,
        "Login_Info": "",
        "Vulnerability_Category": "SQL Injection, XSS, .... (중략)",
        "User_Agent": "Mozilla/5.0 .... (중략)",
        "Memo": "",
        "Scanned_Domain_List": [
            "http://your-domain.com"
        ],
        "Not_Scanned_Domain_List": [
            "",
        ],
        "Classify_byRisk_Level": {
            "Total": 5,
            "High": 2,
            "Medium": 1,
            "Low": 2
        },
        "Classify_byRisk_Domain": {
            "http://your-domain.com": {
                "XSS": {
                    "High": 2
                },
                "LFI": {
                    "Medium": 1
                },
                "Insufficient Authorization": {
                    "Low": 2
                }
            }
        },
        "Classify_byRisk_Domain": null,
        "Classify_byRisk_Vulnerability": null,
        "Details": {
             "XSS": {
                "RiskLevel": "Medium",
                "Vuln_Desc": "XSS(Cross-site Scripting) 취약점은 사용자로부터 입력 받은 .... (중략..)",
                "Vuln_Desc2": "- 사용자로부터 입력 받은 값이 올바른 범위 .... (중략..)",
                "0": {
                    "Title": "XSS #1",
                    "URL": "[GET]  http://your-domain.com/....(중략)",
                    "Request_Header": "",
                    "Referer": "",
                    "Request_Body": "",
                    "Response_Data": [
                        ""
                    ],
                    "Description": "",
                    "Reference": ""
                },
        },
        "Recommendation": {
            "XSS": "사용자로부터 입력 받은 값이 정확히 예측 가능한 .... (중략)"
        }
    }
}

오퍼 레이션