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"
}
]
* 결과가없는 경우 : []