updateManager

  • 설명: API 서버를 최신 버전으로 업데이트 (통신서버는 업데이트 되지 않음)

[Parameter]

key :API KEY

[Sample URL]

/api/updateManager?key=인증키

[Response]

없음


getversion

  • 설명: API 버전 조회 -현재 API 서버 정상동작 여부를 확인하기 위해 호출

[Parameter]

key :API KEY

[Sample URL]

/api/getversion?key=인증키

[Response]

"DeepFinder_API_v1_0_0"

Login

  • 설명: 로그인 / otp 사용여부 확인후 로그인처리 진행

[Parameter]

id               // ID
password        //password
fa              // 로그인단계
otp_val         // OPT 앱에표시되는 6자리 숫자

otp 사용여부확인( fa=1 로 요청)

[Sample URL]

/api/login?id=testid&password=testpw&fa=1

[Response]

{"otp_yn": "Y"}

로그인

[Sample URL]

opt_yn='Y' 인경우 ( fa=3 , otp_val 파라미터를 세팅해서 같이 전송)
/api/login?id=testid&password=testpw&fa=3&otp_val=123456

opt_yn='N' 인경우( fa=2 로 요청)
/api/login?id=testid&password=testpw&fa=2

[Response]

[
 {
   "elastic_yn": "Y",            // elastic search 사용여부( Y / N)
   "report_server": "",            // 리포트생성시사용되는서버IP
   "master_yn": "Y",                // 마스터서버여부(Y / N) -매니져 서버가 여러 대 연결된 경우 마스터 서버에서는 도메인이 어느 매니저에 있는지 검색 가능, 연결된 다른 매니저 서버 추가/삭제 가능
   "authdata": [],                // 계정이가진메뉴권한
   "data": [
   {
    "target": "company",            // 계정이관리할대상의종류( 회사: company , 도메인: domain)
    "password": "939a1de63b032adcbcd7b",    // 비밀번호
    "adminlog_send": null,        // 미사용
    "adminid": "2",                // 계정일련번호
    "otype1pos": "650542f503ab5098",        // 미사용
    "lastloginip": "192.168.1.7",        // 마지막로그인IP
    "otp_key": null,                // OTP 키
    "lsid": "1",                    // 미사용
    "adminname": "isdadmin",        // 사용자ID
    "lastmodts": "2016-09-21T11:53:32.285",// 미사용
    "multiloginsw": "0",            // 미사용
    "etr_date": "2020-05-19T15:00:31",    // 생성시간
    "logincount": "0",            // 로그인실패 횟수
    "phone": "02-2105-4510",        // 전화번호
    "name": "insung",            // 계정이름
    "otype2pos": null,            // 미사용
    "vl_yn": "Y",                // 사용여부
    "lastlogints": "2016-09-21T11:53:42.904",// 마지막로그인 시간
    "isbreak": "0",                // 계정잠김 여부 ( 잠김 : 1 , 안잠김 : 0)
    "email": "admin@isd.co.kr",    // e-mail
    "mdf_date": "2016-09-21T11:55:22.448",    // 마지막수정
    "ipaclsw": "0",                // 미사용
    "managedsvcsw": "0",            // 미사용
    "authority": "0",            // 계정등급(0: 슈퍼/ 1: 일반)
    "otp_yn": "N",                // OTP 사용여부( Y / N)
    "notify": "2",                // 미사용
    "otype1level": "1",            // 미사용
    "otype2level": null,            // 미사용
    "mdf_id": "2",                // 마지막수정 계정 일련번호
    "etr_id": null,                // 등록계정일련 번호
    "mailsend_date": "2016-02-02T14:14:49.483",// 미사용
    "api_key": "인증키",             // API KEY
    "lastreqid": null,            // 미사용
    "cryptversion": "0"            // 미사용
   }
  ],
   "cloud_yn": "Y"
 }
]

로그인 실패 시

"ID not found"
"Authentication Failed"
"Password error count exceeded. Please contact the admin"
"Not allowed IP"
"Manager system is Updating now."
"OTP mismatch "
"please input OTP value"

getAdminInfo

  • 설명: 사용자 조회

[Parameter]

key:API KEY
targetadminid: 특정사용자 정보를 획득하는 경우 사용자ID를 세팅하여 요청

[Sample URL]

/api/getAdminInfo?key=인증키&targetadminid=25

[Response]


"data": [
 {
  "email": "afsaaf@gmail.com",        //이메일주소
  "lastlogints": "2014-10-15T01:31:46.562",        //마지막로그인시각
  "lastmodts": "2011-12-02T14:21:02.986",        //미사용
  "etr_id": null,        //계정발급자ID
  "mdf_date": "2011-12-02T14:21:02.986",        //마지막수정일
  "mailsend_date": "2016-02-02T14:14:49.483",        //미사용
  "notify": "2",        //미사용
  "otp_yn": "N",        //OTP사용여부
  "lastreqid": null,        //미사용
  "cryptversion": "0",        //미사용
  "name": "qwerty",        //사용자이름
  "adminid": "25",        //계정일련번호
  "phone": "01020003000",        //전화번호
  "vl_yn": "Y",//
  "api_key": "89239be411969d6f42cce004ceb7c0a4f0b80b606a305b16801a2118bedd8a3b",        //API 키
  "target": "company",        //유저타입2('company' or 'domain')
  "managedsvcsw": "0",        //미사용
  "lastloginip": "192.168.1.5",        //마지막로그인IP
  "authority": "0",        //유저타입1(0: 슈퍼 / 1:일반)
  "auths": "1,2,3,9,10,11,12,13,14",        //메뉴사용권한( ,구분텍스트)
  "isbreak": "0",        //계정블럭여부(0: 사용가능 / 1: 블럭)
  "otp_key": null,        //OTP이용자일경우 OTP 키
  "mdf_id": "1",        //마지막수정자 ID
  "adminname": "admin",        //사용자ID (=로그인ID)
  "lsid": "1",        //미사용
  "ipaclsw": "0",        //미사용
  "domains": [],        //허용도메인리스트(배열)
  "cids": "1,2,3,9,10,11,12,47,48",        //허용회사ID( ,구분텍스트)
  "etr_date": "2020-07-08T10:06:08",        //계정생성일
  "multiloginsw": "0",        //미사용
  "acls": "192.168.1.7,192.168.1.8",        //접근허용IP( ,구분텍스트)
  "logincount": "0"        //로그인실패횟수
 },

getUserAuth

  • 설명: 사용자에 해당하는 권한을 조회

[Parameter]

key :API KEY

[Sample URL]

/api/getAdminInfo?key=인증키

[Response]

[
 {
  "functype": null,//미사용
  "authname": "정책관리> 회사정보 수정",//권한 이름
  "type": "2",//미사용
  "funcname": null,//미사용
  "authno": 1//권한번호
 },
 {
  "functype": null,
  "authname": "시스템현황",
  "type": "2",
  "funcname": null,
  "authno": 4
 },
 {
  "functype": null,
  "authname": "리포트",
  "type": "2",
  "funcname": null,
  "authno": 5
 },
 {
  "functype": null,
  "authname": "환경관리> 사용자관리",
  "type": "2",
  "funcname": null,
  "authno": 7
 },
 {
  "functype": null,
  "authname": "환경관리> 환경설정",
  "type": "2",
  "funcname": null,
  "authno": 8
 },
 {
  "functype": null,
  "authname": "템플릿관리> 보안패턴",
  "type": "2",
  "funcname": null,
  "authno": 9
 },
 {
  "functype": null,
  "authname": "템플릿관리> 헤더필드",
  "type": "2",
  "funcname": null,
  "authno": 10
 },
 {
  "functype": null,
  "authname": "템플릿관리> IP관리",
  "type": "2",
  "funcname": null,
  "authno": 11
 },
 {
  "functype": null,
  "authname": "템플릿관리> 업로드파일",
  "type": "2",
  "funcname": null,
  "authno": 12
 },
 {
  "functype": null,
  "authname": "템플릿관리> URL생성",
  "type": "2",
  "funcname": null,
  "authno": 13
 },
 {
  "functype": null,
  "authname": "템플릿관리> URL제한패턴",
  "type": "2",
  "funcname": null,
  "authno": 14
 },
 {
  "functype": null,
  "authname": "템플릿관리> 메소드",
  "type": "2",
  "funcname": null,
  "authno": 15
 },
 {
  "functype": null,
  "authname": "탐지로그",
  "type": "2",
  "funcname": null,
  "authno": 16
 },
 {
  "functype": null,
  "authname": "이벤트로그",
  "type": "2",
  "funcname": null,
  "authno": 17
 },
 {
  "functype": null,
  "authname": "감사로그",
  "type": "2",
  "funcname": null,
  "authno": 18
 }
]

adminMgm

  • 설명: 계정 추가 / 계정 수정 / 계정 삭제 / 비밀번호 변경/ ID 중복체크 / API키 변경 / OPT키 변경

회사 단위 계정 추가

[Parameter]

* job :작업유형 ( 계정 추가 : add)
key :API KEY
adminname :계정ID
password1 :비밀번호
password2 :비밀번호
name :사용자이름
phone :전화번호
email :e-mail
otp_yn :OTP 사용여부( Y / N)
super : 슈퍼계정여부 ( 슈퍼관리자 : 0 / 일반사용자 : 1)
cids : 계정의관리대상 회사ID (계정의 관리 대상 유형이 회사인 경우 세팅))
menuauths :계정의권한
target : 계정의관리 대상 유형 ( 회사단위로 관리 : compay / 도메인단위 관리 : domain)
domains :계정의관리 대상 도메인ID ( 계정의 관리 대상 유형이 도메인인 경우 세팅)

[Sample URL]

/api/adminMgm?job=add&key=인증키&adminname=testadmin&password1=test123!@#&password2=test123!@#&name=kim&phone=02-1111-2222&email=test@test.kr&otp_yn=N&super=1&cids=1,2,3,9&menuauths=1,4,5,7,16&target=company&domains=

[Response]

"Completed"

도메인 단위 계정 추가

[Parameter]

* job :작업유형 ( 계정 추가 : add)
* key :API KEY
* adminname :계정ID
* password1 :비밀번호
* password2 :비밀번호
* name :사용자이름
* phone :전화번호
* email :e-mail
* otp_yn :OTP 사용여부( Y / N)
* super : 슈퍼계정여부 ( 슈퍼관리자 : 0 / 일반사용자 : 1)
* cids : 계정의관리대상 회사ID (계정의 관리 대상 유형이 회사인 경우 세팅))
* menuauths :계정의권한
* target : 계정의관리 대상 유형 ( 회사단위로 관리 : compay / 도메인단위 관리 : domain)
* domains :계정의관리 대상 도메인ID ( 계정의 관리 대상 유형이 도메인인 경우 세팅)

[Sample URL]

/api/adminMgm?job=add&key=인증키&adminname=testadmin1&password1=test123!@#&password2=test123!@#&name=test1&phone=02-1111-2222&email=test@test.kr&otp_yn=N&super=1&cids=&menuauths=1&target=domain&domains=11,12,14

[Response]

"Completed"

ID 중복체크

[Parameter]

* job : 작업유형 ( 중복체크 : dup)
* key : API KEY
* adminname : 계정ID

[Sample URL]

/api/adminMgm?job=dup&key=인증키&adminname=testadmin

[Response]

ID가사용중인경우 응답:{"data": 1}
ID가사용가능할경우 응답:"ID not found"

계정 수정

[Parameter]

* job :작업유형 ( 계정 수정 : edit)
* key :API KEY
* adminname :계정ID
* name :계정이름
* phone :전화번호
* email :e-mail
* otp_yn :OTP 사용여부( Y / N)
* super : 슈퍼계정여부 ( 슈퍼계정 : 0 / 일반계정 : 1)
* cids : 계정의관리대상 회사ID (계정의 관리 대상 유형이 회사인 경우 세팅)
* menuauths :계정의권한
* acls :접근제한IP (여러개일 경우 ,로 구분해서 전달)
* target : 계정의관리 대상 유형 ( 회사단위로 관리 : compay / 도메인단위 관리 : domain)
* domains :계정의관리 대상 도메인ID ( 계정의 관리 대상 유형이 도메인인 경우 세팅)

[Sample URL]

* /api/adminMgm?job=edit&key=인증키&adminname=testadmin&name=kim&phone=02-1111-2222&email=test@test.kr&otp_yn=N&super=1&cids=1,2,3,9&menuauths=1,4,5,7,16&acls=&target=company&domains=

[Response]

"Completed"

계정 삭제

[Parameter]

* job :작업유형 ( 계정 삭제 : del)
* key :API KEY
* adminname :계정ID
* adminid:계정번호
* name :계정이름

[Sample URL]

* /api/adminMgm?job=del&key=인증키&adminname=testadmin&adminid=59

[Response]

"Completed"

비밀번호 변경

[Parameter]

* job:작업유형 ( 비밀번호 변경 : changepw)
* key:API KEY
* adminname:계정ID
* adminid:59
* password1:test123!@#
* password2:test123!@#

[Sample URL]

* /api/adminMgm
[POST]
    job: changepw
    key: 인증키
    adminname: testadmin
    adminid: 59
    password1: test123!@#
    password2: test123!@#

[Response]

"Completed"

OTP Key 변경

[Parameter]

* job:작업유형 ( OTP키변경 : otp)
* key:API KEY
* adminname:계정ID
* adminid:계정일련번호

[Sample URL]

* /api/adminMgm?job=otp&key=인증키&adminname=testadmin&adminid=59

[Response]

"Completed"

API키 변경

[Parameter]

* job:작업유형 ( API키변경 : apikey)
* key:API KEY
* adminname:계정ID
* adminid:계정일련번호

[Sample URL]

* /api/adminMgm?job=apikey&key=인증키&adminname=testadmin&adminid=59

[Response]

"Completed"

blockreset

  • 설명: 계정을 차단하거나 차단된 계정의 접속을 허용

[Parameter]

* key :API KEY
* job :허용여부(0: 허용 / 1: 차단 )
* adminid :계정일련번호

[Sample URL]

* /api/blockreset?key=인증키&job=0&adminid=61

[Response]

"Completed"

getAgentInfo

  • 설명: 에이전트 조회

[Parameter]

* key :API KEY
* aid:에이전트ID (하나의 에이전트 정보만 조회할때 사용)

[Sample URL]

* /api/getAgentInfo?key=인증키

[Response]

{
 "pageNum": null,
 "dataRow": null,
 {
  "aid": "177",// 에이전트ID
  "name": "[UITEST]192.168.1.250_auto_added",// 에이전트이름
  "ip": "192.168.1.250",// 에이전트IP
  "type": "NGINX",// 에이전트웹서버 종류
  "version": "",// 에이전트웹서버 버전
  "port": "0",// 에이전트웹서버 포트
  "sid": "0",// 에이전트연결 상태 ( 정상연결 : 1 / 101 , 연결 됐지만 필터 OFF 상태 : 2 , 연결 끊김 : 0)
  "current_ver": "18090311",// 에이전트버전
  "filter_ver": "Ver 1, 1, 0, 1615",// 에이전트필터 버전
  "filter_yn": "0",// 필터동작 여부
  "filter_yn2": "0",// 필터정책 동기화 정보( -1 : 필터정보없음 , 0 : 정책동기화 되지 않거나 에이전트버전 낮음 ,1 : 에이전트 정책 동기화 정상 )
  "aws_instance": "i-09e9907e05b433665",// 클라우드이용시 클라우드 ID
  "auto_scaling_yn": "N",// 클라우드이용시 오토스케일링 사용여부
  "closetime": "2019-06-19 12:57:47",// 마지막연결 종료 시간
  "isrun": "1",// 동작여부(run : 1 , bypass : 0)
  "isauthver": "C",// 에이전트설치 종류 ( 회사키로 설치 : C , 도메인그룹키로 설치 : D, AID로 설치: N) -키로 설치한 경우 연결 도메인그룹을 수정할 수 없음
  "defaultaction": "NONE",// 기본정책대응방법
  "domainsendsw": "0",// 도메인자동수집 기능 ( 사용 : 1 , 사용안함 : 0)
  "urlsendsw": "0",// 미사용
  "logsendsw": "1",// 미사용
  "managedsvcsw": "0",// 미사용
  "usetime": "",// 사용시간
  "usetimetohour": "",// 사용시간(월)
  "licensesw": "0"// 미사용
  "cpuusage": "-1",// cpu 임계치(%)
  "cpu_usage_time": "0",// cpu 임계치지속 시간(분)
  "memusage": "-1",// 메모리임계치(%)
  "mem_usage_time": "0",// 메모리임계치 지속 시간(분)
  "swap_usage": "0",// 스왑메모리임계치(%)
  "swap_usage_time": "0",// 스왑메모리임계치 지속 시간(분)
  "diskusage": "-1",// 디스크임계치(%)
  "disk_usage_time": "0",// 디스크임계치 지속 시간(분)
  "rxbyte_usage": "0",// 네트워크수신량 임계치(byte)
  "rxbyte_usage_time": "0",// 네트워크수신량 임계치 지속 시간(분)
  "txbyte_usage": "0",// 네트워크송신량 임계치(byte)
  "txbyte_usage_time": "0",// 네트워크송신량 임계치 지속 시간(분)
  "rxpacket_usage": "0",// 네트워크수신량 임계치(byte)
  "rxpacket_usage_time": "0",// 네트워크수신 패킷 임계치 지속 시간(분)
  "txpacket_usage": "0",// 네트워크송신 패킷 임계치(수)
  "txpacket_usage_time": "0",// 네트워크송신 패킷 임계치 지속 시간(분)
  "socket_usage": "0",// 사용중인소켓 임계치(수)
  "socket_usage_time": "0",// 사용중인소켓 임계치 지속 시간(분)
  "process_usage": "0",// 프로세스임계치
  "process_usage_time": "0",// 사용중인프로세스 임계치 지속 시간(분)
  "alarm": "0",// 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0) - alert_sysinfo 와 같음
  "alert_filter": "0",// 필터상태 메일 알람 (사용 : 1 , 사용안함 : 0)
  "alert_connect": "0",// 에이전트연결상태 알람( 사용 : 1 , 사용안함 : 0)
  "alert_sysinfo": "0",// 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0)
  "cid": "15",// 에이전트와연결된 회사 ID
  "companyname": "test3",// 에이전트와연결된 회사 이름
  "domaingids": "20,14,15",// 연결도메인그룹
  "defaultdgid": "0",// 기본도메인그룹
  "etr_date": "2018-07-18T13:06:56",// 등록시간
  "vl_yn": "Y",// 삭제여부(사용중인 에이전트 : Y , 삭제된 에이전트 : N)
 },...
}

getAgentTimeInfo

  • 설명: 사용시간이 포함된 에이전트 조회. ( 로그인 정보에 cloud_yn 값이 'Y' 인 경우 사용시간 정보가 필요함)
    cloud_yn의값이 Y인경우 getAgentTimeInfo 를 이용하여 사용시간을 따로 가져와서 보여줌

[Parameter]

* key :API KEY
* aid:에이전트ID (하나의 에이전트 정보만 조회할때 사용)
* csv:csv 저장시값을 1로 세팅하여 새창으로 열면 에이전트 목록을 csv 파일로 다운로드

