Exemple #1
0
def download_file(sessionID):
    '''GET'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/download/files/(?P<filename>([^/]+))"
    url = "http://127.0.0.1:8000/ITMCP/v1/download/files/"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: download/files/"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print
    r = requests.get(url + filename, headers=headers)
    print "api:", url
    print
    print "case 2: download/files/filaname"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "download_file done!"
Exemple #2
0
def eas_anomaly(sessionID):
    '''GET'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/anomalies/(?P<anomalyID>([^/]+))"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/anomalies"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: anomalies"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print
    anomalyID = "a1075029-e5b9-4e9c-a009-1381b70f1637"
    r = requests.get(url + "/" + anomalyID, headers=headers)
    print "api:", url
    print
    print "case 2: anomalies/anomalyID"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "eas_anomaly done!"
Exemple #3
0
def x_scores(sessionID):
    '''
    GET
    default: all scores, 1
    specify pk, return the corresponding pk-score, 5
    '''
    # no specific
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/scores/(?P<pk>(arsScores)|(mrsScores)|(ersScores)|(weights)|(riskLevel))"
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/scores"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/scores"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }

    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: x_scores"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    # if dat["status"] == 0 and dat["sessionTimeout"] == 3600:
    if dat["status"] == 0:
        print True
    else:
        print False
    print
Exemple #4
0
def anomaliesSummary(sessionID):
    '''POST'''
    time_now = time.mktime(datetime.datetime.now().timetuple())
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/anomaliesSummary/eas"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    data = {
        "filter": [{
            "type": 3,
            "value": ["*"]
        }],
        "startTimestamp": 1607097600,
        "endTimestamp": 1607702400,
        "page": 1,
        "pageSize": 20
    }
    r = requests.post(url, headers=headers, json=data)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: anomaliesSummary/eas"
    print "\t", "POST:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print
Exemple #5
0
 def post_checkin(self):
     time_now = time.mktime(datetime.datetime.now().timetuple())
     url = session_url
     password = hashlib.sha256(username).hexdigest()
     hash_str = hashlib.sha256(username + str(int(time_now)) +
                               password).hexdigest()
     passwordHash = base64.b64encode(hash_str)[:12]
     body = {
         "username": username,
         "timestamp": int(time_now),
         "passwordHash": passwordHash,
         "deviceType": 1,
         "connectionType": 0
     }
     res = requests.post(url, json=body)
     print "-" * 50
     print "POST ", "API: ", "check-in", res.status_code, url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
     return data["sessionID"]
Exemple #6
0
def eas_report(sessionID):
    '''POST'''
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/report/eas"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    data = {
        "filter": [{
            "type": 3,
            "value": ["*"]
        }],
        "startTimestamp": 1607616000,
        "endTimestamp": 1608220800,
        "top": 5
    }
    r = requests.post(url, headers=headers, json=data)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: report/eas"
    print "\t", "POST:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print

    ID = "cc9e52e6-39b4-4b03-819b-0dcbeac5c5af"
    r = requests.post(url + "/" + ID, headers=headers, json=data)
    print "api:", url
    print
    print "case 2: report/eas/ID"
    print "\t", "POST:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "eas_report done!"
Exemple #7
0
 def keppalive(self):
     res = requests.get(self.url, headers=headers)
     print "-" * 50
     print "GET ", "API: ", "login-out", res.status_code
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #8
0
 def delete_register(self):
     res = requests.delete(self.url, headers=headers)
     print "-" * 50
     print "DELETE ", "API: ", "register", res.status_code, self.url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #9
0
 def get_easParameters(self):
     res = requests.get(self.url, headers=headers)
     print "-" * 50
     print "GET ", "API: ", "eas-parameters", res.status_code, self.url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #10
0
def print_info(type, verbose, res, url, body):
    print "+" + "-" * 100 + "+"
    print "%s " % type, "API: ", "%s" % verbose, res.status_code, url
    if type == "POST":
        print "[BODY] ", body
    print "[DATA] ", res.content
    data = json_loads_byteified(res.content)
    if data["status"] == 0:
        print True
    else:
        print False
    print "+" + "-" * 100 + "+"
Exemple #11
0
 def get_configurations(self):
     url = device_url + "/configurations"
     res = requests.get(url, headers=headers)
     print "-" * 50
     print "GET ", "API: ", "configurations", res.status_code, url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #12
0
 def get_ersVersion(self):
     self.url = self.url + "/version"
     res = requests.get(self.url, headers=headers)
     print "-" * 50
     print "GET ", "API: ", "ers-models", res.status_code, self.url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #13
