「わずか176塩基の人工DNAで、パソコンを外から操れる状態にした」ワシントン大学が2017年に成功させた”DNAハッキング”の中身とは?

「わずか176塩基の人工DNAで、パソコンを外から操れる状態にした」ワシントン大学が2017年に成功させた"DNAハッキング"の中身とは? 技術・発明

試験管に入ったDNAで、パソコンが乗っ取られる――まるでSF映画のような話だが、2017年にアメリカのワシントン大学の研究チームが実際に試している。コンピューターへの攻撃命令をDNAの並びとして書き込み、そのDNAを読み取ったデータで、パソコンを外から操れる状態にしてみせたのだ。ただし、ネットで広まっている話と実際の研究とでは、少し中身が違う。

今日の知ってた?

🧬 2017年、ワシントン大学の研究チームが、コンピューターへの攻撃命令を埋め込んだ人工DNAを合成した。このDNAの並びを読み取り、そのデータを解析ソフトで処理させると、ソフトの弱点が突かれて研究チームがそのパソコンに外から自由に命令を送れる状態になった。チームによれば、DNAを入り口にしてコンピューターを乗っ取った例はこれが初めて。ただし、狙われたソフトには研究チーム自身がわざと弱点を仕込んでいた

背景:DNAを「読む」と何が起きるのか

DNAは、4種類の「文字」の並びでできている。A(アデニン)、T(チミン)、G(グアニン)、C(シトシン)という4種類の塩基が一列につながり、その順番が遺伝情報になる。この並び順を読み取る装置が「DNAシーケンサー」だ。

読み取った結果は、ただの文字データになる。シーケンサーは、読み取った並びを「ACGT…」という文字の列にしてファイルに書き出す。その先では、データを圧縮したり、人のゲノムの見本と照らし合わせたりと、たくさんのプログラムが順番にこのファイルを処理していく。DNAの解析は、途中からは完全にコンピューターの仕事になるわけだ。

研究チームが目をつけたのは、この「つなぎ目」だった。論文によると、こうした解析ソフトの多くは小さな研究グループが作ったもので、悪意ある攻撃にさらされた経験がほとんどないとみられる。では、試験管の中のDNAそのものに攻撃を仕込んだら、その先のコンピューターまで届くのか。チームはこの疑問を実験で確かめた。成果は2017年8月、カナダのバンクーバーで開かれたコンピューターセキュリティの国際学会「USENIXセキュリティシンポジウム」で発表されている。

もう少し詳しく

わざと作った「あふれる入れ物」。標的にしたのは、DNAのデータを圧縮する無料公開のソフト「fqzcomp」を、研究チームが改造したものだ。改造版は、DNAの並びを圧縮したデータを大きさの決まった入れ物(メモリ上の領域)にしまう作りになっていて、想定より長い並びが来ると中身があふれ出す。これが「バッファオーバーフロー」と呼ばれる古典的な弱点で、あふれたデータが「プログラムが次にどこへ進むか」を記した情報まで書き換えてしまうと、プログラムを乗っ取れる。さらに実験用のパソコンでは、こうした攻撃を防ぐ一般的な防御機能も切ってあった。論文自身、攻撃者にとって「考えうる最高の環境」だったと認めている。

DNAに命令を書き込むのは、意外と難しかった。改造ソフトは、A=00、C=01、G=10、T=11というように、塩基1つを2ビットのデータとして扱う。これを逆にたどれば、コンピューターへの命令をDNAの並びに置き換えられる。ところが最初に設計した376塩基の並びは、DNA合成会社に作ってもらえなかった。同じ並びの繰り返しが多すぎたり、Tが13個も連続していたり、GとCの割合が足りなかったりと、DNAとして安定して作れない並びになっていたからだ。チームは命令を短く作り直し、最終的に176塩基に収めた。中身は「研究チームのサーバーに自分から接続し、そこから送られる命令を実行する」というもの。接続先のポート番号(通信の窓口を示す番号)を3から9に変えたのも、GとCの割合を保つための工夫だった。合成の料金は89ドルだったという。

結果:データを処理した瞬間に乗っ取りが成功。このDNAをイルミナ社のシーケンサーで読み取り、出てきたファイルを改造ソフトで処理すると、ソフトはすぐに研究チームのサーバーへ接続し、外から自由に命令を実行できる状態になった。ただし、確実な方法ではない。1塩基でも読み間違えれば命令は壊れるし、DNAは逆向きに読まれることもあり、そうなると役に立たない。論文の計算では、攻撃に使える形で読み取れたのは全体の37.4%。しかも、そうした読み取り結果がファイルの先頭に来ないと攻撃は成立しないため、ファイル1つを処理したときの成功率は、計算上およそ37%にとどまる。

