9

(F15)File Capability

Embed Size (px)

Citation preview

Page 2: (F15)File Capability

$ whoamiishikawa84g

SELinux の話じゃないです

脆弱は突きません

root もとりません

Page 3: (F15)File Capability

リリースノートをみているとこんなのが

Page 4: (F15)File Capability

不要な SetUID を剥奪してやろうぜ計画

SetUID が必要な部分を残し SetUID をとる

# ls -l /bin/ping(今まで) -rwsr-xr-x. 1 root root /bin/ping(F15から) -rwxr-xr-x. 1 root root /bin/ping

Page 5: (F15)File Capability

SetUID

プログラム実行時に所有者権限で実行させる仕組み

そもそもなぜ SetUID が必要なのか

何かを実行するための特権が欲しいから 一般ユーザで出来なければ root になるしかない

ならずに済むように SetUID を利用

SetUIDを利用した権限昇格デモは前回実施済み

SystemTap の例

Page 6: (F15)File Capability

大き過ぎる特権をどうするか

分割

POSIX Capability

大き過ぎる権限を小分けにして必要な分だけ許可する

特権 : 誰が 何を出来る

ゕクセス制御: 誰が 何に対して 何を出来る

Page 7: (F15)File Capability

分割された特権の一例

RAWソケットを扱う

1024番以下のポートを利用する

Syslog を利用する

システムを再起動する。reboot()

NICE値を変更する

DAC(任意ゕクセス制御)を無視してフゔイルにゕクセス

など

最新カーネルでは 35 分割

このあたり参照:/usr/include/linux/capability.h

Page 8: (F15)File Capability

File Capability

フゔイルの XATTR に Capability を含めたもの

プログラム実行時に与えた特権を与える仕組み

XATTR(拡張属性領域)

SELinux , POSIX ACL などをぶち込む領域

-rwxr-xr-x. -rwxr-xr-x+ -rwxr-xr-x@

# getcap /bin/ping/bin/ping = cap_net_raw+ep

↑SELinux ↑POSIX ACL ↑Mac OS用

Page 9: (F15)File Capability

基本的にユーザが気にする機能ではないが特定の特権だけを与えたい場合には有用

今後 cgroups との連携があるという噂

伝えないと気付かれそうだったのでつい