0
def eas_parameters(sessionID):
    '''GET/POST'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/eas/parameters/(?P<paramID>([^/]+))"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_CD + "/eas/parameters"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    data = {
        "parameters": {
            "66a84d56-c747-998a-709e-b2b159a4cd86_86eb7d08-3cf5-4455-9f05-12fed955e142":
            {
                "name": {
                    "en": "TEST-PARAMETER",
                    "zh": "测试"
                },
                "values": ["172.22.118.1", "1.1.1.1"],
                "key": "TEST",
                "type": "user-set",
                "inputType": 1,
                "description": {
                    "en":
                    "Define remote service applications. You can add multiple applications, use a comma to separate multiple items.",
                    "zh": "测试"
                }
            }
        }
    }
    # r1 = requests.get(url, headers=headers)
    r2 = requests.post(url, headers=headers, json=data)
    # print "------------------------------------------------------"
    # print "api:", url
    # print
    # print "case 1: eas/parameters"
    # print "\t", "GET:", r1.status_code
    # print "\t", r1.content
    # dat = json_loads_byteified(r1.content)
    # if dat["status"] == 0:
    #     print True
    # else:
    #     print False

    print "api:", url
    print "case 2: eas/parameters"
    print "\t", "POST:", r2.status_code
    print "\t", r2.content
    dat = json_loads_byteified(r2.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print
Exemple #14
0
 def post_file(self):
     body = {"filename": filename}
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "upload-file", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #15
0
 def post_mrs_tasks(self):
     body = {"chosenGroups": [], "action": 5}
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "mrs-tasks", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #16
0
def login_out(sessionID):
    # url = "http://172.22.118.99:8080/ITMCP/v1/sessions/" + sessionID
    url = "http://127.0.0.1:8000/ITMCP/v1/sessions/" + sessionID
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ":" + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: keeplive-normal"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0 and dat["sessionTimeout"] == 3600:
        print True
    else:
        print False
    print

    # url = "http://172.22.118.99:8080/ITMCP/v1/sessions/" + sessionID
    url = "http://127.0.0.1:8000/ITMCP/v1/sessions/" + sessionID
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ":" + sessionID)
    }
    r = requests.delete(url, headers=headers)
    print "case 2: checkout"
    print "\t", "DELETE:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0 and dat["username"] == username and dat[
            "sessionID"] == sessionID:
        print True
    else:
        print False

    print "keeplive done!"
Exemple #17
0
 def post_ersModels(self):
     """upload ers model,add"""
     body = {"filename": "filename.zip"}
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "ers-models", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #18
0
 def delete_ersModels(self):
     """delete ers model"""
     body = {"modelID_list": []}
     res = requests.delete(self.url, headers=headers, json=body)
     print "-" * 50
     print "DELETE ", "API: ", "ers-models", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #19
0
 def get_blacklist(self):
     """return blacklist info"""
     # e.g. ars/blacklists
     self.url = self.url + "ars/blacklists"
     res = requests.get(self.url, headers=headers)
     print "-" * 50
     print "GET ", "API: ", "conf-xrs", res.status_code, self.url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #20
0
 def get_easParameters(self, headers, paramID=None):
     print "+" + "-" * 100 + "+"
     if not paramID:
         res = requests.get(self.url, headers=headers)
         print "GET ", "API: ", "eas-parameters", res.status_code, self.url
     else:
         self.url = self.url + '/' + paramID
         res = requests.get(self.url, headers=headers)
         print "GET ", "API: ", "eas-parameters", res.status_code, self.url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "+" + "-" * 100 + "+"
Exemple #21
0
 def get_easAnomaly(self, anomalyID=None):
     url = device_url + "/anomalies"
     print "-" * 50
     if not anomalyID:
         res = requests.get(url, headers=headers)
         print "GET ", "API: ", "eas-anomaly", res.status_code, url
     else:
         res = requests.get(url + "/" + anomalyID, headers=headers)
         print "GET ", "API: ", "eas-anomaly", res.status_code, url
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #22
0
 def post_register(self):
     body = {
         "deviceID": deviceID_CD,
         "deviceName": "test-ucss",
         "logSources": []
     }
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "register", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #23
0
 def post_confMrs(self):
     body = {
         "chosenDLPPolicies": [],
         "interval":
         7200,
         "blacklist": [{
             "type": 1,
             "value": []
         }, {
             "type": 2,
             "value": []
         }, {
             "type": 3,
             "value": []
         }, {
             "type": 4,
             "value": []
         }, {
             "type": 5,
             "value": []
         }],
         "topN":
         0,
         "version":
         0,
         "uploadToLab":
         True,
         "retrospectiveDays":
         7
     }
     self.url = self.url + "mrs"
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "conf-xrs", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #24
0
def configurations(sessionID):
    # url = "http://172.22.118.99:8080/ITMCP/v1/devices/" + deviceID + "/configurations"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_CD + "/configurations"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: normal"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "configurations done!"
Exemple #25
0
def mrs_tasks(sessionID):
    # url = "http://172.22.118.99:8080/ITMCP/v1/devices/" + deviceID + "/tasks/mrs/mrs-task-id"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_CD + "/tasks/mrs/04a38d73-d3eb-4e39-9278-284ab8e700c3"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    data = {"chosenGroups": ["all"], "action": 5}
    r = requests.post(url, headers=headers, json=data)
    print "api:", url
    print
    print "case 1: mrs_tasks"
    print "\t", "POST:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    # if dat["status"] == 0 and dat["sessionTimeout"] == 3600:
    if dat["status"] == 0:
        print True
    else:
        print False
    print "mrs_tasks done!"
Exemple #26
0
def data_info(sessionID):
    '''GET'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/data/info"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/data/info"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: data_info"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "data_info done!"
