Ejemplo n.º 1
0
 def send_data(self):
     try:
         servicenw_user = Servicenowmodel.objects.filter(
             source_id__user_id=self.request.user).first()
         servicenw_flag = servicenw_user and servicenw_user.flag
         if servicenw_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             url, username, password, options_str = servicenw_user.url, servicenw_user.username, servicenw_user.password, servicenw_user.config
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             snw_obj = ServiceNowEvents(url, username, password)
             snw_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(snw_response)
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 msg = "New SecurityScorecard Issue is reported on {}.".format(
                     current_time)
                 servicenow_payload["short_description"] = msg
                 servicenow_payload['description'] = json.dumps(
                     each_record[0])
                 fresh_resp = snw_obj.create_incident(**servicenow_payload)
                 # snw_resp = snw_obj.create_incident(**each_record[0])
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 2
0
 def send_data(self):
     try:
         agilecrm_user = Agilecrmmodel.objects.filter(
             source_id__user_id=self.request.user).first()
         agilecrm_flag = agilecrm_user and agilecrm_user.flag
         if agilecrm_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             app_url, username, api_key, options_str = agilecrm_user.url, agilecrm_user.username, agilecrm_user.api_key, agilecrm_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             agilecrm_obj = AgilecrmEvents(username, api_key, app_url)
             agilecrm_response = collect_events(access_key, domain,
                                                **options)
             data = self.process_ssc_response(agilecrm_response)
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 msg = "New SecurityScorecard Issue is reported on {}.".format(
                     current_time)
                 agilecrm_payload["subject"] = msg
                 agilecrm_payload[
                     "requester_email"] = self.request.user.email
                 agilecrm_payload['name'] = self.request.user.first_name
                 agilecrm_payload['html_text'] = json.dumps(each_record[0])
                 fresh_resp = agilecrm_obj.create_incident(
                     **agilecrm_payload)
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 3
0
 def send_data(self):
     try:
         jira_user = models.Jira.objects.filter(
             user_id=self.request.user).first()
         jira_flag = jira_user and jira_user.flag
         if jira_flag:
             url, username, api_token, options_str = jira_user.app_url, jira_user.email_id, jira_user.api_key, jira_user.jira_config
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             jira_obj = views.Connector(url, username, api_token)
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             sc_jira_response = collect_events(access_key, domain,
                                               **options)
             data = self.process_ssc_response(sc_jira_response)
             logger.info("Jira is start creating issues%s ",
                         self.request.user.email)
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 msg = "New SecurityScorecard Issue is reported on {}.".format(
                     current_time)
                 payload["fields"]["summary"] = msg
                 payload["fields"]['description']['content'][0]['content'][
                     0]['text'] = json.dumps(each_record[0])
                 jira_resp = jira_obj.create_issue(**payload)
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 4
0
def ssc_test(request):
    try:
        token = request.POST.get('api_token',None)
        domain = request.POST.get('domain',None)
        options = {"fetch_company_overall":True}
        sc_response = collect_events(token, domain, **options)
        if sc_response['overall_resp'] is  not None:
            return HttpResponse("Success")
    except Exception as e:
            logger.error("Unexpected Exception occured: %s ", e)
            return e
Ejemplo n.º 5
0
def send_scheduled_alert():
    from django.contrib.auth.models import User
    from Jira.models import Jira
    from Slack.models import Slack
    from Slack.utils import send_message_to_slack, dict_to_message
    from Jira.views import Connector
    from .models import SSCConnector
    from .config import payload

    users = User.objects.all()
    for user in users:
        ssc = SSCConnector.objects.filter(user_id=user).first()
        slack = Slack.objects.filter(source_id__user_id=user).first()
        jira = Jira.objects.filter(user_id=user).first()

        slack_flag = slack and slack.flag
        jira_flag = jira and jira.flag
        ssc_flag = ssc and ssc.flag
        if ssc_flag and (slack_flag or jira_flag):

            access_key, base_url, domain = ssc.api_token, ssc.api_url, ssc.domain
            sc_response = collect_events(access_key, domain)
            for security_factor in sc_response:
                for each_json in sc_response[security_factor]:
                    if isinstance(each_json, list):
                        for each in each_json:
                            if jira_flag:
                                url, username, api_token = jira.app_url, jira.email_id, jira.api_key
                                jira_obj = Connector(url, username, api_token)
                                payload["fields"]['description']['content'][0][
                                    'content'][0]['text'] = json.dumps(each)
                                jira_resp = jira_obj.create_issue(**payload)
                            if slack:
                                send_message_to_slack(
                                    token=slack.auth_token,
                                    channel=slack.default_channel,
                                    message=each)
                    else:
                        if jira_flag:
                            url, username, api_token = jira.app_url, jira.email_id, jira.api_key
                            jira_obj = Connector(url, username, api_token)
                            payload["fields"]['description']['content'][0][
                                'content'][0]['text'] = json.dumps(each_json)
                            # jira_resp = jira_obj.create_issue(**payload)
                        if slack:
                            send_message_to_slack(
                                token=slack.auth_token,
                                channel=slack.default_channel,
                                message=each_json)
