Note that, for example, a HTTP server on port 80 identifying itself as:
$ httptype ktware.com Apache/1.3.29 (Debian GNU/Linux) PHP/4.3.3or a SSH server on port 22 identifying itself as:
$ telnet ktware.com 22 Trying 150.229.8.170... Connected to ktware.com. Escape character is '^]'. SSH-1.99-OpenSSH_3.6.1p2 Debian 1:3.6.1p2-10is not really a security risk. Serious attacks will attempt all know vulnerabilities of the port, irrespective of what is running behind the port. Thus this is not regarded as sensitive information. On the other-hand, hiding the banner loses a lot for inter-operation.
Indeed, software should advertise its version number to aid debugging in all kinds of circumstances. If there's a security flaw then the flaw should be fixed instead of trying to hide it.