This is a pretty good idea!
Choosing to implement this as a rule is perhaps not as good a choice as you could have since you’d probably want it to be defined on every single test, and that means having to add a rule to every single class, or having every single class inherit from a single class – both of which seem like bad ideas.
Have you considered setting it up as a runlistener instead?
Then you need only add it to your surefire/failsafe config (both of which can take runlisteners as arguments) and it’ll run for each test.
Yeah, if used at scale, it should probably be implemented on a more global level. Either as a lifecycle listener, like you mentioned, for Maven or Gradle, or as a globally registered extension for JUnit 5. I would prefer a JUnit 5 based solution because it would apply the suppression even if tests are executed outside a regular build (e.g. explicitly in your IDE).