Ejemplo n.º 6
0
 def send_data(self):
     try:
         rapid_user  =  Rapid.objects.filter(source_id__user_id =  self.request.user).first()
         rapid_flag =  rapid_user and rapid_user.flag
         if rapid_flag:
             access_key, base_url, domain = self.ssc_user.api_token,  self.ssc_user.api_url,  self.ssc_user.domain
             url, token, options_str   = rapid_user.url, rapid_user.api_key, rapid_user.config
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             rapid_obj =  Rapidseven(url, token)
             rapid_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(rapid_response)
             for each_record in data:
                 rapid_resp = rapid_obj.create_log(each_record[0])
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 7
0
 def send_data(self):
     try:
         jitbit_user = Jitbitmodel.objects.filter(
             source_id__user_id=self.request.user).first()
         jitbit_flag = jitbit_user and jitbit_user.flag
         if jitbit_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             email, password, url, categoryid, options_str = jitbit_user.username, jitbit_user.password, jitbit_user.domain, jitbit_user.categoryId, jitbit_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             jitbit_obj = Jitbitticket(email, password, categoryid, url)
             jitbit_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(jitbit_response)
             for each_record in data:
                 jitbit_resp = jitbit_obj.create_ticket(str(each_record[0]))
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 8
0
 def send_data(self):
     try:
         zohodesk_user = Zohomodel.objects.filter(
             source_id__user_id=self.request.user).first()
         zohodesk_flag = zohodesk_user and zohodesk_user.flag
         if zohodesk_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             token, contact_id, department_id, org_id, options_str = zohodesk_user.token, zohodesk_user.contact_id, zohodesk_user.department_id, zohodesk_user.org_id, zohodesk_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             zoho_obj = ZohodeskEvents(contact_id, department_id, token,
                                       org_id)
             zoho_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(zoho_response)
             for each_record in data:
                 zoho_resp = zoho_obj.create_ticket(**each_record[0])
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 9
0
 def send_data(self):
     try:
         pagerduty_user = Pagerdutymodel.objects.filter(
             source_id__user_id=self.request.user).first()
         pagerduty_flag = pagerduty_user and pagerduty_user.flag
         if pagerduty_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             email, api_key, service_id, options_str = pagerduty_user.email, pagerduty_user.api_key, pagerduty_user.service_id, pagerduty_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             pagerduty_obj = Pagerdutyincident(email, api_key, service_id)
             pagerduty_response = collect_events(access_key, domain,
                                                 **options)
             data = self.process_ssc_response(pagerduty_response)
             for each_record in data:
                 fresh_resp = pagerduty_obj.create_incident(
                     str(each_record[0]))
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 10
0
 def send_data(self):
     try:
         opsgenie_user = Opsgeniemodel.objects.filter(
             source_id__user_id=self.ssc_user.user).first()
         opsgenie_flag = opsgenie_user and opsgenie_user.flag
         if opsgenie_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             api_key, service_id, options_str = opsgenie_user.api_key, opsgenie_user.service_id, opsgenie_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             opsgenie_obj = Opsgenieincident(api_key, service_id)
             opsgenie_response = collect_events(access_key, domain,
                                                **options)
             data = self.process_ssc_response(opsgenie_response)
             for each_record in data:
                 opsgenie_resp = opsgenie_obj.create_incident(
                     str(each_record[0]))
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 11
0
 def send_data(self):
     try:
         zendesk_user = Zendeskmodel.objects.filter(
             source_id__user_id=self.request.user).first()
         zendesk_flag = zendesk_user and zendesk_user.flag
         if zendesk_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             api_key, email, url, options_str = zendesk_user.api_key, zendesk_user.email, zendesk_user.url, zendesk_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             zendesk_obj = Zendesktickets(email, api_key, url)
             zendesk_response = collect_events(access_key, domain,
                                               **options)
             data = self.process_ssc_response(zendesk_response)
             for each_record in data:
                 zendesk_resp = zendesk_obj.create_tickets(
                     str(each_record[0]))
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 12
0
 def send_data(self):
     try:
         hubspot_user  =  Hubspotmodel.objects.filter(source_id__user_id =  self.request.user).first()
         hubspot_flag = hubspot_user  and hubspot_user.flag
         if hubspot_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             api_key, options_str = hubspot_user.api_key, hubspot_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             hubspot_obj =  HubspotEvents(api_key)
             hubspot_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(hubspot_response)
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 msg = "New SecurityScorecard Issue is reported on {}.".format(current_time)
                 hubspot_payload[0]["value"] = msg
                 hubspot_payload[1]["value"] = json.dumps(each_record[0])
                 fresh_resp = hubspot_obj.create_incident(*hubspot_payload)
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 13
0
 def send_data(self):
     try:
         slack_user = Slack.objects.filter(
             source_id__user_id=self.request.user).first()
         slack_flag = slack_user and slack_user.flag
         if slack_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             options_str = slack_user.config
             options_formatted = options_str.replace("'", '"')
             optionss = json.loads(options_formatted)
             sc_slack_response = collect_events(access_key, domain,
                                                **optionss)
             data = self.process_ssc_response(sc_slack_response)
             logger.info("to Slack is start sending messages%s ",
                         self.request.user.email)
             for each_record in data:
                 send_message_to_slack(token=slack_user.auth_token,
                                       channel=slack_user.default_channel,
                                       message=each_record[0])
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 14
0
 def send_data(self):
     try:
         splunk_user = Splunk.objects.filter(
             source_id__user_id=self.request.user).first()
         splunk_flag = splunk_user and splunk_user.flag
         if splunk_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             url, token, config = splunk_user.api_url, splunk_user.hec_token, splunk_user.config
             options_formatted = config.replace("'", '"')
             options = json.loads(options_formatted)
             sc_splunk_response = collect_events(access_key, domain,
                                                 **options)
             data = self.process_ssc_response(sc_splunk_response)
             splunk_obj = SplunkEvents(token, url)
             sp = dict()
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 sp['event'] = json.loads(json.dumps(each_record[0]))
                 splunk_resp = splunk_obj.create_event(json.dumps(sp))
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e
Ejemplo n.º 15
0
    def send_data(self):
        try:
            salesforce_user = Salesforcemodel.objects.filter(
                source_id__user_id=self.request.user).first()
            salesforce_flag = salesforce_user and salesforce_user.flag
            if salesforce_flag:
                access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
                url, username, password, client_id, client_secret, secret_token, options_str = salesforce_user.url, salesforce_user.username, salesforce_user.passord, salesforce_user.client_id, salesforce_user.client_secret, salesforce_user.secret_token, salesforce_user.config,
                options_formatted = options_str.replace("'", '"')
                options = json.loads(options_formatted)
                salesforce_obj = Salesforceevents(url, username, password,
                                                  client_id, client_secret,
                                                  secret_token)
                salesforce_response = collect_events(access_key, domain,
                                                     **options)
                data = self.process_ssc_response(salesforce_response)
                for each_record in data:
                    fresh_resp = salesforce_obj.create_incident(
                        **each_record[0])

        except Exception as e:
            logger.error("Unexpected Exception occured: %s ", e)
            return e
