日本のLinuxセキュリティは時代遅れ!? Linuxセキュリティの最先端イベント「Linux Security Summit 2017」レポート―2日目

2017年10月27日(金)
面 和毅中村 雄一

2017年9月14~15日、アメリカのロサンゼルスで「Linux Security Summit 2017」が開催されました。

前回は1日目のセッション内容をダイジェストで紹介しましたが、今回は引き続き2日目に行われた各セッションの簡単なダイジェストを紹介していきます。

なお、実際の発表資料の多くは下記のURLからダウンロードできます。

●Linux-Security-Summitのサイト
http://events.linuxfoundation.org/events/linux-security-summit/program/slides

●James Morris氏(本サミットのオーガナイザー。Oracle社)のブログ
https://blog.namei.org/2017/07/11/linux-security-summit-2017-schedule-published/

Hatching Security: LinuxKit as Security Incubator -Tycho Andersen & Riyaz Faizullabhoy, Docker

発表資料はこちら

Docker社のTycho Andersen、Riyaz Faizullabhoy両氏が2017年のDockerconで発表されたLinuxKitについて説明しました。

LinuxKitはDocker社が開発したコンテナランタイムのための軽量なLinuxサブシステムで、同社がLinux Foundationと数社の協力を得て、コンテナに特化しコンテナ環境を提供するだけの最低限のサブシステムを作成しました。コンテナに特化した最小限のLinux Kernelとコンテナランタイムのみをコアとし、外部ツールを利用して管理するrootfsはRead-Onlyになっています。その上で動かすアプリケーション類は全て署名付きコンテナを用いてインストールされます。

