Just as the names of the other two seasons had agricultural origins (kayitz - cutting down of figs, aviv - shooting forth of barley), so too do the names of the other two seasons. However, here, Modern Hebrew seems to have mixed up the order.
While today stav means "autumn", originally it referred to "winter, the rainy season". It appears once in the Tanach - Shir HaShirim 2:11. The surrounding verses are discussing the beauty of the spring, and our verse says that it is a nice time to walk, for "the stav is past, the rain is gone":
כִּי-הִנֵּה הַסְּתָו, עָבָר; הַגֶּשֶׁם, חָלַף הָלַךְ לוֹ
Stav continues to mean rainy season in Rabbinic Hebrew and Aramaic as well, and Onkelos translates horef as stav in Bereshit 8:22.
On the other hand, it seems that horef (or choref) originally meant "harvest time, autumn" - and not today's "winter". Klein provides the following etymology:
Related to Arabic harafa (= he gathered fruit, plucked), harif (= freshly gathered fruit, autumn, fall)Stahl points out that Arabic still has the original meaning (harif for autumn, shita for winter.)
How did the terms get mixed up in Modern Hebrew? I'm not sure. Perhaps stav fell out of general use, and then horef took up all the time between summer and spring. When a word was needed for "autumn", stav was available. But whoever made that decision, didn't really read Shir HaShirim....