[Sample URL]

* /api/getAgentTimeInfo?key=인증키

[Response]

{
 "pageNum": 1,
 "dataRow": 500,
 "data": [
  {"version": "2.2",
  "defaultaction": "DETECT",
  "aid": "2",
  "defaultdgid": "1",
  "logsendsw": "1",
  "domaingids": "",
  "cpuusage": "90",
  "filter_yn": "0",
  "current_ver": "17091113",
  "aws_instance": "",
  "vl_yn": "N",
  "usetimetohour": "0s",
  "urlsendsw": "0",
  "alarm": "0",
  "closetime": "2018-07-18 10:25:37",
  "ip": "127.0.0.1",
  "cid": "1",
  "filter_ver": "Ver 1, 0, 0, 1087",
  "usetime": 0,
  "name": "updatetest332",
  "diskusage": "90",
  "sid": "0",
  "auto_scaling_yn": "N",
  "isauthver": "D",
  "port": "0",
  "etr_date": "2017-09-11T14:45:39",
  "managedsvcsw": "0",
  "isrun": "1",
  "memusage": "90",
  "type": "apache",
  "domainsendsw": "1",
  "licensesw": "0"
  },....
}

agentMgm

  • 설명: 에이전트 추가 /수정/ 삭제

에이전트 추가

[Parameter]

* key :API KEY
* job :작업종류( 에이전트추가 : add)
* agname :에이전트 이름
* agip :에이전트 IP
* agtype :에이전트 웹 서버 종류( APACHE / IIS / WAS / NGINX)
* agport :에이전트 웹 서버 포트
* agversion :에이전트 웹 서버 버전
* agisrun :에이전트 동작 여부( run : 1 / bypass : 0)
* domainsw :에이전트 웹 서버 도메인 수집기능 사용여부 (사용안함:0 / 사용함 :1) -기본값 사용안함으로 설정함
* autodel :연결이 끊어진 에이전트 자동 삭제 여부 (사용 : Y / 사용안함 : N)
* cid :에이전트와 연결된 회사 ID
* domaingids :에이전트와 연결된 도메인 그룹ID (여러 개일 경우 ,로 구분해 입력)
* defaultdgid :에이전트의 기본 도메인그룹 ID

[Sample URL]

* /api/agentMgm?key=인증키&job=add&agname=TEST_AGENT&agip=10.10.10.10&agtype=APACHE&agport=80&agversion=2.6&agisrun=1&domainsw=0&autodel=%27N%27&cid=10&domaingids=89&defaultdgid=89

[Response]

"Completed"

에이전트 수정

[Parameter]

* key :API KEY
* job :작업종류( 에이전트 수정 : edit)
* aid :에이전트ID
* agname :에이전트이름
* agip :에이전트IP
* agtype :에이전트웹서버 종류( APACHE / IIS / WAS / NGINX)
* agport :에이전트웹서버 포트
* agversion :에이전트웹서버 버전
* agisrun :에이전트동작여부( run : 1 / bypass : 0)
* domainsw :에이전트웹서버 도메인 수집기능 사용여부 (사용안함:0 / 사용함 :1) -기본값 사용안함으로 설정함
* autodel :연결이끊어진 에이전트 자동 삭제 여부 (사용 : Y / 사용안함 : N)
* cid :에이전트와연결된 회사 ID
* domaingids :에이전트와연결된 도메인 그룹ID (여러개일 경우 ,로 구분해 입력)
* defaultdgid :에이전트의기본 도메인그룹 ID

[Sample URL]

* /api/agentMgm?key=인증키&job=edit&aid=250&agname=TEST_AGENT&agip=10.10.10.10&agtype=APACHE&agport=80&agversion=2.6&agisrun=1&domainsw=0&autodel=%27N%27&cid=10&domaingids=89&defaultdgid=89

[Response]

"Completed"

에이전트 리소스 알람 임계치 수정

해당항목이 임계치를 넘는 상태가 설정한 시간보다 오래 지속될 경우 알림
에이전트수정 api를 이용 (파라미터를 합쳐서 한번에 호출해도 무방함)

[Parameter]

* key :API KEY
* job :작업종류( 에이전트 수정 : edit)
* aid :에이전트ID
* cpu :cpu 임계치(%)
* cpu_usage_time :cpu 임계치지속 시간(분)
* mem : 메모리임계치(%)
* mem_usage_time : 메모리임계치 지속 시간(분)
* disk : 디스크임계치(%)
* disk_usage_time : 디스크임계치 지속 시간(분)
* swap_usage : 스왑메모리임계치(%)
* swap_usage_time : 스왑메모리임계치 지속 시간(분)
* rxbyte_usage : 네트워크수신량 임계치(byte)
* rxbyte_usage_time : 네트워크수신량 임계치 지속 시간(분)
* txbyte_usage : 네트워크송신량 임계치(byte)
* txbyte_usage_time : 네트워크송신량 임계치 지속 시간(분)
* rxpacket_usage :네트워크수신 패킷 임계치(수)
* rxpacket_usage_time :네트워크수신 패킷 임계치 지속 시간(분)
* txpacket_usage :네트워크송신 패킷 임계치(수)
* txpacket_usage_time :네트워크송신 패킷 임계치 지속 시간(분)
* process_usage :사용중인프로세스 임계치(수)
* process_usage_time : 사용중인프로세스 임계치 지속 시간(분)
* socket_usage : 사용중인소켓 임계치(수)
* socket_usage_time : 사용중인소켓 임계치 지속 시간(분)
* alarm : 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0) // 미사용
* alert_connect : 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0)
* alert_filter : 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0)
* alert_sysinfo : 시스템임계치 메일 알람 여부 ( 사용 : 1 , 사용안함 : 0)
* cid :에이전트와연결된 회사 ID
* domaingids : 에이전트와연결된 도메인 그룹ID (여러개일 경우 ,로 구분해 입력)
* defaultdgid : 에이전트의기본 도메인그룹 ID

[Sample URL]

* /api/agentMgm?key=인증키&job=edit&aid=250&cpu=90&cpu_usage_time=0&mem=90&mem_usage_time=0&disk=0&disk_usage_time=0&swap_usage=0&swap_usage_time=0&rxbyte_usage=0&rxbyte_usage_time=0&txbyte_usage=0&txbyte_usage_time=0&rxpacket_usage=0&rxpacket_usage_time=0&txpacket_usage=0&txpacket_usage_time=0&process_usage=0&process_usage_time=0&socket_usage=0&socket_usage_time=0&alarm=1&alert_connect=1&alert_filter=1&alert_sysinfo=1&cid=10&domaingids=89&defaultdgid=89

[Response]

"Completed"

getAgentInfo

  • 설명: 에이전트 삭제

[Parameter]

* key :API KEY
* job :작업종류( 에이전트 삭제 : del)
* aid :에이전트ID

[Sample URL]

* /api/agentMgm?key=인증키&job=del&aid=250

[Response]

"Completed"

agentUpdate

  • 설명: 에이전트 업데이트 / 에이전트 정책 갱신 / 웹서버 재기동(gracefull / recycle)

[Parameter]

* key :API KEY
* aid :에이전트ID
* flag :작업종류( 에이전트 업데이트 : 1 , 에이전트의 정책 갱신 : 2 , 웹서버 gracefull/recycle : 3)

[Sample URL]

* /api/agentUpdate?key=인증키&flag=1&aid=205

[Response]

"Completed"

get_proxy_config

  • 설명: 전체 에이전트에 대한 프록시 설정파일 및 내용 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_proxy_config?key=인증키

[Response]

[
 {
  "etr_date": "2020-07-09T17:10:23.734",// 등록일
  "config": "fs",// 설정파일내용
  "aid": "242",// 에이전트ID
  "mdf_date": null,// 마지막수정시간
  "filename": "..\\new.test"// 설정파일이름
 },
 {
  "etr_date": "2019-08-01T01:53:01.112",
  "config": "\nThis directory holds Apache 2.0 module-specific configuration files;\nany files in this directory which have the \".conf\" extension will be\nprocessed as Apache configuration files.\n\nFiles are processed in alphabetical order, so if using configuration\ndirectives which depend on, say, mod_perl being loaded, ensure that\nthese are placed in a filename later in the sort order than \"perl.conf\".\n\n",
  "aid": "223",
  "mdf_date": null,
  "filename": "README"
 },
 {
  "etr_date": "2019-08-01T01:53:01.112",
  "config": "\nLoadModule proxy_ajp_module modules/mod_proxy_ajp.so\n\n#\n# When loaded, the mod_proxy_ajp module adds support for\n# proxying to an AJP/1.3 backend server (such as Tomcat).\n# To proxy to an AJP backend, use the \"ajp://\" URI scheme;\n# Tomcat is configured to listen on port 8009 for AJP requests\n# by default.\n#\n\n# \n# Uncomment the following lines to serve the ROOT webapp\n# under the /tomcat/ location, and the jsp-examples webapp\n# under the /examples/ location.\n#\n#ProxyPass /tomcat/ ajp://localhost:8009/\n#ProxyPass /examples/ ajp://localhost:8009/jsp-examples/\n\n\n",
  "aid": "223",
  "mdf_date": null,
  "filename": "proxy_ajp.conf"
 }, ....
]

set_proxy_config

  • 설명: 에이전트에 대한 프록시 설정 저장

[Parameter]

* key:API KEY
* aid:에이전트ID
* job:작업종류( 수정 : edit )
* filename:파일명
* config:프록시설정 파일 내용

[Sample URL]

