A zombie attack happens when a zombie unit has been sitting beside the fort for at least one full day. They've been clawing idly at the walls, when something sets them off and they fly into a frenzy and attack the building next to them.
The attack value of a zombie unit is the number of hidden zombies under it. The defense of the building they attack is calculated based on how many police stations and survivors on guard duty there are nearby. If there are more zombies than defense, there is a chance they will break through the walls. This chance is higher if there are a many more zombies than defense. The algorithm is:
(ZOMBIES/DEFENSE) ^ 0.5 * 50 - 50
If 10 zombies attack a 10 defense building, there is a 0% chance they'll break through.
If 20 zombies attack a 10 defense building, there's a 21% chance.
If 30 zombies attack a 10 defense building, there's a 37% chance.
If 100 zombies attack a 10 defense building, there's a 90% chance (the max).
If the zombies DO break through, they may take back the building (it becomes un-reclaimed), or kill or injure a guard. If there are no guards, the building will always be lost.