Faits : A. A.a. La société A._ SA, sise à Genève, a pour but social le commerce de matières premières, en particulier les diamants. Elle est entièrement détenue par B._ SA, dont le siège est aussi à Genève et dont le but social est d'acquérir et vendre des participations dans toutes entreprises, en particulier celles actives dans le commerce de diamants. Cette entité est elle-même détenue par la société de droit russe C._, dont D._ est chargé de gérer les projets. A.b. En 2005, A._ SA et B._ SA ont toutes deux noué une relation bancaire avec l'établissement... SA. Chacune y détenait trois comptes courants dont un en francs suisses, le deuxième en dollars américains (USD) et le troisième en euros. Les deux sociétés ont désigné C._ comme ayant droit économique des valeurs patrimoniales. D._ avait un pouvoir de signature individuel pour les deux relations bancaires. Les deux sociétés ont signé une décharge autorisant la banque à exécuter les ordres donnés par téléphone, télex, téléfax et/ou tout autre moyen convenu de télécommunication. Elles déclaraient reconnaître et accepter les risques inhérents à l'utilisation de ces moyens de communication, notamment l'erreur d'identification de l'interlocuteur ou la falsification des documents transmis, qui pouvaient leur occasionner un dommage pécuniaire ou tout autre dommage. Les clientes acceptaient de supporter sans réserve les conséquences de l'exécution par la banque des ordres ainsi transmis et déchargeaient celle-ci de toute responsabilité dans la mesure permise par la loi. A.c. En 2010, la société Z._ SA (ci-après: la banque) a acquis par fusion... SA, dont elle a repris les droits et obligations. B._ SA et A._ SA ont régulièrement communiqué à cette banque des ordres de transfert par courrier électronique. En janvier 2012, elles ont entrepris des démarches pour pouvoir donner des ordres de transfert par e-banking. D._ a reçu un code unique lui permettant d'accéder aux comptes des deux sociétés. Les sociétés ont néanmoins continué à donner des ordres de transfert par courrier électronique. A.d. Les Conditions générales de la banque, acceptées par les deux sociétés, prévoyaient notamment ce qui suit: «1. Vérification de la légitimation La Banque vérifie avec la diligence usuelle la légitimation du titulaire du compte, de ses mandataires ou d'autres personnes disposant du droit de signature. Dès lors que la Banque a fait preuve de la diligence d'usage, tout dommage pouvant résulter de défauts de légitimation ou de falsifications non décelés est à la charge du titulaire du compte. [...] Lorsque le titulaire du compte donne des ordres de paiement, il respecte toutes les mesures de prudence pour diminuer le risque de fraude. Les dommages qui résultent d'un manquement à ce devoir de diligence sont à la charge du titulaire du compte. [...] 6. Erreurs de transmission Dès lors que la Banque a agi avec la diligence requise, tout dommage lié à l'utilisation des services postaux, ou de ceux des services de courrier, de l'utilisation du téléphone, du téléfax, d'autres moyens de transmission (par exemple le courrier électronique), et causé notamment par des retards, pertes, erreurs, malentendus, double expédition, etc...., est à la charge du titulaire du compte. [...]» A.e. Entre le début des relations bancaires en 2005 et le 31 décembre 2013, les deux sociétés ont procédé à des transactions entrantes et sortantes pour un montant de quelque 1'355'462'000 francs suisses. 107 transactions ont été inscrites au débit des comptes de B._ SA et 793 au débit de ceux de A._ SA. Les transactions ordonnées par les deux sociétés ont à plusieurs reprises porté sur des montants supérieurs à un million de dollars. Au cours des dernières années, les comptes se sont trouvés vides à plusieurs reprises. Les transactions étaient réalisées avec des tierces parties situées en Angola, en Autriche, en Belgique, à Chypre, à Dubaï, à Hong Kong, en Israël, aux Pays-Bas, au Royaume-Uni, en Russie et en Suisse. Les ordres de transfert électroniques avaient par ailleurs les caractéristiques suivantes: - différentes adresses électroniques étaient utilisées par les représentants des deux sociétés dans le cadre de leurs communications avec la banque. Lorsque D._ adressait des ordres de transfert à la banque, il utilisait l'adresse électronique D._@...ru. Son adresse @gmail.com a aussi régulièrement été utilisée pour les communications électroniques des deux sociétés avec la banque; - A._ SA et B._ SA faisaient généralement parvenir à la banque des versions numérisées d'ordres de transfert signés, en annexe à leurs courriers électroniques. Toutefois, certains n'étaient pas signés; - les ordres de paiement adressés à la banque par courrier électronique étaient généralement confirmés par fax, sans que cela soit systématiquement le cas; - les instructions de transfert signées par D._ comprenaient habituellement les éléments suivants:  le sujet de l'ordre de transfert portait la mention «Re: »;  l'ordre était rédigé comme suit: « In accordance with [la cause du paiement] we hereby instruct you to transfer the amount of [monnaie du paiement en abrégé] [montant à transférer] with value [date d'exécution] from our account # [n° du compte ou n° de la relation bancaire] to the account of [nom du bénéficiaire] with the following bank details [...]»; - certains ordres faisaient parfois l'objet de différences de vocabulaire et de mise en page. Ainsi, la banque du bénéficiaire était parfois désignée par les mentions « Bank », « Account with », ou « Bank of the beneficiary »; - à plusieurs reprises, D._ a ordonné dans le même courrier électronique des transferts visant tant A._ SA que B._ SA; - à quelques reprises, peu fréquentes, des ordres ont été donnés sur le papier à en-tête de B._ SA pour A._ SA, ou vice-versa. A.f. Le 17 décembre 2013, les deux collaborateurs bancaires X._ et Y._ ont reçu un courrier électronique émanant de l'adresse @gmail.com, qui exigeait d'effectuer un transfert de 600'000 USD. A la fin du courriel figuraient les mentions suivantes: «D._, C._, [...] D._@...ru [...]». En annexe au message électronique figuraient les instructions suivantes, rédigées sur le papier à en-tête de B._ SA: « Please transfer USD 600,000 [...] from out [recte: our] account # (n° de portefeuille de A._ SA, réd.) to M._ with the following bank details: Company Name: M._ Company Add: [...] SEOUL, (...) Rep. of KOREA Account No: [...] Bank name [...]: [...] [...] Swift code: [...] [...] Yours sincerely, [signature] D._ [tampon de B._ SA] Managing Director » La signature de l'ordre susvisé correspondait au spécimen connu de la banque. Certaines parties de cet ordre étaient rédigées dans une police différente de celle habituellement utilisée par D._. Suite à une interpellation de Y._, il lui a été répondu par l'adresse @gmail.com que le paiement était destiné à l'achat d'actions et une facture non signée établie par M._ Ltd à l'attention de B._ SA a été jointe en annexe. Y._ s'est fait confirmer qu'il s'agissait bien d'acheter des participations dans la société destinataire du paiement. Toujours ce 17 décembre 2013, l'employé précité a confirmé que le paiement avait été effectué, en joignant un avis de débit du compte de A._ SA. A.g. Le 20 décembre 2013, le prénommé et X._ ont reçu un nouvel ordre de transfert de 900'000 USD émanant de l'adresse électronique @gmail.com. En annexe figuraient les instructions suivantes, établies sur le papier à en-tête de B._ SA: « This will stand as authorization to transfer USD 900,000 [...] from our account # to M._ with the following bank details: Company Name: M._ Company Add: [...] SEOUL, [...] Rep. of KOREA Account No: [...] Bank name [...]: [...] Bank Add: Swift code: [...] [...] [signature] [tampon de A._ SA] Managing Director A._ SA » La signature de l'ordre correspondait au spécimen de signature de D._ connu de la banque, reproduit électroniquement. Certaines parties du courriel précité étaient rédigées dans une police différente de celle habituellement utilisée par le prénommé. Etait également annexée une facture non signée établie par M._ Ltd à l'attention de B._ SA, mentionnant l'achat d'actions pour un montant total de 900'000 USD. Y._ a fait remarquer que les instructions mentionnaient B._ SA tandis que le numéro de compte était celui de A._ SA. Il lui a été répondu, toujours par l'adresse @gmail.com, qu'il fallait débiter le compte de A._ SA. L'ordre a été exécuté le 20 décembre 2013 et inscrit au débit du compte de A._ SA. A.h. Le 24 décembre 2013, D._ a téléphoné à Y._ en indiquant qu'il venait d'apprendre via les accès e-banking l'existence d'un transfert au sujet duquel il sollicitait des informations. Aucune connexion par l' e-banking aux comptes des deux sociétés n'a eu lieu après le 4 décembre 2013. Le collaborateur précité lui a indiqué que le premier paiement faisait suite à un ordre de transfert de sa part et qu'un second transfert pour un montant de 900'000 USD était intervenu. Il a envoyé à l'adresse D._@...ru les courriels qu'il avait reçus de l'adresse @gmail.com concernant les deux ordres de transfert. D._ a contesté en être l'auteur, affirmant que son adresse électronique avait été piratée. Par courriel du 27 décembre 2013, D._ a exigé de la banque qu'elle crédite le compte de A._ SA des montants de 600'000 USD et 900'000 USD. La banque a conseillé à A._ SA de contacter les autorités de police compétentes. A._ SA a encore exigé par courrier du 6 janvier 2014 que la banque restitue les 1'500'000 USD transférés indûment. A.i. La banque a saisi les autorités pénales coréennes. Sur la suggestion de son conseil en Corée du Sud, la banque a demandé le 10 janvier 2014 à A._ SA de lui remettre une déclaration notariée dans laquelle elle devait certifier ne pas avoir demandé les transferts litigieux et n'avoir aucun motif de le faire vu l'absence de relation avec la titulaire du compte récipiendaire en Corée. Le document devait également comprendre une déclaration de dépôt de plainte pénale. Relancée par la banque, A._ SA a fourni une déclaration non notariée qui ne mentionnait pas l'absence de toute relation avec la récipiendaire des fonds, ni ne confirmait le dépôt d'une plainte pénale. Le 3 février 2014, la banque a invité A._ SA à faire confirmer par les autorités suisses que les transferts étaient intervenus à la suite d'un piratage, ou du moins sans l'accord du titulaire du compte, et à confirmer l'absence de lien avec la titulaire du compte récipiendaire en Corée. A._ SA n'a pas donné suite. A.j. Le 17 mars 2014, la banque a déposé une plainte pénale contre inconnu auprès du Ministère public genevois. La procédure a été classée sans suite, faute d'éléments de prévention suffisants. A.k. Le 7 avril 2014, le conseil coréen de la banque a écrit à celle-ci que de son point de vue, la possibilité que l'associé ou l'affilié de A._ SA soit impliqué dans le crime ne pouvait être exclue. Dans un tel cas, la police coréenne adoptait généralement une approche prudente et discrète dans son enquête et évitait de divulguer trop d'informations concernant le processus d'investigation (traduction libre de la version originale en anglais, réd.). Les autorités coréennes ont fait bloquer des comptes auprès de la banque destinataire des fonds versés et ont délivré un mandat d'arrêt à l'encontre d'un dénommé.... La banque n'a toutefois pas obtenu la restitution des fonds versés lors des transferts litigieux. A.l. A._ SA a fait notifier deux commandements de payer à la banque, correspondant à la contre-valeur de 600'000 USD et 900'000 USD. La banque a fait opposition. B. B.a. Le 6 juin 2014, A._ SA a déposé une requête de conciliation contre la banque. Elle a ensuite porté l'action devant le Tribunal de première instance du canton de Genève, en concluant au paiement de 600'000 USD et de 900'000 USD ainsi qu'à la mainlevée des oppositions formées dans les poursuites en cours. B.b. Par jugement du 10 février 2017, le Tribunal de première instance a rejeté la demande, pour le double motif que la preuve formelle d'un piratage de l'adresse électronique de D._ n'avait pas été apportée et que la banque pouvait se prévaloir de la clause de transfert de risques contenue dans la décharge signée en 2005 dès lors qu'elle n'avait commis qu'une faute légère. B.c. Statuant le 19 décembre 2017 sur appel de A._ SA, la Cour de justice genevoise a confirmé ce jugement. En résumé, elle a considéré que la banque avait démontré avoir agi sur la base d'instructions émanant de l'adresse de la messagerie électronique détenue par D._ et précédemment utilisée pour communiquer avec la banque, comme le permettait la documentation contractuelle signée par la cliente. Celle-ci devait dès lors établir que ces instructions émanaient d'un tiers ayant piraté l'adresse de messagerie et se faisant faussement passer pour le prénommé. Or, une telle preuve n'avait pas été apportée (cf. au surplus consid. 4 et 7.1 infra). C. A._ SA (ci-après: la recourante) saisit le Tribunal fédéral d'un recours en matière civile concluant derechef à ce que la banque soit condamnée à lui payer 600'000 USD et 900'000 USD plus intérêts, et à ce que les oppositions dans les poursuites en cours soient définitivement levées. La banque intimée a conclu au rejet du recours dans la mesure de sa recevabilité. L'autorité précédente s'est référée à son arrêt.