Faits :
A.
Le 25 septembre 2020, A._ a requis auprès de la Centrale des autorisations en matière de construction du canton de Vaud (CAMAC) la communication du ou des rapport (s) d'audit de sécurité de la société B._ Sàrl transmis au comité de pilotage - COPIL - concernant l'application ACTIS (application de saisie, de traitement et de suivi des demandes de permis de construire et des dossiers de construction) depuis 2015, moyennant éventuel caviardage des noms des collaborateurs et collaboratrices de l'Etat de Vaud. Il se fondait sur la loi vaudoise du 24 septembre 2002 sur l'information (LInfo; RS/VD 170.21). La requête a été transmise à la Direction générale du numérique et des systèmes d'information (DGNSI) comme objet de sa compétence. Par décision du 21 octobre 2020, la DGNSI a refusé l'accès au document, identifié comme étant le "«Test d'intrusion - ACTIS » B._ Sàrl, 2017", soit un rapport de tests de sécurité portant sur les vulnérabilités de la plateforme ACTIS, les manières d'exploiter ces failles et les actions pour y remédier. Elle a retenu qu'un intérêt public prépondérant s'opposait à la communication de ce document, qui contenait des informations "très sensibles du point de vue de la sécurité informatique".
B.
Par arrêt du 30 mars 2021, la Cour de droit administratif et public du Tribunal cantonal vaudois (CDAP) a rejeté le recours formé par A._ et confirmé la décision de la DGNSI. Se référant à un précédent arrêt du 14 juillet 2020, la CDAP a considéré que le test d'intrusion faisait état des vulnérabilités concrètes de l'application et des correctifs nécessaires non seulement pour la plateforme ACTIS mais aussi pour d'autres applications et systèmes connexes de l'Etat de Vaud. La divulgation de ces informations présentait un risque accru de piratage; il y avait donc un risque pour la sécurité et l'ordre public au sens de l'art. 16 al. 2 let. b LInfo, qu'il s'agisse des vulnérabilités auxquelles il avait été remédié ou des problèmes de sécurité non encore résolus. Un caviardage n'était pas envisageable.
C.
Par acte du 30 avril 2021, A._ déclare recourir contre l'arrêt cantonal. Il en demande l'annulation et conclut à ce que la CDAP rende une nouvelle décision dans le sens d'une reconnaissance du droit d'accès.
La CDAP se réfère à son précédent arrêt du 14 juillet 2020 dont elle précise la portée. Elle renonce pour le surplus à se déterminer et se réfère pour le surplus à l'arrêt attaqué. La DGNSI conclut au rejet du recours. Le Préposé cantonal au droit à l'information a formulé des considérations générales mais ne se prononce pas sur l'existence d'un risque concret pour la sécurité informatique, faute de disposer des pièces du dossier. Dans ses dernières observations, le recourant persiste dans ses arguments et ses conclusions.