* /api/set_proxy_config
[ POST ]
key: 인증키
aid: 229
job: edit
config: #########
     upstream django {
      server unix:///usr/local/dfserver/api/run/uwsgi.sock;
     }
     upstream tomcat {
      server 127.0.0.1:8080;
     }
     server {
      listen 443 ssl http2;
      #server_name deepfinder;
      server_name 192.168.1.250;
      charset utf-8;
      ssl on;
      ssl_protocols SSLv2 SSLv3 TLSv1;
      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+EXP;
      ssl_session_cache shared:SSL:10m;
      ssl_certificate /usr/local/dfserver/certs/deepfinder.pem;
      ssl_certificate_key /usr/local/dfserver/certs/deepfinder.key;
      location / {
      root html/dist;
      index index.html;
     }
     location /api/ {
      include uwsgi_params;
      uwsgi_pass django;
     }
     location /birt/ {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
     }
     location /common/ {
      #root html/common;
      #index index.jsp;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass https://localhost:8443;
      proxy_redirect off;
      proxy_buffering on;
      proxy_buffers 1024 1024k;
      proxy_buffer_size 1024k;
      client_body_buffer_size 1024k;
      proxy_busy_buffers_size 1024k;
      client_max_body_size 100M;
     }
filename: api.conf

[Response]

"Completed"

get_config_check

  • 설명: proxy config 수정 후 처리 결과 조회 ( proxy config 수정 후 30초 후 결과 조회 가능)

[Parameter]

* key:API KEY
* aid:에이전트ID

[Sample URL]

* /api/get_config_check?key=인증키&aid=160

[Response]

[
 {
  "mdf_date": null,// 마지막수정시간
  "etr_date": "2018-10-16T18:10:39.265",// 생성시간
  "aid": "160",// 에이전트ID
  "result": "Syntax OK\n"// 설정수정 처리 결과
 }
]

get_agent_config

  • 설명: 에이전트의 설정내용을 조회 (xml)

[Parameter]

* key:API KEY
* aid:에이전트ID

[Sample URL]

* /api/get_agent_config?key=인증키&aid=226

[Response]

[
 {
  "mdf_date": null,// 마지막수정시간
  "etr_date": "2020-07-09T17:10:23.778",// 생성시간
  "aid": "226",// 에이전트ID
  "config": "\n\n\n\n\n\n\t\n\t\n\t\n\n\n" // config 파일내용
 }
]

set_agent_config

  • 설명: 에이전트의 설정내용을 저장 (xml)

[Parameter]

* key:API KEY
* aid:에이전트ID
* config:프록시설정 파일 내용

[Sample URL]

* /api/set_agent_config
[ POST ]
 key: 인증키
 aid: 226
 config: <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 <Agent
  aid="-2"
  authdata="4679228faaf506c99efbeafca3331e1eb53ff86dcb8cdeb1c22bbdda0ab29ff3"
  ssl_pemfile="deepfinder.pem"
  ssl_password="isdwebconx"
  svrip="10.10.7.250"
  svrproto="tcp"
  svrport="10012"
  debug="0"
/>
<Filter
 localhost="127.0.0.1"
 filter_alive_check_time="900"
 policy_update_time="30"
 debug="1"
 bypass="0"
/>
<Updater>
 <Update
  enable="0"
  interval="7"
  hour="5"
  restart="0"
  />
<Local
  system="linux_x64"
  type="nginx"
  version=""
/>
<Server
  address="http://s3.ap-northeast-2.amazonaws.com/isd.seoul/DeepFinder/1.0"
  md5file="file_md5.xml"
/>
</Updater>

[Response]

"Completed"

get_agent_by_domaingid

  • 설명: 도메인그룹 ID로 해당 도메인과 연결된 에이전트 목록을 조회

[Parameter]

* key :API KEY
* domaingid :도메인그룹ID

[Sample URL]

* /api/get_agent_by_domaingid?key=인증키&domaingid=4

[Response]

[
  {
      "version": "",
      "defaultdgid": "4",
      "port": "0",
      "alert_filter": "0",
      "sendmailtime": null,
      "authmethod": 1,
      "current_ver": "18092109",
      "aws_instance": "",
      "auto_scaling_yn": "N",
      "beforeusetime2": null,
      "policymodidate": null,
      "atype": null,
      "logtime": null,
      "mdf_date": "2020-04-20T10:28:11",
      "filter_ver": "Ver 1, 2, 0, 1783",
      "alert_connect": "0",
      "connecttimetemp": "2019-07-19 10:06:22",
      "diskusage": "90",
      "sid": "0",
      "aid": "209",
      "timeupdateflg": null,
      "beforeusetime": null,
      "keyval": null,
      "alert_sysinfo": "0",
      "domainsendsw": "0",
      "filter_yn2": "1",
      "mdf_id": "2",
      "logsendsw": "1",
      "cpuusage": "90",
      "vl_yn": "Y",
      "urlsendsw": "0",
      "filter_yn": "0",
      "closetime": "2019-07-23 14:53:55",
      "ip": "10.10.7.246",
      "authpassword": "4679228faaf506c99efbeafca3331e1eb53ff86dcb8cdeb1c22bbdda0ab29ff3",
      "usetime": null,
      "ver_yn": null,
      "name": "[Seo Test 2]10.10.7.246_auto_added",
      "encmode": null,
      "etr_id": "1",
      "etr_date": "2019-04-15T11:03:08.838",
      "managedsvcsw": "0",
      "isrun": "1",
      "memusage": "90",
      "type": "NGINX",
      "licensesw": "0",
      "alarm": "0"
  }, ...
] 

get_company_all

  • 설명: 전체 회사목록 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_company_all?key=인증키

[Response]

[
  {
    "mdf_id": "2",// 마지막수정 계정 일련번호
    "send_report_yn": "N",// 미사용보고서 자동전송 여부 (Y / N)
    "etr_date": "2017-09-11T14:39:21.004",// 생성시간
    "authinfo": "0945a7d7205f645a8c689ac93a64a1cf8e6cec89374fb3249913424c787e1ea2",// 회사인증키
    "send_report_day": "1",// 미사용
    "send_report_hour": "1",// 미사용
    "lsid": "1",// 미사용
    "send_report_end": "N",// 미사용
    "domaing": 0,// 미사용
    "comment": "ISD TEST COMPANY",// 회사설명
    "name": "isd",// 회사이름
    "send_report_email": "",// 미사용
    "etr_id": "2",// 생성계정일련번호
    "cid": "1",// 회사ID
    "mdf_date": "2020-07-01T00:00:00.000",// 마지막수정시간
    "vl_yn": "Y"// 삭제여부( 사용 중인 회사:Y, 삭제된 회사 : N)
  }, ...
]

get_company_by_cid

  • 설명: 회사 ID로 회사를 조회

[Parameter]

* key :API KEY
* cid :회사ID

[Sample URL]

* /api/get_company_by_cid?key=인증키&cid=2

[Response]

[
  {
    "mdf_id": "2",
    "send_report_yn": "Y",
    "etr_date": "2017-09-11T14:49:19.554",
    "authinfo": "cb60be826ff8c254a9be401f52b3c005c62f07d1dc14aabf2b97aacac82a7aca",
    "send_report_day": "1",
    "send_report_hour": "1",
    "lsid": "1",
    "send_report_end": "Y",
    "comment": "",
    "name": "Seo Test",
    "send_report_email": "",
    "etr_id": "2",
    "cid": "2",
    "mdf_date": "2020-07-01T00:00:01.257",
    "vl_yn": "Y"
  }
] 

company_set

  • 설명: 회사 추가 / 회사 수정 / 회사 삭제

회사 추가

[Parameter]

* key :API KEY
* job :작업종류( 추가 : add)
* name :회사명
* comment :회사설명
* send_report_yn :리포트자동발송여부( 현재 미사용 )

[Sample URL]

* /api/company_set?key=인증키&job=add&name=TEST_COMPANY&comment=this_is_test&send_report_yn=N

[Response]

"Completed"

회사 수정

[Parameter]

* key :API KEY
* job :작업종류( 수정 : edit)
* cid :회사ID
* name :회사명
* comment :회사설명
* send_report_yn :리포트자동발송여부( 현재 미사용 )

[Sample URL]

* /api/company_set?key=인증키&job=edit&cid=49&name=TEST_COMPANY&comment=this_is_test&send_report_yn=N

[Response]

"Completed"

회사 삭제

[Parameter]

* key :API KEY
* job :작업종류( 삭제 : del)
* cid :회사ID

[Sample URL]

* /api/company_set?key=인증키&job=del&cid=49

[Response]

"Completed"

get_defalt_policy

  • 설명: 기본 정책 목록 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_defalt_policy?key=인증키

[Response]

[
  "high",// 기본정책명
  "normal",
  "low",
  "asp",
  "php",
  "jsp",
  "asp_jsp",
  "php_jsp",
  "asp_php_jsp",
  "250test",
  "HIHIHI",
  "POLICY",
  "entestplcy",
  "test7",
  "test8",
  "test9"
]

del_default_policy

  • 설명: 기본정책 삭제

[Parameter]

* key :API KEY
* name :삭제할기본 정책 이름 ( 여러개 삭제 시 반복 요청)

[Sample URL]

* /api/del_defalt_policy?key=인증키&name=test8&name=test9&name=test10

[Response]

{
  "data": [        //삭제요청한기본정책을 사용중인 도메인그룹 -사용 중이면 삭제되지 않음
  {
    "domaing": [
    {
    "domaingid": "62",
    "domaing_name": "was"
    }
   ],
    "name": "test9"     // 사용중이어서 삭제 되지 않은 기본 정책
  },
  {
    "domaing": [
    {
      "domaingid": "13",
      "domaing_name": "test5"
    },
    {
      "domaingid": "40",
      "domaing_name": "test10"
    }
   ],
    "name": "test10"
   }
  ],
   "data2": [       //삭제된기본정책
   {
    "name": "test8"
   }
  ],
    "result": "Complete"
}

get_domaingroup_all

  • 설명: 도메인그룹 전체 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_domaingroup_all?key=인증키

[Response]

[
  {
    "version": "",  // 에이전트웹서버 버전
    "name": "isd",  // 도메인그룹이름
    "mdf_id": "2",  // 마지막수정 계정 일련번호
    "defaultplcy": "test123",   // 기본정책
    "authinfo": "2de9c3f81fd0894a7db0820a994cf754035b83599918ed73bd328819c6effc6a", // 도메인인증키
    "domaingid": "1",   // 도메인그룹ID
    "etr_id": "2",  // 생성계정
    "comment": "AAAAAAAAAAAAAAAAAAAAAAA",   // 도메인그룹설명
    "vl_yn": "Y",   // 삭제여부( 사용 중인 도메인그룹 : Y, 삭제된 도메인그룹 : N)
    "isrun": "1",   // 동작여부( bypass: 0 , run : 1 )
    "urlsendsw": "0",   // 미사용
    "cid": "1", // 도메인그룹이속한 회사
    "defaultplcyaction": "3",   // 기본정책대응방법 (DETECT : 3 , REDIRECT : 2, DENY: 3)
    "mdf_date": "2020-04-06T10:29:25.865",  // 마지막수정 시간
    "etr_date": "2017-09-11T14:39:39.578",  // 생성시간
    "type": "Apache"    // 에이전트웹서버 종류
  }, ...
]

get_domaingroup_by_cid

  • 설명: 회사에 포함된 도메인그룹 목록 조회

[Parameter]

* key :API KEY
* cid :회사ID

[Sample URL]

* /api/get_domaingroup_by_cid?key=인증키&cid=2

[Response]

[
  {
    "version": "",  // 에이전트웹서버 버전
    "name": "Seo Test 2",   // 도메인그룹이름
    "isrun": "1",   // 동작여부( bypass: 0 , run : 1 )
    "defaultplcy": "low",   // 기본정책
    "defaultplcyaction": "detect",  // 기본정책대응방법
    "domaingid": "4",   // 도메인그룹ID
    "type": "IIS",  // 에이전트웹서버 종류
    "authinfo": "4679228faaf506c99efbeafca3331e1eb53ff86dcb8cdeb1c22bbdda0ab29ff3", // 도메인인증키
    "cid": "2", // 도메인그룹이속한 회사
    "comment": ""   // 도메인그룹설명
  },...
]

get_domaingroup_by_cid

  • 설명: 도메인그룹 ID로 도메인그룹 조회

[Parameter]

* key :API KEY
* cid :회사ID

[Sample URL]

* /api/get_domaingroup_by_cid?key=인증키&cid=2

[Response]

[
  {
    "version": "",
    "name": "Seo Test 2",
    "isrun": "1",
    "defaultplcy": "low",
    "defaultplcyaction": "detect",
    "domaingid": "4",
    "type": "IIS",
    "authinfo": "4679228faaf506c99efbeafca3331e1eb53ff86dcb8cdeb1c22bbdda0ab29ff3",
    "cid": "2",
    "comment": ""
  },...
]

domaing_set

  • 설명: 도메인그룹 추가 / 도메인그룹 수정 / 도메인그룹 삭제

도메인 그룹 추가

[Parameter]

* key :API KEY
* job :작업종류( 도메인그룹 추가 : add)
* cid :도메인그룹이추가될 회사 ID
* name :도메인그룹이름
* comment :도메인그룹설명
* version도메인그룹연결 될 에이전트 버전 정보
* type :도메인그룹에연결 될 에이전트 타입 (IIS , Apache, WAS, Nginx)
* isrun :동작여부(run: 1 , bypass : 2)
* policy :도메인그룹의기본정책
* action :도메인그룹의대응방법 ( deny, redirect, detect )

[Sample URL]

* /api/domaing_set?key=인증키&job=add&cid=10&name=TEST_DOMANGROUP&comment=test&version=1.0&type=IIS&isrun=run&policy=low&action=detect

[Response]

"Completed"

도메인 그룹 수정

[Parameter]

* key :API KEY
* job :작업종류( 도메인그룹 수정 : edit)
* domaingid :도메인그룹 ID
* name :도메인그룹이름
* comment :도메인그룹설명
* version도메인그룹연결 될 에이전트 버전 정보
* type :도메인그룹에연결 될 에이전트 타입
* isrun :동작여부(run: 1 , bypass : 2)
* policy :도메인그룹의기본정책
* action :도메인그룹의대응방법 ( deny, redirect, detect )

[Sample URL]

* /api/domaing_set?key=인증키&job=edit&domaingid=89&name=TEST_DOMANGROUP&comment=test&version=1.0&type=IIS&isrun=run&policy=low&action=detect

[Response]

"Completed"

도메인 그룹 삭제

[Parameter]

* key :API KEY
* job :작업종류( 도메인그룹 삭제 : del)
* domaingid :도메인그룹 ID

[Sample URL]

* /api/domaing_set?key=인증키&job=del&domaingid=90

[Response]

"Completed"

get_user_domain

  • 설명: 관리대상이 도메인인 계정이 로그인 했을 때 관리 도메인 목록을 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_user_domain?key=인증키

[Response]

[
  {
    "comment": null,// 도메인설명
    "etr_date": null,// 생성시간
    "domain": "test.com",// 도메인
    "vl_yn": "Y",// 삭제여부( 사용 중인 도메인 : Y, 삭제된 도메인 : N)
    "mdf_id": null,// 마지막수정 계정 일련번호
    "domaingid": "4",// 도메인이속한 도메인그룹 ID
    "adminid": "60",// 계정일련번호
    "domainid": "87",// 도메인ID
    "cid": "2",// 회사ID
    "seqno": 97,// 데이터일련번호
    "mdf_date": null,// 마지막수정 시간
    "etr_id": "2"// 생성계정 일련번호
  }
]

get_domain_all

  • 설명: 도메인 전체를 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_domain_all?key=인증키

[Response]

[
  {
    "aid": "0",
    "domaingid": "2",
    "etr_date": "2017-09-13T10:23:22.877",
    "did": "1",
    "mdf_id": null,
    "etr_id": "0",
    "domain": "localhost.localdomain",
    "vl_yn": "Y",
    "mdf_date": null,
    "comment": null
  }, ...
]

get_domain_by_domaingid

  • 설명: 도메인그룹에 포함된 도메인 목록을 조회

[Parameter]

* key :API KEY
* domaingid :도메인그룹 ID

[Sample URL]

* /api/get_domain_by_domaingid?key=인증키&domaingid=7

[Response]

[
  {
    "mdf_id": null,// 마지막수정 계정 일련번호
    "domain": "test.com",// 도메인
    "aid": "0",// 미사용
    "vl_yn": "Y",// 삭제여부( 사용 중인 도메인 : Y, 삭제된 도메인 : N)
    "did": "56",// 도메인ID
    "domaingid": "7",// 도메인이속한 도메인그룹 ID
    "mdf_date": "2018-07-13T14:02:23.636",// 마지막수정 시간
    "etr_date": "2018-07-13T14:02:23.636",// 생성시간
    "etr_id": "2",// 생성계정 일련번호
    "comment": ""// 도메인설명
  } ...
]

get_domain_by_did

  • 설명: 도메인 ID로 도메인 조회

[Parameter]

* key :API KEY
* domainid :도메인 ID

[Sample URL]

* /api/getAgentInfo?key=인증키

[Response]

[
  {
    "mdf_id": "2",
    "domain": "test.com",
    "aid": "0",
    "vl_yn": "Y",
    "did": "87",
    "domaingid": "4",
    "mdf_date": "2020-03-05T11:26:22.355",
    "etr_date": "2020-03-05T11:26:22.355",
    "etr_id": "2",
    "comment": null
  }
]

get_domain_by_cid

  • 설명: 회사에 포함된 도메인 목록 조회

[Parameter]

* key :API KEY
* domainid :회사 ID

[Sample URL]

* /api/get_domain_by_cid?key=인증키&cid=2

[Response]

{
  "data": [
  {
    "mdf_id": null,
    "domain": "*",
    "aid": "0",
    "vl_yn": "Y",
    "did": "56",
    "domaingid": "7",
    "mdf_date": "2018-07-13T14:02:23.636",
    "etr_date": "2018-07-13T14:02:23.636",
    "etr_id": "2",
    "comment": ""
  }
  ]
}

domain_set

  • 설명: 도메인 추가 / 도메인 수정 / 도메인 삭제

[Parameter]

* key :API KEY
* job :작업종류 ( 도메인 추가 : add)
* domaingid :도메인이추가될 도메인그룹 ID
* domain :도메인
* comment :도메인설명

[Sample URL]

* /api/domain_set?key=인증키&job=add&domaingid=91&domain=www.test.com&comment=test

[Response]

"Completed"

get_all_policy_summary

  • 설명: 도메인 그룹에 설정된 전체 정책 내용을 조회

[Parameter]

* key :API KEY
* domaingid :도메인이추가될 도메인그룹 ID
* lang :결과언어 ( 한글 : ko , 영어 : en ) -정책명이 해당언어로 반환

[Sample URL]

*/api/get_all_policy_summary?key=인증키&domaingid=91&lang=ko

[Response]

{
  "data": [//도메인보안 정책
  {
    "policy": "파일확장자변경",        // 정책
    "action": "NONE",        // 대응방법
    "log": "NONE"        // 로그종류
  },
  {
    "policy": "비정상이미지 요청",
    "action": "NONE",
    "log": "NONE"
  },
  {
    "policy": "디렉토리리스팅",
    "action": "NONE",
    "log": "NONE"
  },
  {
    "policy": "파라미터이름최대길이",    // 정책
    "max": "1",        // 최대값
    "action": "ALLOW",        // 대응방법
    "log": "FULL"        // 로그종류
  },
  {
    "policy": "쿼리스트링최대길이",
    "max": "2",
    "action": "REDIRECT",
    "log": "FULL"
  },
  {
    "policy": "쿠키이름최대길이",
    "max": "3",
    "action": "DENY",
    "log": "FULL"
  },
  {
    "policy": "쿠키값최대길이",
    "max": "4",
    "action": "ALLOW",
    "log": "FULL"
  },
  {
    "policy": "최대쿠키 개수",
    "max": "5",
    "action": "DENY",
    "log": "FULL"
  },
  {
    "policy": "URL 최대길이",
    "max": "6",
    "action": "DENY",
    "log": "FULL"
  },
  {
    "policy": "Request Line 최대길이",
    "max": "7",
    "action": "DENY",
    "log": "FULL"
  },
  {
    "policy": "[4xx] Page Not Found",    // 정책
    "page": "test.html"    // 등록페이지
  },
  {
    "policy": "[5xx] 내부페이지오류",
    "page": "test1.html"
  },
  {
    "policy": "프로그램차단페이지",
    "page": "test2.html"
  },
  {
    "policy": "DOS",    // 정책
    "action": "DETECT",    // 대응방법
    "level": "1",    // 단계
    "count": "1",    // 접속건수(초)
    "log": "FULL"    // 로그종류
  },
  {
    "policy": "DOS",
    "action": "DENY",
    "level": "2",
    "count": "2",
    "log": "FULL"
  },
  {
    "policy": "DOS",
    "action": "REDIRECT",
    "level": "3",
    "count": "3",
    "log": "FULL"
  },
  {
    "policy": "DDOS",
    "action": "DETECT",
    "level": "1",
    "count": "4",
    "log": "FULL"
  },
  {
    "policy": "DDOS",
    "action": "DENY",
    "level": "2",
    "count": "5",
    "log": "FULL"
  },
  {
    "policy": "DDOS",
    "action": "REDIRECT",
    "level": "3",
    "count": "6",
    "log": "FULL"
  },
  {
    "type": "1",    // 미사용
    "group": "웹취약점 스캐너(기타)",    // 패턴그룹 이름
    "pattern": "Acunetix",    // 패턴이름
    "log": "FULL",    // 로그종류
    "groupid": "41",    // 패턴그룹ID
    "no": "1",    // 우선순위
    "policy": "헤더이름정책",    // 정책
    "id": "41001",    // 패턴ID
    "pattern_str": "ENC5ZLxqaPpyKpJ7GubC2qTOw==",    // 패턴(암호화됨)
    "action": "ALLOW"    // 대응방법
  },
  {
    "type": "1",    // 미사용
    "group": "Session 정보변조",    // 패턴그룹 이름
    "header": "User-Agent",    // 헤더필드이름
    "log": "FULL",    // 로그종류
    "groupid": "1",    // 패턴그룹ID
    "pattern": "Session 정보변조",    // 패턴 이름
    "policy": "헤더값정책",    // 정책
    "id": "1001",    // 패턴ID
    "pattern_str": "xwgOS3PhZAJCJouJILCpIaDIMnO9DfHh06Dc8HYC0AJ61ozU34NDah+pJWIQ909e5a4weE=",    // 패턴(암호화됨)
    "action": "DENY",    // 대응방법
    "no": "1"    // 우선순위
  },
  {
    "group": "ALL",    // IP그룹이름
    "no": "1",    // 우선순위
    "log": "FULL",    // 로그종류
    "groupid": "1000",    // IP그룹ID
    "policy": "메소드정책",    // 정책
    "action": "DETECT",    // 대응방법
    "method": "*"    // 메소드이름
  },
  {
    "group": "ALL",
    "no": "1",
    "log": "NONE",
    "groupid": "1000",
    "policy": "메소드정책",
    "action": "ALLOW",
    "method": "GET"
  },
  {
    "group": "ALL",
    "no": "1",
    "log": "NONE",
    "groupid": "1000",
    "policy": "메소드정책",
    "action": "ALLOW",
    "method": "HEAD"
  },
  {
    "group": "ALL",
    "no": "1",
    "log": "NONE",
    "groupid": "1000",
    "policy": "메소드정책",
    "action": "ALLOW",
    "method": "POST"
  },
  {
    "type": "1",// 미사용
    "group": "Session 정보변조",// 패턴그룹 이름
    "pattern": "Session 정보변조",// 패턴 이름
    "log": "FULL",// 로그종류
    "groupid": "1",// 패턴그룹ID
    "no": "1",// 우선순위
    "policy": "쿠키보안정책",// 정책
    "id": "1001",// 패턴ID
    "pattern_str": "ENwgOS3PhZAJCJouJILCpIaDIMnO9DfHh06Dc8HYC0AJ61ozU34NDah+pJWIQ909e5a4weE=",// 패턴(암호화됨)
    "action": "REDIRECT"// 대응방법
  },
  {
    "group": "요청금지파일",// 패턴그룹 이름
    "pattern": "웹설정파일참조",// 패턴 이름
    "log": "FULL",// 로그종류
    "groupid": "70",// 패턴그룹ID
    "no": "1",// 우선순위
    "policy": "URL제한정책",// 정책
    "id": "70001",// 패턴ID
    "pattern_str": "ENCaKYqxtBb3PJUOP0SJenQug8E37MmzYZvqKVuEkytAOo3xtAe7fdcDosIrUAGeCe7sk+e0eG/lLFkXWiRxDH5uhpOw0/9trUdtphIKFGCQUfg7wu+5B24bznTYZHlHY9X",// 패턴(암호화됨)
    "action": "DENY"
  },
  {
    "alert": null,// 미사용
    "group": "Anonymous Proxy",// IP그룹이름
    "atype": 신뢰IP,// 정책 유형 (신뢰IP / 블랙IP)
    "log": "FULL",// 로그종류
    "groupid": "1",// IP그룹ID
    "policy": "신뢰/블랙 IP정책"// 정책
  },
  {
    "alert": null,
    "group": "Afghanistan",
    "atype": 블랙IP,
    "log": "FULL",
    "groupid": "5",
    "policy": "신뢰/블랙 IP정책"
  }
],
  "urls": [// url 보안정책
  {
    "url": "/",// 정책이설정된 url 경로
    "url_policy": [// url 경로에설정된 정책
    {
      "policy": "최대파라미터 개수",// 정책
      "max": "1",// 최대값
      "action": "DETECT",// 대응방법
      "log": "FULL"// 로그종류
    },
    {
      "policy": "업로드파일당 최대 크기(KB)",
      "max": "2",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "업로드최대크기(KB)",
      "max": "3",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "업로드파일 최대 개수",
      "max": "4",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "요청Header 최대 길이",
      "max": "5",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "요청Body 최대 길이",
      "max": "6",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "응답Body 최대 길이",
      "max": "7",
      "action": "DETECT",
      "log": "FULL"
    },
    {
      "policy": "URL Post공격정책",// 정책
      "max": 500,// 제한속도( Byte/Sec )
      "log": "FULL",// 로그종류
      "postatkplcy": "776",// 미사용
      "sttid": "1",// 미사용
      "sttpid": "0",// 미사용
      "stparamid": "0",// 미사용
      "action": "DETECT",// 대응방법
      "sttype": "1"// 미사용
    },
    {
      "group": "웹쉘-java",// 패턴그룹 이름
      "id": "24001",// 패턴ID
      "pattern": "JAVA 코드삽입Runtime",// 패턴 이름
      "log": "FULL",// 로그종류
      "policy": "보안패턴정책",// 정책
      "groupid": "24",// 패턴그룹ID
      "sttype": "1",// 미사용
      "type": "1",// 미사용
      "stparamid": "0",// 미사용
      "no": "1",// 우선순위
      "sttid": "1",// 미사용
      "action": "DETECT",// 대응방법
      "pattern_str": "ENCKGOr1BImY0w0=",// 패턴(암호화됨)
      "sttpid": "0"// 미사용
    },
    {
      "group": "해킹코드삽입",// 패턴그룹 이름
      "id": "13001",// 패턴ID
      "pattern": "Remote File Inclusion",// 패턴이름
      "log": "FULL",// 로그종류
      "policy": "중요정보유출방지정책",// 정책
      "groupid": "13",// 패턴그룹ID
      "sttype": "1",// 미사용
      "type": "1",// 미사용
      "stparamid": "0",// 미사용
      "no": "1",// 우선순위
      "sttid": "1",// 미사용
      "action": "DENY",// 대응방법
      "pattern_str": "S+a3K5FFs9ESmAsPN4=",// 패턴(암호화됨)
      "sttpid": "0"// 미사용
    },
    {
      "group": "test",// IP그룹이름
      "stparamid": "0",// 미사용
      "no": "1",// 우선순위
      "log": "FULL",// 로그종류
      "groupid": "1001",// IP그룹ID
      "sttpid": "0",// 미사용
      "policy": "IP접근정책",// 정책
      "sttid": "1",// 미사용
      "action": "BYPASS",// 대응방법
      "sttype": "1"// 미사용
    },
    {
      "group": "업로드허용 파일",// 패턴그룹 이름
      "id": "100001",// 패턴ID
      "pattern": "업로드IMAGE",// 패턴 이름
      "log": "FULL",// 로그종류
      "sttpid": "0",// 미사용
      "groupid": "100",// 패턴그룹ID
      "sttype": "1",// 미사용
      "stparamid": "0",// 미사용
      "no": "1",// 우선순위
      "sttid": "1",// 미사용
      "action": "ALLOW",// 대응방법
      "pattern_str": "br774c2zfJpf66n",// 패턴(암호화됨)
      "policy": "업로드정책"// 정책
    },
    {
      "stparamid": "0",
      "log": FULL,// 로그종류
      "sttid": "1",// 미사용
      "sttpid": "0",// 미사용
      "policy": "파일검사정책(파일위변조 검사)",// 정책
      "target": "TEXT",// 검사대상
      "action": "DETECT",// 대응방법
      "sttype": "1"// 미사용
    },
    {
      "log": "FULL",// 로그종류
      "sttid": "1",// 미사용
      "sttpid": "0",// 미사용
      "policy": "파일검사정책(신규파일생성 검사)",// 정책
      "stparamid": "0",// 미사용
      "action": "DENY",// 대응방법
      "sttype": "1"// 미사용
    },
    {
      "group": "SQL injection",// 패턴그룹이름
      "id": "3001",// 패턴ID
      "pattern": "SQL injection",// 패턴이름
      "log": "FULL",// 로그종류
      "policy": "파일패턴정책",// 정책
      "groupid": "3",// 패턴그룹ID
      "sttype": "1",// 미사용
      "type": "1",// 미사용
      "stparamid": "0",// 미사용
      "no": "1",// 우선순위
      "sttid": "1",// 미사용
      "action": "DENY",// 대응방법
      "pattern_str": "nN7Ntc7/lbhaqwmOw==",// 패턴(암호화됨)
      "sttpid": "0"// 미사용
    }
   ]
  },
  {
    "url": "/index.html",
    "url_policy": [
    {
      "policy": "최대파라미터 개수",
      "max": "2",
      "action": "DENY",
      "log": "FULL"
    }
   ]
  },
  {
    "url": "/index.html?param1",
    {
      "alert": "776",// 미사용
      "stparamid": "1",// 미사용
      "max": "1",// 수집건수
      "block": "1",// 접속차단시간(초)
      "log": "FULL",// 로그종류
      "sttid": "2",// 미사용
      "sttpid": "1",// 미사용
      "policy": "무차별대입공격",// 정책
      "term": "1",// 수집시간(초)
      "action": "DETECT",// 대응방법
      "sttype": "4"// 미사용
    }
      "url_policy": [
      ]
    }
  ]
}

get_server_config

  • 설명: 서버 설정정보를 가져옴 ( 에이전트 연결 서버의 config.xml 정보를 조회)

[Parameter]

* key :API KEY

[Sample URL]

*/api/get_server_config?key=인증키

[Response]

{
  "config": {
    "data": {
      "Server": {// 서버설정
      "___server_id": "101",
      "___myip": "",
      "___myport": "10012",
      "___read_db_user": "isddb",//미사용
      "___logformat": "deepfinder:AlertLog|logDate:%T|ManagerIP:%S|CompanyName:%C|AID:%J|InstanceID:%N|AttackIP:%I|Agent IP:%X|Domain:%D|LogType:%L|PatternGrp:%G|PatternNm:%P|Action:%A|RiskLevel:%R|URL:%U|Parameters:%E|DetectMsg:%M|Httpbody:%B|Httpheader:%H",
      "___detail_log_address": "https://222.231.6.210/common/logdetailext?seqno=\"",
      "___write_db_name": "isddb",//미사용
      "___myport": "10012",
      "___default_charset": "EUC-KR",
      "___tcp_workers": "4",
      "___elastic_address": "127.0.0.1",
      "___read_db_passwd": "isdadmin12#$",//미사용
      "___debug": "1",
      "___ssl_pemfile": "deepfinder.pem",
      "___elastic_port": "9200",//미사용
      "___ssl_password": "isdwebconx",
      "___write_db_port": "5432",//미사용
      "___read_db_ip": "127.0.0.1",//미사용
      "___update_time": "5",
      "___read_db_name": "isddb",//미사용
      "___read_db_port": "5432",//미사용
      "___write_db_passwd": "isdadmin12#$",//미사용
      "___sysinfo_checktime": "15",
      "___nodashboard": "1",//미사용
      "___license_file": "license.txt",
      "___write_db_user": "isddb",//미사용
      "___write_db_ip": "127.0.0.1",//미사용
      "___ssl_workers": "4",
      "systemlogheader":"",
      "auditlogheader":"",
      "agentlistheader":"",
      "logserver": [// syslog 수신서버( 하나만 등록되어 있을 때는 객체, 여러개 등록되어 있을 때는 리스트로 반환 )
          "___db_type": "pgsql",//미사용
        {
          "___port": "10514",
          "___No": "0",
          "___address": "10.10.7.111"
        },
        {
          "___port": "10514",
          "___No": "1",
          "___address": "10.10.7.222"
        }
        "MailAlert": {// 메일발송 필요 정보
      ],
      "___read_db_ip": "127.0.0.1",
      "___update_time": "1800",
      "___read_db_name": "isddb",
      "___read_db_port": "5432",
      "___read_db_passwd": "isdadmin12#$",
      "___mailto": "",
      "___read_db_user": "isddb",
      "___mailcc": "",
      "___check_interval": "3"
      },
    }
  },
    "ProcessWatch": {// 프로세스모니터링
    "process": [// (하나만등록되어 있을 때는 객체, 여러개 등록되어 있을 때는 리스트로 반환)
    {
      "___match": "master",
      "___cpulimit": "50",
      "___cmd": "nginx",
      "___memlimit": "60"
    },
    {
      "___match": "elastic",
      "___cpulimit": "70",
      "___cmd": "java",
      "___memlimit": "80"
    }
    ]
   }
  }
}

set_server_config

  • 서버 설정정보를 저장 ( 에이전트 연결 서버의 설정 정보를 config.xml 에 저장)

[Parameter]

* key :API KEY
* config :서버설정 내용

[Sample URL]

{
  "config": {
    "data": {
      "Server": {// 서버설정
      "___server_id": "101",
      "___myip": "",
      "___myport": "10012",
      "___read_db_user": "isddb",//미사용
      "___logformat": "deepfinder:AlertLog|logDate:%T|ManagerIP:%S|CompanyName:%C|AID:%J|InstanceID:%N|AttackIP:%I|Agent IP:%X|Domain:%D|LogType:%L|PatternGrp:%G|PatternNm:%P|Action:%A|RiskLevel:%R|URL:%U|Parameters:%E|DetectMsg:%M|Httpbody:%B|Httpheader:%H",
      "___detail_log_address": "https://222.231.6.210/common/logdetailext?seqno=\"",
      "___write_db_name": "isddb",//미사용
      "___myport": "10012",
      "___default_charset": "EUC-KR",
      "___tcp_workers": "4",
      "___elastic_address": "127.0.0.1",
      "___read_db_passwd": "isdadmin12#$",//미사용
      "___debug": "1",
      "___ssl_pemfile": "deepfinder.pem",
      "___elastic_port": "9200",//미사용
      "___ssl_password": "isdwebconx",
      "___write_db_port": "5432",//미사용
      "___read_db_ip": "127.0.0.1",//미사용
      "___update_time": "5",
      "___read_db_name": "isddb",//미사용
      "___read_db_port": "5432",//미사용
      "___write_db_passwd": "isdadmin12#$",//미사용
      "___sysinfo_checktime": "15",
      "___nodashboard": "1",//미사용
      "___license_file": "license.txt",
      "___write_db_user": "isddb",//미사용
      "___write_db_ip": "127.0.0.1",//미사용
      "___ssl_workers": "4",
      "systemlogheader":"",
      "auditlogheader":"",
      "agentlistheader":"",
      "logserver": [// syslog 수신서버( 하나만 등록되어 있을 때는 객체, 여러개 등록되어 있을 때는 리스트로 반환 )
          "___db_type": "pgsql",//미사용
        {
          "___port": "10514",
          "___No": "0",
          "___address": "10.10.7.111"
        },
        {
          "___port": "10514",
          "___No": "1",
          "___address": "10.10.7.222"
        }
        "MailAlert": {// 메일발송 필요 정보
      ],
      "___read_db_ip": "127.0.0.1",
      "___update_time": "1800",
      "___read_db_name": "isddb",
      "___read_db_port": "5432",
      "___read_db_passwd": "isdadmin12#$",
      "___mailto": "",
      "___read_db_user": "isddb",
      "___mailcc": "",
      "___check_interval": "3"
      },
    }
  },
    "ProcessWatch": {// 프로세스모니터링
    "process": [// (하나만등록되어 있을 때는 객체, 여러개 등록되어 있을 때는 리스트로 반환)
    {
      "___match": "master",
      "___cpulimit": "50",
      "___cmd": "nginx",
      "___memlimit": "60"
    },
    {
      "___match": "elastic",
      "___cpulimit": "70",
      "___cmd": "java",
      "___memlimit": "80"
    }
    ]
   }
  }
}

[Response]

"Complete"

get_server_log

  • 설명: 서버 / API 의 최근 로그를 조회 (최대 10000 라인)

[Parameter]

* key :API KEY
* type :로그종류 ( 서버로그 : server : , API로그 : api )

[Sample URL]

* /api/get_server_log?type=server&key=인증키

[Response]

{
  "config": "[WORKER:107813] 2020-07-09 11:25:02 PQconnectdb failed : 1\r[WORKER:107814] 2020-07-09 11:25:02 PQconnectdb failed ..... // 로그내용
  "file": "/usr/local/dfserver/log/server.log"// 로그파일이름
}

get_api_config

  • 설명: API 서버 관련 설정 내용을 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/get_api_config?key=인증키

[Response]

{
  "config": {
    "LICENSE": {
      "exe_license": "/usr/local/dfserver/bin/"
    },
    "DB": {
      "elastic_port": "9200",// 미표시
      "auto_delete_es": "Y",
      "auto_delete_db": "Y",
      "cloud_yn": "Y",
      "elastic_server": "127.0.0.1",// 미표시
      "user": "isddb",// 미표시
      "host": "127.0.0.1",// 미표시
      "password": "isddb12#$",// 미표시
      "elastic_yn": "Y",
      "dbname": "isddb",// 미표시
      "port": "5432"// 미표시
    },
    "REPORT": {
      "report_path": "",// 미표시
      "report_server": ""
    },
    "ENCODING": {
      "file_encoding": "EUC-KR",// 미표시
      "file_charset": "EUC-KR"
    },
    "DIRECTORY": {
      "geodata_dir": "/usr/local/dfserver/api/DeepFinderAPI/src/",// 미표시
      "download": "/usr/local/dfserver/api/DeepFinderAPI/tmp/",
      "log_dir": "/usr/local/dfserver/api/logs/"
    },
    "DUZONE": {// 미표시
      "master": "Y"
    },
    "CHARACTER_SET": {
      "lang": "KR"
    },
    "JAVA_SCHEDULE": {
      "max_domain": "10",// 미표시
      "daily_reportdata_script": "/usr/local/dfserver/api/DeepFinderAPI/src/",// 미표시
      "report_summary_time": "16:25",
      "thread_num": "10"
    },
    "AUTO_UPDATE": {
      "postgres_home": "/usr/local/dfserver_gui/postgres/",
      "scheduler_home": "/usr/local/dfserver_gui/webapps/"
    },
    "COMMON": {
      "debug": "0"
    }
  }
}

get_login_config

  • 설명: 로그아웃 타임 설정, 로그인 시도 횟수 설정 정보를 조회

[Parameter]

* key :API KEY

[Sample URL]

*/api/get_login_config?key=인증키

[Response]

[
  {
    "logincount": "10",// 로그인시도 횟수 ( 초과시 차단 )
    "logouttime": "120",// 로그아웃타임 설정 ( 분 )
    "mdf_id": null,// 미사용
    "alertcheckcb": null,// 미사용
    "ip": "127.0.0.1",// 미사용
    "comment": "로그인서버",// 미사용
    "passwordplc02": "5",// 미사용
    "port": "80",// 미사용
    "alertcheckcount": null,// 미사용
    "mdf_date": "2009-09-11T13:10:38.830", // 미사용
    "passwordplc01": "30",// 미사용
    "lsid": "1",// 미사용
    "name": "AdminServer",// 미사용
    "vl_yn": "Y",// 미사용
    "mailsendterm": null,// 미사용
    "etr_date": "2009-09-11T13:10:38.830",// 미사용
    "etr_id": null,// 미사용
    "alertchecktime": null// 미사용
  }
]

set_login_config

  • 설명: 로그인 타임 아웃 시간/ 로그인 시도 횟수 제한 설정

[Parameter]

* key :API KEY
* timeout :로그아웃타임 설정 ( 분 )
* logincount :로그인시도 횟수 ( 초과시 차단 )

[Sample URL]

* /api/set_login_config?key=인증키&timeout=120&logincount=10

[Response]

"Completed"

db_backup

  • 설명: 로그를 제외한 모든 DB내용을 백업

[Parameter]

* key :API KEY
* timeout :로그아웃타임 설정 ( 분 )
* logincount :로그인시도 횟수 ( 초과시 차단 )

[Sample URL]

* /api/db_backup?key=인증키

[Response]

"Completed"

db_restore

  • 설명: 로그를 제외한 모든 DB내용을 복원

[Parameter]

* key :API KEY
* filename :복원할백업파일명

[Sample URL]

* /api/db_backup?key=인증키

[Response]

"Completed"

db_list

  • 설명: 백업된 파일 리스트 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/db_list?key=인증키

[Response]

[
  "deepFinderPolicy_all_20200716171934.dmp",//백업파일이름
  "deepFinderPolicy_all_20200723124530.dmp",
  "deepFinderPolicy_all_20200723124552.dmp" ...
]

dropTables

  • 설명: 보관 기간이 지난 로그를 삭제

[Parameter]

* key :API KEY

[Sample URL]

* /api/dropTables?key=인증키

[Response]

"DROP DB.Tables and ES.indices was completed"

getNumofDropTable

  • 설명: 로그보관기간(DB) / 로그보관기간(Elastic) / 삭제일 / 삭제시간 정보를 조회.

[Parameter]

* key :API KEY

[Sample URL]

* /api/getNumofDropTable?key=인증키

[Response]

{
  "data": [
    "5",// 로그보관기간( DB )
    "4",// 로그보관기간( Elastic )
    "17",// 삭제일( 매월 )
    "11"// 삭제시간
  ]
}

updateNumofDropTable

  • 설명: 로그보관기간/ 삭제일/ 삭제시간설정

[Parameter]

* key :API KEY
* num_db :로그보관기간( DB )
* num_es :로그보관기간( Elastic )
* working_day :삭제일( 매월 )
* working_time :삭제시간

[Sample URL]

* /api/updateNumofDropTable?key=인증키&num_db=5&num_es=4&working_day=17&working_time=11 

[Response]

update completed"

getApiVersion

  • 설명: API 버전을 확인하고 업데이트 필요 여부를 조회

[Parameter]

* 없음

[Sample URL]

* /api/getApiVersion

[Response]

{
  "updateYN": "Y",// API 업데이트필요 여부 ( Y / N)
  "msg": "This api's version is 1.3.0_200428. Need to update(ver: 1.3.0_200615)", // 버전관련메시지
  "s3_version": "1.3.0_200615",// 최신버전
  "current": "1.3.0_200428"// 현재버전
}

getAliveProc

  • 설명: 서버 / DB / Elastic / 스케줄러 프로세스 상태 확인

[Parameter]

* 없음

[Sample URL]

* /api/getAliveProc?key=인증키

[Response]

[
  {
    "master": "Y"// 서버프로세스상태 ( Y /N )
    "postgres": "Y",// DB 프로세스상태 ( Y / N)
    "scheduler": "Y",// 스케줄러프로세스 상태 ( Y / N )
    "elastic": "Y",// Elastic 상태( Y / N )
    "seq": 101,// 미사용
    "etr_date": "2020-07-23T13:39:11",// 미사용
  }
]

downdmp

  • 설명: DB 백업파일을 다운로드 ( 여러 항목 다운 시 API 반복 요청)

[Parameter]

* key :API KEY
* filename :복원할백업파일명

[Sample URL]

* /api/downdmp?key=인증키&fileName=deepFinderPolicy_all_20200716171934.dmp

[Response]

"completed"

uploaddmp

  • 설명: DB 백업 파일을 업로드

[Parameter]

* key :API KEY
* filename:DB 백업파일이름
* uploadfile:DB 백업파일

[Sample URL]

* /api/uploaddmp
[POST] -multipart
  key: 인증키
  filename: deepFinderPolicy_all_20200716171935.dmp
  uploadfile: (binary)

[Response]

"completed"

get_server_license

  • 설명: 서버 라이선스 정보 조회

[Parameter]

* 없음 

[Sample URL]

* /api/get_server_license?key=인증키

[Response]

{
  "cdate": "Apr 20 2020",// 미사용(서버 컴파일 시간 )
  "ip": "10.10.7.250",// 미사용(서버 IP )
  "version": "1, 3, 0, 2940",// 미사용(서버 버전 )
  "max_agent": "1000",// 미사용최대 에이전트 등록 수
  "sid": "102",// 미사용
  "limit_time": "1625050213",// 유효기간(타임스탬프)
  "fulllog_yn": "N",// 미사용
  "max_connection": "1000"// 최대에이전트 연결 수
}

trans_set

  • 설명: DB 백업파일을 전송받을 서버정보를 저장 (여러개 저장시 배열형식으로 파라미터 반복 요청)

[Parameter]

* key :API KEY
* trans_type :백업서버타입( scp / ftp / sftp)
* trans_host : 백업서버IP
* trans_port : 백업서버port
* trans_path : 백업서버파일저장 경로
* trans_id : 백업서버접속 ID
* trans_pw : 백업서버접속 비밀번호

[Sample URL]

* /api/trans_set?key=인증키&trans_type=scp&trans_host=1.1.1.1&trans_port=22&trans_path=%2Ftest&trans_id=test&trans_pw=test&trans_type=ftp&trans_host=2.2.2.2&trans_port=0&trans_path=%2Ftest1&trans_id=test1&trans_pw=test1

[Response]

"completed"

trans_get

  • 설명: DB 백업파일을 전송받을 서버정보를 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/trans_get?key=인증키

[Response]

{
  "data": [
    {
      "trans_path": "/test",// 백업서버파일저장 경로
      "trans_pw": "m2Didb06R+Y4R6R7YMd70A==",// 백업서버접속 비밀번호
      "working_time": null,// 미사용
      "trans_id": "test",// 백업서버접속 ID
      "trans_type": "scp",// 백업서버타입( scp / ftp / sftp)
      "trans_port": "22",// 백업서버port
      "working_day": null,// 미사용
      "seqno": "1",// 미사용
      "trans_host": "1.1.1.1"// 백업서버IP
    },
    {
      "trans_path": "/test1",
      "trans_pw": "ZKAco0mbTj/7e+a7h37BcQ==",
      "working_time": null,
      "trans_id": "test1",
      "trans_type": "ftp",
      "trans_port": "0",
      "working_day": null,
      "seqno": "2",
      "trans_host": "2.2.2.2"
    }
  ]
}

trans_settime

  • 설명: DB 백업 스케줄 시간 설정 정보를 저장 ( 백업주기 / 백업날짜 / 백업시간)

[Parameter]

* key :API KEY
* term :백업주기 ( 1: 매일 / 2: 매월)
* working_day :백업주기가매월인 경우 백업 실행 날짜 (일) -1~28, 마지막 날인경우 last
* working_time :백업실행 시간 (0~23)

[Sample URL]

* /api/trans_settime?key=인증키&term=2&working_day=last&working_time=1

[Response]

"completed"

trans_gettime

  • 설명: DB 백업 스케줄 시간 설정 정보를 조회 ( 백업주기 / 백업날짜 / 백업시간)

[Parameter]

* key :API KEY

[Sample URL]

* /api/trans_gettime?key=인증키

[Response]

{
  "data": [
    {
      "working_day": "last",// 백업주기가매월인 경우 백업 실행 날짜 (일) - 1~28, 마지막 날인경우 last
      "working_time": "1",// 백업실행 시간
      "term": "1"
    }
  ]
}

setdmpsch

  • 설명: DB 백업파일 보관 기간 설정

[Parameter]

* key :API KEY
* savedmp :DB 백업파일 보관 기간 (일)

[Sample URL]

* /api/setdmpsch?key=인증키&savedmp=99

[Response]

"Complete"

getdmpsch

  • 설명: DB 백업 파일 보관 기간 설정 값을 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/getdmpsch?key=인증키

[Response]

{
  "data": [
    {
      "savedmp": "99"// DB 백업파일 보관 기간 (일)
    }
  ]
}

licenseupdate

  • 설명: 서버 라이선스키를 변경

[Parameter]

* key :API KEY
* lctext :변경할라이선스 키

[Sample URL]

* /api/licenseupdate?key=인증키&lctext=SKDFJLSDFJLK2J324KJDFKLJDSF

[Response]

"Complete"

systemrestart

  • 설명: 서버 / DB / 스케줄러 / Elasticsearch / API 서버를 재시작

[Parameter]

* key :API KEY
* job :재시작대상 ( 1 : 서버 / 2: DB / 3:스케줄러 / 4: ElasticSearch / 5: API 서버 )

[Sample URL]

* /api/systemrestart?key=인증키&job=1

[Response]

* job이1~4 인 경우 : 0
* job이5인 경우: 응답을 해야 할 API가 재시작 되므로 응답이 없음 ( 다른 API 호출해보는 방법 등으로 재시작 여부 판단해야 함 -현재는 getversion api 이용)

transordel_dmpfile

  • 설명: DB 백업 파일을 백업 서버로 전송 / DB 백업 파일을 삭제

백업파일백업서버전송

[Parameter]

* key :API KEY
* job :작업종류( 백업 서버로 전송 : t )
* filenames :DB 백업파일 이름

[Sample URL]

* /api/transordel_dmpfile?key=인증키&job=t&filenames=deepFinderPolicy_all_20200716171934.dmp&filenames=deepFinderPolicy_all_20200716171935.dmp

[Response]

"completed"

백업파일삭제

[Parameter]

* key :API KEY
* job :작업종류( 백업 파일 삭제 : d )
* filenames :DB 백업파일 이름

[Sample URL]

* /api/transordel_dmpfile?key=인증키&job=d&filenames=deepFinderPolicy_all_20200716171934.dmp&filenames=deepFinderPolicy_all_20200716171935.dmp

[Response]

"completed"

setautodmp

  • 설명: DB 백업 스케줄 사용 여부 조회

[Parameter]

* key :API KEY
* auto_trans_yn :DB 백업스케줄 사용 여부 (Y/N)

[Sample URL]

* /api/setautodmp?key=인증키&auto_trans_yn=Y

[Response]

"Complete"

getautodmp

  • 설명: DB 백업 스케줄 사용 여부 조회

[Parameter]

* key :API KEY

[Sample URL]

* /api/getautodmp?key=인증키

[Response]

{
  "data": [
    {
      "auto_trans_yn": "Y"// DB 백업스케줄 사용 여부
    }
  ]
}

gettransresult

  • 설명: DB 백업 및 백업서버 전송 결과 조회 ( 최근 100개 )

[Parameter]

* key :API KEY

[Sample URL]

* /api/gettransresult?key=인증키

[Response]

{
  "data": [
    {
      "err_cause": "Authentication Err(SCP:10.10.9.9)",// 에러메시지
      "etr_date": "2020-07-23T15:31:44",// 작업시간
      "result": "FAIL",// 성공여부
      "type": "TRANSPORT",// 작업종류 ( 백업 : BACK UP / 전송 : TRANSPORT)
      "host": "10.10.9.9",// 작업서버 IP 또는 백업파일 전송대상 IP
      "filename": "deepFinderPolicy_all_20200716171934.dmp",// 백업파일이름
      "seqno": 390// 일련번호
    }, ...
  ]
}

set_masterXML

  • 설명: 패턴업데이트

[Parameter]

* key :API KEY
* filename :패턴파일이름
* content :패턴파일

[Sample URL]

* /api/set_masterXML
  [ POST ] -multipart
  key:인증키
  filename:signature_master_v3_281.xml
  uploadfile:(binary)

[Response]

"Completed"

getpatternversion

  • 설명: 패턴버전조회

[Parameter]

* key :API KEY

[Sample URL]

/api/getpatternversion?key=인증키

[Response]

{
  "data": {
    "updatetime": "2017-07-27 00:00:00",
    "versionno": "3.275"
  }
}

getSignatureTemplate

  • 설명: 템플릿 (보안패턴정책) 획득 API

[Parameter]

* key
* lang : 언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/getSignatureTemplate?key=인증키&lang=ko

[Response]

[
  {
    "signaturedata": [ // (보안패턴)
      {
        "mdf_date": "2018-06-25T16:43:39",// 수정일(보안패턴)
        "pattern": "can not open",// 보안패턴
        "pgid": "1",// 보안패턴그룹ID
        "import_yn": null,// 타서버이전정책여부
        "signame": "Session 정보변조",// 보안패턴명
        "sigid": "1001",// 보안패턴ID
        "risklevel": "하"// 위험도
      }
    ],
      "mdf_date": "2018-06-25T16:43:39",// 수정일(보안패턴그룹)
      "groupname": "Session 정보변조",// 보안패턴그룹명
      "pgid": "1", // 보안패턴그룹ID
      "import_yn": null,// 타서버이전정책여부
      "userdefinde": "SYSTEM",// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
      "type": "REQUEST",// 보안패턴종류(1: REQUEST / 2: RESPONSE)
      "cids": []// 적용회사ID (0: 공용)
    },
    {
      "signaturedata": [
      "mdf_date": "2020-07-22T16:52:16.577",
      "pattern": "leetest333",
      "pgid": "1010",
      "import_yn": "Y",
      "signame": "leetest333",
      "sigid": "1010001",
      "risklevel": "상"
    }
    ],
      "mdf_date": "2020-07-22T16:52:16.569",
      "groupname": "leetest333",
      "pgid": "1010",
      "import_yn": "Y",
      "userdefinde": "USER",
      "type": "REQUEST",
      "cids": [
      "1"
    ]
  }, ...
]