また、本セッションではSIG(Special Interested Group:定期開催されるオンラインミートアップのほか、ret2dir(Return-to-direct-mapped memory攻撃に対する実装としてXPFO(Exclusive page-frame ownership)についても説明されました。

Running Linux in a Shielded VM - Michael Kelley, Microsoft

発表資料はこちら

Microsoft社のMichael Kelley氏より、Windows Server 2016の機能の1つ「Shielded VM」と、Linuxをゲストとして動作させるときに使用するフロー図を基に各パートでの機能(Linux Template DiskやShielding Data Fileなど)を説明しました。また、TPMの仮想上の実装としてのvTPMについても簡単に説明しました。

Protecting VM Register State with AMD SEV-ES - David Kaplan, AMD

発表資料はこちら

AMD社のDavid Kaplan氏より、AMDのSecure Memory Encryption (SME)と呼ばれるメモリを暗号化するAES-128暗号化プロセッサの説明と、それを用いて個々のVMやコンテナ同士をセキュアに分離するSecure Encrypted Virtualization(SEV)について説明されました。

SEVはハイパーバイザ側からゲストOSの情報を盗み見たり、ゲストOSのレジスタ状態を変更して制御を奪ったりする、いわゆる「ハイパーバイザ攻撃」が脅威の対象となっています(逆にDoSなどは脅威の対象外)。

本セッションではHWによる暗号化の支援が行われることで、比較的パフォーマンスの劣化が少ないことが実測値で示されていました。

これらの機能を利用できるようにLinux Kernelの方にもパッチが提供されており、現時点で関連するパッチ類は全て取り込まれているとのことでした。「Ryzen/ThreadRipper」はこの機能が組み込まれて出荷されているそうです。

また、GHCB(Guest-Hypervisor-Communication-Block)と呼ばれるゲストOSとハイパーバイザ間の通信を遮断する方法が開発されていることにも触れられていました。

Proposal of a Method to Prevent Privilege Escalation Attacks for Linux Kernel - Yuichi Nakamura, Hitachi,Ltd & Toshihiro Yamauchi, Okayama University

発表資料はこちら

日立製作所の中村 雄一氏と岡山大学の山内 利宏教授より、Linux Kernelの脆弱性を突いて特権を取得する攻撃に対する防御策が提案されました。

簡単に説明すると、攻撃者がkernelの脆弱性を利用して特権昇格を行う場合は、攻撃者が起動したexploitから呼び出されるプログラムに対してシステムコールのsetuid/setgidを「経由せずに」権限の変更が行われるため、システムコールが呼び出された際にcredential(プロセスのuid、gid、capabilityなどの情報が入っているもの)を保存しておき、最終的にプロセスが呼び出された後のcredentialと比較して情報が変化していた場合には「不正に変化した」とみなして通知/元に戻す作業を行うものです。

実際にCVE-2017-6074の脆弱性を利用してroot権限でSELinuxを有効にするデモを行い、会場の笑いを誘いました。また、説明した保護機能を用いることにより、システムには問題が起きずにログに情報が記録されることを見せていました。

また、セッション後はKernel Self-ProtectionのKees氏に話が及び、「より良いインプリメンテーション方法はないか」などの提案があり、その後もML等でディスカッションが行われているようです。

SELinux in Android O: Separating Policy to Allow for Independent Updates - Daniel Cashman, Google

発表資料はこちら

Google社のDaniel Cashman氏より、Android v8.0(Oreo)におけるSELinuxの変更点と取り組みについて紹介されました。

Android v5.0(Lolipop)からSELinuxが有効になっていますが、このSELinuxの有効化により2017年1~4月だけでもAndroidの脆弱性のうちの44%で重大性を下げることができたそうです。

Androidでは今後もSELinuxを有効化していく事になっていますが、その中で新しいプロジェクトとして「Treble」というものが立ち上げられたそうです。

過去のSELinuxポリシの実装では、Androidが更新された際にはAndroid OSのフレームワークとSELinuxポリシも変更されるため、それに引きずられてアプリベンダーそれぞれのSELinuxポリシも変更し直さなくてはなりませんでした。

しかし、Trebleではベンダインタフェースを新たに設け、Android OSのフレームワークが変更されてもアプリベンダーのSELinuxポリシには影響を及ぼさないようになっています。

これを実現させるため、Trebleでは

  • SELinuxポリシのコンパイル方法の変更
  • ポリシのPublic/Privateの分離
  • Attribute(属性)の再定義と、Attributeを積極的に用いたポリシの作成

を行っています。特にAttributeを積極的に用いる方法に関しては、本家のSELinuxのポリシにも影響を及ぼしているそうです。

SELinux Subsystem Update - Paul Moore, Red Hat

発表資料はこちら

Red Hat社のPaul Moore氏より、SELinuxの更新情報が発表されました。

今回は特にSELinuxのコンテナ対応とLSMをRead-Onlyにしてバイパスさせないような取り組み、ユーザランドのツールの更新情報などが紹介されました。また、SELinuxの開発者Top10に上がっている人間がどれくらい会場に来ているのか、挙手させて紹介していました。

さらに、SE-Androidの成果として、BlackHat USA 2017でNick Kralevich氏が紹介したSELinuxによる代表的な攻撃の回避状況が紹介されました。

AppArmor Subsystem Update - John Johansen, Canonical Group Ltd.

発表資料はこちら

Canonical社のJohn Johansen氏より、AppArmorの更新情報が発表されました(AppArmorの発表もSuSEではなくCanonicalが行うようになったのかと、昔を知っている者としては隔世の感がありました)。

本セッションでも、特にLSMの「スタック」と現状の説明、またネームスペースが「スタック」を行ったことによりどう変化するのか説明されていました。これを見る限り、AppArmorでは比較的スムーズにコンテナ対応ができそうな印象を受けました。

Seccomp Subsystem Update - Kees Cook, Google

発表資料はこちら

Google社のKees Cook氏より、Seccompの更新情報が発表されました。

Seccompの簡単な紹介と、過去1年間の更新情報、特にプロセスが終了した場合のコアダンプの生成やログの改善、リグレッションテスト等が紹介されました。

Securing Automated Decryption - Nathaniel McCallum, Red Hat

発表資料はこちら

Red Hat社のNathaniel McCallum氏より、複合を自動化する方法として新たなモデル(Diffie-Hellmanアルゴリズムを改良した「McCallum-Relyea」と呼ばれる鍵交換方式)が紹介されました。

氏の講演に関しては、DevConf2017での講演をYouTubeの動画で見ることができます。 https://www.youtube.com/watch?v=CM_IOaBUJo0

「Linux Security Summit 2017」全体を通した感想

Linux Kernelのセキュリティに関しては、日本ではあまり紹介されることがなかったseccompなどが当たり前の知識として語られるようになっています。特にeBPFを使ってサンドボックス化させるような手法はセキュリティ開発者の中では当たり前になっているようなので、この辺りの詳しい解説が必要となると思います。LandLockは今後注目される技術の1と考えられますし、それ以前のseccompに関しても具体的な使い方などを勉強しておいた方が良いかと思われます。

また、どのセキュリティ実装でも「スタッカブル(重ね合わせ可能)」な事を意識して開発が進んでいます。スタッカブルは違うセキュリティモデル(例えばSELinuxとAppArmor)を同時に同じOS上で使用できるため、ベースOS上はSELinux、コンテナはAppArmorといったセキュリティモデルの使い分けを可能にするものです。今のところ、このような実装に注目が集まっているようです。

対象分野としては、やはりAndroidを対象にしたものと、コンテナを対象にしたものが多いようです。これらは最近のLinux/OSS業界のトレンドと同じ方向であると考えて良いでしょう。

最後にIBM、HPなどのハードウェアメーカやIntel、AMD、ARMなどのCPUメーカも率先してセキュリティ実装に取り込んでいるような印象を受けました。これはやはり、実質的にハードウェア・CPUの開発が米国に集まっている事を反映しているようなもので、日本でのユーザとメーカ間の距離や取り組みとの乖離をより強く感じました。ここは、我々のようなユーザコミュニティがもっと補完していくべきところだと考えています。

サイオステクノロジー株式会社 OSS/セキュリティエバンジェリスト
OSSのセキュリティ専門家として20年近くの経験があり、主にOS系のセキュリティに関しての執筆や講演を行う。大手ベンダや外資系、ユーザ企業などで様々な立場を経験。2015年からサイオステクノロジーのOSS/セキュリティエバンジェリストとして活躍し、同社でSIOSセキュリティブログ(http://security.sios.com)を連載中。
CISSP:#366942 近著:『Linuxセキュリティ標準教科書 』(LPI-Japan)」
株式会社 日立製作所

SELinuxから始まりOSSコミュニティ活動を長年行っている。近年は、OSSソリューションセンタにおいて、Keycloakのアップストリーム活動と関連ビジネスを立上げるなど、OSS戦略を推進中。また、The Linux Foundationのボードとして、日本国内のOSSコントリビューションの盛り上げに挑戦中。

Cloud Native Community Japanの設立発起人、OSSセキュリティ技術の会会長。博士(工学)。

連載バックナンバー

仮想化/コンテナイベント

KubeCon報告からKubernetes対応版Dockerまで、Docker Meetup Tokyo #20開催

2018/1/30
コンテナーに関する勉強会「Docker Meetup Tokyo #20」が、2017年12月14日に開催された。11月に開催された「Docker Meetup Tokyo #19」に続く回となった。
仮想化/コンテナ

Red Hatが示したOpenShiftの将来とは

2018/1/24
Red Hatが推進するコンテナープラットフォームであるOpenShiftの1dayカンファレンスが開催された。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています