アプリケーション開発者の間で人気が高まっている「サーバーレスアーキテクチャー」。サーバーの運用管理から解放される利便性は折り紙付きだが、果たして従来よりもセキュアなのだろうか。米国のセキュリティ研究者は「アプリケーションの認証設定には注意が必要だ」と警鐘を鳴らす。

 米国ではオープンソースソフトウエア(OSS)の開発支援団体である米Mozilla Foundationなどを中心に、ベンダーによって異なるサーバーレスアーキテクチャーの内部構造を調査する取り組みが進んでいる。

 米Amazon Web Services(AWS)の「AWS Lambda」や米Microsoftの「Azure Functions」といったサーバーレスアーキテクチャーを採用するクラウドサービスは、アプリケーション開発者にとっての利便性が高い反面、ランタイム(アプリケーション実行環境)などの内部構造がユーザーにとって「ブラックボックス」になっているためだ。

 2017年7月下旬に開催されたセキュリティカンファレンス「Black Hat 2017」では、Mozilla Foundationの子会社である米Mozillaに所属するAndrew Krug氏と、セキュリティ監視を手がける米LegitScriptのに所属するGraham Jones氏という二人のセキュリティ研究者が「Hacking Serverless Runtimes」と題する講演を行い、大手クラウド事業者が提供するサーバーレスのサービスを利用する際の注意点などを解説した(写真1)。

写真1●講演するAndrew Krug氏(左)とGraham Jones氏(右)
写真1●講演するAndrew Krug氏(左)とGraham Jones氏(右)
[画像のクリックで拡大表示]

 Krug氏は基本的な認識として、サーバーレスの利便性はとても高いと指摘する。大手クラウド事業者が提供するサーバーレスのサービスは、必要なときだけランタイムを起動してユーザーのコードを実行し、コードの実行が終了するとランタイムを消去する「イベント駆動型コード実行」の仕組みを採用する。ユーザーはランタイムの運用管理をする必要が無い。HA(高可用性)設定などもデフォルトで施されているため、システムの可用性も高めやすい。

謎が多いサーバーレス

 しかしサーバーレスのサービスはクラウド事業者が独自に開発したものである。内部構造などは公開されていない。クラウド事業者はサーバーレスの利点のアピールに熱心だが、「事業者の『約束』が真実かどうかをユーザーが確かめる術が無かった」(Krug氏)のが実情だった。そこでKrug氏らはサーバーレスの動作を分析するツールをOSSとして開発し、「ThreatResponse Project」で公開している。

 Krug氏とJones氏は自作のツールを使ってAWS LambdaやAzure Functionsといったサーバーレスのクラウドサービスを検証。Black Hat 2017の講演で、ユーザーにとってのセキュリティ上の注意点を大きく三つ指摘している。

認証設定はサーバーレスでも重要

 最も重要なのは、サーバーレスのクラウドサービスにおいても、従来型のシステム環境でアプリケーションを稼働する際と同じように、データへのアクセス権限といった認証設定を厳密に管理する必要があるということだ。

 二人がセキュリティ脆弱性のあるコードをサーバーレスのクラウドサービスに展開して検証したところ、ユーザーによる認証設定に不備がある場合に、脆弱性のあるコードが攻撃者に乗っ取られることによって、他のコードに悪影響が及ぶ危険性が高まることが分かった。