signatureTemplateMgm

  • 설명: 템플릿 관리 (보안패턴정책 등록) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* ptgrpname :템플릿그룹명, 그룹생성시 필수 파라미터
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :checkpos값, 그룹생성시 필수 파라미터, (0: REQUEST / 1: RESPONSE / 2: 주민번호 / 3: 신용카드 / 4: HEADNAME / 5:HEADVALUE / 6: WILDCARD)
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :패턴그룹설명
* ptname :템플릿명, 패턴생성시 필수 파라미터
* risklevel :위험도(템플릿), 패턴생성시 필수 파라미터
* pattern :패턴, 패턴생성시 필수 파라미터
* pgid :템플릿그룹ID, 패턴생성시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹생성: /api/signatureTemplateMgm?job=add&key=인증키&ptgrpname=test11&type=0&grprisklevel=1&cids=0&lang=ko
* 패턴생성: /api/signatureTemplateMgm?job=add&key=인증키&pgid=1011&ptname=test123&type=0&risklevel=3&pattern=123&lang=ko

[Response]

"Completed"

signatureTemplateMgm

  • 설명: 템플릿 관리 (보안패턴정책 수정) API

[Parameter]

key
* job :작업구분(등록: job=add)
* ptgrpname :템플릿그룹명
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :(보안패턴그룹과보안패턴의 타입은 생성 이후 변경 불가) 세팅하지 않음
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :패턴그룹설명
* ptname :템플릿명
* risklevel :위험도(템플릿)
* pattern :패턴
* pgid :템플릿그룹ID, 패턴그룹수정시 필수 파라미터
* sigid :템플릿ID, 패턴수정시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹수정: /api/signatureTemplateMgm?job=edit&key=인증키&pgid=1011&ptgrpname=test112&type=0&grprisklevel=1&cids=0&lang=ko
* 패턴수정: /api/signatureTemplateMgm?job=edit&key=인증키&sigid=1011001&ptname=test1234&risklevel=3&pattern=1234

