| |
|
|
| |
| |
| |
| |
|
|
| from lib.alerttask import AlertTask |
| from mozdef_util.query_models import SearchQuery, TermMatch, PhraseMatch |
|
|
|
|
| class AlertHTTPErrors(AlertTask): |
| def main(self): |
| self.parse_config('http_errors.conf', ['url', 'severity']) |
|
|
| search_query = SearchQuery(minutes=15) |
|
|
| search_query.add_must([ |
| TermMatch('category', 'bro'), |
| TermMatch('source', 'notice'), |
| PhraseMatch('details.note', 'MozillaHTTPErrors::Excessive_HTTP_Errors_Attacker') |
| ]) |
|
|
| self.filtersManual(search_query) |
|
|
| |
| self.searchEventsSimple() |
| self.walkEvents() |
|
|
| |
| def onEvent(self, event): |
| category = 'httperrors' |
| tags = ['http'] |
| severity = self.config.severity |
| hostname = event['_source']['hostname'] |
| url = self.config.url |
|
|
| |
| summary = '{0} {1}'.format(hostname, event['_source']['summary']) |
|
|
| |
| return self.createAlertDict(summary, category, tags, [event], severity=severity, url=url) |
|
|