Infill density change

Is there a way to tell the software to increase the infill density on the outer layers while also keeping it low for the middle? I’m printing what is basically a big cube to hold some of my hobby tools. I have holes cuts for the individual tools, but it is basically a 9in cube. To speed it up and reduce filament usage, I would like the core to only use 5% infill, but when you get to the top layer, the distance between the infill (which act as supports for the outer wall) is so great that filament basically sags. What I would like to do is have a 5% infill for the core, but increase it to say 20% for the wall support.
Is there any way to do this without complex gcode modification?

Select the part in question, right click it, add primitive>Cube.

Now you have a yellow cube that you can position using Move / Scale to the topmost layers only, then select the primitive, go to objects view of process and set the infill to 20% for the cube which resides on the top layers. You should probably do about 4 layers of increased infill to make sure it has settled out by the time you start your top shell layers.

Try out Lightning infill, that fits what you are hoping to accomplish. It starts of very sparse and builds up to a higher infill density as it moves up. It’s not as obvious, but Adaptive cubic is a strong alternative that does similar by using less infill towards the bottom of the print and increases in density as it moves up.