[Response]

"Completed"

signatureTemplateMgm

  • 설명: 템플릿 관리 (보안패턴정책 삭제) API

[Parameter]

* key
* job :작업구분(삭제: job=del)
* pgid :템플릿그룹ID, 그룹삭제시 필수 파라미터
* sigid :템플릿ID, 패턴삭제시 필수 파라미터

[Sample URL]

* 그룹삭제: /api/signatureTemplateMgm?job=del&key=인증키&pgid=1011
* 패턴삭제: /api/signatureTemplateMgm?job=del&key=인증키&sigid=1011001

[Response]

"Completed"

getHeaderfieldTemplate

  • 설명: 템플릿 (헤더필드정책) 획득 API

[Parameter]

* key

[Sample URL]

* /api/getHeaderfieldTemplate?key=인증키

[Response]

{
  "data": [
    {
      "description": "---------------\n",
      "mdf_date": "2009-01-01T00:00:00",
      "description_en": "---------------\n",
      "mdf_id": "0",
      "headname": "---------------",
      "description_ch": null,
      "hntype": "1",
      "vl_yn": "Y",
      "etr_date": "2009-01-01T00:00:00",
      "etr_id": "0",
      "description_jp": null,
      "seqno": 59
    }, ...
  ]
}

headerfieldTemplateMgm

  • 설명: 템플릿 관리 (헤더필드정책 등록) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* headname :헤더필드명, 헤더필드 생성시 필수 파라미터
* type :헤더필드종류(1: REQUEST / 2: RESPONSE)
* comment :헤더필드설명

[Sample URL]

* 헤더필드생성: /api/headerfieldTemplateMgm?job=add&key=인증키&headname=api테스트_1&comment=헤더필드설명&type=1

[Response]

"Completed"

headerfieldTemplateMgm

  • 설명: 템플릿 관리 (헤더필드정책 수정) API

[Parameter]

key
* job :작업구분(등록: job=add)
* headname :헤더필드명, 헤더필드 생성시 필수 파라미터
* type :헤더필드종류(1: REQUEST / 2: RESPONSE)
* comment :헤더필드설명
* seqno :헤더필드ID, 수정시 필수 파라미터

[Sample URL]

* 헤더필드수정: /api/headerfieldTemplateMgm?job=edit&key=인증키&seqno=59&headname=api테스트_헤더필드수정&comment=헤더필드_수정설명

[Response]

"Completed"

headerfieldTemplateMgm

  • 설명: 템플릿 관리 (헤더필드정책 삭제) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* headname :헤더필드명, 헤더필드 생성시 필수 파라미터
* type :헤더필드종류(1: REQUEST / 2: RESPONSE)
* comment :헤더필드설명
* seqno :헤더필드ID, 삭제시 필수 파라미터

[Sample URL]

* 헤더필드삭제: /api/headerfieldTemplateMgm?job=del&key=인증키&tgid=59

[Response]

"Completed"

getIPTemplate

  • 설명: 템플릿 (IP정책) 획득 API

[Parameter]

* key
* groupid : 특정IP그룹의 그룹정보를 획득하려는 경우 igid를 세팅하여 요청
* level : 파라미터없이 요청하는 경우는 IP그룹정보와 함께 IP리스트를 획득, level=group 으로 요청하는 경우 IP그룹 정보만 획득

[Sample URL]

* /api/getIPTemplate?key=인증키&groupid=1011

[Response]

[
  {
    "comment": "test1d",// IP그룹설명
    "mdf_date": "2020-07-27T17:11:02",// 수정일
    "cids": [// 적용회사ID (0: 공용)
      "0"
    ],
    "groupname": "test11",// IP그룹명
    "import_yn": "N",// 타서버이전정책여부
    "ipdata": [// (IP리스트)
      {
        "comment": "test1p1",// IP설명
        "endip": "1.1.1.12",// 끝IP
        "mdf_date": "2020-07-27T17:11:55",// 수정일
        "igid": "1011",// IP그룹ID
        "import_yn": null,// 타서버이전정책여부
        "startip": "1.1.1.1",// 시작IP
        "ipid": "500017"// IPID
      }
    ],
    "userdefinde": "USER",// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
    "igid": "1011"// IP그룹ID
  }
]

[Sample URL]

* /api/getIPTemplate?key=인증키&groupid=1011&level=group

[Response]

[
  {
  "comment": "test1d",// IP그룹설명
  "mdf_date": "2020-07-27T17:11:02",// 수정일
  "cids": [// 적용회사ID (0: 공용)
    "0"
  ],
  "groupname": "test11",// IP그룹명
  "import_yn": "N",// 타서버이전정책여부
  "userdefinde": "USER",// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
  "igid": "1011"// IP그룹ID
  }
]

[Sample URL]

* /api/getIPTemplate?key=인증키

[Response]

[
  {
    "comment": "test1d",// IP그룹설명
    "mdf_date": "2020-07-27T17:11:02",// 수정일
    "cids": [// 적용회사ID (0: 공용)
      "0"
    ],
    "groupname": "test11",// IP그룹명
    "import_yn": "N",// 타서버이전정책여부
    "ipdata": [// (IP리스트)
      {
        "comment": "test1p1",// IP설명
        "endip": "1.1.1.12",// 끝IP
        "mdf_date": "2020-07-27T17:11:55",// 수정일
        "igid": "1011",// IP그룹ID
        "import_yn": null,// 타서버이전정책여부
        "startip": "1.1.1.1",// 시작IP
        "ipid": "500017"// IPID
      }
  ],
    "userdefinde": "USER",// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
    "igid": "1011"// IP그룹ID
  }, ...
]

ipTemplateMgm

  • 설명: 템플릿 관리 (IP정책 등록) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* ipgrpname :IP그룹명, 그룹생성시 필수 파라미터
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :IP그룹설명
* startip :시작IP, IP생성시 필수 파라미터
* endip :끝IP, IP생성시 필수 파라미터
* comment :설명
* igid :IP그룹ID, IP생성시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹생성: /api/ipTemplateMgm?job=add&key=인증키&ipgrpname=test1&commentgrp=test1d&cids=0&lang=ko
* 패턴생성: /api/ipTemplateMgm?job=add&key=인증키&igid=1011&startip=1.1.1.1&endip=1.1.1.12&comment=test1설명&lang=ko

[Response]

"Completed"

ipTemplateMgm

  • 설명: 템플릿 관리 (IP정책 수정) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* ipgrpname :IP그룹명, 그룹생성시 필수 파라미터
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :IP그룹설명
* startip :시작IP
* endip :끝IP
* comment :설명
* igid :IP그룹ID, IP그룹수정시 필수 파라미터
* ipid :IPID, IP수정시필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹수정: /api/ipTemplateMgm?job=edit&key=인증키&igid=1011&ipgrpname=test11&commentgrp=test1d&cids=0&lang=ko
* 패턴수정: /api/ipTemplateMgm?job=edit&key=인증키&ipid=500017&startip=1.1.1.1&endip=1.1.1.12&comment=test1p1&lang=ko

[Response]

"Completed"

ipTemplateMgm

  • 설명: 템플릿 관리 (IP정책 삭제) API

[Parameter]

* key
* job :작업구분(삭제: job=del)
* igid :IP그룹ID, IP그룹삭제시 필수 파라미터
* ipid :IPID, IP삭제시필수 파라미터

[Sample URL]

* 그룹삭제: /api/ipTemplateMgm?job=del&key=인증키&igid=1011
* 패턴삭제: /api/ipTemplateMgm?job=del&key=인증키&ipid=500017

[Response]

"Completed"

getUploadTemplate

  • 설명: 템플릿 (업로드정책) 획득 API

[Parameter]

* key
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/getUploadTemplate?key=인증키&lang=ko

[Response]

[
  {
    "tgid": "194",// 템플릿그룹ID
    "templatedata": [// (템플릿)
    {
      "tgid": "194",// 템플릿그룹ID
      "tid": "194001",// 템플릿ID
      "mdf_date": null,// 수정일
      "pattern": "(?:\\.pg)$",// 패턴
      "tname": "업로드허용",// 템플릿명
      "import_yn": null,// 타서버이전정책여부
      "risklevel": "하"// 위험도
    }
    ],
    "mdf_date": "2020-07-02T16:09:46",// 템플릿그룹수정일
    "cids": [// 적용회사ID (0: 공용)
      "0"
    ],
    "groupname": "업로드허용",// 템플릿그룹명
    "import_yn": null,// 타서버이전정책여부
    "userdefinde": "USER"// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
  }, ...
]

uploadTemplateMgm

  • 설명: 템플릿 관리 (업로드정책 등록) API

[Parameter]

* key
* job :작업구분(등록: job=add)
* tgrpname :템플릿그룹명, 그룹생성시 필수 파라미터
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :checkpos값, URL제한정책의 경우 10으로 요청, 그룹생성시 필수 파라미터
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :패턴그룹설명
* tname :템플릿명, 패턴생성시 필수 파라미터
* risklevel :위험도(템플릿), 패턴생성시 필수 파라미터
* pattern :패턴, 패턴생성시 필수 파라미터
* tgid :템플릿그룹ID, 패턴생성시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹생성: /api/uploadTemplateMgm?job=add&key=인증키&tgrpname=api테스트_1&grprisklevel=1&type=10&cids=0&lang=ko
* 패턴생성: /api/uploadTemplateMgm?job=add&key=인증키&tgid=194&tname=api테스트_1_1t&risklevel=1&type=10&comment=api테스트_설명&pattern=test&lang=ko

[Response]

"Completed"

uploadTemplateMgm

  • 설명: 템플릿 관리 (업로드정책 수정) API

[Parameter]

* key
* job :작업구분(수정: job=edit)
* tgrpname :템플릿그룹명
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :checkpos값, URL제한정책의 경우 10으로 요청
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3)
* commentgrp :패턴그룹설명
* tname :템플릿명
* risklevel :위험도(템플릿)
* pattern :패턴
* tgid :템플릿그룹ID, 그룹수정시 필수 파라미터
* tid :템플릿ID, 패턴수정시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹수정: /api/uploadTemplateMgm?job=edit&key=인증키&tgid=194&tgrpname=api테스트_1_수정&grprisklevel=1&type=10&lang=ko
* 패턴수정: /api/uploadTemplateMgm?job=edit&key=인증키&tid=194001&tname=api테스트수정_1_1&risklevel=1&type=10&comment=t1&lang=ko

[Response]

"Completed"

uploadTemplateMgm

  • 설명: 템플릿 관리 (업로드정책 삭제) API

