Exemple #1
0
if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Show the evolution of trend of tags.')
    parser.add_argument("-d", "--days", type=int, required=True, help='')
    parser.add_argument("-s", "--begindate", required=True, help='format yyyy-mm-dd')
    parser.add_argument("-e", "--enddate", required=True, help='format yyyy-mm-dd')

    args = parser.parse_args()

    misp = PyMISP(misp_url, misp_key, misp_verifycert)

    result = misp.search(date_from=args.begindate, date_to=args.enddate, metadata=False)

    # Getting data

    if 'response' in result:
        events = tools.eventsListBuildFromArray(result)
        NbTags = []
        dates = []
        enddate = date_tools.toDatetime(args.enddate)
        begindate = date_tools.toDatetime(args.begindate)

        for i in range(round(date_tools.days_between(enddate, begindate)/args.days)):
            begindate = date_tools.getNDaysBefore(enddate, args.days)
            eventstemp = tools.selectInRange(events, begindate, enddate)
            if eventstemp is not None:
                for event in eventstemp.iterrows():
                    if 'Tag' in event[1]:
                        dates.append(enddate)
                        if isinstance(event[1]['Tag'], list):
                            NbTags.append(len(event[1]['Tag']))
                        else:
Exemple #2
0
    result = misp.search(last='{}d'.format(args.days), metadata=True)

    tools.checkDateConsistancy(args.begindate, args.enddate, tools.getLastdate(args.days))

    if args.begindate is None:
        args.begindate = tools.getLastdate(args.days)
    else:
        args.begindate = tools.setBegindate(tools.toDatetime(args.begindate), tools.getLastdate(args.days))

    if args.enddate is None:
        args.enddate = datetime.now()
    else:
        args.enddate = tools.setEnddate(tools.toDatetime(args.enddate))

    if 'response' in result:
        events = tools.selectInRange(tools.eventsListBuildFromArray(result), begin=args.begindate, end=args.enddate)
        tags = tools.tagsListBuild(events)
        result = tools.getNbOccurenceTags(tags)
    else:
        result = 'There is no event during the studied period'

    text = 'Studied pediod: from '
    if args.begindate is None:
        text = text + '1970-01-01'
    else:
        text = text + str(args.begindate.date())
        text = text + ' to '
    if args.enddate is None:
        text = text + str(datetime.now().date())
    else:
        text = text + str(args.enddate.date())
Exemple #3
0
        args.days = 7
    download_last(misp, '{}d'.format(args.days))

    tools.checkDateConsistancy(args.begindate, args.enddate, tools.getLastdate(args.days))

    if args.begindate is None:
        args.begindate = tools.getLastdate(args.days)
    else:
        args.begindate = tools.setBegindate(tools.toDatetime(args.begindate), tools.getLastdate(args.days))

    if args.enddate is None:
        args.enddate = datetime.now()
    else:
        args.enddate = tools.setEnddate(tools.toDatetime(args.enddate))

    Events = tools.eventsListBuildFromArray('data')
    TotalEvents = tools.getNbitems(Events)
    Tags = tools.tagsListBuild(Events)
    result = tools.getNbOccurenceTags(Tags)
    TotalTags = tools.getNbitems(Tags)

    Events = tools.selectInRange(Events, begin=args.begindate, end=args.enddate)
    TotalPeriodEvents = tools.getNbitems(Events)
    Tags = tools.tagsListBuild(Events)
    result = tools.getNbOccurenceTags(Tags)
    TotalPeriodTags = tools.getNbitems(Tags)

    text = 'Studied pediod: from '
    if args.begindate is None:
        text = text + '1970-01-01'
    else:
Exemple #4
0
    tools.checkDateConsistancy(args.begindate, args.enddate,
                               tools.getLastdate(args.days))

    if args.begindate is None:
        args.begindate = tools.getLastdate(args.days)
    else:
        args.begindate = tools.setBegindate(tools.toDatetime(args.begindate),
                                            tools.getLastdate(args.days))

    if args.enddate is None:
        args.enddate = datetime.now()
    else:
        args.enddate = tools.setEnddate(tools.toDatetime(args.enddate))

    events = tools.selectInRange(tools.eventsListBuildFromArray(result),
                                 begin=args.begindate,
                                 end=args.enddate)
    tags = tools.tagsListBuild(events)
    result = tools.getNbOccurenceTags(tags)

    text = 'Studied pediod: from '
    if args.begindate is None:
        text = text + '1970-01-01'
    else:
        text = text + str(args.begindate.date())
    text = text + ' to '
    if args.enddate is None:
        text = text + str(datetime.now().date())
    else:
        text = text + str(args.enddate.date())
Exemple #5
0
        "-f",
        "--function",
        required=True,
        help=
        "The parameter can be either set to \"last\" or \"searchall\". If the parameter is not valid, \"last\" will be the default setting."
    )
    parser.add_argument(
        "-a",
        "--argument",
        required=True,
        help=
        "if function is \"last\", time can be defined in days, hours, minutes (for example 5d or 12h or 30m). Otherwise, this argument is the string to search"
    )

    args = parser.parse_args()

    misp = init(misp_url, misp_key)

    if args.function == "searchall":
        searchall(misp, args.argument, misp_url)
    else:
        download_last(misp, args.argument)

    Events = tools.eventsListBuildFromArray('data')

    Attributes = tools.attributesListBuild(Events)
    temp = tools.getNbAttributePerEventCategoryType(Attributes)
    temp = temp.groupby(level=['category', 'type']).sum()
    tools.createTreemap(temp, 'Attributes Distribution',
                        'attribute_treemap.svg', 'attribute_table.html')