Exemple #27
0
def tasks_status(sessionID):
    '''GET'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID + "/tasks/mrs"
    url = "http://127.0.0.1:8000/ITMCP/v1/devices/" + deviceID_BJ + "/tasks/mrs"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID)
    }
    r = requests.get(url, headers=headers)
    print "-" * 50
    print "api:", url
    print
    print "case 1: tasks_status"
    print "\t", "GET:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    # if dat["status"] == 0 and dat["sessionTimeout"] == 3600:
    if dat["status"] == 0:
        print True
    else:
        print False
    print "task_status done!"
Exemple #28
0
 def post_confArs(self):
     body = {
         "subsystems": [],
         "interval":
         7200,
         "chosenGroups": [],
         "blacklist": [{
             "type": 1,
             "value": []
         }, {
             "type": 2,
             "value": []
         }, {
             "type": 3,
             "value": []
         }, {
             "type": 4,
             "value": []
         }, {
             "type": 5,
             "value": []
         }],
         "topN":
         0,
         "version":
         0
     }
     self.url = self.url + "ars"
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "conf-xrs", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50
Exemple #29
0
def upload_file(sessionID):
    '''POST'''
    # url = "http://127.0.0.1:8000/ITMCP/v1/upload/files/(?P<filename>([^/]+))"
    url = "http://127.0.0.1:8000/ITMCP/v1/upload/files/"
    headers = {
        'Authorization':
        'basic ' + base64.b64encode(clientIP + ':' + sessionID),
        'content-type': 'application/json'
    }
    data = {"filename": filename}
    r = requests.post(url, headers=headers, json=data)
    print "------------------------------------------------------"
    print "api:", url
    print
    print "case 1: upload"
    print "\t", "POST:", r.status_code
    print "\t", r.content
    dat = json_loads_byteified(r.content)
    if dat["status"] == 0:
        print True
    else:
        print False
    print "upload_file done!"
Exemple #30
0
 def post_itmConfigs(self):
     body = {
         "ars": {
             "subsystems": [],
             "interval":
             7200,
             "chosenGroups": [],
             "blacklist": [{
                 "type": 1,
                 "value": []
             }, {
                 "type": 2,
                 "value": []
             }, {
                 "type": 3,
                 "value": []
             }, {
                 "type": 4,
                 "value": []
             }, {
                 "type": 5,
                 "value": []
             }],
             "topN":
             0,
             "version":
             0
         },
         "mrs": {
             "chosenDLPPolicies": [],
             "interval":
             7200,
             "blacklist": [{
                 "type": 1,
                 "value": []
             }, {
                 "type": 2,
                 "value": []
             }, {
                 "type": 3,
                 "value": []
             }, {
                 "type": 4,
                 "value": []
             }, {
                 "type": 5,
                 "value": []
             }],
             "topN":
             0,
             "version":
             0,
             "uploadToLab":
             True,
             "retrospectiveDays":
             7
         },
         "ers": {
             "interval":
             7200,
             "ChosenModels": [],
             "modelParameterMap": [],
             "blacklist": [{
                 "type": 1,
                 "value": []
             }, {
                 "type": 2,
                 "value": []
             }, {
                 "type": 3,
                 "value": []
             }, {
                 "type": 4,
                 "value": []
             }, {
                 "type": 5,
                 "value": []
             }],
             "topN":
             0,
             "version":
             1
         }
     }
     res = requests.post(self.url, headers=headers, json=body)
     print "-" * 50
     print "POST ", "API: ", "itm-configs", res.status_code, self.url
     print "[BODY] ", body
     print "[DATA] ", res.content
     data = json_loads_byteified(res.content)
     if data["status"] == 0:
         print True
     else:
         print False
     print "-" * 50