Mais conteúdo relacionado
Semelhante a DevConf.cz 2020参加報告 (20)
Mais de Hitachi, Ltd. OSS Solution Center. (20)
DevConf.cz 2020参加報告
- 1. © Hitachi, Ltd. 2020. All rights reserved.
Devconf.czの報告 (セキュリティ関連)
OSSセキュリティ技術の会第8回勉強会
2020/06/05
日立製作所 OSSソリューションセンタ
中村雄一
- 2. 1© Hitachi, Ltd. 2020. All rights reserved.
Devconf.czとは
・ チェコで2009年から毎年開催されている、Red Hat系のOSSコミュニティイベント
・ 元々はRed Hat社内のイベントだったが、コミュニティイベントに発展
・ かなりコアなエンジニアが世界中から集まる(日本人は見かけず…)
講演者は何かのプロジェクトのメンテナであることが多い。
OSS開発の熱気が感じられるイベント
・ Red Hatがスポンサだが、コミュニティベースで運営
・ 参加費は無料だが、「事前登録」が必要。
集まりすぎると、現地の消防関係の法令に抵触してしまうため。
- 3. 2© Hitachi, Ltd. 2020. All rights reserved.
Devconf.cz 2020概要 (1)
・ 会期: 2020/1/24-1/26 (金、土、日)
・ 開催場所:
Brno University of Technology, Brno, Česká republika
ウィーンから
電車で90分程度
大学の
キャンパスで開催されました
Googleマップより引用
- 4. 3© Hitachi, Ltd. 2020. All rights reserved.
Devconf.cz 2020概要 (2)
・ 参加者: 恐らく1000名以上。
1500名の登録申し込みが36時間で一杯に!
・ セッション数: 200程度
→ CFPで募集。結構競争率高い。
・ 日立からは乗松さんが、KeycloakのWebAuthn対応について講演
・ セッション内容:
・コンテナ基盤に関するもの
・OpenShiftの開発ツール
・セキュリティ
・ミドルウェア(JBoss関係)
・コミュニティの運営などなど
- 5. 4© Hitachi, Ltd. 2020. All rights reserved.
セキュリティ関連
数は多くないが、いい感じのものが多数!
• State of Container Security, Dan Walsh @Red Hat
• Custom SELinux container policies in OpenShift, Lukas Vrabec & Juan
Antonio Osorio Robles @ Red Hat
• Application Whitelisting in Linux Environment, Radovan Sroka @ Red Hat
• Foreman Single Sign-On, Nikhil Kathole @ Red Hat
• WebAuthn and Multi-factor Authentication Support in Keycloak, Takashi
Norimatsu @ Hitachi, Peter Skopek @ Red Hat
- 6. 5© Hitachi, Ltd. 2020. All rights reserved.
State of Container Security: イントロ
・ あのDan Walsh氏のセッション。一番広い会場で実施。
・ 最新のコンテナセキュリティ技術の非常に分かりやすいまとめ。
・ 残念な事実。
・ 「too soft」にされないのが肝要。
「ちょうどよい」セキュリティにできるようにし、「硬くもできる」ようにする。
・ 巨大なデーモンは駄目。Dockerから、podman, buildar, skopeoにした理由の一つ。
- 7. 6© Hitachi, Ltd. 2020. All rights reserved.
State of Container Security: Capability
・ 現在37種類ある。以下の14種類のcapabilityがデフォルトで有効になる。元々はDocker
Projectでそうなっていたのを踏襲。
audit_write, chown, dac_override, fowner, fsetid, kill, mknod, net_bind_service, net_raw,
setfcap, setgid, setpcap, setuid, sys_chroot
・ net_rawがデフォルトで与えられてる。Pingで必要なため。あまりよくない。
・Podmanでは、一部のネットワークにのみ可能、という設定もできるようになっている。
- 開発者側で、イメージのビルド時に、必要なcapabilityのみセットできる。
- 8. 7© Hitachi, Ltd. 2020. All rights reserved.
State of Container Security: SELinux
・ デフォルトのSELinuxのポリシでは許されないアクセスが必要なことがある。そのよう
な場合SELinuxの制限が無効にされてきたため、それに対処するために「udica」という
セキュリティポリシ生成ツールが開発。
・ SELinuxについては、ファイルシステムのセキュリティ(コンテナ→ホストへのアクセスの制
限)として主に位置付けている。
・ これまでコンテナ脱出の脆弱性がいくつか報告されてきているが、SELinuxでブロックできて
いるので、無効にしてはならない。
- 9. 8© Hitachi, Ltd. 2020. All rights reserved.
State of Container Security: Seccomp
・ seccompは、Linuxカーネルのシステムコールの利用を制限する機能。
communicationを制限する位置づけ。
・デフォルトで使えるシステムコールは、/usr/share/seccomp.jsonにて設定。
450あるシステムコールのうち300が使えるようになっている
・ 40-70個のシステムコールしか使われていないという説があるため、さらに
固めることも可能。
・ oci-seccomp-bpf-hookでシステムコールを
調査、コンテナビルド時に、必要なシステム
コールのみを記載したseccomp.jsonを入れば
デフォルト設定を上書きすることが可能。
- 10. 9© Hitachi, Ltd. 2020. All rights reserved.
State of Container Security: Name space
・ podmanとしては、name spaceをサポート
しているのだが、kubernetesのほうが十分に
対応してないため、今後の課題である。
・ コンテナセキュリティの新たな設定ファイル
として、Containers.confというファイルを設け
ようとしている。詳細はこれから。
・ Name spaceはrootを無くすためのLinuxカーネル機能。一見root(uid=0)で動いているよ
うに見えるが、実際はrootでない。
・ コンテナ間の分離を強化することができる(現状コンテナの分離はSELinuxのポリシでやれ
ているが)
- 11. 10© Hitachi, Ltd. 2020. All rights reserved.
Custom SELinux container policies in OpenShift
・ Lukas Verabec氏: 現SELinuxエバンジェリスト。Red Hatチェコ所属。
→ コンテナ向けSELinuxを紹介
・ Juan Antonio Osorio Robles:
→ k8sでのSELinuxツールを紹介
- 12. 11© Hitachi, Ltd. 2020. All rights reserved.
Custom SELinux container policies in OpenShift: デフォルト設定
・ コンテナ間の分離: MCS
以前からあるもの。カテゴリラベルをコンテナに付与して分離
これまで全てのコンテナ
脱出脆弱性をブロック
・ SELinuxによるコンテナ→ホストへのアクセス制御
container_tドメインをコンテナに付与。
・ /usrファイルへの読み込み・実行権限
・ container_file_tというラベルを付与したファイルのみ書き込み可能
- 13. 12© Hitachi, Ltd. 2020. All rights reserved.
Custom SELinux container policies in OpenShift: udica
・ udica: https://github.com/containers/udica
ターゲットコンテナがどのようなポートやファイルに触るのかを検出し、ターゲットコンテナ向け
のSELinuxの設定を生成。 → 面白そう
・ デフォルト設定の課題:
・ 設定が厳しすぎる(権限が足りない)や、逆にデフォルト設定が甘めになっているところがある。
・ 書き込み権限不足を解消しようとすると、大きく書き込み権限を与えてしまったりする
- 14. 13© Hitachi, Ltd. 2020. All rights reserved.
Custom SELinux container policies in OpenShift: k8s向け
・ SELinuxポリシの生成、インストール、管理のためのk8s Operator
・ selinux-policy-helper-operator
developerが簡単にポリシを生成できるようにすることを意図したもの。特定の
annotationを付けたpodについてポリシを生成。
・ selinux-operatorは、ポリシのインストール・削除を自動化
https://jaosorior.dev/2019/selinux-as-a-resource-in-kubernetes/
開発中の模様だが、下記ブログに結構まとまっている
- 15. 14© Hitachi, Ltd. 2020. All rights reserved.
Application Whitelisting in Linux Environment
・ Radovan Sroka氏 @ Red Hat による講演
・ Linux Security Summit 2019で紹介された技術(第6回勉強会参照)
・/etc/fapolicyd/にホワイトリストは設定。
・プログラムの実行時に、カーネルの中でfanotifyで捕まえて、fapolicydデーモンでホワイトリストを
チェックしブロック
・ Fedoraで使えるようになってる。
- 16. 15© Hitachi, Ltd. 2020. All rights reserved.
WebAuthn and Multi-factor Authentication Support in Keycloak
・ Takashi Norimatsu @ Hitachi →講演
・ Peter Skopek @ Red Hat→ デモ
・ Keycloak8.0.0にてサポートされたKeycloakのWebAuthn対応について
・ 日立、WebAuthn4j、CloudTrust社、Red Hat社のコミュニティでのコラボにより実現!
・ 2FA、Passwordless双方デモ
- 17. 16© Hitachi, Ltd. 2020. All rights reserved.
他Keycloak関連気づいたこと
今回の講演関係者のプロジェクトでKeycloak連携がある。地味に浸透。
・ Foreman
→管理コンソールへのSSOとしてKeycloakをサポート
・ Quarkus
→ Quarkus上のWebアプリの保護にKeycloakのAuthorization
Serviceが使える
https://quarkus.io/guides/security-keycloak-authorization
・ Kafka (Strimzi)
→ kafka brokerの認証にKeycloakのJWTが使える
https://strimzi.io/2019/10/25/kafka-authentication-using-oauth-2.0.html
- 18. 17© Hitachi, Ltd. 2020. All rights reserved.
他社商品名、商標等の引用に関する表示
・Kubernetesは、The Linux Foundationの米国およびその他の国における登録商標または商標です。
・Linuxは,Linus Torvalds氏の日本およびその他の国における登録商標または商標です。
・Red Hat and OpenShift are registered trademarks of Red Hat, Inc. in the United States and other
countries.
その他記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。