[Parameter]

* key
* job :작업구분(삭제: job=del)
* tgid :템플릿그룹ID, 그룹삭제시 필수 파라미터
* tid :템플릿ID, 패턴삭제시 필수 파라미터

[Sample URL]

* 그룹삭제: /api/uploadTemplateMgm?job=del&key=인증키&tgid=194
* 패턴삭제: /api/uploadTemplateMgm?job=del&key=인증키&tid=194001

[Response]

"Completed"

getURLTemplate

  • 설명: 템플릿 (URL제한정책) 획득 API

[Parameter]

* key
* lang : 언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/getURLTemplate?key=인증키&lang=ko

[Response]

[
  {
    "tgid": "199",// 템플릿그룹ID
    "templatedata": [// (템플릿)
    {
      "tgid": "199",// 템플릿그룹ID
      "tid": "199001",// 템플릿ID
      "mdf_date": null,// 수정일
      "pattern": "dd",// 패턴
      "tname": "s",// 템플릿명
      "import_yn": null,// 타서버이전정책여부
      "risklevel": "상"// 위험도
    }
    ],
    "mdf_date": "2020-07-24T10:25:36",// 템플릿그룹수정일
    "cids": [// 적용회사ID (0: 공용)
      "0"
    ],
    "groupname": "test2",// 템플릿그룹명
    "import_yn": null,// 타서버이전정책여부
    "userdefinde": "USER"// 정책종류(SYSTEM: 시스템정책 / USER: 사용자정책)
  },
  {
    "tgid": "200",
    "templatedata": [],
    "mdf_date": "2020-07-24T10:25:40",
    "cids": [
      "0"
    ],
    "groupname": "test2",
    "import_yn": null,
    "userdefinde": "USER"
  }, ...
]

URLTemplateMgm

  • 설명: URL제한정책 템플릿 관리

URL제한정책 등록

[Parameter]

* key
* job :작업구분(등록: job=add)
* tgrpname :템플릿그룹명, 그룹생성시 필수 파라미터
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :checkpos값, URL제한정책의 경우 7로 요청, 그룹생성시 필수 파라미터
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3), 그룹생성시 필수 파라미터
* commentgrp :패턴그룹설명
* tname :템플릿명, 패턴생성시 필수 파라미터
* risklevel :위험도(템플릿), 패턴생성시 필수 파라미터
* pattern :패턴, 패턴생성시 필수 파라미터
* tgid :템플릿그룹ID, 패턴생성시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹생성: /api/URLTemplateMgm?job=add&key=인증키&tgrpname=api테스트_1&grprisklevel=1&type=7&cids=0&lang=ko
* 패턴생성: /api/URLTemplateMgm?job=add&key=인증키&tgid=199&tname=api테스트_1_1t&risklevel=1&type=7&comment=api테스트_설명&pattern=test&lang=ko

[Response]

"Completed"

URL제한정책 수정

[Parameter]

* key
* job :작업구분(수정: job=edit)
* tgrpname :템플릿그룹명
* grprisklevel :위험도(템플릿그룹), 1 로 요청(실제 사용하지 않으나 없을경우 오류)
* type :checkpos값, URL제한정책의 경우 7로 요청
* cids :적용회사(공용: 0 / 회사를 지정할경우: 회사ID를 ,(콤마) 연접한 String. ex) 1,2,3)
* commentgrp :패턴그룹설명
* tname :템플릿명
* risklevel :위험도(템플릿)
* pattern :패턴
* tgid :템플릿그룹ID, 그룹수정시 필수 파라미터
* tid :템플릿ID, 패턴수정시 필수 파라미터
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* 그룹수정: /api/URLTemplateMgm?job=edit&key=인증키&tgid=199&tgrpname=api테스트_1_수정&grprisklevel=1&type=7&lang=ko
* 패턴수정: /api/URLTemplateMgm?job=edit&key=인증키&tid=199001&tname=api테스트수정_1_1&risklevel=1&type=7&comment=t1&lang=ko

[Response]

"Completed"

URL제한정책 삭제

[Parameter]

* key
* job : 작업구분(삭제: job=del)
* tgid : 템플릿그룹ID, 그룹삭제시 필수 파라미터
* tid : 템플릿ID, 패턴삭제시 필수 파라미터

[Sample URL]

* 그룹삭제: /api/URLTemplateMgm?job=del&key=인증키&tgid=199
* 패턴삭제: /api/URLTemplateMgm?job=del&key=인증키&tid=199001

[Response]

"Completed"

getMethodTemplate

  • 설명: 메소드정보 리스트 획득 API

[Parameter]

* key

[Sample URL]

* /api/getMethodTemplate?key=인증키

[Response]

{
  "data": [
    {
      "methodtext_ch": null,// 메소드설명(중국어)
      "methodtext_jp": null,// 메소드설명(일본어)
      "mdf_id": "0",// 수정자ID
      "methodtext_en": "ALL",// 메소드설명(영어)
      "methodtext": "전체",// 메소드 설명(한국어)
      "vl_yn": "Y",// 사용여부
      "etr_date": "2009-04-27T10:16:31.703",// 생성일
      "methodname": "*",// 메소드명
      "mdf_date": "2009-04-27T10:16:31.703",// 수정일
      "etr_id": "0",// 생성자ID
      "seqno": 44,// 메소드시퀀스번호
      "mtype": "1"// 메소드타입(1: Allow-Req / 2: webDAV)
    },
    {
      "methodtext_ch": null,
      "methodtext_jp": null,
      "mdf_id": "0",
      "methodtext_en": "ACL\n",
      "methodtext": "ACL\n",
      "vl_yn": "Y",
      "etr_date": "2009-01-01T00:00:00",
      "methodname": "ACL",
      "mdf_date": "2009-01-01T00:00:00",
      "etr_id": "0",
      "seqno": 5,
      "mtype": "2"
    },
  ]
}

methodTemplateMgm

  • 템플릿 관리 (메소드 등록/수정/삭제) API

[Parameter]

* key
* job : 작업구분(등록: job=add / 수정: job=edit / 삭제: job=del)
* methodname :메소드명, job=add 일 경우 필수 파라미터
* type : 메소드타입, , job=add 일 경우 필수 파라미터
* comment : 메소드설명
* seqno : 메소드시퀀스번호, job=edit 또는 job=del 일 경우 필수 파라미터

[Sample URL]

* 정책생성:/api/methodTemplateMgm?key=인증키&job=add&methodname=apitest2&type=2&comment=에이피아이테스트입니다.
* 정책수정:/api/methodTemplateMgm?key=인증키&job=edit&seqno=68&methodname=api_edittest&type=2&comment=수정되었습니다
* 정책삭제:/api/methodTemplateMgm?key=인증키&job=del&seqno=68

[Response]

"Completed"

getLogType

  • 로그타입 정보 획득 API

[Parameter]

* key
* lang : 언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/getLogType?key=인증키&lang=ko

[Response]

[
  {
    "ntype": "1",// 로그타입(미사용)
    "logno": "2",// 로그번호
    "owasp": "0",// OWASP 구분
    "logname": "보안패턴탐지"// 로그명
  },
  {
    "ntype": "1",
    "logno": "3",
    "owasp": "6",
    "logname": "중요정보유출탐지"
  },
  {
    "ntype": "1",
    "logno": "4",
    "owasp": "10",
    "logname": "URL IP 검사"
  }, ...
]

getSigGroup

  • 설명: 패턴, 템플릿 및 IP정책 정보 획득 API

[Parameter]

* key
* lang : 언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/getSigGroup?key=인증키&lang=ko

[Response]

{
  "sig_group_data": [// (보안패턴그룹정보)
    {
      "mdf_id": "1",// 수정자ID
      "mdf_date": "2018-06-25T16:43:39",// 수정일
      "pgid": "4",// 패턴그룹ID
      "level": "1",// 위험도
      "vl_yn": "Y",// 사용여부
      "checkpos": "0",// checkPos -0:REQUEST, 1:RESPONSE, 2:주민번호, 3:신용카드, 4:HEADNAME, 5:HEADVALUE, 6:WILDCARD, 7:TEMPLATE-URL, 10:TEMPLATE-UPLOAD
      "etr_date": "2018-06-25T16:43:39",// 생성일
      "groupname": "크로스사이트스크립팅(XSS)",// 그룹명
      "comment": "크로스사이트스크립팅(XSS)",// 설명
      "etr_id": "1",// 생성자ID
      "domaingid": "0",// 도메인그룹ID
      "owasp": "11",// OWASP 구분
      "userdefinde": "1"// 생성구분(1: 시스템기본정책 / 2: 사용자정책)
    }, ...
  ],
  "template_data": [// (템플릿정보)
    {
      "tgid": "61",// 템플릿그룹ID
      "mdf_id": null,// 수정자ID
      "mdf_date": "2015-09-16T10:56:20.501",// 수정일
      "tname": "ShellShock Attack",// 템플릿명
      "vl_yn": "Y",// 사용여부
      "checkpos": "0",// checkPos -0:REQUEST, 1:RESPONSE, 2:주민번호, 3:신용카드, 4:HEADNAME, 5:HEADVALUE, 6:WILDCARD, 7:TEMPLATE-URL, 10:TEMPLATE-UPLOAD
      "active": "1",// 적용여부(0: 해제 / 1: 설정)
      "tid": "61001",// 템플릿ID
      "etr_date": "2015-09-16T10:56:20.501",// 생성일
      "risklevel": "1",// 위험도
      "comment": "ENCdkjtPsKjigsSyQucRkgafw==",// 패턴(암호화되어있음)
      "etr_id": "1"// 생성자ID
    }, ...
  ],
  "sig_data": [// (보안패턴정보)
    {
      "endpos": "0",// 미사용
      "vl_yn": "Y",// 사용여부
      "mdf_id": "1",// 수정자ID
      "mdf_date": "2018-06-25T16:43:39",// 수정일
      "pgid": "4",// 패턴그룹ID
      "sigid": "4011",// 패턴ID
      "risklevel": "2",// 위험도
      "active": "1",// 적용여부(0: 해제 / 1: 설정)
      "pattern": "ENC05aAeLnrQAWB8btfRfj3NC26/oR7vOTkTbT+oBJ0LZb56tWeOuXlywYF6A9Ii/b5WVp784Ip3O1kwstanLbqfQ==",// 패턴(암호화되어있음)
      "etr_date": "2018-06-25T16:43:39",// 생성일
      "pretest": "0",// 사전검사여부(0: 수행하지않음 / 1: 사전검사수행)
      "checkpos": "0",// checkPos -0:REQUEST, 1:RESPONSE, 2:주민번호, 3:신용카드, 4:HEADNAME, 5:HEADVALUE, 6:WILDCARD, 7:TEMPLATE-URL, 10:TEMPLATE-UPLOAD
      "comment": "octal, hex and unicode entities",// 설명
      "startpos": "0",// 미사용
      "etr_id": "1",// 생성자ID
      "method": "0",// 미사용
      "reverse": "0"// Reverse여부(0: false / 1: true)
    }, ...
  ],
  "ip_group_data": [// (IP그룹정보)
    {
      "etr_date": "2020-04-03T16:06:15.706",// 생성일
      "mdf_date": "2020-04-03T16:06:15.706",// 수정일
      "vl_yn": "Y",// 사용여부
      "groupname": "이름",// IP그룹명
      "comment": "설명",// 설명
      "etr_id": "1",// 생성자ID
      "domaingid": "0",// 도메인그룹ID
      "mdf_id": null,// 수정자ID
      "igid": "1002",// IP그룹ID
      "userdefinde": "2"// 생성구분(1: 시스템기본정책 / 2: 사용자정책)
    }, ...
  ],
  "template_group_data": [// (템플릿그룹정보)
    {
      "tgid": "61",// 템플릿그룹ID
      "mdf_id": "0",// 수정자ID
      "mdf_date": "2015-09-16T10:56:20.501",// 수정일
      "level": "1",// 위험도
      "vl_yn": "Y",// 사용여부
      "checkpos": "0",// checkPos -0:REQUEST, 1:RESPONSE, 2:주민번호, 3:신용카드, 4:HEADNAME, 5:HEADVALUE, 6:WILDCARD, 7:TEMPLATE-URL, 10:TEMPLATE-UPLOAD
      "etr_date": "2015-09-16T10:56:20.501",// 생성일
      "groupname": "ShellShock Attack",// 템플릿그룹명
      "comment": null,// 설명
      "etr_id": "1",// 생성자ID
      "domaingid": "0",// 도메인그룹ID
      "userdefinde": "1"// 생성구분(1: 시스템기본정책 / 2: 사용자정책)
    }, ...
  ]
}

makeSQLUserPlcys

  • 설명: 대상 템플릿을 복제, 다운로드 API. (실행 결과 .df 파일이 생성됨)

[Parameter]

* key
* type : 작업구분(1: 보안패턴정책 템플릿 / 2: IP정책 템플릿 / 3: 업로드파일정책 템플릿 / 4:URL정책 템플릿)
* gid : 복제하고자하는 템플릿의 그룹ID(배열)

[Sample URL]

* /api/makeSQLUserPlcys?key=인증키&type=1&gid=1001&gid=1002

[Response]

"Completed"

templateUploadFromFile

  • 설명: 복제된 정책파일(.df) 매니져서버 적용 API(템플릿 추가만 함. 실제 정책적용은 하지 않음)

[Parameter]

* key
* uploadfile : 업로드파일명

[Sample URL]

* /api/templateUploadFromFile
  [ POST ] -multipart
    key: 인증키
    uploadfile: (binary)

[Response]

"Completed"

apply_pattern_domaing

  • 설명: 패턴을 선택해 원하는 도메인 그룹에 정책을 적용시킴 ( 보안패턴, IP, 업로드파일, URL제한, 신뢰 / 블랙 IP )

[Parameter]

* key :API KEY
* pattern_type :패턴종류 ( REQUEST : 11 / HEADNAME : 12 / HEADVALUE : 13 / RESPONSE : 14 / 신뢰IP : 21 / 블랙 IP : 22 / URL패턴 : 33 / 업로드패턴 : 34 )
* id :패턴ID ( IP 일경우 IP그룹ID)
* action :대응방법( 차단 : 1 / 리다이렉트 : 2 / 탐지 : 3 / 허용 : 7)
* name :패턴이름
* headername :패턴종류가 HEADER VALUE 일 경우 정책이 적용 될 헤더 필드이름
* domaingid :정책이적용될 도메인 그룹ID (배열)

[Sample URL]

*/api/apply_pattern_domaing?key=인증키&pattern_type=13&id=1028002&action=7&name=123&headername=Age&domaingid=1&domaingid=44

[Response]

"Completed"

check_used_pattern

  • 설명: SNAP-SHOT, 기본정책 또는 정책스크립트에 포함되어진 정책인지 체크하는 API.

[Parameter]

* key
* id :정책ID
* type :정책구분텍스트(보안패턴정책: 'security' / 업로드정책: 'upload' / URL패턴정책: 'urlpattern' / IP정책(IP확인시): 'ip' / IP정책(IP그룹확인시): 'ipg')
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/check_used_pattern?key=인증키&type=security&lang=ko&id=1008001

[Response]

{
  "data": [// (data: 적용중인정책 에 포함된 정책)
    {
      "dg_name": "test1",// 도메인그룹명
      "domaingid": "13",// 도메인그룹ID
      "policy": "보안패턴 정책",// 정책구분('보안 패턴 정책', '파일패턴 정책', '헤더필드 이름 정책', '헤더필드 값 정책', '쿠키 보안 정책', '업로드 정책', 'URL 제한정책', 'IP접근정책', '도메인 IP 정책', '메소드 정책')
      "info2": "",// 정책이설정된 URL의 파라미터ID
      "info": "/",// 정책이설정된 URL
      "id": "1008001"// 정책ID
    }
  ],
  "data2": [// (data2: 정책스크립트에 포함된 정책)
    {
      "id": "1008001",// 정책ID
      "files": [
        {
          "file": "leetest3"// 스크립트파일명(실제파일 위치: /usr/local/dfserver/api/DeepFinderAPI/src/api/plcyscript/leetest3_default_policy3.sql)
        }
      ]
    }
  ],
  "data3": [// (data3: SNAP-SHOT 에포함된 정책)
    {
      "domaingid": "44",// 도메인그룹ID
      "info2": "",// 정책이설정된 URL의 파라미터ID
      "info": "/",// 정책이설정된 URL
      "dg_name": "test1",// 도메인그룹명
      "policy": "보안패턴 정책",// 정책구분('보안 패턴 정책', '파일패턴 정책', '헤더필드 이름 정책', '헤더필드 값 정책', '쿠키 보안 정책', '업로드 정책', 'URL 제한정책', 'IP접근정책', '도메인 IP 정책', '메소드 정책')
      "id": "1008001",// 정책ID
      "snap_name": "test1_leetes1_[20200722160125]"// SNAP-SHOT 명
    }
  ],
  "result": "Complete"
}

makePolicyFile

  • 설명: 대상 정책을 기본정책으로 등록 또는 타서버 이전 스크립트 다운로드 API

[Parameter]

* key
* domaingid :도메인그룹ID
* fileName :생성될파일명(사용자가 입력한 fileName 뒤에 반드시 "_default_policy3" 를 붙여서 요청해야함)
* job :작업구분(1: 대상 정책을 기본정책으로 등록 / 2: 이전 스크립트 다운로드)
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)

[Sample URL]

* /api/makePolicyFile?key=인증키&domaingid=2&fileName=apitext_default_policy3&lang=ko&job=2

[Response]

"Completed"

transplcyUpload

  • 설명: 복제된 정책파일(.df) 매니져서버 적용 API

[Parameter]

* key
* uploadfile :업로드파일명
* job :작업구분(0: 기본 정책만 적용 / 1: 예외처리 URL 모두 적용)

[Sample URL]

* /api/transplcyUpload
  [ POST ] -multipart
  key: 인증키
  uploadfile: (binary)

[Response]

"Completed"

domaingSnapshotMgm

  • 설명: 도메인그룹에 설정된 정책에 대한 스냅샷을 조회 / 생성 / 삭제 / 복원한다.

스냅샷 조회

[Parameter]

* key:API KEY
* job :작업종류( 스냅샷 조회 : 4)
* domaingid :도메인그룹 ID

[Sample URL]

*/api/domaingSnapshotMgm?key=인증키&job=4&domaingid=89

[Response]

{
  "data": [
    {
      "vl_yn": "Y",
      "mdf_date": "2020-08-03T15:24:24.069",
      "domaingid": "89",
      "snap_name": "TEST_DOMANGROUP_[20200803152058]",
      "etr_date": "2020-08-03T15:24:24.069"
    }
  ]
}

스냅샷 생성

[Parameter]

* key:API KEY
* job :작업종류( 스냅샷 조회 : 1)
* domaingid :도메인그룹 ID
* snap_name :스냅샷이름

[Sample URL]

*/api/domaingSnapshotMgm?key=인증키&job=1&domaingid=89&snap_name=TEST_DOMANGROUP_

[Response]

"completed"

스냅샷 복원

[Parameter]

* key:API KEY
* job :작업종류( 스냅샷 복원 : 2)
* domaingid :도메인그룹 ID
* snap_name :스냅샷이름

