We've also seen the steady move from "everything turned on by default",
e.g. 2001 guidance: https://seifried.org/lasg/network/

It is advisable to disable as many services in inetd.conf as possible,
typically the only ones in use will be ftp, pop and imap. Telnet and r
services should be replaced with SSH and services like systat/netstat and
finger give away far to much information.

to "only SSH, if you want it".

We've been consistently telling people to harden stuff/disable things for
20+ years.. maybe it's time to treat that as a problem and CWE/CVE it.


On Wed, Jan 3, 2024 at 11:53 AM David A. Wheeler <
[email protected]> wrote:

> I propose that CWE add "Insecure default" as a *general* category of
> vulnerabilities, instead of only covering a few special cases as it does
> now. Here's my rationale. The paper "Secure-by-Design: Shifting the Balance
> of Cybersecurity Risk:
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message originates outside of MITRE. If you feel this is suspicious,
> please report it via "Report Suspicious Email" button in Outlook.
>
> ZjQcmQRYFpfptBannerEnd
>
> I propose that CWE add "Insecure default" as a *general* category of
> vulnerabilities,
> instead of only covering a few special cases as it does now. Here's my
> rationale.
>
> The paper "Secure-by-Design: Shifting the Balance of Cybersecurity Risk:
> Principles and Approaches for Secure by Design Software" (revised
> October 25, 2023) was
> published by US CISA and 17 U.S. and international partners
> (including those in the UK, Norway, Korea, Japan, & many others).
> This "joint guidance urges software manufacturers to take urgent steps
> necessary to ship products that
> are secure by design and revamp their design and development programs
> to permit only
> secure by design products to be shipped to customers."
>
> Their rationale is simple: Most developers and users do *NOT*
> specially configure software
> to make software secure; most accept the defaults. Some manufacturers release
> "hardening guides", but they're completely ineffective. As noted in the paper,
> "Relying on hardening guides simply does not scale".
> You can see their October 2023 version here:
> * <https://www.cisa.gov/resources-tools/resources/secure-by-design>
> * 
> <https://www.cisa.gov/sites/default/files/2023-10/SecureByDesign_1025_508c.pdf>
>
> I believe this paper represents a broad consensus among governments that
> software that is insecure by default is *NOT* secure, even if it is
> theoretically
> possible to "configure it into being secure".
>
> Today, many programs & libraries have vulnerabilities by default that
> are *not* fundamentally
> necessary for their proper operation. Unfortunately, CVE assignments
> are usually rejected for those cases because it's theoretically
> possible to use them securely.
> E.g., many XML parsers are vulnerable by default to external entity
> injection (XXE), but CVEs
> aren't assigned in these situations because they're safe to use as
> long as every developer
> worldwide performs heroic extra efforts to secure the thousands of
> components they reuse.
> That rarely happens, so security rarely happens. The current situation
> means that there is *no* incentive for developers of programs & libraries to
> make their software secure by default, *and* there's no mechanism for
> developers & users to separately learn that the default use is insecure.
>
> CWE does have a large number of specialized cases of "insecure default".
> However, as far as I can tell, nothing covers the general case.
> Examples of specific cases are:
>
> * CWE-1188: Initialization of a Resource with an Insecure Default
> * CWE-1394: Use of Default Cryptographic Key
> * CWE-1393: Use of Default Password
> * CWE-276: Incorrect Default Permissions
> * CWE-453: Insecure Default Variable Initialization
> * CWE-798: Use of Hard-coded Credentials
> * CWE-665: Improper Initialization (this is a little bit of a stretch)
> * CWE-1221: Incorrect Register Defaults or Module Parameters (this is
> hardware not software)
>
> What's needed is a *general* CWE covering "not secure by default" cases.
>
> This is somewhat related to OWASP Top 10 A05, Security Misconfiguration
> <https://owasp.org/Top10/A05_2021-Security_Misconfiguration/>.
> Misconfiguration is less likely if the default is secure.
> It's also related to OpenSSF's Alpha-Omega, which is working to
> improve the security of open source software (OSS) projects (which is where
> this discussion came up).
>
> As always, the devil is in the details. For example,
> I'd be willing to accept the definition as one that only covered cases
> where it's
> theoretically *possible* for it to be configured to be
> secure-by-default (e.g., it's not possible for strcpy()
> to be secure by default from memory corruption, so it cannot ever be
> secure by default).
> An interface that "cannot be made safe to use" does seem different
> than "insecure by default
> but theoretically possible to configure into being secure". I'm sure
> there will be many discussions.
>
> That said, the first step is to acknowledge that "insecure by default" *IS* a
> security vulnerability & specifically label it as a category of vulnerability.
> People can then work to carefully define it & come to a general consensus.
>
> Anyway, I hope you find this idea helpful. Thank you!
>
> --- David A. Wheeler
>     Director of Open Source Supply Chain Security, The Linux Foundation
>
>

-- 
Kurt Seifried (He/Him)
[email protected]

Reply via email to