Considérant en droit :
1.
L'arrêt attaqué porte sur le droit d'accès à un document dont il n'est pas contesté qu'il est soumis à la LInfo. Il s'agit par conséquent d'une cause de droit public au sens de l'<ref-law>. L'arrêt attaqué est une décision finale (<ref-law>) rendue en dernière instance cantonale par un tribunal supérieur (art. 86 al. 1 let. d et al. 2 LTF). Le recourant a participé à la procédure devant l'instance précédente et a un intérêt digne de protection à l'annulation ou à la modification de l'arrêt attaqué, de sorte qu'il faut lui reconnaître la qualité pour recourir (<ref-law>). Ses conclusions, qui tendent en substance à la reconnaissance d'un droit d'accès au document en question, sont recevables au regard de l'<ref-law>.
Il y a donc lieu d'entrer en matière.
2.
Se plaignant d'arbitraire en rapport avec l'art. 16 al. 2 let. b LInfo, le recourant conteste les motifs retenus par les instances précédentes pour lui dénier le droit d'accès. Il met en doute la gravité du risque que comporterait ce droit d'accès pour la sécurité ou l'ordre public, en relevant que le document en cause est limité à la plateforme ACTIS et que l'autorité intimée n'a pas démontré de manière spécifique en quoi pourrait consister le dommage. En outre, le fait que ce document a été transmis à la CDAP sous pli simple (et non en main propre), avec les risques de perte que cela comporte, démontrerait qu'il n'existerait pas de risque sérieux. Le recourant conteste également que le risque en question soit actuel, s'agissant de la partie du rapport traitant de vulnérabilités auxquelles il a déjà été remédié. Invoquant d'autres arrêts rendus dans les cantons de Vaud et de Fribourg (relatifs à l'accès au logiciel de la Base législative vaudoise, à un document sur l'intervention en cas d'occupation illicite d'un immeuble communal ou à des renseignements sur les informateurs de la police), il relève qu'un refus ou une restriction d'accès n'est pas ordonné chaque fois que la notion de sécurité est évoquée, ou chaque fois qu'il existe une interconnexion entre systèmes. Le recourant relève que le refus d'accès doit rester exceptionnel et que son intérêt à connaître les risques encourus lors de l'utilisation de l'application ACTIS devrait être pris en compte. Le recourant relève qu'il a déjà accepté le caviardage des données relatives aux failles de sécurité auxquelles il n'a pas encore été remédié et qui présentent un risque accru de piratage. Pour celles qui ne présentent pas un tel risque, un caviardage ne se justifierait pas et la cour cantonale aurait par conséquent surestimé l'ampleur du caviardage nécessaire.
2.1. Saisi d'un recours en matière de droit public, le Tribunal fédéral applique le droit d'office (<ref-law>); il n'examine cependant la violation de droits fondamentaux que si ce grief a été invoqué et motivé par la partie recourante (<ref-law>), c'est-à-dire que l'acte de recours doit, sous peine d'irrecevabilité, contenir un exposé succinct des droits constitutionnels ou des principes juridiques violés et préciser de façon circonstanciée en quoi consiste la violation (<ref-ruling> consid. 2.1; <ref-ruling> consid. 3.2). A cela s'ajoute que, sauf dans les cas cités expressément à l'<ref-law>, le recours devant le Tribunal fédéral ne peut pas être formé pour violation du droit cantonal en tant que tel; en revanche, il est possible de faire valoir que la mauvaise application du droit cantonal constitue une violation du droit fédéral, en particulier qu'elle est arbitraire au sens de l'art. 9 Cst. ou contraire à d'autres droits constitutionnels (<ref-ruling> consid. 6.1); dans ce cadre également s'appliquent les exigences strictes en matière de motivation définies par l'<ref-law> (ATF <ref-ruling> consid. 3.2).
Selon la jurisprudence, une décision est arbitraire lorsqu'elle est manifestement insoutenable, méconnaît gravement une norme ou un principe juridique clair et indiscuté, ou heurte de manière choquante le sentiment de la justice et de l'équité; il ne suffit pas qu'une autre solution paraisse concevable, voire préférable; pour que cette décision soit annulée, encore faut-il qu'elle se révèle arbitraire non seulement dans ses motifs, mais aussi dans son résultat (<ref-ruling> consid. 7.3 et les références).
2.2. En l'occurrence, le recourant limite à juste titre son grief à l'arbitraire. Toutefois, l'argumentation présentée dans le recours est de nature appellatoire puisque le recourant se limite à opposer son interprétation de la loi cantonale à celle de l'instance précédente. Dans sa réplique du 16 août 2021, le recourant tente davantage de démontrer l'arbitraire de la décision attaquée, mais cela ne saurait permettre de pallier l'insuffisance de la motivation qui doit être présentée dans le délai de recours. La question de savoir si l'argumentation soulevée satisfait aux exigences rappelées ci-dessus peut demeurer indécise car le recours doit de doute façon être rejeté sur le fond.
3.
Selon l'art. 8 al. 1 LInfo, les renseignements, informations et documents officiels détenus par les organismes soumis à la loi sont par principe accessibles au public. Il n'est en l'occurrence pas contesté que le rapport dont le recourant réclame la communication constitue un document officiel tel que défini à l'art. 9 LInfo, ni que la DGNSI fait partie des organes de l'Etat soumis au principe de transparence (art. 2 al. 1 let. a LInfo).
Conformément à l'art. 8 al. 2 LInfo, le chapitre 4 de la loi fixe les limites au droit d'accès. Les art. 16 et 17 LInfo ont la teneur suivante:
Art. 16 Intérêts prépondérants
1 Les autorités peuvent à titre exceptionnel décider de ne pas publier ou transmettre des informations, de le faire partiellement ou différer cette publication ou transmission si des intérêts publics ou privés prépondérants s'y opposent.
2 Des intérêts publics prépondérants sont en cause lorsque :
a. la diffusion d'informations, de documents, de propositions, d'actes et de projets d'actes est susceptible de perturber sensiblement le processus de décision ou le fonctionnement des autorités;
b. une information serait susceptible de compromettre la sécurité ou l'ordre publics;
c. le travail occasionné serait manifestement disproportionné;
d. les relations avec d'autres entités publiques seraient perturbées dans une mesure sensible.
3 Sont réputés intérêts privés prépondérants :
a. la protection contre une atteinte notable à la sphère privée, sous réserve du consentement de la personne concernée;
b. la protection de la personnalité dans des procédures en cours devant les autorités;
c. le secret commercial, le secret professionnel ou tout autre secret protégé par la loi.
Art. 17 Refus partiel
1 Le refus de communiquer un renseignement ou un document conformément à l'article 16 ne vaut le cas échéant que pour la partie du renseignement ou du document concerné par cet article et tant que l'intérêt public ou privé prépondérant existe.
2 L'organisme sollicité s'efforce de répondre au moins partiellement à la demande, au besoin en ne communiquant pas ou en masquant les renseignements ou les parties d'un document concernés par l'intérêt public ou privé prépondérant.
3.1. Comme le relève la cour cantonale, le motif de refus d'accès fondé sur l'existence d'un intérêt public prépondérant au sens de l'art. 16 al. 2 LInfo ne doit être admis que lorsqu'il existe un risque à la fois important et sérieux d'atteinte à un tel intérêt, sous peine de remettre en cause le principe général de transparence posé à l'art. 8 al. 1 LInfo, principe selon lequel la non-transmission d'informations doit rester l'exception. Dans ce cadre, le fardeau de la preuve revient à l'autorité qui s'oppose au droit d'accès (<ref-ruling> consid. 3.1) mais celle-ci ne doit pas nécessairement apporter la preuve absolue d'une atteinte aux intérêts protégés: comme cela ressort notamment du libellé de l'art. 16 al. 2 let. b LInfo ("serait susceptible de compromettre..."), une certaine vraisemblance est suffisante (<ref-ruling> consid. 3 et les références citées; <ref-ruling> consid. 3.4; <ref-ruling> consid. 2.3.3; arrêt 1C_129/2016 du 14 février 2017 consid. 2.6).
3.2. Intitulé "Test d'intrusion - ACTIS, Présentation des résultats", le document litigieux est une présentation powerpoint d'une cinquantaine de pages. Il présente notamment le nombre de vulnérabilités identifiées sur la plateforme en question et les risques liés à chacune d'elles, ainsi que l'effort et le temps estimés pour y remédier. Par définition, les indications qui figurent dans ce document sont très sensibles puisqu'elles identifient les failles de sécurité du système ainsi que la manière de les exploiter. La diffusion de telles informations faciliterait à l'évidence des opérations de piratage de l'application. S'agissant d'une plateforme développée au niveau cantonal pour la gestion des permis de construire, il apparaît évident qu'un acte de piratage pourrait perturber les procédures en matière de construction sur une large échelle, et compromettrait la confidentialité et l'intégrité de données qui peuvent s'avérer sensibles. Un tel risque peut, à tout le moins sans arbitraire, être qualifié de grave. La manière dont le document a été transmis à la cour cantonale (non pas en main propre mais par courrier recommandé, comme cela se fait habituellement pour les communications avec les instances judiciaires) ne permet aucunement de remettre en cause l'existence d'un tel risque.
A la lecture du document en question, on ignore les vulnérabilités auxquelles il a pu être remédié (et dans quelle mesure) et celles qui demeureraient encore actuellement. La réponse à cette question nécessiterait donc une interpellation supplémentaire de l'administration concernée. Dans sa réponse, la DGNSI indique que les problèmes de sécurité de la plateforme ACTIS ne sont pas entièrement résolus, les vulnérabilités constatées affectant des systèmes et applications connexes, ce qui complexifie leur traitement. Quoi qu'il en soit, on ne saurait prétendre, comme le fait le recourant, que la révélation des failles de sécurité qui auraient été entretemps réparées ne présenterait pas de risque. De telles indications peuvent notamment mettre en évidence des points sensibles de l'application et faciliter les tentatives d'intrusion, de blocage ou de détournement. L'arrêt attaqué ne comporte au demeurant aucune contradiction avec le précédent arrêt de la CDAP (GE.2019.0010 du 4 octobre 2019) autorisant la remise d'un procès-verbal du COPIL - ACTIS, après caviardage de toutes les informations liées aux problèmes de sécurité. Ce premier arrêt relève que les renseignements sur les vulnérabilités d'un système informatique ne doivent pas être accessibles, même si l'autorité estime, à raison ou à tort, que la vulnérabilité a été comblée (consid. 4b/bb). C'est dès lors également sans arbitraire que le risque a été reconnu comme encore actuel, quelles que soient les vulnérabilités concernées.
3.3. Le recourant estime que son intérêt à connaître les risques liés à l'utilisation de l'application aurait été ignoré. Il méconnaît que, dans le système de la LInfo comme dans celui des autres lois cantonales et fédérale (LTrans, RS 152.3) sur la transparence, c'est le législateur qui procède à une pesée anticipée des intérêts en présence. L'autorité, puis le juge, doit dès lors se borner à vérifier que les conditions légales pour une restriction d'accès (en l'occurrence l'art. 16 al. 2 let. b LInfo) sont remplies (<ref-ruling> consid. 3; arrêt 1C_692/2020 du 9 décembre 2021 consid. 2.1).
3.4. C'est également en vain que le recourant réclame une version caviardée du document. Comme cela est relevé ci-dessus, les indications sur les vulnérabilités qui auraient été supprimées ne peuvent être révélées, de sorte que c'est le document dans sa quasi-totalité qui devrait être caviardé et ne présenterait ainsi aucun intérêt du point de vue de la transparence de l'administration. La seule information que l'on pourrait retirer d'un document caviardé est le nombre approximatif de failles de sécurité qui ont été détectées, voire - selon la version caviardée produite au dossier - leur gravité. Une telle indication est toutefois elle aussi susceptible d'attirer l'attention de personnes malveillantes et doit, par conséquent, rester secrète.
4.
Reposant sur des raisons pertinentes et dûment expliquées, l'arrêt attaqué n'apparaît en définitive arbitraire ni dans ses motifs, ni dans son résultat. Le recours doit par conséquent être rejeté, dans la mesure où il est recevable, aux frais de son auteur (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté, dans la mesure où il est recevable.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué au recourant, à la Direction générale du numérique et des systèmes d'information du canton de Vaud, au Préposé à la protection des données et à l'information et à la Cour de droit administratif et public du canton de Vaud du Tribunal cantonal du canton de Vaud.
Lausanne, le 17 mars 2022
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Kneubühler
Le Greffier : Kurz