Hypervelocity (30 km/s) impactors tend not to penetrate that deep, even though they can have an enormous amount of kinetic energy. The penetration depth can be approximated by $l_i \sqrt{\rho_i/\rho_a}$ where $l_i$ is the length of the impactor, $\rho_i$ is the density of the impactor, and $\rho_a$ is the density of the armor. If the impactor is iron and so is the armor, then it only penetrates to approximately its length, regardless of its speed. As it does this it dumps all its energy near the surface of the armor, making a big, wide crater near the surface.
But what if instead of one long impactor, the attacker sent a "train" of little ones, lined up with each other, with significant empty space between one impactor and the next? The idea is that each little impactor makes a little crater. Then, a few microseconds later, the next one in the train hits the back of the crater, making another little crater deeper inside the armor. And so on. I've made some state of the art CGI to illustrate:
The maximum depth "drilled" by the train could be increased almost as much as you want just by making the impactors smaller and having more of them, for the same total mass. The main engineering challenge for the attacker would be making sure all the impactors lined up precisely one after the other.
It seems that such a train of impactors would also effectively defeat Whipple-type spaced armor. The point of Whipple armor is that an impactor "splashes" and disperses as it passes through the first layer of armor, so it is spread out more when it hits the next layer of armor and is more easily stopped. But with an impactor train, each impactor in the train just punches a hole in one layer of the Whipple armor, making way for the next impactor in the train to pass through the hole completely intact, without dispersing at all. The spacing/dispersion of the armor would be totally defeated.
How could a spacecraft effectively defend against this type of attack?