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

    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