驚くべきことに、生物学者とセキュリティ研究者のチームが、DNA鎖上にコード化された悪意のあるプログラムを、コンピューターに感染させることに成功した。
まるでサイエンスフィクションのように聞こえるかもしれないが、これは本当の話だ。とはいえこの特定の脅威にすぐに怯えなければならないというわけではない。ともあれ、このプロジェクトが示唆する可能性は、魅力的でありまた同時に恐ろしいものでもある。
ワシントン大学の学際チームは、目立つニュースを目指していたわけではないが、結果としてそれを成し遂げた。彼らは世界中の研究室で使用されているオープンソースソフトウェアの基本的な脆弱性を発見し、DNA転写と解析に関するセキュリティ基盤が不適切であることを懸念していた。通常扱われているデータの性質を考えると、これは今後深刻な問題になる可能性がある。
確かに、彼らは通常のマルウェアやリモートアクセスツールを使ってシステムの弱点を提示することができた。それは有能な攻撃者たちがシステムへ対してとる方法だ。しかし、違いの分かるセキュリティ専門家は、そうしたゲームに対して常に先手を打っておくことを好む。
「コンピュータセキュリティコミュニティで我々がしようとしている大きなことの1つは、『どうしよう、敵が私たちのドアをノックしているのに準備ができていない』という状況を避けることです」と河野忠義(Tadayoshi Kohno)教授は語る。彼はこれまで、ペースメーカーのような埋め込み型でニッチな電気製品のための、不測の攻撃ベクターに関する追求を行ってきた人物だ。
「このように分子と電子の世界が近づくにつれて、私たちがこれまで考慮する必要のなかった潜在的な相互作用が生み出されています」と、同研究の共著者の1人であるLuis Cezeは付け加えた。
その結果、彼らは過去に多くのSF作家たちが書いてきたような飛躍を経験しているところだ。そして私たちは現在CRISPRのようなツールを用いて探究している最中でもある:DNAは基本的に生命のファイルシステムなのだ。解析プログラムは、DNA鎖の塩基(シトシン、チミンなど、我々がA、T、G、そしてCなどとして知っているもの)を読み取り、バイナリデータに変換している。もしそれらのヌクレオチドが元々別のバイナリデータをコード化していたものだとしたらどうだろう?実のところ、それは既に行われているのだ ― すぐそこで。
マッドサイエンス登場
彼らのとった方法は次のようなものだ。転写アプリケーションについて本当に知る必要があることは、それが転写プロセスから生データを読み込み、整列させ、パターンを探し、見つかった塩基配列をバイナリコードに変換するということだ。
「ASCIIによるA、T、G、Cそれぞれの文字からからビットストリームへの変換は、妥当と思われる最大読取り長を前提とした固定サイズのバッファーの中で行われます」と説明するのは、より多くの技術情報を求めた私に答えてくれた共同著者のKarl Koscherだ。
これにより、プログラムが任意のコードを実行することができる基本的なバッファオーバーフロー攻撃のチャンスが生まれる。なぜなら想定外の事態が引き起こされるからだ。(彼らはデモをわかりやすくするために、特定の脆弱性をわざとソフトウェア自身の中に仕込んでいたが、こうした脆弱性は実際にはデモ向きの分かりやすい形ではなく、色々な場所に埋め込まれていることも指摘した)。
実行可能なコードを基本シーケンスに含める方法を開発した後、彼らはそれを使った攻撃コードを研究した。皮肉なことに、これをウイルスと呼ぶのは間違いだが、今までに書かれたどんな悪質なコードよりも「本当の」ウイルスに近いものだ。
「この攻撃コードの長さは176塩基長でした」とKoscherは言った。「圧縮プログラムが、各塩基を2ビット長に変換します。これらは共にパックされ変換の結果44バイト長の攻撃コードとなりました」。
塩基が4種類あることから、それぞれを2つのビットで表現することは理に適っている。Koscherはこれが実際に行われたことであると答えた(もし私のように興味があるのなら、それらは具体的には、A = 00、C = 01、G = 10、T = 11だ)。
「これらのバイトのほとんどは、ASCIIコードで書かれたシェルコマンドをエンコードするために使用されます」と彼は続けた。「4バイトが、シェルコマンドを実行するC標準ライブラリのsystem()関数を呼び出すための変換関数に使われ、更に4バイトが、その実行するコマンドがメモリ内のどこにあるかを指定します」。
本質的に、DNA内のコードは、ACGT群から00011011群に変換されるとすぐに、プログラムとして機能し、システム内でいくつかのコマンドを実行する(system()を介してDNA内に書き込まれた任意のOSコマンドが実行されることになる)。脅威ベクトルの存在を証明するには十分だ。また、アプリケーションを分離する以上のことをしたい場合でも、十分にコードできる余地が残されている。
この攻撃コードを含むDNA鎖の176塩基という長さは「ほとんどの生物学的標準から見て、とても小さいものです」と、このプロジェクトに取り組んでいる研究者のLee Organickは述べている。
バイオパンクの未来がやってくる
興味深いニュースを人類への現実的な脅威と捉える、全ての科学ジャーナリストを駆り立てる性根を発揮して、私はチームに対してより多くの質問を行った。
「ひょっとして」私はこれはあくまでも仮定の話だがと断りながら尋ねた「そうした攻撃コードを、改竄された血液サンプルや、場合によっては誰かの体から直接配布することも可能なのでしょうか?本質的にセキュリティに弱点を抱えるコンピュータに致命的であるようなDNAを持つ人物を想像することができますが」。
困ったことに、Organickは私の恐怖心を煽った。
「シーケンシングのあと、処理をさせて悪意あるコードの実行をさせるために、改竄された生物学的試料を悪意あるDNAのベクターとして利用することは可能です」と彼女は言う。
「とは言え、改竄されたサンプルから悪意のあるDNA鎖をシーケンサーに送り込むためには多くの技術的困難が待ち構えています」と彼女は続けた。「たとえシーケンシングのためにシーケンサにうまく送り込めたとしても、利用可能な形になっていないかもしれません(例えば役に立つ形で読み込むためには細かく断片化されすぎているかも)」。
それは私が想像したバイオパンク黙示録の世界ではないが、研究者たちは少なくとも皆に、潜在的な攻撃パスとしてこのようなものがあることを考えて欲しいと思っている。
「科学者たちがこのことを考慮して、彼らの書くDNA解析ソフトウェアに適切なセキュリティ標準を適用して、潜在的な最初の攻撃ベクターになることが決してないようにして欲しいと思います」とOrganickは語る。
「私はどのような入力も、信用できずアプリケーションに害を与える可能性のあるものとして扱っています」とKoscherは付け加えた。「攻撃コードによってもたらされる可能性のある被害を抑えるために、こうしたアプリケーションは何らかの隔離環境(コンテナ、VMなど)の中で実行することが賢明でしょう。これらのアプリケーションの多くは、公開されたクラウドサービスとしても動作しますが、私はこれらのインスタンスを積極的に分離します」。
このような攻撃のが実際に起きる可能性はほんの僅かだが、デジタルと生物学の重なりが増えたことを示す象徴的なマイルストーンだ。
研究者たちは来週、バンクーバーで開催されるUSENIXセキュリティカンファレンスで、研究結果とプロセス(PDF)を発表する。
[ 原文へ ]
(翻訳:Sako)