OWASP Kansaiローカルチャプターミーティング 6th の LT 資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
Linux NamespaceͱηΩϡϦςΟOWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6thՃ౻ହจ2015-10-02Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 1 / 19
View Slide
ࣗݾհՃ౻ହจhttp://www.ten-forward.ws/@ten forwardhttp://gplus.to/tenforwardhttps://github.com/tenforwardhttp://d.hatena.ne.jp/defiant/ (ٕज़ϒϩά)Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 2 / 19
ࣗݾհPlamo Linux ϝϯςφLXC ͰֶͿίϯςφೖɹʔܰྔԾԽڥΛ࣮ݱ͢Δٕज़gihyo.jp Ͱ࿈ࡌՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 3 / 19
ίϯςφͬͯ͝ଘͰ͔͢?Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 4 / 19
͓͜ͱΘΓWeb ηΩϡϦςΟͷ͋Γ·ͤΜຊηΩϡϦςΟͷࢹ͔Βʮίϯςφʯʹ͍ͭͯ͢ͷͰɺίϯςφʹ͔ؔͯ͠ͳΓׂΓͬͨઆ໌ʹͳ͍ͬͯ·͢ɻৄ͘͠࿈ࡌͱ͔աڈͷࢲͷߨԋࢿྉͱ͔͝ཡ͍ͩ͘͞ɻՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 5 / 19
ίϯςφͱNamespaceͷ֓ཁՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 6 / 19
ίϯςφͱΧʔωϧ͔ΒݟΔͱී௨ʹϓϩηε͕ىಈ͢Δ͚ͩΧʔωϧͷػೳͰ OS Ϧιʔε͕ଞ͔Βಠཱ͍ͯ͠ΔۭؒΛ࡞Γग़͢ԾԽͱ͍͏ΑΓʮִԽʯͱݴͬͨ΄͏͕Θ͔Γ͍͔͢Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 7 / 19
Namespace(໊લۭؒ)OS ͕ཧ͢ΔϦιʔεωοτϫʔΫ (ΞυϨεɺιέοτɺϧʔςΟϯάςʔϒϧɺϑΟϧλϦϯάςʔϒϧ)ϚϯτPIDUTS(uname(2) ͕ฦࣝ͢ผࢠͷू߹ɻυϝΠϯ໊ɺϗετ໊)IPC(System V IPC ΦϒδΣΫτɺPOSIX ϝοηʔδΩϡʔ)Ϣʔβ (UID,GID)ͳͲͳͲΛอ࣋͢Δී௨ OS ্ͷϓϩηεશͯͷ Namespace Λڞ༗͢Δclone(2) Ͱ৽͍͠ϓϩηεΛ࡞͢ΔࡍʹϑϥάΛࢦఆͯ͠ಠཱͨ͠ Namespace Λ࡞ΔՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 8 / 19
NamespaceͷྫPID Λཧ͢Δ Namespace Λ৽͘͠࡞Δ $ sudo unshare --fork --pid --mount-proc -- ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 8172 1768 pts/0 R+ 01:54 0:00 ps aux ৽ͨʹ࡞ͬͨ Namespace Ͱ ps ίϚϯυΛ࣮ߦͨ͠ͷͰɺps ίϚϯυ͕ PID:1 Ͱଞʹϓϩηεͳ͍Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 9 / 19
Namespaceͷ࣮ྫ ͦͷҰՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 10 / 19
NamespaceʹΑΔSandboxηΩϡϦςΟΛߟ͑ͯɺݖݶͷݶΒΕͨࡉԽͨ͠ϓϩάϥϜϓϩηεʹׂͯ͠ಈ࡞ͤ͞Δ͜ͱྑ͋͘ΔࡉԽͨ͠ϓϩάϥϜϓϩηεΛ৽ͨʹ࡞ͬͨ NamespaceͰىಈͤ͞ΔͱΑΓηΩϡΞʹͳΔ͔Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 11 / 19
NamespaceʹΑΔSandbox࣮ྫChrome/Chromium ͷ Linux Sandboxinghttps://chromium.googlesource.com/chromium/src/+/master/docs/linux_sandboxing.md$ pstree -p:(snip)|-chrome(29616)-+-chrome-sandbox(29618)---chrome(29620)-+-chrome(29630)-+-c| | | |:(snip)| | ‘-chrome-sandbox(29:(snip)Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 12 / 19
NamespaceʹΑΔSandbox֬ೝͯ͠ΈΔ1 λʔήοτͱͳΔϓϩηε͕ଐ͢Δ Namespace ʹೖΔ $ sudo nsenter --target 29620 --net --pid 2 ωοτϫʔΫΠϯλʔϑΣʔεΛ֬ೝͯ͠ΈΔ # ip a (ˣϧʔϓόοΫΠϯλʔϑΣʔε͔͠ͳ͍)1: lo: mtu 65536 qdisc noop state DOWN group defaultlink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 3 Namespace ͷ PID:1 Ͱ࣮ߦ͞Ε͍ͯΔίϚϯυΛݟͯΈΔ # mount -t proc proc /mnt# cat /mnt/1/cmdline/opt/google/chrome/chrome --type=zygote Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 13 / 19
Namespaceͷ࣮ྫ ͦͷೋՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 14 / 19
User NamespaceҰ൪࠷ۙΧʔωϧʹ࣮͞Εͨ Namespace (linux 3.8)௨ৗɺNamespace(=ίϯςφɾԾڥ) Λ࡞Δʹಛݖ(root ݖݶ) ͕ඞཁɻͭ·Γɺ࡞ͨ͠ Namespace ͷಛݖϢʔβϗετ্ͰಛݖΛ࣋ͭ͠੬ऑੑ͕ଘࡏͨ͠Βʜͦ͜Ͱ User Namespaceϗετ্ͰҰൠϢʔβUser Namespace ্ͰಛݖϢʔβϗετ্ͷ UID/GID ͱ Namespace ͷ UID/GID ͷϚοϐϯάΛ࡞Ͱ͖Δϗετ্ͷಛݖϢʔβͱશ͘ಉ͡ݖݶ͕ Namespace ͷಛݖϢʔβʹ༩͑ΒΕ͍ͯΔΘ͚Ͱͳ͍Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 15 / 19
User Namespace $ lxc-start -n ct01 (ίϯςφͷىಈ)$ lxc-info -n ct01 -p (ىಈͨ͠ίϯςφͷ PID)PID: 10443$ ps -u -p 10443 (10443 UID:100000 Ͱ࣮ߦ͞Ε͍ͯΔ)USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND100000 10443 0.0 0.0 33380 4004 ? Ss 23:15 0:00 /sbin/init$ lxc-attach -n ct01 (ίϯςφͷதʹೖΔ)root@ct01:/# id (root ϢʔβͰ͋Δ͜ͱΛ֬ೝ)uid=0(root) gid=0(root) groups=0(root)root@ct01:/# touch testfile (ϑΝΠϧΛ࡞Δ)root@ct01:/# ls -l testfile (ॴ༗ݖ root:root)-rw-r--r-- 1 root root 0 Oct 1 11:12 testfileroot@ct01:/# exit (ίϯςφ͔Βൈ͚Δ)$ sudo ls -l .local/share/lxc/ct01/rootfs/testfile (ί ϯ ς φ ͷ ֎ ͔ Β ݟ Δ ͱuid/gid=100000)-rw-r--r-- 1 100000 100000 0 10 ݄ 1 20:12 .local/share/lxc/ct01/rootfs/testfile Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 16 / 19
·ͱΊηΩϡϦςΟͷ؍͔Β Namespace Λհͯ͠Έ·ͨ͠ίϯςφΛ࡞ΔͨΊͷ Namespace ΛηΩϡϦςΟ֬อͷͨΊʹ͑ΔNamespace ͰಛݖϢʔβͳͷʹϗετ্ͰඇಛݖϢʔβͰ͋ΔϢʔβΛར༻Ͱ͖ΔՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 17 / 19
ڵຯΛ࣋ͬͨਓhttps://speakerdeck.com/tenforwardLXC ͰֶͿίϯςφೖɹʔܰྔԾԽڥΛ࣮ݱ͢Δٕज़Ճ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 18 / 19
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻՃ౻ହจ OWASP Kansai ϩʔΧϧνϟϓλʔϛʔςΟϯά 6th 2015-10-02 19 / 19