[Sample URL]

*/api/domaingSnapshotMgm?key=인증키&job=2&domaingid=89&snap_name=TEST_DOMANGROUP_[20200803152614]

[Response]

"completed"

getLog

  • 설명: (DB) 로그 조회 API

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* clientip :공격자IP
* agentip :에이전트IP(공격대상IP)
* cid :회사ID
* domaingid :도메인그룹ID
* domain :도메인
* risk_high :위험도(상) 조회시 risk_high=1 요청
* risk_middle :위험도(중) 조회시 risk_middle=1 요청
* risk_low :위험도(하) 조회시 risk_low=1 요청
* action :대응방법(ALL: 세팅x / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
* url :탐지URL
* detectmsg :탐지메세지
* sso :SSO 고객의경우 sso=1 요청, SSO 고객이 아닌경우 파라미터 세팅 하지 않음
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)
* logtype :로그타입(로그타입 획득 API명 : getLogType)
* pgid :패턴그룹(패턴그룹 획득 API명 : getSigGroup)
* tgid :템플릿그룹(템플릿그룹 획득 API명 : getSigGroup)
* sigid :패턴(패턴 획득 API명 : getSigGroup)
** 참고** pgid, tgid, sigid, templateid 모두 getSigGroup 을 호출하여 획득 가능
* templateid :템플릿(템플릿 획득 API명 : getSigGroup)
* dataRow :요청건수
* pageNum :페이지번호

[Sample URL]

* /api/getLog?key=인증키&dataRow=100&sdate=2020-06-21%2000:00:00&edate=2020-07-21%2023:59:00

[Response]

{
  "totalCnt": 16,
  "pageNum": 1,
  "data": [
    {
      "rownum": 1,// 행번호(요청당 생성되는 행번호, 반드시 사용할 필요는 없음)
      "clientip": "127.0.0.1",// 공격자IP
      "rstparamname": "",// 파라미터
      "risklevel": "상",// 위험도
      "logmessage": "HeadName : [user-agent]\nHeadValue : [curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2]\ncurl",// 탐지메세지
      "templateid": "0",// 템플릿ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 sigid에 ID가 리턴됨)
      "pgid": "56",// 보안패턴그룹ID(보안패턴정책일 경우는 해당값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 tgid ID가 리턴됨)
      "pattern": "봇탐지3(User-Agent)",// 탐지패턴
      "tgid": "0",// 템플릿그룹ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 sigid에 ID가 리턴됨)
      "sigid": "56003",// 보안패턴ID(보안패턴정책일 경우는 해당 값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 templateid에 ID가 리턴됨)
      "domaingid": "4",// 도메인그룹ID
      "mid": "226",// 에이전트ID
      "etr_date": "2020-07-14T12:23:12",// 로그생성시각(매니져기준, 매니져에 로그가 기록된 시각)
      "patterngrp": "봇탐지(User-Agent)",// 패턴그룹명
      "url": "/index.html",// 공격URL
      "seqno": "24083632",// 로그번호(seqno)
      "agentip": "10.10.7.246",// 에이전트IP
      "dgname": "Seo Test 2",// 도메인그룹명
      "action": "DETECT",// 대응방법(NONE: 0 / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
      "isocn": "",// 국가코드(00: known)
      "logname": "헤더필드값검사",// 로그타입명
      "domain": "127.0.0.1",// 도메인
      "company": "Seo Test",// 회사명
      "risklevel2": "3",// 위험도코드(상: 3 / 중: 2 / 하: 1)
      "detectpatternstr": "HeadValue : [curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2]",// 탐지패턴매칭 텍스트
      "logtime": "2020-07-14T12:29:14",// 로그생성시각(에이전트기준, 에이전트가 보내온 시각)
      "action2": "3",// 대응방법코드(NONE: 0 / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
      "cid": "2",// 회사ID
      "logtype": "36"// 로그타입ID
    }, ...
  ]
}

getLogDetail

  • 설명: 로그 상세 열람 API

[Parameter]

* key
* seqno :로그번호(seqno)
* logdate :로그발생시각YYYY-MM-DDTHH:MM:SS(ex: 2020-07-13T10:22:11)
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)
* sso : SSO 고객의경우 sso=1 요청, SSO 고객이 아닌경우 파라미터 세팅 하지 않음

[Sample URL]

* /api/getLogDetail?key=인증키&logdate=2020-07-13T10:22:11&seqno=24083627&lang=ko

[Response]

{
  "data": [
    {
      "agenttime": "2020-07-13T10:57:00",// 로그생성시각(에이전트기준, 에이전트가 보내온 시각)
      "risklevel": "상",// 위험도
      "rstparamname": "",// 파라미터
      "clientip": "10.10.7.70",// 공격자IP
      "detectPatternStr": "curl",// 탐지패턴
      "mid": "242",// 에이전트ID
      "templateid": "0",// 템플릿ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 sigid에 ID가 리턴됨)
      "httpbody": "",// http body 내용
      "pattern": "봇탐지3(User-Agent)",// 패턴명
      "tgid": "0",// 템플릿그룹ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 pgid에 ID가 리턴됨)
      "sigid": "56003",// 보안패턴ID(보안패턴정책일 경우는 해당 값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 templateid에 ID가 리턴됨)
      "domaingid": "4",// 도메인그룹ID
      "logmessage": "HeadName : [user-agent]\nHeadValue : [curl/7.55.1]\n",// 로그메세지
      "pgid": "56",// 보안패턴그룹ID(보안패턴정책일 경우는 해당 값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 tgid에 ID가 리턴됨)
      "patterngrp": "봇탐지(User-Agent)",// 패턴그룹명
      "url": "/",// 공격URL
      "seqno": "24083628",// 로그번호(seqno)
      "agentip": "10.10.7.243",// 에이전트IP
      "dgname": "Seo Test 2",// 도메인그룹명
      "action": "DETECT",// 대응방법(NONE: 0 / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
      "isocn": "",// 국가코드
      "rawhead": "GET / HTTP/1.1\r\nHost: 10.10.7.243\r\nUser-Agent: curl/7.55.1\r\nAccept: */*\r\n",// header 정보
      "logname": "헤더필드값검사",// 로그타입명
      "domain": "test.com",// 도메인
      "company": "Seo Test",// 회사명
      "logtime": "2020-07-13T10:22:11",// 로그발생시각
      "cid": "2",// 회사ID
      "logtype": "36"// 로그타입
    }
  ]
}

getEventLog

  • 설명: (DB) 이벤트 로그 조회 API

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* cid :회사ID
* dataRow :요청건수
* pageNum :페이지번호

[Sample URL]

* /api/getEventLog?key=인증키&dataRow=100&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:00

[Response]

{
  "totalCnt": 198,// 총건수
  "pageNum": 1,// 현재페이지
  "dataRow": "100",// 1회조회 건수
  "data": [
    {
      "seqno": "1138949",// 로그번호(seqno)
      "agentname": "[UITEST]10.10.7.250_auto_added",// 에이전트명
      "company": "UITEST",// 회사명
      "time": "2020-07-20 23:49:40",// 로그발생시각
      "alert": "Filter Check : no log. more than 20 min"// 이벤트메세지
    }, ...
  ]
}

getSystemLog

  • 설명: 시스템로그 획득 API

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* dataRow :요청건수
* pageNum :페이지번호
* csv :csv 출력시csv=1 요청(결과 JSON 없음, 이 경우 response로 파일 리턴)

[Sample URL]

* /api/getSystemLog?key=인증키&dataRow=100&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:00

[Response]

{
  "totalCnt": 19,// 총건수
  "pageNum": 1,// 현재페이지
  "data": [
    {
      "seqno": "18615",// 로그번호(seqno)
      "logmessage": "agent(242) [10.10.7.243] : directional is connected.",// 시스템로그메세지
      "logtime": "2020-06-25T16:58:10.583"// 로그발생시각
    }, ...
  ]
}

getAuditLog

  • 설명: 감사로그 획득 API

[Parameter]

* key
* sdate : 검색날짜지정(시작)
* edate : 검색날짜지정(끝)
* adminid : 사용자ID
* cid : 회사ID
* msg : 감사로그메세지(해당 텍스트가 포함되는 로그를 리턴)
* dataRow : 요청건수
* pageNum : 페이지번호
* csv : csv 출력시csv=1 요청(결과 JSON 없음, 이 경우 response로 파일 리턴)

[Sample URL]

* /api/getAuditLog?key=인증키&dataRow=100&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:00

[Response]

{
  "totalCnt": 11,// 총건수
  "pageNum": 1,// 현재페이지
  "data": [
    {
      "logmessage": "10.10.7.70 에서isdadmin (으)로 로그인 하였습니다",// 감사로그 메세지
      "adminid": "2",// 사용자ID
      "issuccess": null,// 처리결과(사용안함)
      "seqno": 22396,// 로그번호(seqno)
      "logtime": "2020-07-21T13:48:16.741",// 로그발생시각
      "lsid": null,// 서버ID(사용안함)
      "logeventid": null,// 이벤트ID(사용안함)
      "adminname": "isdadmin"// 사용자이름
    },
    {
      "logmessage": "도메인그룹ID [41]의 정보가 변경되었습니다. (도메인그룹 이름:123123123, 도메인그룹 버전:, 도메인그룹 타입:IIS, 도메인그룹 설명:, 기본정책:low, 기본정책 대응방법:detect)",
      "adminid": "2",
      "issuccess": null,
      "seqno": 22395,
      "logtime": "2020-07-21T11:43:27.382",
      "lsid": null,
      "logeventid": null,
      "adminname": "isdadmin"
    }, ...
  ]
}

getLogCSV

  • 설명: 탐지로그 엑셀 출력 API

[Parameter]

* getEsLog 와동일

[Sample URL]

* /api/getLogCSV?key=인증키&dataRow=30&lang=ko&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:59

[Response]

없음

getIsocnInfo

  • 설명: 국가코드 정보 획득 API

[Parameter]

없음

[Sample URL]

* /api/getIsocnInfo

[Response]

[
  {
    "isocn": "AF",
    "name": "Afghanistan"
  },
  {
    "isocn": "AX",
    "name": "Aland Islands"
  }, ...
]

getEsEventLog

  • 설명: (Elastic) 이벤트 로그 조회 API

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* cid :회사ID
* type :이벤트로그종류(현재 미사용, 추후 사용)
* aid :에이전트ID
* dataRow :요청건수
* pageNum :페이지번호

[Sample URL]

* /api/getEsEventLog?key=인증키&dataRow=100&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:00

[Response]

{
  "dataRow": "100",// 1회조회 건수
  "totalCnt": 78,// 총건수
  "pageNum": 1,// 현재페이지
  "data": [
    {
      "mid": 229,// 에이전트ID
      "rownum": 1,// 행번호(요청당 생성되는 행번호, 반드시 사용할 필요는 없음)
      "agent": "[UITEST]10.10.7.250_auto_added",// 에이전트명
      "logtime": "2020-07-21T12:30:18",// 로그생성시각
      "type": 4,// 이벤트로그타입(추후 사용하기 위해 값을 구분하여 저장만 해두고 있음)
      "message": "Filter Check : no log. more than 20 min",// 이벤트메세지
      "cid": 19,// 회사ID
      "company": "UITEST"// 회사명
    }, ...
  ]
}

