나는 내 환경을 보호하기 위해 화이트리스트 접근 방식을 사용하기로 결정했습니다(즉, 달리 명시하지 않는 한 기본적으로 모든 인바운드/아웃바운드 연결을 차단함).
Powershell, cmd, 방화벽의 원격 데스크톱과 같은 일부 Windows 앱(모두는 아님)을 화이트리스트에 추가해야 합니다. 그러나 단순히 cmd.exe, MSTSC.exe 등을 추가하는 것만으로는 효과가 없습니다. 이러한 앱은 네트워크 연결을 위해 다른 앱에 특정 종속성을 가지고 있다고 확신하지만 그것이 무엇인지는 모릅니다.
예를 들어 단순히 system32의 openssh 파일을 화이트리스트로 지정하면 PowerShell에서 ssh에 대한 액세스 권한이 부여되지 않습니다. 상승된 액세스에서 "권한 거부" 오류가 발생합니다(방화벽을 비활성화하면 문제가 해결되므로 적절한 방화벽 규칙에 따라 수정해야 합니다).
포트를 여는 것은 선택 사항이 아닙니다. 왜냐하면 포트를 열면 제가 좋아하지 않는 다른 앱도 해당 포트에 액세스할 수 있기 때문입니다. 예를 들어 cmd에서 컬을 수행하고 싶지만 다른 앱이 포트 443에 액세스하는 것을 원하지 않습니다.
게다가 차단해야 할 앱의 수가 필요한 이 세 가지 앱보다 훨씬 많기 때문에 블랙리스트 작성은 옵션이 아닙니다.
답변1
Windows 11: 방화벽에서 System32/svchost.exe를 허용하면 모든 것이 작동합니다.
추신: 다음은 svchost에 대한 몇 가지 관찰 사항입니다.
흥미롭게도 이 파일을 차단한 후 몇 분 후에 Windows의 인터넷 기능이 손실됩니다. 이유를 알고 싶어서 이 파일을 제외한 모든 항목을 차단했고, 레지스트리에서 원격 측정, Windows 업데이트 등을 꺼두었음에도 불구하고 Microsoft 및 일부 알 수 없는 IP로 암호화된 패킷이 많이 전송되는 것을 확인했습니다. svchost를 차단한 후 Windows는 해당 패킷을 보내려고 다시 시도하지만 몇 분 후에 실패하면 전체 인터넷 연결이 끊어집니다.
흥미로운 점은 Firefox와 같은 일부 응용 프로그램이 몇 분 동안 svhost 없이 작동하기 때문에 인터넷에 액세스하기 위해 svhost가 필요하지 않을 수도 있지만(svhost를 차단한 후 즉시 기능을 잃는 powershell과 달리) Windows가 결정하기 때문입니다. 인터넷을 완전히 끄려면 이는 다음과도 관련이 있을 수 있습니다.Windows 방화벽은 Windows 원격 측정을 완전히 차단합니까?또한 방화벽 동작에 대한 두 가지 관찰이 모두 잘못되었기 때문입니다. Windows IP는 방화벽에 하드코딩되어 있지 않습니다(그렇다면 svhost를 포함한 모든 것을 차단한 후에도 여전히 TLS 패킷을 볼 수 있었지만 그렇지 않습니다.). 또한 차단을 통해 Windows가 해당 패킷을 보내는 것을 막을 수 없습니다. 그럼에도 불구하고 svhost는 방화벽의 화이트리스트에 등록되어야 하기 때문입니다.