서비스 버전 감지 비활성화

서비스 버전 감지 비활성화

nmap열린 포트 및 이와 관련된 서비스를 감지하는 데 사용할 수 있습니다. 또한 -sV플래그를 사용하여 서비스 버전을 확인할 수 있습니다.

이 서버 버전 감지를 비활성화하는 방법이 있습니까? 해커가 버전 세부 정보를 알고 있으면 시스템을 공격할 수 있습니다.

예를 들어 Ubuntu-20.04에서 특정 범위 내에서 서비스 버전을 감지한 결과는 다음과 같습니다.

SHW@system:~$ nmap -sV -p 631 localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2022-05-16 18:11 IST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00022s latency).
rDNS record for 127.0.0.1: view-localhost

PORT    STATE  SERVICE   VERSION
631/tcp open   ipp       CUPS 2.3   <== Version detected

Service detection performed. Please report any incorrect results 
at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 7.58 seconds

그렇다면 포트 631의 서비스 버전을 차단하려면 Ubuntu에서 어떤 수정이 필요합니까?

답변1

포트 631에서 HTTP 요청을 하면 cup 자체가 <title>제공하는 HTML 페이지의 속성에 버전을 쉽게 제공한다는 것을 알게 될 것입니다./

이는 배송 시 CUPS와 함께 제공되는 구성 템플릿 파일에서 읽혀집니다 /usr/share/cups/www/index.html. 따라서 .이것버전 문자열을 얻는 것은 매우 쉽습니다. 구성 파일을 수정하기만 하면 됩니다. :)

그러나 이것은 실제로는 단지 겉모습일 뿐입니다. 해당 파일의 링크를 보면 완전히 다시 작성하기로 결정하더라도 이것이 CUPS(다른 IPP 서버가 아님)임을 매우 간단하게 추론할 수 있습니다.

게다가 CUPS는 다음과 같이 존재합니다.목적을 달성하다;이를 수행하는 방식은 해당 버전을 올바르게 식별하는 데 충분할 수 있습니다. 버전마다 세부 사항이 다르기 때문에 버전이 다릅니다. 많은 노력 없이도 누군가 CHANGELOGs/git 기록을 탐색하고 응답을 트리거하기 위해 쿼리할 엔드포인트를 파악하여 버전을 결정할 수 있습니다.

문제는 다음과 같습니다. 약간의 자유도(타이밍만 있거나 응답에서 공백의 양이 무시되는 경우)를 남기는 모든 프로토콜은 다른 구현을 허용합니다(다른 버전은 다른 구현입니다). 동작이 다릅니다.분명히 그렇죠. 이것으로부터 버전을 추론할 수 있습니다.

유일한 버전은 프로토콜입니다매우최소한이고 제한적이며 오직 허용됩니다.정확히행동. (이러한 프로토콜이 있는 경우 프로토콜 구현을 제공하는 서버에서도 새 버전이 표시되지 않을 가능성이 있습니다.) 이러한 프로토콜은 매우 드물며 IPP는 분명히 반대입니다. 유연한 전송(복잡한 HTTP 기반 프로토콜) ) ! ), 유연한 감지 및 유연한 응답 기능을 갖추고 있습니다. 이 프로토콜의 두 가지 구현은 결코 동일하지 않습니다!


긴 이야기 짧게: 일반적으로 말하면 그렇지 않습니다. 특히 IPP(CUPS가 이 포트에서 제공하는 것)만큼 복잡한 프로토콜의 경우 버전을 완전히 혼합할 수 없으며 유일한 옵션은 CUPS의 중요한 부분을 다르게 다시 구현하는 것입니다. 그런 다음 기본적으로 그것으로 다른 소프트웨어를 만들고 감지 가능한 버전과 자체 보안 문제를 얻습니다.


이 진술에 대해 몇 가지 질문이 있습니다.

해커가 버전 세부 정보를 알고 있으면 시스템을 공격할 수 있습니다.

실제로는 그렇지 않습니다. 하나행정어떤 서비스를 업그레이드해야 하는지 안다면 시스템을 고칠 수 있지만 공격자는 존재하는 취약점을 악용하려고 할 뿐입니다. 공격자는 버전에 대해 전혀 신경 쓰지 않습니다. 취약점의 존재만 신경 쓰는데, 이는 종종 버전 번호만큼 파악하기 어렵기 때문에 공격자는 어떤 버전인지 알아내려고 시도하기보다는 알려진 몇 가지 취약점만 시도하는 경우가 많습니다. 의 소프트웨어가 사용되었습니다 - 취약점을 포함하지 않도록 패치가 적용되었거나 적용되지 않았을 수 있습니다!

따라서 숨겨진 버전을 사용해도 아무런 이점이 없습니다. 내가 말하고 있는 CUPS에 프린터의 로컬 스캔을 트리거하여 악용할 수 있는 이중 무료 취약점이 있다는 것을 알았다면 해당 취약점을 트리거하려고 시도할 것입니다. 이는 단지 요청일 뿐입니다.

관련 정보