getEsLog

  • 설명: (Elastic) 로그 조회 API

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* clientip :공격자IP
* agentip :에이전트IP(공격대상IP)
* cid :회사ID
* domaingid :도메인그룹ID
* domain :도메인
* risk_high :위험도(상) 조회시 risk_high=1 요청
* risk_middle :위험도(중) 조회시 risk_middle=1 요청
* risk_low :위험도(하) 조회시 risk_low=1 요청
* action :대응방법(ALL: 세팅x / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
* url :탐지URL
* detectmsg :탐지메세지
* sso :SSO 고객의경우 sso=1 요청, SSO 고객이 아닌경우 파라미터 세팅 하지 않음
* lang :언어세팅(default: KR / 한국어: KR 또는 ko / 영어: EN / 일본어: JP / 중국어: CH)
* logtype :로그타입(로그타입 획득 API명 : getLogType)
* pgid :패턴그룹(패턴그룹 획득 API명 : getSigGroup)
* tgid :템플릿그룹(템플릿그룹 획득 API명 : getSigGroup)
* sigid :패턴(패턴 획득 API명 : getSigGroup)
** 참고** pgid, tgid, sigid, templateid 모두 getSigGroup 을 호출하여 획득 가능
* templateid :템플릿(템플릿 획득 API명 : getSigGroup)
* isocn :국가코드(국가코드 획득 API명 : getIsocnInfo)
* dataRow :요청건수
* pageNum :페이지번호
* except_domain :제외검색(도메인), 배열 (ex: &except_domain=1.1.1.1&except_domain=1.1.1.2&except_domain=1.1.1.3 ...)
* except_clientip :제외검색(공격자IP), 배열
* except_isocn :제외검색(국가), 배열
* except_logtype :제외검색(로그타입), 배열
* except_pattgroup :제외검색(패턴그룹 또는 템플릿그룹), 배열
* except_pattern :제외검색(패턴 또는 템플릿), 배열
* except_url :제외검색(URL), 배열
* except_action :제외검색(대응방법), 배열
* except_risklevel :제외검색(위험도), 배열
* except_domaing :제외검색(도메인그룹ID), 배열
* except_agentip :제외검색(에이전트IP), 배열

[Sample URL]

* /api/getEsLog?key=인증키&dataRow=30&lang=ko&sdate=2020-07-21%2000:00:00&edate=2020-07-21%2023:59:59

[Response]

{
  "totalCnt": 16,// 총탐지건수
  "pageNum": 1,// 현재페이지
  "dataRow": "30",// 1회조회 건수
  "data": [
    {
      "clientip": "10.10.10.206",// 공격자IP
      "rstparamname": "",// 파라미터
      "risklevel": "중",// 위험도
      "detectPatternStr": "URL : [/test/WEB-INF/views/list.jsp?null]",// 탐지패턴매칭 텍스트
      "pattern": "WEB-INF",// 탐지패턴
      "logmessage": "URL : [/tes/WEB-INF/views/list.jsp?null]",// 탐지메세지
      "templateid": 70026,// 템플릿ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 pgid에 ID가 리턴됨)
      "rownum": 16,// 행번호(요청당 생성되는 행번호, 반드시 사용할 필요는 없음)
      "iplistid": 0,// IP그룹ID
      "logtime": "2020-06-23T15:36:10",// 로그생성시각(에이전트기준, 에이전트가 보내온 시각)
      "tgid": 70,// 템플릿그룹ID(템플릿정책일 경우는 해당 값에 ID가 리턴되고, 보안패턴정책일 경우는 해당 json 데이터의 sigid에 ID가 리턴됨)
      "sttid": 0,// 탐지된정책이 설정된 URL의 ID(tb_sttree)
      "sttype": 0,// 정책적용URL의 타입(1: 디렉토리 / 2: 파일 / 4: 파라미터)
      "sigid": 0,// 보안패턴ID(보안패턴정책일 경우는 해당 값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 templateid에 ID가 리턴됨)
      "domaingid": 64,// 도메인그룹ID
      "isocn": "00",// 국가코드(00: known)
      "etr_date": "2020-06-23T15:35:08",// 로그생성시각(매니져기준, 매니져에 로그가 기록된 시각)
      "patterngrp": "요청금지파일",// 패턴그룹명
      "url": "/test/WEB-INF/views/list.jsp",// 공격URL
      "seqno": "24083617",// 로그번호(seqno)
      "agentip": "10.10.10.247",// 에이전트IP
      "dgname": "lee_test",// 도메인그룹명
      "action": "DETECT",// 대응방법(NONE: 0 / ALLOW: 7 / BYPASS: 6 / DENY: 1 / REDIRECT: 2 / DETECT: 3 / MASK: 4)
      "cid": 38,// 회사ID
      "logname": "URL패턴탐지",// 로그타입명
      "domain": "10.10.10.247:8080",// 도메인
      "company": "lee_was_test",// 회사명
      "mid": 232,// 에이전트ID
      "pgid": 0,// 보안패턴그룹ID(보안패턴정책일 경우는 해당 값에 ID가 리턴되고, 템플릿정책일 경우는 해당 json 데이터의 tgid ID가 리턴됨)
      "stparamid": 0,// 탐지된정책이 설정된 URL의 파라미터ID(tb_sttree)
      "logtype": 18// 로그타입ID
    }
  ], ...
}

getDomainsForReport

  • 설명: 리포트 발급용 도메인리스트(로그에 실제 탐지된 도메인만 리턴)

[Parameter]

* key
* cid :회사ID
* domaingid :도메인그룹ID

[Sample URL]

* /apigetDomainsForReport?key=인증키&cid=254&domaingid=404

[Response]

{
  "data": [
    {
      "domain": "aaaa.com:443",// 도메인명
      "domaingid": "404",// 도메인그룹ID
      "cid": "254"// 회사ID
    },
    {
      "domain": "aaaa.com",
      "domaingid": "404",
      "cid": "254"
    }, ...
  ]
}

createReport

  • 설명: 보고서용 데이터 집계 API. 지정한 회사, 날짜 간의 리포트 데이터를 생성함.

[Parameter]

* key
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* cid :회사ID

[Sample URL]

* /api/createReport?key=인증키&sdate=2020-01-01&edate=2020-01-31&cid=1

[Response]

"Complete"

getRealTimeInfo

  • 설명: (대시보드 현황판)에이전트가 전송한 APM 데이터 및 연결상태 등을 체크하여 이슈 여부 확인 API

[Parameter]

* key
* cid :회사ID
* aid :에이전트ID

[Sample URL]

* /api/getRealTimeInfo?key=인증키

[Response]

{ 
  "pageNum": 1,
  "dataRow": 500,
  "totalCnt": 313,
  "data": [
  {
    "agname": "TEST-AGENT_1",// 에이전트명
    "diskcheck": "1",// DISK 임계치체크(1: 정상 / 0: 비정상)
    "logtime": "2020-07-20T17:39:32",// 기록시각
    "checkmsg": "",// 이슈가있을 경우 이슈 메세지
    "diskcheckmsg": "",// DISK 이슈가있을 경우 이슈 메세지
    "memcheckmsg": "",// 메모리이슈가 있을 경우 이슈 메세지
    "detectcnt": "0",// 탐지로그건수
    "swap": {
    "total": 0,// swap 전체
    "used": 0,// swap 사용
    "usage": 0,// swap 사용율
    "free": 0// swap 여유
    },
  "disk": {
    "disk0": {
      "total": 73371578368,// DISK 전체사이즈(byte)
      "dir": "C:",// DISK 명
      "usage": 84.04175567626953,// 사용율
      "avail": 11708813312,// 여유공간(byte)
      "used": 61662765056// 사용(byte)
    },
    "disk1": {
      "total": 73369907200,
      "dir": "D:",
      "usage": 1.271469831466675,
      "avail": 72437030912,
      "used": 932876288
    }
  },
  "process": {
    "count": 79,// 프로세스수
    "socket": 18// 열려있는소켓수
  },
  "cpu": {
    "usage": 0.2854730188846588,// CPU 사용율
    "nice": 0,// ni
    "user": 0.16246497631073,// us
    "system": 0.1230080425739288,// sy
    "idle": 99.71452331542969// id
  },
  "filteryn": "Y",// 에이전트의필터 기동 여부
  "loghour": 17,// 기록시각(시)
  "memcheck": "1",// 메모리임계치 체크(1: 정상 / 0: 비정상)
  "logday": 20,// 기록시각(일)
  "logyear": 2020,// 기록시각(년)
  "network": {
    "rxbyte": 0,// 네트워크수신량
    "txpacket": 0,// 네트워크송신 패킷
    "rxpacket": 0,// 네트워크수신 패킷
    "txbyte": 0// 네트워크송신량
  },
  "sid": "101",// 에이전트연결상태 (101 이상이면 ok)
  "logwday": 1,// 기록시각(요일)
  "issue": "N",// 대시보드현황판 표시 여부(이슈가 있을 경우 Y, 없으면 N)
  "cid": 12,// 회사ID
  "diskset": [
    {
      "dir": "C:",// DISK 명
      "usage": 84.04,// DISK 사용율
      "disk": "10.9"// DISK 사용량(GB)
    },
    {
      "dir": "D:",
      "usage": 1.27,
      "disk": "67.46"
    }
  ],
    "aid": 30,// 에이전트ID
    "cpucheck": "1",// CPU 임계치체크(1: 정상 / 0: 비정상)
    "cpucheckmsg": "",// CPU 이슈가있을 경우 이슈 메세지
    "logmon": 7,// 기록시각(월)
  "mem": {
    "total": 16775048,// 전체메모리
    "used": 1673816,// 메모리사용량
    "cached": 0,// 캐시사용량
    "buffer": 0,// 버퍼사용량
    "usage": 9.978010177612305,// 메모리사용량(%)
    "free": 15101232// 여유메모리
  }
}, ...

getRealTimeServerAPMInfo

  • 설명: 대시보드 표시용 매니져서버 시스템현황 데이터 획득 API

[Parameter]

* key
* cid : 회사ID (사용하지 않음)
* aid : 에이전트ID (사용하지 않음)
* sdate : 검색날짜지정(시작)
* edate : 검색날짜지정(끝)
* dataRow : 한페이지에 표시될 리스트의 숫자(페이징 처리)
* pageNum : 현재페이지
* totalCnt : 조회건수총계

[Sample URL]

* /api/getRealTimeServerAPMInfo?key=인증키

[Response]

{
  "netstat": [
    {
      "laddr_port": 10016,// 서버PORT
      "raddr_port": 36714,// 클라이언트PORT
      "pid": 5870,// 프로세스ID
      "laddr_ip": "1.1.1.1",// 서버IP
      "raddr_ip": "2.2.2.2",// 클라이언트IP
      "status": "ESTABLISHED"// 네트워크연결 상태(ESTABLISHED, TIME_WAIT 등등)
    }, ...
  ],
  "data": [
    {
      "rxbyte": 113903,// 수신량(네트워크)
      "network_unit": "Kbyte",// 네트워크사용량 표시 단위
      "txbyte_title": 455.15,// 네트워크송신량 표시용
      "rxpacket": 182,// 수신패킷수
      "txbyte": 466075,// 송신량(네트워크)
      "disk": [// 디스크사용현황 disk: [{usage, dir, disk}]
    {
      "usage": 40.6,// 디스크사용량(%)
      "dir": "/",// 파티션(디렉토리) 명
      "disk": 123.6// 남은디스크 용량(GB)
    },
    {
      "usage": 15.8,
      "dir": "/boot",
      "disk": 0.4
    },
    {
      "usage": 13.8,
      "dir": "/data",
      "disk": 1475.4
    }
    ],
      "txpacket": 114374,// 송신패킷수
      "cpu": 7.5,// CPU 사용량
      "logtime": "2020-07-20T10:56:47",// 시각
      "mem_java_use": "9.0",// java 사용메모리 (사용안함)
      "mem_postgres_use": "139.3",// postgres 사용메모리 (사용안함)
      "rxbyte_title": 111.23,// 네트워크수신량 표시용
      "mem": 45.2// 메모리사용량
    }, ...
  ]
}

getRealTimeAlertLog (대시보드 > 시스템)

  • 설명: 대시보드 표시용 탐지로그 데이터 획득 API

[Parameter]

* key
* cid :회사ID (사용하지 않음)
* aid :에이전트ID
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* dataRow :한페이지에 표시될 리스트의 숫자(페이징 처리)
* pageNum :현재페이지
* totalCnt :조회건수총계

[Sample URL]

* /api/getRealTimeAlertLog?key=인증키&aid=2

[Response]

{
  "data": [
    {
      "key": "2020-07-19 16:00:00",// 로그발생일
      "count": 100// 탐지건수
    },
    {
      "key": "2020-07-19 17:00:00",
      "count": 200
    }, ....
  ]
}

* 결과가없는 경우 : 결과가 없는 경우라고 null로 리턴되지 않음. 탐지건수가 0 으로 세팅하여 리턴 함

{
  "data": [
    {
      "key": "2020-07-19 16:00:00",// 로그발생일
      "count": 0// 탐지건수
    },
    {
      "key": "2020-07-19 17:00:00",
      "count": 0
    }, ....
  ]
}

getRealTimeAPMInfo (대시보드 > 시스템)

  • 설명: 에이전트가 전송하는 APM 데이터(cpu, disk, memory, network, process) 정보 획득 API

[Parameter]

* key
* cid :회사ID (사용하지 않음)
* aid :에이전트ID
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* dataRow :한페이지에 표시될 리스트의 숫자(페이징 처리)
* pageNum :현재페이지
* totalCnt :조회건수총계

[Sample URL]

* /api/getRealTimeAPMInfo?key=인증키&aid=2

[Response]

{
  "processSet": [
    {
      "command": "httpd",// 프로세스명
      "cpu": "0.2",// (해당프로세스의) CPU 사용량
      "io_read": "0",// IO 사용량(읽기)
      "io_write": "0",// IO 사용량(쓰기)
      "mem": "0.2"// (해당프로세스의) 메모리 사용량
    }, ...
  ],
  "data": [
    {
      "rxbyte": 0.01,// 수신량(네트워크)
      "rxbyte_pred": 0,// 수신량예측치(네트워크)
      "socket": 44,// 소켓오픈 수
      "network_unit_pred": "byte",// 예측치의네트워크 사용량 표시 단위
      "txbyte_pred": 0,// 송신량예측치(네트워크)
      "swap": 0.1,// 스왑메모리 사용량
      "socket_pred": "0",// 소켓오픈 수 예측치
      "mem_pred": "0.00",// 메모리사용량 예측치
      "network_unit": "Mbyte",// 네트워크사용량 표시 단위
      "process": 339,// 동작프로세스 수
      "txbyte": 0.3,// 송신량(네트워크)
      "process_pred": "0",// 동작프로세스 수 예측치
    "cpu_pred": [// CPU 사용량예측치
      0,// 예측치최소
      0,// 예측치최대
      0// 예측치평균
    ],
      "logtime": "2020-07-20T11:13:10",// 시각
      "swap_pred": "0.00",// 스왑메모리사용량 예측치
      "cpu": 1.73,// CPU 사용량
      "mem": 8.51// 메모리사용량
    }, ...
  ],
  "diskset": [
    {
      "dir": "/data",// 파티션(디렉토리) 명
      "usage": 19.46,// 사용율(%)
      "disk": "1401.83"// 남은디스크 용량(GB)
    }, ...
  ]
}

* 결과가없는 경우 : {"data": [], "processSet": [], "diskset": []}

get_dash

  • 설명: 대시보드 출력 데이터 획득 (대시보드 > 로그)

[Parameter]

* key
* sso :sso 일경우에만 1로 세팅하여 요청
* cid :회사ID
* domaingid :도메인그룹ID
* domain :도메인
* sdate :검색날짜지정(시작)
* edate :검색날짜지정(끝)
* selected_month :시작과 끝이 같은 월에 있을 경우 해당 YYYYMM 을 세팅하여 요청

[Sample URL] ex) 6월1일~6월29일 간의 대시보드 데이터(일자별 데이터 요청)

/api/get_dash?key=인증키&sdate=2020-06-01&edate=2020-06-29&selected_month=202006

[Response]

{
  "total": "9389",// 총탐지건수
  "company_label": [// 회사명
    "API연동테스트"
  ],
  "company_count": [// 회사별공격건수
    9389
  ],
  "domaing_label": [// 도메인그룹명
  "API연동테스트_차단"
  ],
  "domaing_count": [// 도메인그룹별탐지건수
    9389
  ],
  "country_label": [// 국가코드
    "US",
    "CN",
    "CA",
    "BR",
    "HK",
    "KR",
    "00",
    "TH",
  ],
  "country_count": [// 국가별탐지건수
    2712,
    2083,
    1807,
    1211,
    794,
    606,
    44,
    38,
  ],
  "month_label": [// 공격일자(selected_month 파라미터가 존재하는 경우에는 일자별 결과를 리턴)
    "2020-06-01",
    "2020-06-02",
    "2020-06-03",
    "2020-06-04",
    "2020-06-05",
    "2020-06-06",
    "2020-06-07",
    "2020-06-08",
    "2020-06-09",
    "2020-06-10",
    "2020-06-11",
    "2020-06-12",
    "2020-06-13",
    "2020-06-14",
    "2020-06-15",
    "2020-06-16",
    "2020-06-17",
    "2020-06-18",
    "2020-06-19",
    "2020-06-20",
    "2020-06-21",
    "2020-06-22",
    "2020-06-23",
    "2020-06-24",
    "2020-06-25",
    "2020-06-26",
    "2020-06-27",
    "2020-06-28",
    "2020-06-29"
  ],
  "month_count": [// 일자별탐지건수
    0,
    1,
    0,
    0,
    0,
    0,
    1,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    1,
    3,
    2,
    1818
  ],
  "domain_label": [// 도메인명
    "52.78.214.250:8080",
    "14.41.2.148",
    "14.41.2.147",
    "169.254.169.254",
    "[::ffff:a9fe:a9fe]",
    "example.com",
    "sdilej.eu"
  ],
  "domain_count": [// 도메인별탐지건수
    6345,
    2096,
    764,
    64,
    64,
    32,
    2
  ],
  "victim_label": [// 공격대상에이전트
    "52.78.214.250",
    "14.41.2.148",
    "14.41.2.147"
  ],
  "victim_count": [// 공격대상에이전트별 탐지건수
    6525,
    2098,
    766
  ],
  "url_label": [// 탐지URL
    "/manager/WEB-INF/jsp/401.jsp",
    "/",
    "/is_test",
    "/struts2-rest-showcase/WEB-INF/content/orders-index.jsp",
    "/struts2-rest-showcase/WEB-INF/content/orders-edit.jsp",
    "/latest/dynamic/instance-identity/document",
    "/webgoat/service/lessonmenu.mvc",
    "/1.php",
    "/test.php",
    "/qq.php"
  ],
  "url_count": [// 탐지URL별 탐지건수
    5484,
    253,
    128,
    92,
    79,
    64,
    48,
    35,
    30,
    28
  ],
  "group_label": [// 패턴그룹명
    "웹쉘-공통",
    "봇탐지(User-Agent)",
    "SQL injection",
    "크로스사이트스크립팅(XSS)",
    "Blind SQL injection",
    "명령어삽입"
  ],
  "group_count": [// 패턴그룹별탐지건수
    2786,
    90,
    39,
    28,
    3,
    2
  ],
  "attacker_label": [// 공격자
    "52.233.26.34",
    "23.99.196.47",
    "104.41.41.142",
    "205.185.115.91",
    "223.113.103.183",
    "103.96.149.222",
    "211.53.128.178",
    "122.10.100.248",
    "111.67.203.28",
    "103.1.40.173"
  ],
  "attacker_count": [// 공격자별탐지건수
    1806,
    1720,
    1204,
    774,
    695,
    688,
    567,
    550,
    538,
    242
  ],
  "atype_label": [// 로그타입명
    "URL IP 검사",
    "URL패턴탐지",
    "보안패턴탐지",
    "헤더필드값검사",
    "메소드IP정책위반 탐지",
    "도메인IP 검사"
  ],
  "atype_count": [// 로그타입별탐지건수
    3431,
    3005,
    2858,
    90,
    3,
    2
  ],
  "daily_label": [],// 시간대(하루치를 조회할 경우 시간대가 리턴됨, 1시간간격)
  "daily_count": []// 시간대별탐지건수
}

[Sample URL] 6월 1일 ~ 7월 5일간의 대시보드 데이터(월별 데이터 요청)

/api/get_dash?key=인증키&sdate=2020-06-01&edate=2020-07-05

[Response]

{
  "total": "9389",// 총탐지건수
  "company_label": [// 회사명
    "API연동테스트"
  ],
  "company_count": [// 회사별공격건수
    9389
  ],
  "domaing_label": [// 도메인그룹명
    "API연동테스트_차단"
  ],
  "domaing_count": [// 도메인그룹별탐지건수
    9389
  ],
  "country_label": [// 국가코드
    "US",
    "CN",
    "CA",
    "BR",
    "HK",
    "KR",
    "00",
    "TH",
    "IT",
  ],
  "country_count": [// 국가별탐지건수
    2712,
    2083,
    1807,
    1211,
    794,
    606,
    44,
    38,
    16,
  ],
  "month_label": [// 월(selected_month 파라미터가 존재하지 않을 경우 월별 결과를 리턴)
    "202006",
    "202007"
  ],
  "month_count": [// 월별탐지건수
   2760,
   124
  ],
  "domain_label": [// 도메인명
    "52.78.214.250:8080",
    "14.41.2.148",
    "14.41.2.147",
    "169.254.169.254",
    "[::ffff:a9fe:a9fe]",
    "example.com",
    "sdilej.eu"
  ],
  "domain_count": [// 도메인별탐지건수
    6345,
    2096,
    764,
    64,
    64,
    32,
    5,
  ],
  "victim_label": [// 공격대상에이전트
    "52.78.214.250",
    "14.41.2.148",
    "14.41.2.147"
  ],
  "victim_count": [// 공격대상에이전트별 탐지건수
    6525,
    2098,
    766
  ],
    "url_label": [// 탐지URL
    "/manager/WEB-INF/jsp/401.jsp",
    "/",
    "/is_test",
    "/struts2-rest-showcase/WEB-INF/content/orders-index.jsp",
    "/struts2-rest-showcase/WEB-INF/content/orders-edit.jsp",
    "/latest/dynamic/instance-identity/document",
    "/webgoat/service/lessonmenu.mvc",
    "/1.php",
    "/test.php",
    "/qq.php"
  ],
  "url_count": [// 탐지URL별 탐지건수
    5484,
    253,
    128,
    92,
    79,
    64,
    48,
    35,
    30,
    28
  ],
  "group_label": [// 패턴그룹명
    "웹쉘-공통",
    "봇탐지(User-Agent)",
    "SQL injection",
    "크로스사이트스크립팅(XSS)",
    "Blind SQL injection",
    "명령어삽입"
  ],
  "group_count": [// 패턴그룹별탐지건수
    2786,
    90,
    39,
    28,
    3,
    2
  ],
  "attacker_label": [// 공격자
    "52.233.26.34",
    "23.99.196.47",
    "104.41.41.142",
    "205.185.115.91",
    "223.113.103.183",
    "103.96.149.222",
    "211.53.128.178",
    "122.10.100.248",
    "111.67.203.28",
    "103.1.40.173"
  ],
  "attacker_count": [// 공격자별탐지건수
    1806,
    1720,
    1204,
    774,
    695,
    688,
    567,
    550,
    538,
    242
  ],
  "atype_label": [// 로그타입명
    "URL IP 검사",
    "URL패턴탐지",
    "보안패턴탐지",
    "헤더필드값검사",
    "메소드IP정책위반 탐지",
    "도메인IP 검사"
  ],
  "atype_count": [// 로그타입별탐지건수
    3431,
    3005,
    2858,
    90,
    3,
    2
  ],
    "daily_label": [],// 시간대(하루치를 조회할 경우 시간대가 리턴됨, 1시간간격)
    "daily_count": []// 시간대별탐지건수
}

(타함수이나같은 매뉴에서 사용되기때문에 참조용)

특정일(하루) 의 대시보드 데이터

[Sample URL]

/api/getRealTimeAlertLog?key=인증키=2020-06-29%2000:00:00&edate=2020-06-29%2023:59:59

[Response]

{
  "data": [
    {
      "count": 88,// 시간대별탐지건수
      "key": "2020-06-29 00:00:00"// 시간대
    },
    {
      "count": 92,
      "key": "2020-06-29 01:00:00"
    },
    {
      "count": 92,
      "key": "2020-06-29 02:00:00"
    }, ...
  ]
}

checkdomainserver

  • 설명: 현재 서버에 파라미터로 전달된 도메인과 일치하는 도메인이 있는지 체크하는 함수. 내부함수로써 UI 구현 필요 없음.

[Parameter]

* domain
* serverip

[Sample URL]

* /api/checkdomainserver?key=인증키&domain=aaa.com&serverip=1.1.1.1

[Response]

{"serverip": "1.1.1.1", "domain": "aaa.com"}
* 결과가없는 경우 : {"serverip": "", "domain": ""}

subserverMgm

  • 설명: 서브 서버 등록 및 수정 함수. 마스터 매니져서버일 경우에만 호출.

[Parameter]

* key
* ip (배열)
* port (배열)
* maxag (배열)

[Sample URL]

* /api/subserverMgm?key=인증키&ip=1.1.1.1&port=1&maxag=10&ip=1.1.1.2&port=2&maxag=20&ip=1.1.1.3&port=3&maxag=30

[Response]

"Complete"

getsubserverlist

  • 설명: 서브 서버 리스트 획득 함수. 마스터 매니져서버일 경우에만 호출.

[Parameter]

* key

[Sample URL]

* /api/getsubserverlist?key=인증키

[Response]

{
  "data": [
    {
      "port": "10012",
      "maxag": "500",// 에이전트연결 최대 허용 갯수
      "ip": "52.78.94.74"
    },
    {
      "port": "10012",
      "maxag": "500",
      "ip": "10.10.9.9"
    }
  ]
}
* 결과가없는 경우 : {"data": []}

finddomain

  • 설명: 마스터 서버에서 가지고 있는 서브 서버를 대상으로 파라미터로 전달하는 도메인과 일치(또는 도메인에 포함) 하는것이 있는지 체크하는 함수. 마스터 매니져서버일 경우에만 호출.

[Parameter]

* key
* domain

[Sample URL]

* /api/finddomain?key=인증키&domain=도메인

[Response]

[
  {
    "serverip": "52.78.94.74",
    "domain": "aaa.com:63435"
  },
  {
    "serverip": "52.78.94.74",
    "domain": "aaa.com:443"
  },
  {
    "serverip": "52.78.94.74",
    "domain": "aaa.com:25"
  },
  {
    "serverip": "52.78.94.74",
    "domain": "aaa.com"
  },
  {
    "serverip": "52.78.94.74",
    "domain": "aaa.com:41298"
  }
]
* 결과가없는 경우 : []

results matching ""

    No results matching ""

    results matching ""

      No results matching ""