元スレのタイトルは、少し盛られている。元スレでは「遺伝情報がコンピューターのコードとして実行され、システムを完全に掌握した」と紹介されていたが、DNAが勝手に動き出したわけではない。シーケンサーは普通にDNAを読んだだけで、乗っ取られたのは、その後で読み取りデータを処理した「わざと弱点を仕込んだソフト」のほうだ。コメント欄でも、この点にツッコミが入っていた。

本当に問題になったのは、実在のソフトのほうだった。チームは続いて、研究現場で広く使われているDNA解析ソフト13本を調べた。すると、ウェブサーバーのように日頃から攻撃にさらされているソフトと比べて、安全でない書き方として知られる命令が、1000行あたりの平均で約11倍も多く使われていた。さらにそのうち3本(fastx-toolkit、samtools、SOAPdenovo2)で、細工したデータを与えると入れ物があふれてソフトが止まる弱点を、すぐに見つけている。あるソフトでは、問題の入れ物の定義の横に「かなり適当……今のところはこれで足りるはず」というメモが書き残されていた。チームが開発者たちに問題を知らせたところ、多くはソフトの安全性を考えたことがなかったという。

思わぬ副産物と、研究チームの本音。シーケンサーでは、複数のチームのサンプルをまとめて読み取るのが普通だ。今回の結果ファイルには、一緒に読み取られた別の研究チームのDNAの並びが111本まぎれ込んでいた(相手チームの許可を得て、双方のデータを突き合わせて確認)。量はわずかでも、他人のデータを盗み見たり、逆に他人の結果へデータを混ぜ込んだりする経路になりうる、という指摘だ。一方で研究チームは、実際にDNA解析ソフトが攻撃された形跡はないと強調している。チームのメンバーは「人々を怖がらせたいわけではない。前もって注意を促したいのだ」と語っている。

海外の反応

1. 海外の名無しさん
リトル・ボビー・テーブルズがまたやりやがった。今度は名前じゃなくて、DNAの並びに仕込んできたか。

2. 海外の名無しさん(>>1への返信)
知らない人向けに言うと、海外の有名なウェブ漫画『xkcd』のネタね。息子に「読み込ませるとデータベースを消す命令になる名前」を付けた母親がいて、学校の名簿システムが丸ごと消えちゃうって話。

3. 海外の名無しさん(>>2への返信)
オチの母親のセリフ「入力データはちゃんとサニタイズ(無害化)しておきなさい」までがセットの名作。まさか、同じ教訓をDNAで聞く日が来るとは思わなかった。

4. 海外の名無しさん
だから入力データのチェックくらいちゃんとやれって。外から入ってくるデータは疑ってかかる、何十年も前から言われてる基本中の基本だろ。

5. 海外の名無しさん(>>4への返信)
消毒(サニタイズ)してないDNAなんか受け入れるから、ウイルスに感染するんだよ。生き物でもコンピューターでも、教訓はまったく同じだったわけだ。

6. 海外の名無しさん(>>5への返信)
入力データを漂白剤で消毒するのが、正真正銘のセキュリティ対策になる。そんな攻撃、たぶん史上初だよ。情報システム部に漂白剤の予算を申請しないと。

7. 海外の名無しさん(>>6への返信)
漂白剤なんてかけたら、肝心のDNAが壊れて読めなくならない? ……いや待て、読めなくなれば攻撃も防げてるのか。完璧な対策じゃん。

8. 海外の名無しさん
結局、弱点のあるプログラムを使ってやっただけでしょ。DNAはほぼ関係なくて、要はプログラムの出来がひどかったって話だよ。

9. 海外の名無しさん(>>8への返信)
そこじゃなくて、攻撃の入り口の目新しさがポイントなんだと思う。弱点のあるソフトなんていくらでもあるけど、それを「DNAの並び」で突けると実際に示したのが面白いところ。

10. 海外の名無しさん(>>9への返信)
解析するためのDNAそのものに攻撃が仕込まれてるなんて、それまで誰も想定してなかったからね。セキュリティは猫とネズミの追いかけっこで、ネズミが新しい抜け道を見つけたら、猫は見張る場所をひとつ増やす。この研究は、悪いネズミより先にその抜け道を見つけておくためのものだよ。

11. 海外の名無しさん(>>8への返信)
補足すると、研究チームは解析ソフトにわざわざ自分たちで弱点を仕込んでから攻撃してる。「どこかの研究所のパソコンが本当に乗っ取られた」って話ではないから、そこは誤解しないほうがいい。

