What "attack surface"? Almost all your ports, no applications listen to. Closing them serves no useful purpose.
If an application has problems accepting input on a port it is listening to, that is an application bug. Closing your ports doesn't solve this, it just hides the problem under the rug, and breaks the Internet in the process.