Docker Hardened Images ã«ããã glibc ãš musl ã®ãµããŒã
Docker Hardened ImagesïŒDHIïŒã¯ãã»ãã¥ãªãã£ãæåªå ãã€ã€ããªãŒãã³ãœãŒã¹ããšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢ã®å¹ åºããšã³ã·ã¹ãã ãšã®äºææ§ãæãªããªãããã«èšèšãããŠããŸãã
ãã®äºææ§ãæ¯ããéèŠãªèŠçŽ ã®ã²ãšã€ããLinux ã®äžè¬çãªæšæºã©ã€ãã©ãªã§ãã glibc
ãš musl
ã®ãµããŒãã§ãã
glibc ãš musl ãšã¯ïŒ
Linux ããŒã¹ã®ã³ã³ãããå®è¡ããéãã€ã¡ãŒãžã«å«ãŸãã C ã©ã€ãã©ãªã¯ãã¢ããªã±ãŒã·ã§ã³ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãšã©ã®ããã«ããåããããã«ãããŠéèŠãªåœ¹å²ãæãããŸãã
ã»ãšãã©ã®ã¢ãã³ãª Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ã以äžã®æšæº C ã©ã€ãã©ãªã®ããããã«äŸåããŠããŸã:
-
glibc
ïŒGNU C LibraryïŒ: DebianãUbuntuãRed Hat Enterprise Linux ãªã©äž»æµã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§æšæºãšããŠæ¡çšãããŠãã C ã©ã€ãã©ãªãå¹ åºããµããŒãããããèšèªããã¬ãŒã ã¯ãŒã¯ããšã³ã¿ãŒãã©ã€ãºãœãããŠã§ã¢ã«ãããŠæãäºææ§ãé«ãéžæè¢ãšãããŠããŸãã -
musl
:glibc
ã®è»œéãªä»£æ¿ã©ã€ãã©ãªã§ãAlpine Linux ãªã©ã®ãããã«ãªãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ãã䜿çšãããŸããã€ã¡ãŒãžãµã€ãºã®çž®å°ãããã©ãŒãã³ã¹é¢ã§å©ç¹ããããŸãããglibc
ãåæãšãããœãããŠã§ã¢ã§ã¯å¿ ãããå®å šãªäºææ§ãä¿èšŒãããããã§ã¯ãããŸããã
DHI ã®äºææ§
DHI ã€ã¡ãŒãžã¯ãglibc
ããŒã¹ïŒäŸïŒDebianïŒãš musl
ããŒã¹ïŒäŸïŒAlpineïŒã®äž¡æ¹ã®ããªã¢ã³ããæäŸãããŠããŸãã
äºææ§ãéèŠãšãªããšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ãã©ã³ã¿ã€ã ç°å¢ã§ã¯ãglibc ããŒã¹ã® DHI ã€ã¡ãŒãžã䜿çšããããšãæšå¥šããŸãã
glibc ãš muslãã©ã¡ããéžã¶ã¹ããïŒ
Docker Hardened Images ã¯ãglibc ããŒã¹ïŒDebianïŒãš musl ããŒã¹ïŒAlpineïŒã®äž¡æ¹ã®ããªã¢ã³ããæäŸããŠãããã¯ãŒã¯ããŒãã«æé©ãªãã®ãéžæã§ããŸãã
Debian ããŒã¹ïŒglibc
ïŒã€ã¡ãŒãžãéžã¶ã¹ãã±ãŒã¹:
-
ãšã³ã¿ãŒãã©ã€ãºã¯ãŒã¯ããŒããèšèªã©ã³ã¿ã€ã ããŸãã¯ãããã©ã€ãšã¿ãªãœãããŠã§ã¢ãšã®å¹ åºãäºææ§ãå¿ èŠãªå Žå
-
.NETãJavaãPython ãªã©ã
glibc
ã«äŸåãããã€ãã£ãæ¡åŒµãå«ããšã³ã·ã¹ãã ãå©çšããŠããå Žå -
ã©ã€ãã©ãªã®éäºææ§ã«ããã©ã³ã¿ã€ã ãšã©ãŒã®ãªã¹ã¯ãæå°åãããå Žå
Alpine ããŒã¹ïŒmusl
ïŒã€ã¡ãŒãžãéžã¶ã¹ãã±ãŒã¹:
-
ããå°ããã€ã¡ãŒãžãµã€ãºãšæ»æå¯Ÿè±¡é åã®åæžã«ãããæå°éã®ãããããªã³ããæ±ããå Žå
-
äŸåé¢ä¿ãæç¢ºã§ãã¹ãæžã¿ã®ã«ã¹ã¿ã ã¢ããªã±ãŒã·ã§ã³ã¹ã¿ãã¯ãæ§ç¯ããå Žå
-
æå€§éã®äºææ§ããããèµ·åã®éãã軜éãªãããã€ãåªå ããå Žå
ã©ã¡ããéžã¶ãè¿·ãå Žåã¯ããŸã Debian ããŒã¹ã®ã€ã¡ãŒãžã䜿çšããŠäºææ§ã確ä¿ããã¢ããªã±ãŒã·ã§ã³ã®äŸåé¢ä¿ã«èªä¿¡ãæãŠãããã«ãªã£ã段éã§ Alpine ãè©äŸ¡ããã®ãããããã§ãã