When attack is a noun, the preposition on is preferred with locations, e.g.;
- attack on Pearl Harbour
- attack on Fort Sumter
- attack on (a) French church
- South Korea, US to simulate attack on nuclear facility (CNN)
If attack is used as verb, no preposition is necessary. All the examples below are taken from Google news
- ... attacked a homeless man
- ... attacked people at a shopping mall.
- seagull attacked customers
- ... attacked a humanitarian aid convoy
Compare the results for attack on Israel (blue), attacked Israel (red), attack Israel (green), and attack against Israel (yellow). All four are grammatical, but the first suggests that attacks on Israel are seen as acts of aggression aimed at a specific location rather than a nation. But it is a subjective point of view, so it would be interesting to hear from other native speakers.
In the example cited by the OP, the acid was thrown (at) or poured on the woman. The woman's body is considered a surface. The preposition on is used to express physical contact with a surface.
a horrific acid attack on a pregnant woman
The main meaning of against is in "opposition to", in the following examples, against could be substituted with on.
- UN officials condemn attacks against (an) aid convoy
- his attacks against a Hispanic federal judge
- more attacks against Israeli soldiers and civilians
- Pakistan has initiated a string of attacks against India including major ...
However, between attack somebody and attack against somebody, the first preposition is usually preferred. Ngram illustrates that attacked him (blue line) is far more common than attack against him (green line)