Re: [dispatch] Proposal for scantxt; scanning opt-in/out, identification, verification, notification, and reporting

Ollie IETF <ietf@olliejc.uk> Sun, 04 December 2022 07:11 UTC

Return-Path: <ietf@olliejc.uk>
X-Original-To: dispatch@ietfa.amsl.com
Delivered-To: dispatch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1FB78C1524C5 for <dispatch@ietfa.amsl.com>; Sat, 3 Dec 2022 23:11:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.097
X-Spam-Level:
X-Spam-Status: No, score=-7.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=olliejc.uk
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S4w2ZmNBvCr7 for <dispatch@ietfa.amsl.com>; Sat, 3 Dec 2022 23:11:38 -0800 (PST)
Received: from mail-4317.proton.ch (mail-4317.proton.ch [185.70.43.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C6012C14E514 for <dispatch@ietf.org>; Sat, 3 Dec 2022 23:11:38 -0800 (PST)
Date: Sun, 04 Dec 2022 07:11:29 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=olliejc.uk; s=protonmail3; t=1670137894; x=1670397094; bh=i6m+9v9DtV7G272LqBuaC7Io6jabSzaAmLp2HmeiXCY=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=faOYHf4BXKo3S50a1ml56lLzB9zNt2hTVwJslet04OIdvcToDuCEw2/atu4cFcfw6 jCMlKZBjwoLn1QHEZuUxpSCTfpOAcXHzmEPGKnPlyms3umfUlI6rrC8e/YswIuX47C oofem7xQqRwW8ocfb2GDrf1KLj0bhTTRiTZOViVtEX7D986W4N/ZTw87nETrDVG3qF xH/a1HQKPbjNYAhwvIoqYI+kF5h5dqGNHxk/aK1zER7DSNa4fr9d8UjOZNDL2Otaqb 20OlKJbqf0md3GVn2iQrCJYyJKstyWMbNDZkBTw/y7z7o5i8XP3krFIqhiVToPmnWf zxCSeTWpaOAbg==
To: johnl@taugh.com, dispatch@ietf.org
From: Ollie IETF <ietf@olliejc.uk>
Message-ID: <-Qj162OnP3i43R95dL09E0OpifUzGvXqwTWEE8n14tndS8OQ902nGVvUTizxttYYEdamlyG54XdgeJCyFfntI8UJnVPbPRTvJk3VL_PMgqU=@olliejc.uk>
In-Reply-To: <20221204051320.0FF0650855F1@ary.qy>
References: <20221204051320.0FF0650855F1@ary.qy>
Feedback-ID: 63001471:user:proton
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="b1_wUvAQONtTjIiApw3XgAzWIssrSQUFVLYAfu3ilV7s"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dispatch/6YYwcn_XSTugWbPvIvcMO-Cu8g0>
Subject: Re: [dispatch] Proposal for scantxt; scanning opt-in/out, identification, verification, notification, and reporting
X-BeenThere: dispatch@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: DISPATCH Working Group Mail List <dispatch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dispatch>, <mailto:dispatch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dispatch/>
List-Post: <mailto:dispatch@ietf.org>
List-Help: <mailto:dispatch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dispatch>, <mailto:dispatch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 04 Dec 2022 07:11:44 -0000

> Most scanning is in practice malicious, even if the
> people doing the probing make excuses that it isn't.

Perhaps generic probing is mostly malicious but if you include services that people and businesses often use or sign up for, it likely isn't all that malicious. Consider the following as scanners (not recommendations, just examples): MXToolBox, Detectify, Hardenize, Snyk

> I can see why the people doing the scanning would
> want all this stuff, but I can't see why the victims of
> the probes would have any reason to go to any effort
> to make their lives easier.

I do agree with Stephen that I've perhaps overcomplicated this and the level of choice suggested is bloated/unnecessary.
The original intention for scantxt wasn't actually for allowing or disallowing different types but for the other features which I'll break down a little here from the 'victims' point of view:

Opt-out: many legitimate scanners (also consider synchronous scanning where you enter your domain/IP into a service to check configuration etc.) allow opting out but that often requires an account and verifying you own the asset in some way. Scantxt is a proposal to standardise that opt-out so that users can do so in an asynchronous, consistent way without requiring an account or direct communication with each scanner.

Identification: users may wish to look up activity against their assets to understand the intention, if they agree the scanning is useful, they could view guidance published by the scanner on how to configure reporting and notifications to receive findings.

Verification: simply adding a header saying "im-this-scanner.com" and could be easily spoofed. Users may want a way to verify a legitimate scan, perhaps they have signed up for or even purchased a service.
Scanners would include a "Scanner-Token" which would ideally be a signed JWT of {"iss": "SCANNER", "iat": epoch, "aud": "VICTIM"}
This token could then be retrieved and the signature verified with the public key from the actually scanner, this step could even happen at the edge of infrastructure including firewalls/WAFs so that the activity is allowed through and not blocked automatically.

Notifications/reporting: this allows the user to asynchronously configure endpoints directly against infrastructure in their control without having to create an account with each scanner.
As a user who sees scanning, even from services I've signed up for, I want a way to receive issues found by that scanner without having to create an account and verify my asset with every scanner.
The rua/ruf suggestion allows sending reports (either email attachments or HTTP POST) in a consistent way that can be retrieved and analysed easily.

Where they types came in was if for example I ran a site where I cared about uptime and user data but I also wanted to advocate for more scanning and reports, I could direct scanners to replica infrastructure for the purpose to reduce the risk of impact to my actual site.
Let's say I'm "example.com", I could say on "_scan.example.com" - "hey, don't do active stuff here, but check out free-all-all.example.com instead" where "_scan.free-for-all.example.com" says "sure, send me any exploits/load testing etc. and notify me of findings here..."

Thanks,
Ollie