-
Notifications
You must be signed in to change notification settings - Fork 301
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notify flag in the DHO #758
Comments
okay. So the notify flag actually already exists in cert.at's version.
Anyone else? If so, I'll merge that upstream. Best, |
We're going to need something similar, but more refined. A simple boolean flag would not enough. We have to be able to decide and record in the event who to notify in what way. Our current plans basically require some JSON structure for this. |
Mobile
So am i hearing that you need some
|
I'll try to elaborate a little bit: Currently we are "mis-using" the
Such a
|
You can always extend the harmonization if it makes sense for your setup and there's no usecase for sharing this with other instances. Concerning your proposal: How do you mark events as "don't notify"? Assigning this to @aaronkaplan as it affects the harmonization |
We doubt that there is no usecase for other instances, that's why we are proposing to create a field which is dedicated for this processing data.
Although
Currently this is done in two ways: First: The contact might be on a Whitelist,In this case the Notification-Interval is set to BTW: We don't mark the Event, we mark one or more of the Contacts (plural) which have been associated to an event. I've learned today that certats I'd like to stick to my proposal from #758 (comment) but the field should not contain who is contacted, instead the how is important here. See the following example:
In this example, three e-mail addresses were determined for an event. Two of them for source one as destination. Within an additional step, rules could be determined by an expert HOW those contacts should be informed. Those rules are the notification interval, the medium or other information. Those rules are appended to the processing-Field. IMHO a |
Yap. From my perspective, if there is no bot on the main repo that uses Please, let's keep with the discussion #TakeItToML |
No bot uses |
@wagner-certat Do you have any other fields where you need some explanation? @sykaeh Can you send an email to the mailing-list to share your idea and ask for comments from the community? I strongly recommend to not add this field for two main things:
But again, send the idea to mailing-list and if people want it, we will do it.... |
notify is also useful for post-intelmq analysis of events.
We do not add a field which is actually used and requested by users, but keep screenshot URLs?
Using the |
@certtools/intelmq-contributors Do we want to do this before 1.0 or can we postpone this? |
@wagner-certat thank you for asking. I think this field is needed. Whilst I prefer a JSON field, or something similar, I would not object the implementation of a boolean field. |
okay, timeout for now... nobody seems to care about this strongly. So we will move this to 1.1 |
To get forward on this topic, here are our thoughts:
Possible preferences can be:
So it could be a list of dictionaries. Here are some possible values for the notifications (may be contradicting to different variants) [
{
"recipient_to": "[email protected]",
"pgp_fingerprint": "ABC123",
"interval": 15
},
{
"recipient_to": "[email protected],[email protected]",
"recipient_cc": "[email protected]",
"interval": 0,
"format": "csv"
},
{
"recipient_cc": "[email protected]",
"interval": 3600,
"s_mime": "asd"
},
{
"type": "amqp",
"host": "amqp.example.com",
"client_certificate": "file content?",
"amqp_channel": "from_intelmq"
},
{
"type": "http_rest",
"http_url": "https://example.com/intelmq/push",
"http_basic_auth_username": "user",
"http_basic_auth_password": "pass"
},
{
"type": "http_rest",
"http_uri": "https://usre:[email protected]/intelmq/push"
},
{
"type": "xmpp",
"host": "xmpp.example.com",
"username": "user",
"password": "pass",
"xmpp_room": "from_intelmq"
},
{
"type": "xmpp",
"host": "xmpp.example.com",
"username": "user",
"password": "pass",
"xmpp_receiving_user": "abusehelper",
"format": "abusehelper"
}
] Open questions I have in mind:
I don't see a need for having a complete specification for this, there can be flavors and this is totally fine. I think we can or should agree on the outer structures only and be as compatible and similar as reasonable for the rest. |
To send email notifications you need to configure SMTP server and other items. Similar for rest of the notification facilities. We can give a UI facility which when configured with parameters, will create couple of output bots alongwith a sieve filter bot. Sieve filter bot can be pre-configured with the required filtering, abstracted by UI, to send appropriate message to correct bot. Thoughts? |
I may be completely off the point here, but somehow this problem reminds me of the logging configuration of the Bind name server. See e.g. https://kb.isc.org/docs/aa-01526 Basically: there you define channels, which can take events (incl. protocol, data format, restrictions on severity, ...), and then you define which category of event gets distributed to which channel. Translated to IntelMQ: maybe it is a good idea not to replicate the full routing information in each event, but reference transmission channels you define somewhere else. |
I forgot here to summarize the reasons and use-cases for this kind of notification/routing information, sorry. In non-trivial setups, we need to determine where the event needs to go to. In the simplest model, the destinations are fixed all the time and can thus be set in the configuration. But in other cases, the destinations are dynamic or defined elsewhere, as I said early, contact databases are a good example here. So we are actually talking (more generically) about routing information. Organizations like ours, but others too, have big contact databases, not only different contacts, but also different settings, delivery protocols, time settings. E.g. you want to notify the relevant contact for infected PCs more often than the server admins about some blacklisting (first time is usually enough here). Or for some other things you maybe want immediate notification. Then, the delivery differs, some may want JSON, others are fine with CSV. source.abouse_contact is only practicable for email and not sufficient either, but it is very useful for many cases. And further the abuse_contact does not fit for any non-email destination. My vision is that any expert can set the routing information for an event. The output can then directly set the destination according to the information in the event itself. This allows for much more flexibility. E.g. the AMQP or XMPP outputs can use the host/username/password triples from the event. Otherwise that needs a filter expert / output bot tuple preconfigured in advance. And that is not doable. Two existing contact database solutions in the ecosystem of intelmq are intelmq-fody+intelmq-mailgen and do-portal. I hope it is more clear now, why there is need for this kind of information. |
Hi, A few remarks:
See a rough description (and diagram) in https://github.com/Intevation/intelmq-mailgen/tree/master/docs . There is also a separation of access, as the contactdb content can be filled by people with less priviledges, the idea is that a user error here will not stop the complete system. Rule for the rule bots and the mailgen can be provided as stacked python scripts by machine administrators. The aim was to make it flexible and robust at the same time and it works well now for many months. (Of course there is always room to see if this is a good enough choice how everything is build.) If learning from the two existing solutions (intelmq-cb-mailgen and the other) is the goal to have IntelMQ unify more of this functionality, then both should be studied in detail to see what can be learned from them. One guess is that IntelMQ should come with a default way to process emails, as the accumulation process seems to be a common use case with abuse notification. A potential nice vision for IntelMQ would be that its default setup would notify nicely for a country or company CERT out of the box by email or otherwise. As you can see a real world meeting, discussing the vision of IntelMQ and then going into the epics and how IntelMQ will address this vision from the technical structure probably is the best way to go on this, this issues isn't. ;) |
I would like to add a "notify" flag to the data harmonization ontology (DHO). This field specifies whether the responsible parties should be notified about this event. Our use case is that an expert then decides based on the attributes of the event (classification.type, classification.identifier, ip, time.source, etc.) whether people should be notified about this event and sets the flag appropriately. This can then be used to filter events when sending notifications/uploading to a database etc. Is anyone else interested in such a flag?
The text was updated successfully, but these errors were encountered: