最初にテトリスが登場し、次に Doom が登場し、そして現在は PDF 内で起動する基本的な Linux インスタンスが登場しています。
はい、この質素なPDFファイルは、限定的なJavaScript実行機能のおかげで、適切なPDFビューアで簡素化された32ビットRISC-V Linuxビルドルート環境を起動できるようになりました。これは、CベースのTinyEMUエミュレータをJavaScriptにコンパイルし、それをPDFファイルに埋め込むことで実現しました。ドキュメントビューアで実行され、付属の小さなLinuxディストリビューションが実行されます。
この成果を達成した人物は、The Registerが先月報じたDoomPDFも作成した人物である。
プログラミング、Web開発、サイバーセキュリティに興味を持つ高校生を自称するGitHubユーザー、ading2210さん。彼は私たちに「Allen」と呼んでほしいと頼んできました。LinuxPDFのGitHubページで、彼はこのプロジェクトがDoomPDFと同様の仕組みで動いていると説明しています。
「PDFにおけるJavaScriptの完全な仕様はAdobe Acrobatにしか実装されておらず、3Dレンダリング、HTTPリクエストの送信、ユーザーのシステムに接続されたすべてのモニターの検出といった、とんでもない機能が含まれています」とアレン氏は書いている。「これがあれば、ごく限られたI/O(入出力)だけで、望むあらゆる計算を実行できるのです。」
これをWord文書で試してみましょう! – クリックして拡大
限界があるというのは確かにその通りです。開発者が指摘しているように、パフォーマンスはそれほど良くありません。PDFファイル内でLinuxカーネルを起動するのに最大1分かかり、これは通常の100倍の速度ですが、Allen氏はこれを修正する方法はないと述べています。以前の実験と同様に、LinuxPDFを実行するにはChromiumベースのブラウザが必要ですが、他のブラウザで動作させることができれば、それは素晴らしいことです。
コントロールはせいぜいぎこちない。LinuxPDFには、フル機能のソフトウェアキーボードと、複雑なコマンドを入力するためのオプションのテキストフィールドが搭載されている。物理的なDeleteキーもEnterキーも機能しない。文字、数字、スラッシュの入力以外は、すべて仮想キーボードに頼らざるを得ない。
これらには注意してください。ソフトウェア キーボードの Delete キーでは誤ったスラッシュを削除できないため、このハゲタカは不正なコマンドを送信し、システムがそれを処理してやり直すまで待機することになります。
- Damn Small Linuxが12年ぶりに復活
- 「問題はあなたにあるのかもしれない」…Linus TorvaldsがLinuxカーネルRustドライバのドラマに介入
- The RegisterはCrysis Remasteredを実行できますか?はい、実行できますが、なぜ実行したいのかわかりません。
- オープンソースのメンテナーは低賃金で、セキュリティに追われ、高齢化が進む
さらに、PDF内のLinuxビルドはストレージの面で永続的ではありません。とはいえ、この忍耐力を要する作業を5分以上も我慢する気にはなれません。基本的なLinuxコマンド(ディレクトリの作成、ディレクトリ間の移動、空のテキストファイルの追加など)は期待通りに動作します。しかし、PDFを保存して閉じ、「再起動」すると、すべての変更が失われました。
アレン氏は、持続性が欠けていることを認めたが、必要最低限の機能を備えた Buildroot システムでも、まだまだ多くのクールなことができるとThe Registerに語った。
アプリケーションをインストールできますか?もちろん可能ですが、「ネットワークがないので、アプリケーションはビルドプロセス中にダウンロードしてインストールする必要があります」とアレン氏は言います。
「エミュレータはビデオ出力をサポートしているので、X11やGUIプログラムを実行できます」と彼は指摘した。「PDFリーダーも実行できるかもしれませんが、エミュレータの速度を考えると、かなり時間がかかるでしょう。」
特にマゾヒストな方には、GitHubリポジトリにあるAllen氏の指示に従ってLinuxPDF用にコンパイル可能なAlpine Linuxの64ビットRISC-V版も利用可能です。ただし、Allen氏はこのバージョンは「約2倍遅い」と指摘しています。32ビット版のbuildroot版の遅さを考えると推奨されませんが、32ビット版にインストールされているBusyboxセットに加えて、追加ツールが含まれています。
DoomPDFの試用版で述べたように、これは印象的な概念実証です。しかし、PDFファイル内でLinuxを起動するということは、Portal Document Format(PDF)が簡単に悪用される可能性があり、実際に悪用されることがよくあるということを改めて認識させられます。
アレン氏は、PDF での JavaScript のセキュリティ上の懸念については、攻撃対象領域は拡大するものの、ほとんどの最新の PDF エンジンは強力なセキュリティ対策を備えているため、それほど心配していないと述べています。
「PDFにJavaScriptを埋め込むことは目新しいことではありません。そのため、これらの機能がPDFリーダーに実装された時点で、セキュリティリスクはすでに考慮されていました」と開発者は述べた。「おそらく、通常のウェブページにアクセスするよりも安全でしょう。」
Chrome と Firefox はどちらも、異なる JavaScript エンジンを使用しているものの、このような状況では JIT を許可せず、代わりにエンジンにコードの解釈を強制するため、パフォーマンスは低下するものの、セキュリティ リスクは大幅に軽減されると同氏は指摘した。
いずれにせよ、セキュリティ衛生に関する古いルールは依然として有効です。ファイルが信頼できるソースからのものであると確信できない場合は、開かないでください。
PDF ウィザードが次に何をハッキングするつもりなのかについては、Allen 氏は他に何も計画していないと語った。
「でも、友達の一人がゲームボーイエミュレータの移植に取り組んでいたんだ」と彼は付け加えた。もしそれが実現したら、ぜひ試してみて、皆さんにお伝えするつもりだ。®