ソフトウェア開発者は近年、情報経済への影響力ゆえに称賛されてきた。水曜日にカリフォルニア州サンフランシスコで開催されたNode Summitで、セキュリティ企業SnykのCEO兼共同創業者であるガイ・ポジャーニー氏は、集まった開発者たちに対し、彼らがマルウェア拡散の格好の標的となっていることを改めて強調した。
同氏は、プログラマーは情報へのアクセスとその影響力の点で「これまでよりもはるかに強力になっている」と述べた。
同時に、彼らは攻撃を受けやすいと過信しがちだと彼は述べた。Salesforce社内のフィッシングテストでは、フィッシングリンクをクリックする可能性が高い従業員グループの中で開発者が2番目に多かったことが分かったと彼は指摘した。どうやら、最も騙されやすいのはマーケティング担当者らしい。
その点を強調するために、彼はシリア電子軍による2013年のフィナンシャル・タイムズへのハッキングと、当時FTラボの所長だった開発者アンドリュー・ベッツ氏が投稿した、そのことを認める分析を詳しく語った。
「開発者たちは、自分たちがこのすべてについて賢明であると考えるかもしれない。そして私もそう思っていた」とベッツ氏は書いている。
リスクを強調するために、ポジャーニー氏は開発者がマルウェアを拡散したいくつかの例を検証した。
AppleのXCode IDEは現在5.3GBとかなり大きいが、2015年には約3GBだったと彼は述べた。これは、中国のグレート・ファイアウォール(金盾)の影響でダウンロード速度が遅いプログラマーにとっては、まだ大きすぎた。これを受けて、誰かがXCodeのコピーをBaiduのファイル共有サイトに投稿したが、そのソフトウェアにはXCodeGhostと呼ばれるコンパイラマルウェアが仕込まれていた。
XCodeGhostのiOS感染アプリ数が39から4,000に増加
続きを読む
4ヶ月間も検知されずに数百のアプリに侵入したこのマルウェアは、CoreServicesオブジェクトファイルを悪意のあるコードで改変し、コンパイル中にiOSアプリに感染させました。このマルウェアは、個人情報を盗み取るために設計された追加のインターフェース要素を作成しました。
「興味深いのは、それがどのように伝播したかです」とポジャーニー氏は述べた。「CoreServicesは実行ファイルではなく、LLVMリンカーによってリンクされたライブラリなのです。」
開発者は事実上、配布の仕組みであり、ウイルスそのものでした。
開発者とそのツールを悪用するマルウェアの歴史はさらに古く、ポジャーニー氏はこう述べた。2009年には、Delphiコンパイラに対する同様の攻撃「Induc」が発生した。また、1984年には、コンピューター界の巨匠ケン・トンプソン氏が「Reflections on Trusting Trust(信頼に関する考察)」と題した論文を発表し、生成したプログラムに自動的にバックドアを挿入するCコンパイラの開発経緯を説明した。
「教訓は明白だ」とトンプソン氏は書いている。「完全に自分で作成したのではないコードは信頼できない」
この感情は、開発者が他の誰かが書いた数十または数百のコード ライブラリ (それぞれに他のライブラリが組み込まれている場合があります) に依存することが多い Node.js コミュニティにとって特に問題となります。
開発者のDavid Gilbertson氏は1月のブログ投稿で、クレジットカード情報を盗むためのnpmパッケージの作成がいかに容易であるかに触れ、この問題に触れました。また、近年、npmやPypi、RubyGemsといった開発者リソースに対する攻撃が複数発生しています。
ポジャーニー氏はいくつかの緩和戦略を提示した。Appleやnpmがマルウェアスキャンで行っているように、セキュリティ管理の自動化やアカウントへの多要素認証の導入を提唱した。組織は、アクセストークンの自動有効期限設定など、セキュリティ確保を容易にするべきであり、開発者へのセキュリティ教育をさらに強化すべきだと彼は述べた。
セキュリティ監視企業Sqreenの主任Node.jsエンジニアであるVladimir de Turckheim氏も、その後に行われたNode.jsセキュリティに関する円卓討論セッションでこの点を強調した。「コーディングに関するグッドプラクティスを伝道するのは、私たちには得意ではありません」と彼は述べた。
同じく円卓討論会に参加していたポジャーニー氏は、最近、同社の CTO が「脆弱性マーケットプレイス、Stack Overflow」と題したプレゼンテーションを行ったと冗談を飛ばした。これは、受け入れられた解決策として緑のチェックマークが付くため、コーディング コミュニティ サイトからコピーしてアプリに貼り付けられる安全でないコード例を指している。
Podjarny 氏が開発者に伝えたかったのは、コードが安全でない可能性があるという可能性について謙虚になるべきだというメッセージでした。
「大いなる力には大いなる責任が伴う」と彼は言った。「あなたは信頼できるが、絶対に間違いを犯さないわけではない。」®