Faits : A. Le 19 janvier 2017, le Ministère public du canton de Genève a ouvert une instruction pour gestion déloyale, sur dénonciation de l'Association B._ (B._, dont le siège est à Genève). Celle-ci reprochait notamment à certains de ses responsables d'avoir détourné 150'000'000 fr. de rétrocessions et commissions versées secrètement par des assureurs, provenant de primes pour des assurances comprises dans les carnets de transit international routier (TIR). Le 4 avril 2017, Association A._ (soit A._), membre de B._, a déposé plainte avec constitution de partie plaignante notamment pour escroquerie et gestion déloyale contre les responsables de B._. Lors d'une audience d'instruction du 18 juillet 2017 le Ministère public a refusé la présence du conseil de A._, expliquant le 21 juillet suivant qu'il n'y avait pas encore de mise en prévention. Dans une seconde décision du 31 août 2017, le Ministère public a refusé d'admettre la qualité de partie plaignante de A._, considérant que seule B._ était directement lésée par les agissements dénoncés. B. Par arrêt du 29 novembre 2017, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté les recours formés par A._ contre les décisions des 18 juillet et 31 août 2017. Les rétrocessions versées à B._ avaient certes eu des répercussions sur les primes d'assurances, mais cela ne constituait pas un dommage direct. Les primes versées par le biais des carnets TIR étaient en définitive supportées par les entreprises de transport. A défaut d'être partie plaignante, la recourante - ou son conseil - ne pouvait participer à l'audience du 18 juillet 2017. C. Agissant par la voie du recours en matière pénale, A._ demande au Tribunal fédéral d'annuler l'arrêt cantonal ainsi que la décision du Ministère public du 31 août 2017 et de lui reconnaître la qualité de partie plaignante, subsidiairement de renvoyer la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Préalablement, elle demande l'accès au dossier de la procédure en mains du Tribunal fédéral, ainsi que le droit de déposer de nouvelles déterminations, requête qui a été écartée par ordonnance du 19 janvier 2018. La Chambre pénale de recours se réfère à son arrêt, sans observations. Le Ministère public conclut au rejet du recours dans la mesure où il est recevable, en se référant à l'arrêt attaqué. Dans ses dernières observations, la recourante persiste dans ses conclusions.