Infrastructure is incredibly vulnerable.
Some big problems:
1. It is distributed all over the place, often just hanging on poles or with little protection beyond a fence.
2. Cost-efficiency often results in minimal redundancy.
3. Cost-efficiency often results in minimal inventory of spares and capacity to make repairs.
Take out a couple of big transformers with a rifle and you could cut power over a very large area with a very lengthy repair time. Take out a fair number of them and you'll exhaust the supply of spares and now you could be talking months of problems (perhaps cannibalizing from other sites at reduced capacity across the grid, and if you take out enough you might just have to leave large areas blacked/browned-out).
Fiber is also difficult to repair. If you had a determined attack you could probably rapidly outpace the ability to locate and repair cuts.
Of course any kind of serious or sustained attack would draw attention and you'd find security improved. However, you could probably do a lot of damage before that happened.
I think the best solution is to build more redundancy into infrastructure, and more capacity for repair. That also makes infrastructure more robust against other kinds of failure. It does cost money, and when you have privatization it requires some kind of way to pay those costs. The government could just buy capacity that it can make available in the event of a disaster. Of course, that would need to be real capacity, and not something that just gets oversubscribed (government buys 1GW of power but doesn't use it, utility just under-provisions by 1GW and sends the government the bill).