Ejemplo n.º 16
0
 def send_data(self):
     try:
         solarwinds_user  =  SolarWindsmodel.objects.filter(source_id__user_id =  self.request.user).first()
         solarwinds_flag = solarwinds_user  and solarwinds_user.flag
         if solarwinds_flag:
             access_key, base_url, domain = self.ssc_user.api_token, self.ssc_user.api_url, self.ssc_user.domain
             username, api_key, url, options_str   = solarwinds_user.username, solarwinds_user.api_key, solarwinds_user.url, solarwinds_user.config,
             options_formatted = options_str.replace("'", '"')
             options = json.loads(options_formatted)
             solarwinds_obj =  SolarWindsEvents(username, api_key, url)
             solarwinds_response = collect_events(access_key, domain, **options)
             data = self.process_ssc_response(solarwinds_response)
             for each_record in data:
                 current_time = str(datetime.datetime.now())
                 msg = "New SecurityScorecard Issue is reported on {}.".format(current_time)
                 solarwinds_payload["incident"]["name"] = msg
                 solarwinds_payload["incident"]["priority"] = "Critical"
                 solarwinds_payload["incident"]['description'] = json.dumps(each_record[0])
                 solarwinds_payload["incident"]["requester"]["email"] = self.request.user.email
                 fresh_resp = solarwinds_obj.create_incident(**solarwinds_payload)
     except Exception as e:
         logger.error("Unexpected Exception occured: %s ", e)
         return e