Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. FIRES allows for advisories against Fediverse actors, as well.

FIRES allows for advisories against Fediverse actors, as well.

Scheduled Pinned Locked Moved Uncategorized
20 Posts 4 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • oli@olifant.socialO oli@olifant.social

    For my linux nerds

    curl -s -H 'Accept: application/ld+json' 'https://fires.1sland.social/datasets' | jq

    The FIRES reference server does content negotiation, so hit https://fires.1sland.social/datasets in your web browser, and then hit it with a proper JSON header and you'll see different results.

    There's also a labels endpoint:

    curl -s -H 'Accept: application/ld+json' 'https://fires.1sland.social/labels' | jq

    Which also responds as text/html.

    julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.spaceJ This user is from outside of this forum
    julian@activitypub.space
    wrote last edited by
    #6

    @oli@olifant.social abso-bloody-lutely love this.

    NodeBB just added in support for third party blocklists, with the IFTAS DNI and AUD lists as default.

    It would be great to support FIRES endpoints as well.

    @thisismissem

    thisismissem@hachyderm.ioT 1 Reply Last reply
    1
    0
    • oli@olifant.socialO oli@olifant.social

      https://archipelago.1sland.social/fires

      FIRES - Home

      FIRES: Fediverse Intelligence Replication Endpoint Server

      favicon

      (fires.1sland.social)

      It's up and running, Pelago ingesting blocklists and creating FIRES advisories.

      https://archipelago.1sland.social/blocklist/IFTAS%2DDNI

      If you scroll down, you can see the entire FIRES snapshot and subscribe to the dataset.

      As changes happen over time, you'll see retractions in the feed.

      cc: @thisismissem

      You can also see an example of 'filtering' on this page, if you scroll down. Rather than silence which can mean anything, there's a suggested list of filters to be applied.

      https://archipelago.1sland.social/blocklist/IFTAS%2DAUD

      Note that the existing labels were surfaced from IFTAS: Shared Vocabulary - Labels, along with the translations (when available).

      The filters come from the FIRES project itself.

      #FIRES #FediverseTech #Pelago #FediMod

      thisismissem@hachyderm.ioT This user is from outside of this forum
      thisismissem@hachyderm.ioT This user is from outside of this forum
      thisismissem@hachyderm.io
      wrote last edited by
      #7

      @oli nice work!

      *hands you the first implementer badge*

      oli@olifant.socialO 1 Reply Last reply
      0
      • oli@olifant.socialO oli@olifant.social

        FIRES allows for advisories against Fediverse actors, as well.

        This is very, very similar to 'composeable moderation'. You subscribe to a dataset, and you can either grab the latest snapshot or subscribe and pull changes over time, so a retractions come in you can have things pulled off your blocklist.

        It also adds a bit more nuance. Things start out as advisories and can escalate to recommendations, but even a recommendation of 'drop' doesn't mean autoblock, it's supposed to be a suggestion to your software (Mastodon, etc) to give you an option or to allow you to auto-accept. You might not care about things tagged with a label of 'Spam' so you let those through, for instance.

        This is essentially the protocol the Fediverse has needed to allow for sharing nuanced moderation recommendations. All you need to do is find a dataset or datasets you want to subscribe to, and can pull in those changes.

        This is all based on the work done by Em, the FIRES server I'm hosting is her reference server implementation, I'm just sideloading it from Pelago.

        Everyone is free to use my fires.1sland.social server as a real FIRES server for development purposes, in terms of testing the protocol.

        No retractions yet, but those will show up over time.

        thisismissem@hachyderm.ioT This user is from outside of this forum
        thisismissem@hachyderm.ioT This user is from outside of this forum
        thisismissem@hachyderm.io
        wrote last edited by
        #8

        @oli i have historical CSVs for IFTAS if you want them (though I'm still trying to get @iftas to deploy a FIRES server (I'd manage it for them)

        oli@olifant.socialO ricci@discuss.systemsR 2 Replies Last reply
        0
        • oli@olifant.socialO oli@olifant.social

          This is also how GoToSocial could take a filter advisory to disallow replies from an entire server or from specific accounts.

          In fact, the Domain Limits, interaction control and (eventually) canQuote logic all fit into the filter advisories, and I suspect with an existing Domain Subscriptions model, connecting to a FIRES dataset or /changes endpoint is going to be possible, just needs to get on the roadmap.

          thisismissem@hachyderm.ioT This user is from outside of this forum
          thisismissem@hachyderm.ioT This user is from outside of this forum
          thisismissem@hachyderm.io
          wrote last edited by
          #9

          @oli you can also publish multiple entity types on one list, so you could have separate rules for a domain and some of its actors.

          I guess I *could* add priority, allowing for a domain block except these actors

          1 Reply Last reply
          0
          • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

            @oli i have historical CSVs for IFTAS if you want them (though I'm still trying to get @iftas to deploy a FIRES server (I'd manage it for them)

            oli@olifant.socialO This user is from outside of this forum
            oli@olifant.socialO This user is from outside of this forum
            oli@olifant.social
            wrote last edited by
            #10

            @thisismissem @iftas They are regularly updating their CSVs, I thought. I've been pulling updates:

            https://archipelago.1sland.social/blocklist/IFTAS%2DDNI
            https://archipelago.1sland.social/blocklist/IFTAS%2DAUD

            And that means they now have a regularly updated dataset for it now, too:

            https://fires.1sland.social/datasets/iftas-abandoned-and-unmanaged-denylist
            https://fires.1sland.social/datasets/iftas-do-not-interact

            thisismissem@hachyderm.ioT 1 Reply Last reply
            0
            • oli@olifant.socialO oli@olifant.social

              For my linux nerds

              curl -s -H 'Accept: application/ld+json' 'https://fires.1sland.social/datasets' | jq

              The FIRES reference server does content negotiation, so hit https://fires.1sland.social/datasets in your web browser, and then hit it with a proper JSON header and you'll see different results.

              There's also a labels endpoint:

              curl -s -H 'Accept: application/ld+json' 'https://fires.1sland.social/labels' | jq

              Which also responds as text/html.

              oli@olifant.socialO This user is from outside of this forum
              oli@olifant.socialO This user is from outside of this forum
              oli@olifant.social
              wrote last edited by
              #11

              I'm working on a PR for this in Fediblockhole, too. It supports many formats, and talking to FIRES gives it state management for retractions it's never really had before--I mean, there's an explicit 'Retraction' type.

              1 Reply Last reply
              0
              • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                @oli nice work!

                *hands you the first implementer badge*

                oli@olifant.socialO This user is from outside of this forum
                oli@olifant.socialO This user is from outside of this forum
                oli@olifant.social
                wrote last edited by
                #12

                @thisismissem It's been a lot of fun. My next trick is to tie this into Fediblockhole so that FIRES just becomes another source you can pull in data from to build lists or push blocks to your server if you so choose--while also allowing Retractions to literally pull blocks off your server with it, adding a statefulness we didn't have before in Fediblockhole. Which I imagine is still a pretty common way to pull blocks, but imagine a Fediblockhole config like this:

                blocklist_fires_sources = [
                  # { server = 'https://fires.1sland.social' },  # all datasets on this server
                  { server = 'https://fires.1sland.social', datasets = [
                    '019d36a7-fb61-7d3d-9228-b0e658f7ef0c', # Oliphant Ad Hoc Fediblock list
                    '019d36a7-3274-77a4-8ee9-9f26dd2faa4f', # Seirdy's FediNuke
                    '019d36a7-f621-7842-a00b-35cc2fecc8d7', # Gardenfence
                    # '019d36a8-024f-7f44-855f-dfdf5badf536', # The Bad Space 90% Consensus
                    # '019d36a7-34e0-7515-9990-58196d3ab9eb', # FreeDNS (25k domains, very large!)
                    '019d36a7-f91a-7837-aeea-fb2ae48b67fe', # IFTAS AUD
                    '019d36a7-f9a1-7546-8dd8-e88b14834cdf' # IFTAS DNI
                    ], retractions = true },
                  { url = 'http://localhost:4444/datasets/019d37ae-8f62-74ec-95f5-92ce0dba4ea4', retractions = true },
                  # { url = 'https://other-fires.example/datasets/019d3565-f022-777b-abbc-aabbccddeeff', max_severity = 'silence' },
                  # { server = 'https://fires.example.com', ignore_accept = true },  # ignore 'accept' policies
                  # { server = 'https://fires.example.com', retractions = true },  # honor retractions from this source
                  # { url = 'https://trusted-fires.example/datasets/uuid', retractions = true },
                ]
                

                You did nice work. 🙂

                thisismissem@hachyderm.ioT 1 Reply Last reply
                0
                • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                  @oli i have historical CSVs for IFTAS if you want them (though I'm still trying to get @iftas to deploy a FIRES server (I'd manage it for them)

                  ricci@discuss.systemsR This user is from outside of this forum
                  ricci@discuss.systemsR This user is from outside of this forum
                  ricci@discuss.systems
                  wrote last edited by
                  #13

                  @thisismissem @oli @iftas if the issue is funding, I can help

                  thisismissem@hachyderm.ioT 1 Reply Last reply
                  0
                  • oli@olifant.socialO oli@olifant.social

                    @thisismissem @iftas They are regularly updating their CSVs, I thought. I've been pulling updates:

                    https://archipelago.1sland.social/blocklist/IFTAS%2DDNI
                    https://archipelago.1sland.social/blocklist/IFTAS%2DAUD

                    And that means they now have a regularly updated dataset for it now, too:

                    https://fires.1sland.social/datasets/iftas-abandoned-and-unmanaged-denylist
                    https://fires.1sland.social/datasets/iftas-do-not-interact

                    thisismissem@hachyderm.ioT This user is from outside of this forum
                    thisismissem@hachyderm.ioT This user is from outside of this forum
                    thisismissem@hachyderm.io
                    wrote last edited by
                    #14

                    @oli @iftas yeah, I was trying to get Jaz to become FIRES native, and we'd upload the full historical snapshot of those deny lists that we have.

                    That's what powered the test data you saw & how I built the CSV import feature. I still have no idea how to give a REST API for that for programmatic use.

                    1 Reply Last reply
                    0
                    • oli@olifant.socialO oli@olifant.social

                      @thisismissem It's been a lot of fun. My next trick is to tie this into Fediblockhole so that FIRES just becomes another source you can pull in data from to build lists or push blocks to your server if you so choose--while also allowing Retractions to literally pull blocks off your server with it, adding a statefulness we didn't have before in Fediblockhole. Which I imagine is still a pretty common way to pull blocks, but imagine a Fediblockhole config like this:

                      blocklist_fires_sources = [
                        # { server = 'https://fires.1sland.social' },  # all datasets on this server
                        { server = 'https://fires.1sland.social', datasets = [
                          '019d36a7-fb61-7d3d-9228-b0e658f7ef0c', # Oliphant Ad Hoc Fediblock list
                          '019d36a7-3274-77a4-8ee9-9f26dd2faa4f', # Seirdy's FediNuke
                          '019d36a7-f621-7842-a00b-35cc2fecc8d7', # Gardenfence
                          # '019d36a8-024f-7f44-855f-dfdf5badf536', # The Bad Space 90% Consensus
                          # '019d36a7-34e0-7515-9990-58196d3ab9eb', # FreeDNS (25k domains, very large!)
                          '019d36a7-f91a-7837-aeea-fb2ae48b67fe', # IFTAS AUD
                          '019d36a7-f9a1-7546-8dd8-e88b14834cdf' # IFTAS DNI
                          ], retractions = true },
                        { url = 'http://localhost:4444/datasets/019d37ae-8f62-74ec-95f5-92ce0dba4ea4', retractions = true },
                        # { url = 'https://other-fires.example/datasets/019d3565-f022-777b-abbc-aabbccddeeff', max_severity = 'silence' },
                        # { server = 'https://fires.example.com', ignore_accept = true },  # ignore 'accept' policies
                        # { server = 'https://fires.example.com', retractions = true },  # honor retractions from this source
                        # { url = 'https://trusted-fires.example/datasets/uuid', retractions = true },
                      ]
                      

                      You did nice work. 🙂

                      thisismissem@hachyderm.ioT This user is from outside of this forum
                      thisismissem@hachyderm.ioT This user is from outside of this forum
                      thisismissem@hachyderm.io
                      wrote last edited by
                      #15

                      @oli oh! The datasets need to be absolute URIs, as their @id's like in activitypub — the path isn't part of the protocol, just the absolute URI

                      1 Reply Last reply
                      0
                      • ricci@discuss.systemsR ricci@discuss.systems

                        @thisismissem @oli @iftas if the issue is funding, I can help

                        thisismissem@hachyderm.ioT This user is from outside of this forum
                        thisismissem@hachyderm.ioT This user is from outside of this forum
                        thisismissem@hachyderm.io
                        wrote last edited by
                        #16

                        @ricci @oli @iftas for IFTAS, they wanted some features I couldn't deliver within the timeframe of my grant, and right now I'm busy with client work. I do have a new grant proposal submitted to @nlnet and last I heard it was approved for next round. I don't think I'll have the grant MoU signed before June at the earliest.

                        So it wasn't a funding issue on IFTAS's side particularly — FIRES isn't a particularly demanding application to run & can be cached heavily.

                        ricci@discuss.systemsR 1 Reply Last reply
                        0
                        • julian@activitypub.spaceJ julian@activitypub.space

                          @oli@olifant.social abso-bloody-lutely love this.

                          NodeBB just added in support for third party blocklists, with the IFTAS DNI and AUD lists as default.

                          It would be great to support FIRES endpoints as well.

                          @thisismissem

                          thisismissem@hachyderm.ioT This user is from outside of this forum
                          thisismissem@hachyderm.ioT This user is from outside of this forum
                          thisismissem@hachyderm.io
                          wrote last edited by
                          #17

                          @julian we've definitely talked about how to implement!

                          Also the new deltas API is going to be a game changer for sync.

                          cc @oli

                          julian@activitypub.spaceJ 1 Reply Last reply
                          0
                          • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                            @ricci @oli @iftas for IFTAS, they wanted some features I couldn't deliver within the timeframe of my grant, and right now I'm busy with client work. I do have a new grant proposal submitted to @nlnet and last I heard it was approved for next round. I don't think I'll have the grant MoU signed before June at the earliest.

                            So it wasn't a funding issue on IFTAS's side particularly — FIRES isn't a particularly demanding application to run & can be cached heavily.

                            ricci@discuss.systemsR This user is from outside of this forum
                            ricci@discuss.systemsR This user is from outside of this forum
                            ricci@discuss.systems
                            wrote last edited by
                            #18

                            @thisismissem @oli @iftas @nlnet gotcha!

                            1 Reply Last reply
                            0
                            • thisismissem@hachyderm.ioT thisismissem@hachyderm.io

                              @julian we've definitely talked about how to implement!

                              Also the new deltas API is going to be a game changer for sync.

                              cc @oli

                              julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.spaceJ This user is from outside of this forum
                              julian@activitypub.space
                              wrote last edited by
                              #19

                              @thisismissem@hachyderm.io yeah we did, although at the time I hadn't properly implemented anything except a text box for domains to block or allow.

                              Now it can pull a blocklist by URL, but no support for more than suspend at the moment.

                              thisismissem@hachyderm.ioT 1 Reply Last reply
                              0
                              • julian@activitypub.spaceJ julian@activitypub.space

                                @thisismissem@hachyderm.io yeah we did, although at the time I hadn't properly implemented anything except a text box for domains to block or allow.

                                Now it can pull a blocklist by URL, but no support for more than suspend at the moment.

                                thisismissem@hachyderm.ioT This user is from outside of this forum
                                thisismissem@hachyderm.ioT This user is from outside of this forum
                                thisismissem@hachyderm.io
                                wrote last edited by
                                #20

                                @julian You'll definitely want a FederationPolicies model, beyond just a "block these domains" list.

                                For instance, coming in the future to FIRES is a way to distribute Hashtags that may contain harmful content, such that you could choose to filter those out.

                                Or, maybe you want to filter those in (I see you NodeBB and how you get content federated in!)

                                julian@activitypub.spaceJ 1 Reply Last reply
                                0
                                • R relay@relay.infosec.exchange shared this topic
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups