Considérant en fait et en droit:
1. 1.1 Le 17 avril 2007, la société Y._ SA a requis l'Office des poursuites de Genève de notifier une poursuite à X._, ...., en paiement des sommes de 31'544 fr., avec intérêt à 8% dès le 21 décembre 2005, et de 1000 fr., au titre de frais d'intervention selon l'<ref-law>, dont à déduire un acompte de 9'000 fr. du 12 mai 2005.
Le commandement de payer a été notifié le 24 mai 2007 au débiteur «lui-même»; il n'a pas été frappé d'opposition. Le 4 juillet suivant, la poursuivante a requis la continuation de la poursuite. Le 15 août 2007, l'office a expédié à X._, ...., un avis de saisie pour le 20 septembre 2007.
Par fax du 24 septembre 2007, l'avocat de la poursuivie a demandé au mandataire de la poursuivante une copie du commandement de payer notifié dans la poursuite en question. Ce mandataire a déféré le même jour à ladite requête.
Le 15 novembre 2007, l'office a expédié un second avis de saisie pour le 29 novembre 2007.
1.2 Par acte du 21 novembre 2007, posté le lendemain, la poursuivie a porté plainte contre le commandement de payer ainsi que contre l'avis de saisie expédié le 15 novembre 2007; elle a conclu à l'annulation de la poursuite, en alléguant que le commandement de payer ne lui avait jamais été notifié, que l'adresse mentionnée sur cet acte n'était pas la sienne et que le procès-verbal de notification n'indiquait pas l'identité de la personne à qui l'acte avait été effectivement délivré.
Par décision du 20 décembre 2007, la Commission de surveillance des offices des poursuites et des faillites du canton de Genève a déclaré la plainte irrecevable pour cause de tardiveté.
1.3 Par mémoire du 24 décembre 2007, mis à la poste le 28 décembre 2007, la poursuivie a formé un recours au Tribunal fédéral contre cette décision; elle demande que sa plainte soit déclarée recevable, que la poursuite en cause soit déclarée nulle ou, à défaut, que l'opposition à cette poursuite soit déclarée recevable.
2. Le Tribunal fédéral examine d'office la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 2 p. 465, 629 consid. 2 p. 630 et les arrêts cités).
2.1 Le recours en matière civile au Tribunal fédéral est ouvert contre les décisions en matière de poursuite pour dettes et de faillite (<ref-law>), notamment celles qui sont rendues sur plainte par les autorités cantonales de surveillance (Message concernant la révision totale de l'organisation judiciaire fédérale du 28 février 2001, FF 2001 p. 4105 ch. 4.1.3.1). D'après la jurisprudence, de telles décisions sont finales au sens de l'<ref-law>, dès lors qu'elles ne peuvent plus être remises en discussion dans la procédure de poursuite en cours (<ref-ruling> consid. 1.2 p. 351). Le recours est recevable quelle que soit la valeur litigieuse (art. 74 al. 2 let. c LTF).
2.2 Le recours a été interjeté à temps (<ref-law>). Il est dirigé contre une décision prise par une autorité cantonale de dernière instance (<ref-law>; FF 2001 p. 4110; Kathrin Klett, in: Commentaire bâlois, n. 3 ad <ref-law>, avec les citations). La recourante a qualité pour agir, puisqu'elle a pris part à la procédure devant l'autorité précédente et a un intérêt juridique à la modification de la décision attaquée (<ref-law>).
3. 3.1 La décision attaquée déclare irrecevable, pour cause de tardiveté, la plainte déposée par la recourante; celle-ci expose que la notification du commandement de payer n'a pas été régulière, en sorte que cet acte doit être considéré comme radicalement nul, indépendamment de toute plainte (<ref-law>).
3.2 En principe, la notification irrégulière du commandement de payer n'est pas frappée de nullité absolue; l'acte est simplement annulable dans le délai de plainte de 10 jours de l'<ref-law>. Ce n'est que si l'acte n'est pas parvenu en mains du poursuivi que la poursuite est absolument nulle, et que sa nullité peut et doit être constatée en tout temps. Si, malgré le vice de la notification, le commandement de payer est néanmoins parvenu en mains du poursuivi, il produit ses effets dès que celui-ci en a eu connaissance; dans un tel cas, le délai pour porter plainte (contre la notification), ou pour former opposition, commence à courir du moment où le poursuivi a eu effectivement connaissance de l'acte (<ref-ruling> consid. 2 p. 104; <ref-ruling> consid. 3b p. 116; <ref-ruling> consid. 2 p. 11 et les citations).
L'éventuelle irrégularité de la notification du commandement de payer, dénoncée par la recourante, n'est pas décisive en l'espèce. En effet, il ressort des constatations de la décision entreprise, qui lient le Tribunal fédéral (<ref-law>), que «la plaignante a eu connaissance du commandement de payer qu'elle attaque lorsque son avocat le lui a faxé, soit au moment où ce dernier en a reçu copie du mandataire du créancier», cet acte ayant «été transmis à l'avocat de la plaignante par fax du 24 septembre 2007». Il s'ensuit que le délai pour porter plainte contre la notification a commencé à courir à ce moment; déposée le 22 novembre 2007, la plainte était donc largement tardive, ainsi que l'a retenu avec raison l'autorité cantonale de surveillance.
La recourante affirme que, avant le dépôt de sa plainte, elle est intervenue verbalement auprès de l'office pour faire constater la nullité de la poursuite litigieuse. La teneur exacte de cette intervention n'est pas établie. Quoi qu'il en soit, une plainte ne peut être orale, mais doit être écrite et signée par le plaignant ou son mandataire (Gilliéron, Poursuite pour dettes, faillite et concordat, 4e éd., n° 286 p. 50).
4. En conclusion, le présent recours doit être rejeté; les frais judiciaires incombent à son auteur (<ref-law>).


Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
3. Le présent arrêt est communiqué aux parties, à l'Office des poursuites de Genève et à la Commission de surveillance des Offices des poursuites et des faillites du canton de Genève.
Lausanne, le 5 février 2008
Au nom de la IIe Cour de droit civil
du Tribunal fédéral suisse
Le Président: Le Greffier:
Raselli Braconi