It’s as you and @Naphthalene said, mostly. One thing that nobody seems to have mentioned, perhaps because it’s quite obvious, is that ざる is just the contraction of ず+ある, so it’s really the same thing. The analogy is not perfect but ざる is to ぬ/ず what である is to だ/で (just that for whatever reason である doesn’t contract to *だる
).
It’s a big feature of Japanese, old and modern, that various things need support from ある or する in order to make extended forms and get access to the full spectrum of constructions. This is basically true of all the classes of words:
- Nouns have the copula だ vs である as mentioned above; in the classical you had に vs なる (=に+ある) and と vs たる (=と+ある).
- Adjectives Aい become Aから, Aけれ (sound change), etc. from Aく+ある, which is the only way to make the negative with ない, and also mandatory when you insert contrast/focus, e.g., 高い “it is high” => 高くはある “it IS high”.
- Same for verbs when they take contrast/focus: 呼ばない “I do not call” => 呼びはしない “I do NOT call”.
The pattern here is that you usually don’t use the extended form with ある or する unless you have to, because the form you’re trying to construct doesn’t work with the short/plain form: either because you want to attach a suffix otherwise unavailable or you want to insert a particle that wouldn’t be able to split the bound form. There are exceptions (in the sense of finding the composites even when not technically required), though, and classical Japanese had freer alternations, e.g., between ざる and ず, as you can see, but meaning-wise, there is basically no difference.
P.S.: I don’t know much about kanbun, but I would be cautious about attributing the use of ざる to it, since, as I just said, such formations are deeply rooted in Japanese itself, although it could well be that kanbun helped spread the form.