12. 海外の名無しさん
盛り上げたい気持ちは分かるけど、「遺伝情報がコンピューターのコードとして実行された」わけじゃない。DNAを読み取ったデータを、バグのあるソフトが処理したときに、そのソフトの中で命令が動いただけ。その理屈なら、詐欺メールが届いた時点で「英語がコンピューターのコードとして実行された」ことになるぞ。

13. 海外の名無しさん(>>12への返信)
言ってることは正しいけど、試験管の液体がパソコンの乗っ取りまでつながったのは事実なんだから、十分に夢のある話だと思う。見出しが多少盛られるのは大目に見てあげて。

14. 海外の名無しさん
『BONES -骨は語る-』で、骨に刻まれた模様をスキャンしたら、研究所のパソコンにウイルスが入り込む回があった。コンピューター描写としては史上最高にバカげてると思ってた。……思ってたんだけどな。

15. 海外の名無しさん(>>14への返信)
あの回は最後にスーパーコンピューターが火を噴くんだよね。そもそも犯人はどうやって特注のシステムの弱点を知ったのか、CPUが燃える前に普通は止まるだろ、とツッコミどころが多すぎた。個人的には、あのへんからドラマの質が落ちた気がする。

16. 海外の名無しさん(>>14への返信)
元ネタがあのドラマかは分からないけど、変わった入り口から攻撃を届けるのはハッカー文化そのものなんだよ。船の信号旗を読み取るソフト経由で攻撃コードを送り込む、なんてお題のハッキング大会を見たことがある。読み込んで解析するデータがあるなら、どこでも入り口になりうる。

17. 海外の名無しさん
「ちょっとこれ見てくれ」「どうした?」「このDNAサンプル、並びがおかしいんだ」「何て書いてある?」「塩基が『sudo rm -rf /*』(パソコンの中身を根こそぎ消す命令)って並んでる」

18. 海外の名無しさん
分からないのは、データに命令を割り込ませるのに必要な「’(シングルクォート)」の塩基を、どこから調達したのかってことだ。DNAにはATGCの4種類しかないはずだぞ。

19. 海外の名無しさん(>>18への返信)
終止コドンを使ったんだろ。遺伝子の読み取りを「ここで終わり」と区切る並びだから、ある意味で生き物界のシングルクォートみたいなもんだ。

20. 海外の名無しさん(>>18への返信)
真面目に答えると、この実験では塩基4つで1文字分(1バイト)を表してるから、シングルクォートでも何でも書ける。計算してみたら「’」は「AGCT」になった。意外と普通の並びで拍子抜けする。

21. 海外の名無しさん
昔の「フリーキング」を思い出した。1960年代、電話会社が長距離電話の切り替えに使ってた音を自分で再現して、通話料を払わずに電話をかけてた連中がいたんだ。機械が「信用していいはずの信号」を鵜呑みにする弱点を突くって意味では、同じ発想だね。

22. 海外の名無しさん
未来が怖すぎる。そのうち健康診断の検体に、パソコンを乗っ取るDNAをこっそり混ぜられる時代が来るのか……。

23. 海外の名無しさん(>>22への返信)
そこまで怖がる話じゃないと思う。DNA解析ソフトの作り手が、入力データのチェックっていう基本をおろそかにしてたのが分かっただけ。研究チーム自身も、実際に攻撃された形跡はないって言ってるし。

24. 海外の名無しさん
DNA解析でよく使われるソフトは、今でもC言語みたいな、速いけど扱いを間違えると危ない言語で書かれてることが多い。一人分のゲノムデータが数百ギガバイトになることもあるから、安全より速さが優先されがちなんだ。最近は、でたらめなデータを大量に流し込んでバグを探すテストがこうしたソフトにもかけられてるし、安全性の高いRustみたいな言語も広まってきてる。

25. 海外の名無しさん
狙った施設の駐車場にUSBメモリをばらまいて、誰かが拾って自分のパソコンに挿すのを待つ、っていう古典的な手口がある。これからは、自分のDNAを施設中にばらまいて回る時代か。清掃員の仕事が増えそうだ。

まとめ

「DNAでパソコンを乗っ取る」は本当に実験で成功していた。ただし実際は、研究チームがわざと弱点を仕込んだソフトと、防御機能を切ったパソコンを使った”条件付き”の実証だ。とはいえ、実在のDNA解析ソフトにも同じ種類の弱点が見つかっており、コメント欄は「入力データをちゃんとチェックしろ」の大合唱に。DNAが”ただのデータ”として流れていく時代ならではの教訓といえそうだ。

元ソース: 2017年、科学者たちが本物のDNAを使ってコンピューターのハッキングに成功した。合成した生体サンプルにマルウェアを書き込み、研究所のDNAシーケンサーがその液体を解析すると、遺伝情報がコンピューターのコードとして実行され、ハッカーがシステムを完全に掌握した

コメント