
èªåè»çšã¡ã¢ãªä¿è·ãŠãããã«é ããè匱æ§ã解æ
ã¯ããã«
ã³ã³ãã¥ãŒã¿ã®ç»é¢ã§ãã®æç« ãèªãã§ããä»ããã®ãããšããå¯èœã«ããŠããããã€ã¹ã«ã¯ééããªãã¡ã¢ãªç®¡çãŠãããïŒMMUïŒãæèŒãããŠããŸããæ®æ®µã¯ããŸãæèãããªããã®ã®ãMMUã¯çŸä»£ã®ã³ã³ãã¥ãŒãã£ã³ã°ã«ãããŠæ¬ ãããªãååšã§ãããæ¥ã ç§ãã¡ã䜿çšããŠãããœãããŠã§ã¢ãã¹ã ãŒãºã«åäœãããããã«ãèåŸã§ã¡ã¢ãªãªãœãŒã¹ã管çããŠããŸããã¹ããŒããã©ã³ããã€ã³ã¿ãŒããããæ¯ãã匷åãªãµãŒããŒã«è³ããŸã§ãMMUã¯ã¡ã¢ãªã®å²ãåœãŠã調æŽããããã©ãŒãã³ã¹ãæé©åããã»ãã¥ãªãã£è åšããä¿è·ããäžå¿çãªåœ¹å²ãæ ã£ãŠããŸãããããŸã§èª¬æããŸããããä»åã®ããã°èšäºã§ã¯MMUã«ã€ããŠåãäžããããã§ã¯ãããŸããããªããªããèªåè»ã®é»åå¶åŸ¡ãŠãããïŒECUïŒã®å€§éšåãæ¯ãããã€ã¯ãã³ã³ãããŒã©ãŠãããïŒMCUïŒã«ã¯ãéåžžMMUãå®è£ ãããŠããªãããã§ãã
代ããã«ä»åã®ããã°ã§ã¯ãMMUã®ãåŒåããšãèšããã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã«ã€ããŠã玹ä»ããŸããMMUã¯ãäžå€®åŠçè£ çœ®ïŒCPUïŒã®ã¡ã¢ãªç®¡çã«ãããŠäžå¿çãªåœ¹å²ãæãããã泚ç®ãéããã¡ã§ãããMPUã¯ã¡ã¢ãªä¿è·ã匷åããäžæ£ã¢ã¯ã»ã¹ãé²ããã»ãã¥ãªãã£è åšããä¿è·ãããšããéèŠãªåœ¹å²ãæãããŠããŸããããã«ãããããããMPUã¯ç®ç«ããªãååšã«ãªããã¡ã§ãã
ä»åã®ããã°ã§ã¯ä»¥äžã®å 容ã«ã€ããŠèª¬æããŸãã
- çŸä»£ã®MPUã®æ©èœïŒ
ææ°ã®ã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã®æ©èœãšãèªåè»åéã«ãããã»ãã¥ãªãã£ç¢ºä¿ã«ãããç¹å¥ãªåœ¹å²ã«ã€ããŠè§£èª¬ããŸãã - çŸä»£ã®MCUã§äœ¿çšãããMPUã®çš®é¡ïŒ
ææ°ã®ãã€ã¯ãã³ã³ãããŒã©ãŠãããïŒMCUïŒã§äœ¿çšãããããŸããŸãªMPUã®çš®é¡ã«ã€ããŠè°è«ããŸãã - çºèŠãããè匱æ§ïŒ
çºèŠãããè匱æ§ïŒCVE-2023-48010ããã³CVE-2024-33882ïŒã®è©³çŽ°ã«ã€ããŠèª¬æããŸãã - 責任ããé瀺ããã»ã¹ïŒ
ããããã³ããŒãšã®è²¬ä»»ããè匱æ§é瀺ããã»ã¹ã®æŠèŠã玹ä»ããŸãã - æšå¥šãããç·©åçïŒ
çºèŠãããè匱æ§ã«å¯ŸåŠããããã®ç·©åçãææ¡ããŸãã
èæ¯
MMUããMPUãž
çŸä»£ã®äžå€®åŠçè£ çœ®ïŒCPUïŒã§ã¯ãMMUã¯éåžžãä»®æ³ã¢ãã¬ã¹ç©ºéã管çããããŒããŠã§ã¢ããã€ã¹ãšããŠäœ¿çšãããä»®æ³ã¢ãã¬ã¹ãç©çã¢ãã¬ã¹ã«ãããã³ã°ããŸããããã«ãMMUã¯ã¡ã¢ãªã«é¢é£ããã¿ã¹ã¯ãå®è¡ããŸããMMUã®ã¡ã¢ãªä¿è·æ©èœã¯ãããã°ã©ã ãäºåã«èŠæ±ããŠããªãã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããšããè©Šã¿ããããã¯ããããèšèšãããŠãããããã«ããã誀åäœããããã°ã©ã ãã¡ã¢ãªã䜿ãæãããããæªæã®ããã³ãŒããä»ã®ããã°ã©ã ã®ããŒã¿ãèªã¿æžãããããšãé²ããŸãã
åæã®ãã€ã¯ãããã»ããµèšèšã§ã¯ã1965幎ã®IBM System 360ã1986幎ã®Apple Macintoshãªã©ãä»®æ³ã¡ã¢ãªãããã³ã°ãã¡ã¢ãªã¢ã¯ã»ã¹æš©éãåŠçããããã«MMUãå«ãŸããŠããŸããã
äžæ¹ãå°åã®ãã€ã¯ãã³ã³ãããŒã©ã¯ãMMUã«ããä»®æ³ã¡ã¢ãªãããã³ã°ã®è² æ ãå¿ èŠãšããŸããã§ããããããããã€ã¯ãã³ã³ãããŒã©ã®ã¢ãŒããã¯ãã£ã«ããã匱ç¹ã«ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããŠãŒã¶ãŒãœãããŠã§ã¢ãå€æ°ãå ±éã®ã¡ã¢ãªã䜿çšããŠããããšããããããŸãããã®åé¡ã¯ãåžå Žã«è€æ°ã³ã¢ã®ãã€ã¯ãã³ã³ãããŒã©ãç»å Žãå§ããç°ãªãã»ãã¥ãªãã£ããã³å®å šã¬ãã«ã®è€æ°ã®ã¢ããªã±ãŒã·ã§ã³ãåãå ±éã¡ã¢ãªã䜿çšããããã«ãªããšããã«è€éã«ãªããŸããã
ããé«ãã¬ãã«ã®ã»ãã¥ãªãã£ãå¿ èŠãšããã¢ããªã±ãŒã·ã§ã³ãäŸãã°èªåè»ç£æ¥ã§ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹æš©éã®ã¿ã管çããMMUã®çž®å°çãå®è£ ããŸããããããã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã®å§ãŸãã§ãã
MPUïŒçŸä»£ã®ãµã€ããŒã»ã³ãã£ãã«ïŒèŠåŒµãçªïŒ
ã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã¯ãã¡ã¢ãªã®ãéçªããšããŠæ©èœããããã°ã©ã å¯èœãªããŒããŠã§ã¢ãŠãããã§ããããã«ãããã¡ã¢ãªãç°ãªãé åã«åå²ããããããã®é åã«å¯ŸããŠã¡ã¢ãªã¢ã¯ã»ã¹æš©éïŒç¹æš©ã¢ã¯ã»ã¹ã®ã¿ãå®å šã¢ã¯ã»ã¹ãªã©ïŒãã¡ã¢ãªå±æ§ïŒèªã¿åã/æžã蟌ã¿/å®è¡ãªã©ïŒãèšå®ããããšãå¯èœã«ãªããŸãã
éåžžã«åºæ¬çãªèª¬æããããšãMPUã¯ã¡ã¢ãªãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹å¶åŸ¡ãç£èŠããŸãããã¢ã¯ã»ã¹å¶åŸ¡ããšã¯ããã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ã«ãããŠã誰ãããŸãã¯äœãããªãœãŒã¹ãé²èŠ§ãŸãã¯äœ¿çšã§ããããèŠå¶ããã»ãã¥ãªãã£æè¡ã1 ãšå®çŸ©ãããŸããããã¯ã»ãã¥ãªãã£ã®åºæ¬çãªæŠå¿µã§ãããçµç¹ã«ãšã£ãŠã®ãªã¹ã¯ãæå°éã«æãããã®ã§ãã
ããåºãæå³ã§ã¯ããComputer Security: Principles and Practiceãã«ãããŠæ¬¡ã®ããã«è¿°ã¹ãããŠããŸãã
ãâŠãã¹ãŠã®ã³ã³ãã¥ãŒã¿ã»ãã¥ãªãã£ã¯ã¢ã¯ã»ã¹å¶åŸ¡ã«é¢ãããã®ã§ãããã¢ã¯ã»ã¹å¶åŸ¡ã¯ãç¹å®ã®ã·ã¹ãã ãªãœãŒã¹ã«èª°ããŸãã¯äœãã¢ã¯ã»ã¹ã§ãããããŸãåäºäŸã§èš±å¯ãããã¢ã¯ã»ã¹ã®çš®é¡ãæå®ããã»ãã¥ãªãã£ããªã·ãŒãå®æœãããã®ã§ãããã2
ãã®æå³ã§ã¯ãMPUã¯äžè¬çãªã»ãã¥ãªãã£ãç¹ã«çµã¿èŸŒã¿ã·ã¹ãã ïŒèªåè»ãå«ãïŒã®ã»ãã¥ãªãã£ã«ãããäž»èŠãªé²åŸ¡çã®1ã€ã§ããããç 究ãFrom MMU to MPU: adaptation of the Pip kernel to constrained devicesïŒMMUããMPUãž:ææããã€ã¹ãžã®Pipã«ãŒãã«ã®é©å¿ïŒã3 ã§ã¯ããã€ã¯ãã³ã³ãããŒã©ã§MPUãæå¹åãããšãæ§èœãšãšãã«ã®ãŒæ¶è²»ã®äž¡é¢ã§16%ã®ãªãŒããŒããããçºçãããã®ã®ãã¢ã¯ã»ã¹å¯èœãªã¢ããªã±ãŒã·ã§ã³ã¡ã¢ãªã®ã¢ã¿ãã¯ãµãŒãã§ã¹ã100%ããããã2%ïŒã«åæžã§ããããšã瀺ãããŠããŸã4ã
èš±å¯ãããŠããªãã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ãè©Šã¿ããšãããŒããŠã§ã¢ãã©ã«ããçºçããæœåšçãªæ»æãå®è³ªçã«åæ¢ããäžæ£ãªã¢ã¯ã»ã¹ããäŸãã°ãã·ã¹ãã ããªã»ããããŠæ»æè ããæ¯ãæãããããªåœ¢ã§å¯Ÿå¿ããŸãã
MPUãæå¹åãããšãã©ã³ãã ã¢ã¯ã»ã¹ã¡ã¢ãªïŒRAMïŒäžã§ã®å®è¡ã¢ã¯ã»ã¹ãå¶éããããšãå¯èœã§ãããã®ãããããšãæ»æã®ç¬¬äžæ®µéãšããŠãã¿ãŒã²ããã®ECUã¹ã¿ãã¯ã¡ã¢ãªã«ã¹ã¿ãã¯ãããã¡ãªãŒããŒãããŒã®è匱æ§ãå©çšããŠæªæããã³ãŒããæžã蟌ãããšã«æåããŠããMPUã®ä¿è·ã«ãããã®ã³ãŒããã¹ã¿ãã¯ã¡ã¢ãªé åã§å®è¡ããããšã¯ã§ããªããªããŸãã
èªåè»ã®ä¿è·ãŠããã
ã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã¯ãèªåè»æ¥çã«ãããŠãè»äž¡å ã®çµã¿èŸŒã¿ã·ã¹ãã ã®ã»ãã¥ãªãã£ãä¿¡é Œæ§ãå®å šæ§ãåäžãããéèŠãªåœ¹å²ãæãããŠããŸãã以äžã«ãã®åœ¹å²ã®æŠèŠã瀺ããŸãã
- ã»ãã¥ãªãã£åŒ·å
MPUã¯ã¡ã¢ãªä¿è·ã¡ã«ããºã ãå®è£ ã»é©çšããããšã§ãèªåè»ã·ã¹ãã ã®ã»ãã¥ãªãã£ãåäžãããŸããããã«ãããäžæ£ã¢ã¯ã»ã¹ãããŒã¿ã®ç Žæãæå³ããªãã³ãŒãã®å®è¡ãé²ããå€éšããã®è åšããéèŠãªæ å ±ãæ©èœãä¿è·ããŸãã - ã¢ã¯ã»ã¹å¶åŸ¡ã®å³æ Œãªé©çš
MPUã¯ç°ãªãç¹æš©ã¬ãã«ãåºå¥ããäºåã«èšå®ãããã¢ã¯ã»ã¹å¶åŸ¡ããªã·ãŒãå³æ Œã«é©çšãã§ããŸãã
èªåè»ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒããŠã§ã¢ã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ïŒHSMïŒãããŒãããŒããŒã¢ããªã±ãŒã·ã§ã³ãã»ãã¥ã¢ããŒãããã»ã¹ããµãŒãããŒãã£ã¢ããªã±ãŒã·ã§ã³ãªã©ãç°ãªãç¹æš©ã¬ãã«ãæã€ã³ã³ããŒãã³ããé »ç¹ã«äœ¿çšãããŸããäŸãã°ãHSMã¡ã¢ãªãžã®äžæ£ãªã¢ããªã±ãŒã·ã§ã³ããã®ã¢ã¯ã»ã¹ããããã¯ããæ©èœã¯ãèªåè»ã·ã¹ãã èšèšè ã«ãšã£ãŠéèŠãªã»ãã¥ãªãã£ããŒã«ã§ãã - å®å
šæ§ã®åäž
MPUã¯ã¡ã¢ãªä¿è·ããªã·ãŒãé©çšããéèŠãªãœãããŠã§ã¢ã³ã³ããŒãã³ããåé¢ããããšã§ãå®å šæ§ãæ±ããããã·ã¹ãã ã®æ§ç¯ãæ¯æŽããŸããããã«ããããšã©ãŒãæªæã®ããå¹²æžãè»äž¡ã®å®å šãæãªããªã¹ã¯ãäœæžããŸãã - ã¢ããªã±ãŒã·ã§ã³ã®åé¢
MPUã¯ãè»äž¡å ã®çµã¿èŸŒã¿ã·ã¹ãã ã«ãããç°ãªãã¢ããªã±ãŒã·ã§ã³ã®åé¢ãå¯èœã«ããŸããããããã®ã¢ããªã±ãŒã·ã§ã³ããœãããŠã§ã¢ã¢ãžã¥ãŒã«ã«å°çšã®ä¿è·ãããã¡ã¢ãªé åãå²ãåœãŠãããšã§ãã¢ããªã±ãŒã·ã§ã³éã§ã®å¹²æžãããŒã¿ç Žæãé²ããŸãããã®åé¢ã¯ãéèŠãªæ©èœã®å®å šæ§ãç¶æãã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãžã®æ»æãåäžã·ã¹ãã å ã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãäžããªãããã«ããããã«äžå¯æ¬ ã§ãã - MPUã¯ãã³ã¢ãDMAïŒDirect Memory AccessïŒã³ã³ãããŒã©ãCANãUSBãGPUãªã©ã®ã³ã¢ïŒå€éšã®ããªãã§ã©ã«ã³ã³ãããŒã©ãªã©ãã·ã¹ãã å ã®ãã¹ã»ãã¹ã¿ã®çžäºäœçšã管çããå®å šã確ä¿ããäžã§æ¥µããŠéèŠãªåœ¹å²ãæãããŸãããã¹ã»ãã¹ã¿ã«ãããŠMPUã¯ãããŒã¿è»¢éã®å®å šæ§ãšã»ãã¥ãªãã£ãä¿èšŒããéèŠãªã³ã³ããŒãã³ããšããŠæ©èœããŸããã¡ã¢ãªä¿è·ã¡ã«ããºã ãæäŸããããšã§ãMPUã¯ç°ãªããã¹ã»ãã¹ã¿ã®åé¢ãå¯èœã«ããå ±æã¡ã¢ãªãžã®ã¢ã¯ã»ã¹ã«ãããæå³ããªãå¹²æžãæœåšçãªç«¶åãé²ããŸãããã®æ©èœã¯ãããŸããŸãªã³ã¢ãã¡ã¢ãªè³æºã«åæã«ã¢ã¯ã»ã¹ããå¯èœæ§ã®ãããã«ãã³ã¢ã·ã¹ãã ã«ãããŠç¹ã«éèŠã§ããMPUã¯ãå®å šãã€æ確ã«å®çŸ©ãããå¢çã®ç¢ºç«ã«è²¢ç®ããåãã¹ã»ãã¹ã¿ãå²ãåœãŠãããã¡ã¢ãªç©ºéå ã§åäœããããšãå¯èœã«ããŸããMPUã¯ãäžæ£ãŸãã¯æªæã®ããè¡çºããä¿è·ããããã«ã¢ã¯ã»ã¹å¶åŸ¡ãå®æœããé«éãªã³ã¢å€è»¢éäžã®ããŒã¿ã®æ©å¯æ§ãšå®å šæ§ãä¿èšŒããŸãã
MPUã®çš®é¡
ãã¹ãŠã®ã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒãåãèšèšã§äœãããŠããããã§ã¯ãªããã¢ãŒããã¯ãã£ã«ãã£ãŠããŸããŸãªçš®é¡ãååšããŸãããããã以äžã®äŸã®ãããã¯å³ã«ç€ºãããããã«ãäžè¬çã«æ¬¡ã®3ã€ã®äž»èŠãªã¿ã€ãã«åé¡ããããšãã§ããŸãã
ã³ã¢MPUïŒCMPUïŒ
CMPUïŒCore MPUãŸãã¯CPU MPUãšãåŒã°ããïŒã¯ããã€ã¯ãã³ã³ãããŒã©ã®åã³ã¢ã«çŽæ¥çµ±åãããã¡ã¢ãªä¿è·ãŠãããã§ããã³ã¢ã¬ãã«ã§åäœãã现ããã¡ã¢ãªä¿è·ããã³ã¢ã¯ã»ã¹å¶åŸ¡ã¡ã«ããºã ãæäŸããŸããCMPUã¯ãã³ã¢èªèº«ãå®è¡ããã³ãŒãããã³ããŒã¿ã¢ã¯ã»ã¹ã«å¯ŸããŠãã¡ã¢ãªä¿è·ããªã·ãŒãé©çšããããšãå¯èœã«ããŸããéåžžãè€æ°ã®ã¡ã¢ãªé åããšã«ã¢ã¯ã»ã¹æš©éïŒèªã¿åããæžã蟌ã¿ãå®è¡ïŒãç¹æš©ã¬ãã«ãèšå®ããããšãã§ããŸããCMPUã¯ããã€ã¯ãã³ã³ãããŒã©ã®åã³ã¢ã§å®è¡ãããåã ã®ãœãããŠã§ã¢ããã»ã¹ã®ã¡ã¢ãªã¢ã¯ã»ã¹ãä¿è·ããããã«äžå¯æ¬ ãªåœ¹å²ãæãããŸãã
ã·ã¹ãã MPUïŒSMPUïŒ
SMPUïŒSystem MPUãšãåŒã°ããïŒã¯ãã·ã¹ãã å šäœã®ã¡ã¢ãªç©ºéãä¿è·ããããã«èšèšãããã¡ã¢ãªä¿è·ãŠãããã§ããã³ã¢ã®èŠç¹ã§ä¿è·ãæäŸããCMPUãšã¯ç°ãªããSMPUã¯ã·ã¹ãã ã¬ãã«ã§åäœããã·ã¹ãã å ã®ãã¹ãã©ã³ã¶ã¯ã·ã§ã³5ã察象ãšããã¡ã¢ãªä¿è·ãæäŸããŸããCMPUãã³ã¢ã§å®è¡ããããœãããŠã§ã¢ã³ãŒãããçºçãããã¹ãã©ã³ã¶ã¯ã·ã§ã³ãç£èŠã»å¶åŸ¡ããã®ã«å¯ŸããSMPUã¯ãã€ã¬ã¯ãã¡ã¢ãªã¢ã¯ã»ã¹ïŒDMAïŒãHSMãªã©ã®ããŒããŠã§ã¢é¢é£ã®ã¡ã«ããºã ãå«ãã·ã¹ãã å šäœã®ãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãå¶åŸ¡ããŸããSMPUã®ã¢ãã¬ã¹é åã¯éåžžããã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®çºä¿¡å ã«ãã£ãŠå®çŸ©ãããŸããäŸãã°ãSMPUã¯HSMã«å ±æã¡ã¢ãªå ã®ç¹å®ã®ã¢ãã¬ã¹ç¯å²ãžã®ã¢ã¯ã»ã¹ãèš±å¯ããããã«èšå®ãããäžæ¹ãä»ã®çºä¿¡å ããã®ãã¹ãŠã®ãã¹ãã©ã³ã¶ã¯ã·ã§ã³ããããã¯ããããã«æ§æããããšãã§ããŸãã
åšèŸºæ©èœä¿è·ãŠãããïŒPPUïŒ
PPUïŒPeripheral MPUãšãåŒã°ããïŒã¯ãçµã¿èŸŒã¿ã·ã¹ãã å ã®ã¡ã¢ãªããããã¬ãžã¹ã¿ãä¿è·ããããã«ç¹åãããã¡ã¢ãªä¿è·ãŠãããã§ããPPUã¯ãéä¿¡ã€ã³ã¿ãŒãã§ãŒã¹ãã¿ã€ããŒãI/OããŒããªã©ã®åšèŸºæ©åšã«ç¹åããã¢ã¯ã»ã¹å¶åŸ¡ããã³ã»ãã¥ãªãã£æ©èœãæäŸããŸããããã«ãããããã»ããµã³ã¢ãå€éšãã¹ãã¹ã¿ãŒã«ãã£ãŠéå§ãããåšèŸºæ©åšãžã®ã¢ã¯ã»ã¹ã«å¯Ÿããã¢ã¯ã»ã¹æš©éãå¶éãé©çšããããšãå¯èœã§ããPPUã¯éèŠãªã·ã¹ãã åšèŸºæ©åšãžã®äžæ£ãŸãã¯æªæã®ããã¢ã¯ã»ã¹ãé²ããåšèŸºæ©åšãšã®ããåãã®ã»ãã¥ãªãã£ãšä¿¡é Œæ§ãåäžãããŸãã
CVE-2023-48010ãšCVE-2024-33882
泚ææ·±ãèšå®ãããã¡ã¢ãªãŒä¿è·ãŠãããã¯ãæ»æè ã«ãšã£ãŠåŒ·åãªå¯Ÿææ段ãšãªããŸãããããããéã¯ãã®æã匱ãéšåãšåã匷ããããªãããšãã決ãŸãæå¥ããããŸããããæ»æè ãå®ç§ã«èšå®ãããMPUãç¡å¹åããããšãã§ããã°ãåœç¶ãªããMPUã®ä¿è·æ©èœã倱ãããŠããŸããŸãã
ããã2ã€ã®è匱æ§ãCVE-2023-48010ãšCVE-2024-33882ã¯ãããããPowerPCãã€ã¯ãã³ã³ãããŒã©ã®ç¹å®ã®èšèšã«é¢é£ãããæã ãçºèŠããããŒããŠã§ã¢è匱æ§ã§ãããããã®è匱æ§ã¯ãç¹æš©ãæã€æ»æè ãSMPUïŒã·ã¹ãã ã»ã¡ã¢ãªä¿è·ãŠãããïŒå šäœãåæ¢ãããããšãå¯èœã«ãããã®çµæãä¿è·ãããã¡ã¢ãªé åãžã®èªã¿æžããå¯èœã«ããŸããPowerPCãã€ã¯ãã³ã³ãããŒã©ã®ããŒã¿ã·ãŒãã«ããã°ãããããŒããŠã§ã¢æ©èœã«ãããæ»æè ãSMPUãç¡å¹åããããšããŠããåæèšå®åŸãSMPUãæå¹ãªç¶æ ã«ä¿ãããã¯ãã§ãããå®éã«ã¯ãã®æ©èœã¯ã·ãªã³ã³ã«å®è£ ãããŠããããSMPUã¯ãã®ãããªæ»æã«å¯ŸããŠè匱ãªãŸãŸã§ããããšãæããã«ãªã£ãŠããŸãã
ãã®çµæããœãããŠã§ã¢ã®èšèšè ã¯ãããŒã¿ã·ãŒãã«è©³è¿°ãããŠãã察çãè¬ããããšã§ãä¿è·ãããŠãããã®ãããªå°è±¡ãæ±ãããŸãŸãå®éã«ã¯ä¿è·ãããŠããããã·ã¹ãã ã«ãªã¹ã¯ãããããšã«ãŸã£ããæ°ã¥ããªãå¯èœæ§ããããŸãã
èæ¯ïŒPowerPCã¢ãŒããã¯ãã£
æåã®PowerPCãã€ã¯ãã³ã³ãããŒã©ã¯ã1990幎代åã°ã«ã¢ãããŒã©ïŒåŸã®Freescale SemiconductorïŒã«ãã£ãŠè£œé ãããŸããããããã®ãã€ã¯ãã³ã³ãããŒã©ã¯MPC5xxã·ãªãŒãºãšããŠç¥ãããPowerPCã¢ãŒããã¯ãã£ããèªåè»ã¢ããªã±ãŒã·ã§ã³ãå«ãçµã¿èŸŒã¿ã·ã¹ãã åžå Žã«é²åºããæåã®äŸãšãªããŸãããMPC5xxãã¡ããªãŒã®èµ·æºã¯ã1990幎代åé ã«IBMãAppleãã¢ãããŒã©ãå ±åã§é²ããåãçµã¿ã«ãŸã§ããã®ãŒããŸãã
RISCããŒã¹ã®èšèšã«ãããé«ãæ§èœãšå¹çãå ŒãåããPowerPCããã»ããµã¯ã1990幎代åŸåã«ã¯èªåè»ã·ã¹ãã ã«æ¡çšãããããã«ãªããŸãããåœåã¯ãšã³ãžã³å¶åŸ¡ããã©ã³ã¹ããã·ã§ã³å¶åŸ¡ãšãã£ãã¿ã¹ã¯ã«äœ¿çšãããŠããŸãããããªã¢ã«ã¿ã€ã åŠçèœåãšéé ·ãªç°å¢äžã§ã®èä¹ æ§ã«ãããã€ã³ãã©ãã€ã³ã¡ã³ãã·ã¹ãã ãå é²é転æ¯æŽã·ã¹ãã ïŒADASïŒãªã©ãå¹ åºãçšéã«ãšã£ãŠæ¬ ãããªãååšãšãªããŸããã
2000幎代åã°ã«ã¯ãSTMicroelectronicsãšFreescale SemiconductorïŒçŸåšã®NXP SemiconductorsïŒãå
±åéçºããPowerPCã¢ãŒããã¯ãã£ã«åºã¥ãMPC56xx/SPC56xãã¡ããªãŒãç»å ŽããŸããããããã¯ç¹ã«èªåè»ã¢ããªã±ãŒã·ã§ã³6
åãã«èšèšãããŠãããäž¡ã¡ãŒã«ãŒéã§ãã³äºææ§ãããããã€ã¯ãã³ã³ãããŒã©ã¯ã»ãŒåäžã®ä»æ§ãæã£ãŠããŸãã
è匱æ§
(1) CVE-2023-48010
PlaxidityXã§ã¯ããããã¬ãŒã·ã§ã³ãã¹ããã»ãã¥ãªãã£ç 究ã«å ããŠãèªåè»ã·ã¹ãã åãã®ã»ãã¥ãªãã£è£œåããã³ãœãªã¥ãŒã·ã§ã³ã®èšèšãšéçºãè¡ã£ãŠããŸããä»åã®ã±ãŒã¹ã§ã¯ãå°æ¥ã®è£œåã«åããæŠå¿µå®èšŒïŒPoCïŒãéçºããŸãããã©ã®ã·ã¹ãã ãæ¡çšãããã決å®ããåã«è¡ãè©äŸ¡ã®äžç°ãšããŠããã®PoCã¯STMicroelectronicsã®PowerPC SPC58Nãã¡ããªãŒã®ãã€ã¯ãããã»ããµãåºã«æ§ç¯ããŸãããäžè¿°ã®éãããããã®ãã€ã¯ãã³ã³ãããŒã©ã¯ç¹ã«èªåè»çšéåãã«èšèšãããåºã䜿çšãããŠããããã§ãã
SPC58Nã¯ãèªåè»ã®ASIL-D7, èŠæ Œãã»ãã¥ãªãã£ã¢ããªã±ãŒã·ã§ã³åãã«èšèšããããããªãã«ã³ã¢ã®32ããããPowerã¢ãŒããã¯ãã£ã8 ãã€ã¯ãã³ã³ãããŒã©ã§ãã
以äžã¯ããã®ãããã®ããŒã¿ã·ãŒãããåŒçšãããããã¯å³ã§ãã
å³ã®äžéšã«ã¯ããããã®ã¡ã¢ãªããããŸãããã©ãã·ã¥ã¡ã¢ãªãšEEPROMã¯ã°ã¬ãŒã§ãã¹ã¿ãã£ãã¯RAMã¯éã§ç€ºãããŠããŸãããããã®ã¡ã¢ãªã¯å®çŸ©äžããã¹ãŠã®ã³ã¢ããã³åšèŸºæ©åšããå
±éããŠã¢ã¯ã»ã¹å¯èœã§ãã
å³ã®äžéšã«ã¯åã³ã¢ãé
眮ãããŠãããããããã«ç¬èªã®ã³ã¢ã¡ã¢ãªä¿è·ãŠãããïŒCMPU â èµ€ãé·æ¹åœ¢ã§ç€ºãããŠããŸãïŒãšãã³ã¢éã«é
眮ããã64ã®DMAãã£ãã«ïŒç·ã§ç€ºãããŠããŸãïŒããããŸãã
ã³ã¢ãDMAãã£ãã«ãããã³ã¡ã¢ãªã®éã«ã¯ãé»è²ã®é·æ¹åœ¢ã§ç€ºãããã·ã¹ãã ã¡ã¢ãªä¿è·ãŠãããïŒSMPUïŒãé 眮ãããŠããŸãã
åã³ã¢ã§å€æ§ãªã¢ããªã±ãŒã·ã§ã³ãåäœãããããããç°ãªãå®å šæ§ããã³ã»ãã¥ãªãã£ã¬ãã«ãæã€ããšãäºåã«åãã£ãŠãããããç§ãã¡ã¯CMPUãšSMPUã®èšå®ãæ éã«å®çŸ©ããããšã«åãçµã¿ãŸããã
CMPUãšå¶é
åã³ã¢ã¡ã¢ãªä¿è·ãŠãããïŒCMPUïŒã¯ãåã³ã¢ããçºçãããã¹ãŠã®åœä»€ãã§ãããšããŒã¿ã¡ã¢ãªã¢ã¯ã»ã¹ãç£èŠããŸããCMPUã¯ãã·ã¹ãã ãœãããŠã§ã¢ãã¡ã¢ãªé åãšãã®é¢é£ããã¢ã¯ã»ã¹æš©éãå®çŸ©ããããã«äœ¿çšããããŒããŠã§ã¢æ©èœã§ããCMPUã¯ããœãããŠã§ã¢ãæš©éãéåããŠã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ããããšãããšäŸå€ãçºçãããã·ã¹ãã èšèšè ãä»å ¥ããŠé©åã«äŸå€ãåŠçã§ããããã«ããŸãã
ã»ãã¥ãªãã£ã®èŠ³ç¹ãããCMPUã¯ä»¥äžã®2ã€ã®äž»ãªçç±ã«ãããå šäœçãªã»ãã¥ãªãã£äœå¶ã®éåžžã«éèŠãªéšåãšãªã£ãŠããŸãã
- CMPUã¯ãã¹ã¿ãã¯ãããã¡ãªãŒããŒãããŒãæ€åºã§ãããã€ã¯ãããã»ããµã¢ãŒããã¯ãã£å
ã§å¯äžã®ãšã³ãã£ãã£ã§ããã¹ã¿ãã¯ãããã¡ãªãŒããŒãããŒã¯ãããã°ã©ã ãã¹ã¿ãã¯äžã®ãããã¡ã«åãŸã以äžã®ããŒã¿ãæžã蟌ãããšã§çºçããé£æ¥ããã¡ã¢ãªã¢ãã¬ã¹ããªãŒããŒãããŒãããŸãããã®åé¡ã¯ãå
¥åããŒã¿ãé©åã«æ€èšŒãŸãã¯å¶éãããŠããªãå Žåã«çºçããæ»æè
ãé¢æ°ã®æ»ãã¢ãã¬ã¹ãã¹ã¿ãã¯äžã®ä»ã®éèŠãªããŒã¿ãäžæžãã§ããããã«ãªããŸãããã®çµæãæ»æè
ãã¹ã¿ãã¯äžã§æªæã®ããã³ãŒããå®è¡ããããã°ã©ã ã®æ£åžžãªåäœã劚害ããããšã§ãä»»æã®ã³ãŒããå®è¡ããå¯èœæ§ãçããŸãã
ãã€ã¯ãã³ã³ãããŒã©äžã§åäœãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã®ã¹ã¿ãã¯é åãæ éã«å®çŸ©ããããšã§ãèšèšè ã¯CMPUãæ§æãããã®ã¹ã¿ãã¯é åã§ã®å®è¡ããããã¯ããããã«èšå®ã§ããŸããããã«ãããæ»æ察象é åãå€§å¹ ã«å¶éã§ããŸãã - CMPUã¯ãã¢ããªã±ãŒã·ã§ã³ã®èªã¿åã/æžã蟌ã¿æäœãå¹æçã«å¶éããŸããããã«ãããæ»æè
ãä»»æã®ã³ã¢äžã§ã³ãŒãã®å®è¡ãåŸãå ŽåïŒäŸãã°ãæªæã®ãããµãŒãããŒãã£ã³ãŒããå®è¡ããããšã§ïŒãé©åã«æ§æãããCMPUãæªæã®ããã¡ã¢ãªã¢ã¯ã»ã¹ãæ€åºããæ»æè
ã®è¡åã劚害ããããšãä¿èšŒããŸãã
ããããæ¬åœã«ããã§ããããïŒ
äžèšã®ãããã¯å³ãæ¯ãè¿ããšãåã³ã¢ã«é©åã«æ§æãããCMPUãããããšã§ãã³ã¢èªèº«ããã®ã¡ã¢ãªã¢ã¯ã»ã¹ãé²ãã®ã«ã¯åœ¹ç«ã€ãã®ã®ãDirect Memory AccessïŒDMAïŒãEthernetãHSMãªã©ã®ç¹å¥ãªåšèŸºæ©åšãæªçšããŠæ»æè ãã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããšãé²ãããšã¯ã§ããŸããã
ãã®ãããªæ»æãå¹æçã«é²åŸ¡ããããã«ãSMPUïŒã·ã¹ãã ã¡ã¢ãªä¿è·ãŠãããïŒãå¿ èŠãšãªããŸãã
ã·ã¹ãã MPUïŒSMPUïŒ
äžèŠãããšãSMPUã¯CMPUãšéåžžã«äŒŒãŠããŸããSMPUãã·ã¹ãã ãœãããŠã§ã¢ãã¡ã¢ãªé åãšãã®é¢é£ããã¢ã¯ã»ã¹æš©éãå®çŸ©ããããã«äœ¿çšããããŒããŠã§ã¢æ©èœã§ãããæš©ééåãçºçããå Žåã«ã¯ãã·ã¹ãã èšèšè ãä»å ¥ããŠäŸå€ãåŠçã§ããããã«ããŸãã
ããããSMPUã«ã¯CMPUã«ã¯ãªãç¹å¥ãªæ©èœããããŸããããã¯ãSMPUãåãã¹ãã¹ã¿ãŒããšã®ã¡ã¢ãªã¢ã¯ã»ã¹ãåæã«ç£èŠããã³è©äŸ¡ããããšã§ãã
以äžã¯ãSPC58Nã§å©çšå¯èœãªãã¹ãã¹ã¿ãŒã®äžèŠ§ã§ãã
åãã¹ãã¹ã¿ãŒã«ã¯ãããããæå®ãããã¡ã¢ãªé åãžã®ã¢ã¯ã»ã¹ã管çããããã®èªã¿åã/æžã蟌ã¿/ã¢ã¯ã»ã¹çŠæ¢ã®ãã©ã°ãèšå®ãããŠããŸããããšãã°ãSMPUãç¹å®ã®ã¡ã¢ãªé åãHSMã®ã¿ãã¢ã¯ã»ã¹å¯èœãšããä»ã®ãã¹ãŠã®ãã¹ã¿ãŒãæåŠããããã«èšå®ããããšãã§ããŸãããã®å ŽåãCMPUãHSMã®ç¹å®ã¢ãã¬ã¹ãžã®ã¢ã¯ã»ã¹ããããã¯ããªããšããŠããHSMã¡ã¢ãªãèªã¿æžãããããšããè©Šã¿ã¯ãã¹ãŠSMPUã«ãã£ãŠå¹æçã«ãããã¯ãããŸãã
ããäžã€ã®äŸã¯DMAã«ããã¢ã¯ã»ã¹ã§ããCore1äžã§åäœããã¢ããªã±ãŒã·ã§ã³ãCore1ã®CMPUã«ãã£ãŠç¹å®ã®ã¡ã¢ãªé åãžã®ã¢ã¯ã»ã¹ããããã¯ãããŠããå Žåã§ããæ»æè ãDMAããŒããŠã§ã¢ãå©çšããŠãã®çŠæ¢ãããã¡ã¢ãªé åã«èªã¿åã/æžã蟌ã¿ã¢ã¯ã»ã¹ãååŸããCMPUã®å¶éãåé¿ããå¯èœæ§ããããŸãã
ãã®ããšãããSMPUã®éèŠãªæ©èœã®1ã€ã¯ãã¢ã¯ã»ã¹ãè©Šã¿ãçºä¿¡å ã®ãã¹ãã¹ã¿ãŒã«ããã¡ã¢ãªã¢ã¯ã»ã¹ããããã¯ã§ããããšã«å ããä»ã®ãã¹ã¿ãŒããã®ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããšããããã¯ã§ããç¹ã«ãããŸãã
ãŸãšãããšïŒãã€ã¯ãã³ã³ãããŒã©ã¢ãŒããã¯ãã£ã«ãããŠãã³ã¢MPUïŒCMPUïŒã¯åã³ã¢ããã®ã¡ã¢ãªã¢ã¯ã»ã¹ãç£èŠãèŠå¶ããäžã§éèŠãªåœ¹å²ãæãããŸããCMPUã¯ã¡ã¢ãªé åãšãã®æš©éãé©çšããéåãçºçããå Žåã«äŸå€ãçºçãããŸãããã®æ©èœã¯ãã¹ã¿ãã¯ãããã¡ãªãŒããŒãããŒã®ãããªäžè¬çãªæ»æãã¯ãã«ãä»»æã®ã³ãŒãå®è¡ã«ã€ãªããã®ãé²ããªã©ãã»ãã¥ãªãã£äžæ¥µããŠéèŠã§ãã
äžæ¹ãCMPUã¯ã³ã¢ã«åºã¥ãã¡ã¢ãªã¢ã¯ã»ã¹ã«ã¯å¯ŸåŠã§ããŸãããDMAã®ãããªç¹æ®ãªåšèŸºæ©åšãæªçšããæ»æã«ã¯å¯Ÿå¿ã§ããŸããããã®ã®ã£ãããåããã®ãã·ã¹ãã ã¡ã¢ãªä¿è·ãŠãããïŒSMPUïŒã§ããSMPUã¯åãã¹ãã¹ã¿ãŒããšã«ã¡ã¢ãªã¢ã¯ã»ã¹ãåæã«ç£èŠã»è©äŸ¡ããã¡ã¢ãªæš©éã«å¯Ÿãããã现ããªå¶åŸ¡ãå¯èœã«ããŸããæ¬è³ªçã«ãSMPUã®çºä¿¡å ã®ãã¹ã¿ãŒã«ããã¢ã¯ã»ã¹ãèŠå¶ããç¬èªã®èœåã¯ãåšèŸºããŒããŠã§ã¢ãå©çšããæœåšçãªæ»æãé»æ¢ããå šäœçãªã·ã¹ãã ã»ãã¥ãªãã£ã匷åããŸãã
SMPUã®èšå®
åã®æ®µèœã§ã¯ãCMPUãšSMPUãé©åã«èšå®ããéèŠæ§ã«ã€ããŠèª¬æããŸãããCMPUã¯ã³ã¢ã§åäœããã¢ããªã±ãŒã·ã§ã³ã³ãŒããã»ãã¥ãªãã£ãå®å šæ§ã®çç±ã§çŠæ¢ãããã¡ã¢ãªé åã«çŽæ¥ã¢ã¯ã»ã¹ããã®ãé²ããSMPUã¯éæ¥çãªã¡ã¢ãªã¢ã¯ã»ã¹ãé²ã圹å²ãæãããŸãã
ç§ãã¡ã䜿çšããŠããSPC58Nãããã«ã¯ã16ã®ãã¹ãã¹ã¿ãŒããšã«èªã¿åã/æžã蟌ã¿ã¢ã¯ã»ã¹å¶åŸ¡æš©éãèšå®ã§ãã24ã®ãªãŒãžã§ã³ã¬ãžã¹ã¿ãæèŒãããŠããŸããã
åSMPUãªãŒãžã§ã³ã¯ã32ãããã®éå§ã¢ãã¬ã¹ãšçµäºã¢ãã¬ã¹ãããã³ä¿è·ãããã¢ãã¬ã¹é åãšãªãŒãžã§ã³ãã©ãŒãããã¬ãžã¹ã¿ã§æ§æãããŠããŸããããã«ããã16ã®ãã¹ãã¹ã¿ãŒããšã«èš±å¯ãããã¢ã¯ã»ã¹æš©éïŒèªã¿åããèªã¿åã/æžã蟌ã¿ããŸãã¯ã¢ã¯ã»ã¹çŠæ¢ïŒãå®çŸ©ãããŸãã
åãªãŒãžã§ã³ã«ã¯ãããããæå¹ãããïŒValid BitïŒãšèªã¿åãå°çšãããïŒRead Only BitïŒãèšå®ãããŠããŸãããããã次ã®ã»ã¯ã·ã§ã³ã§èªã¿åãå°çšãããã«ã€ããŠè©³ãã説æããåã«ããã1ã€éèŠãªSMPUã¬ãžã¹ã¿ã§ããCESR0ã¬ãžã¹ã¿ã«ã€ããŠè§ŠããŠãããŸãããã
ãã¹ãŠãé©åã«èšå®ãããããå¶åŸ¡/ãšã©ãŒã¹ããŒã¿ã¹ã¬ãžã¹ã¿0ïŒCESR0ïŒã®Global ValidïŒGVLDïŒããããèšå®ããå¿ èŠããããŸããããã«ãããSMPUãæå¹åãããæœåšçãªæ»æã«å¯ŸæããæºåãæŽããŸãã以äžã®ããã«èšå®ãããŸã
ãªãŒãžã§ã³èªã¿åãå°çšããã
ã§ã¯èªã¿åãå°çšãããã«è©±ãæ»ããŸããããããŒã¿ã·ãŒãã確èªããŸãã
èªã¿åãå°çšïŒROïŒãããã¯ããªãŒãžã§ã³ãã£ã¹ã¯ãªãã¿ã®æå³ããªãå€æŽãé²ã圹å²ãæãããŸããROããããèšå®ããããšããªãŒãžã§ã³ã¬ãžã¹ã¿å ã®ä»»æã®å Žæãžã®æžã蟌ã¿ãç¡èŠãããŸããããã¯éåžžã«çã«ããªã£ãŠããéèŠã§ããäžåºŠèšå®ããããªãŒãžã§ã³ããå¶çºçãŸãã¯æªæã®ããæžã蟌ã¿ããä¿è·ãããããšãæãŸããããã§ããããããROãããã®èª¬æã«ã¯ä»¥äžã®ãããªæ³šææžãããããŸãã
Source: RM0452 SPC58H, p. 536
äžèšã®æ³šææžãã«ã¯ãROããããèšå®ããããšããªãŒãžã§ã³å šäœãããã¯ãããã·ã¹ãã ãªã»ãããŸã§å€æŽã§ããªããªããšèšèŒãããŠããŸãããã®éããªãŒãžã§ã³ã®æå¹ãããïŒValid BitïŒããã³ã°ããŒãã«æå¹ãããïŒGVLDïŒã«ã¯åœ±é¿ããªããããããã·ã¹ãã ãªã»ãããŸã§å€æŽããããšãã§ããŸããã
ããã¯éåžžã«ã¹ããŒããªé²åŸ¡çã§ããäžåºŠSMPUã®ãªãŒãžã§ã³æ å ±ãèšå®ãããROããããæå¹åããããšãã°ããŒãã«æå¹ãããïŒGVLDïŒãæäœããããšãã§ããªããªããæ»æè ãSMPUãç¡å¹åããããšãã§ããªããªããŸããSMPUãç¡å¹åããå¯äžã®æ¹æ³ã¯æ¬¡åã®ã·ã¹ãã ãªã»ããåŸãšãªããããæ»æè ã¯ããã€ã¹ãžã®æ¯é ã倱ãããšã«ãªããŸãã
SMPUã®è匱æ§
SMPUã®èšå®ãçµããåŸãã·ã¹ãã å šäœã®ãã¹ããéå§ããŸããããã®è£œåã§ã¯ã1ã€ã®ã³ã¢ãå®å šæ§ïŒASIL-DïŒã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã1ã€ã®ã³ã¢ããµãŒãããŒãã£ã®ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«æ§æãããŠããŸãããåœç¶ãªããã2ã€ã®ã³ã¢ã¯ã¡ã¢ãªãå ±æããŠããŸããã
SMPUã¯ãå®å šæ§ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªé åïŒãã©ãã·ã¥ãEEPROMãSRAMïŒãã¢ããªã±ãŒã·ã§ã³ã³ã¢ããã®èªã¿åãããã³æžã蟌ã¿ããä¿è·ããããã«èšå®ãããŸãããããã«ããã¹ãŠã®ROããããèšå®ãããŠãããããã·ã¹ãã ãªã»ãããè¡ããããŸã§SMPUã®ä¿è·ãå€æŽããããšã¯ã§ããªãããã«ãªã£ãŠããŸããã
ãããã¬ãŒã·ã§ã³ãã¹ãäžã«ãã¢ããªã±ãŒã·ã§ã³ã³ã¢äžã§æ»æè ãã·ãã¥ã¬ãŒã·ã§ã³ããŸããã
SPC58ã®ããŒã¿ã·ãŒãã«ã¯ãROããããèšå®ããåŸã¯GVLDããããSMPUã«åœ±é¿ãäžããªããšæèšãããŠããã«ããããããããã®ããŒããŠã§ã¢ã¡ã«ããºã ãã·ãªã³ã³ã«ã¯å®è£ ãããŠããªãããšãå€æããŸããããã®ãããã¢ããªã±ãŒã·ã§ã³ã³ã¢äžã®æ»æè ãGVLDãããã«0ãæžã蟌ãããšã§SMPUãç¡å¹åããã»ãŒããã£ã³ã¢ã®ã¡ã¢ãªã«å¯ŸããŠèªã¿åãããã³æžã蟌ã¿æäœãè¡ãããšãå¯èœã«ãªããŸããã
ããšãCMPUãæ£ããæ§æãããŠãããšããŠããSMPUãç¡å¹åããããšãDMAãEthernetãšãã£ãã·ã¹ãã åšèŸºæ©åšãéããŠäž»èŠãªã¡ã¢ãªãæ»æã«ãããããçµæãšãªã£ãŠããŸããã
STMicroelectronicsãžã®é瀺
SPC58ãããã§ãã®æåã確èªããçŽåŸãç§ãã¡ã¯STMicroelectronicsã®PSIRTïŒè£œåã»ãã¥ãªãã£ã€ã³ã·ãã³ã察å¿ããŒã ïŒã«ããã®è匱æ§ã«é¢ãããã¹ãŠã®é¢é£æ å ±ãæäŸããŸããã
æ°åã®ããåãã®åŸãSTMicroelectronicsãããã®åé¡ã«é¢ãããšã©ãã¿ïŒèšæ£æ å ±ïŒãå ¬éãããšã®åçãããã以äžããã®åé¡ã«å¯Ÿããåçã®å šæã§ãã
ãæ€åºãããSMPUã®æåã®éžè±ã¯ãéã»ãã¥ã¢ããã€ã¹ãã¡ã€ã³ã«åœ±é¿ãåãŒãå¯èœæ§ããããŸãããã ãããã®ãã¡ã€ã³ã¯ã»ãã¥ãªãã£æ å ±ãä¿åããããã«äœ¿çšãããã¹ãã§ã¯ãããŸããã
ç§å¯æ å ±ãã»ãã¥ãªãã£ã¯ãªãã£ã«ã«ãªããŒã¿ã¯ãHSMãµãã·ã¹ãã ã®ã¡ã¢ãªå ã«ä¿åããå¿ èŠããããŸãããããå€éšã«ä¿åãããå Žåã¯ãæå·åãå¿ èŠã§ãã
SMPUã¯ã»ãã¥ãªãã£ä¿è·ã¡ã«ããºã ã§ã¯ãããŸãããäŸãã°ãSMPUã¯å¹²æžãé²ãããã®è£å©æ©èœãšããŠèšèšãããŠããŸããã
STMicroelectronicsãžã®è²¬ä»»ããé瀺ã®æç³»å
2023幎7æ13æ¥ | æœåšçãªã»ãã¥ãªãã£è匱æ§ã«é¢ããå ±åãSTã«æåº |
2023幎8æ7æ¥ | STMicroelectronicsããããšã©ãã¿ã¯å ¬éãããããã»ãã¥ãªãã£è匱æ§ã§ã¯ãªãããšã®è¿ä¿¡ |
2023幎8æ15æ¥ | ãããªã説æãèšèŒãã2éç®ã®ã¡ãŒã«ãSTã«éä¿¡ |
2023幎9æ21æ¥ | STããã®è¿çãSMPUã¯ã»ãã¥ãªãã£ä¿è·ã¡ã«ããºã ã§ã¯ãããŸããã |
2023幎11æ6æ¥ | CVEãªã¯ãšã¹ã |
2023幎11æ20æ¥ | CVE-2023-48010ãå²ãåœãŠããã |
圱é¿ã®ããSTMicroelectronicsã®ããŒã9
- SPC58ããã€ã¹å šãŠ
- SR5E1
- SPC574K (K2)
- SPC572L (Lavaredo)
- SPC574Sx (Sphaero)
(2) CVE-2024-33882
ããã§ãNXPã®MPC5748ãéžæããŸããããã®ãããã¯ãèªåè»ããã³ç£æ¥çšã§å¶åŸ¡ããã³ã²ãŒããŠã§ã€åãã®éåžžã«é«ãä¿¡é Œæ§ãæã€MCUã10ãšèª¬æãããŠããŸãããã®NXP PowerPCãSTMicroelectronicsã®PowerPCããããããåªããã»ãã¥ãªãã£äœå¶ãæã£ãŠãããã©ããã確èªããç®çã§ãã
以äžã¯ãNXP MPC5748 PowerPCãã€ã¯ãã³ã³ãããŒã©ã®ãããã¯å³11ã§ãã
äžèšã®ãããã¯å³ãèŠãã ãã§ãçåãæ±ããã«ã¯ããããŸããã§ãããã³ã¢ã¡ã¢ãªä¿è·ãŠãããïŒCMPUïŒã¯ã©ãã«ããã®ã§ããããïŒ
é»è²ã§ç€ºããéšåã¯3ã€ã®MCUã³ã¢ãè¡šããŠããŸãããã©ããCMPUã«ãã£ãŠä¿è·ãããŠããªãããã§ãããã®ã·ã¹ãã ãªã³ãããïŒSoCïŒã«ã¯ãèµ€ã§ç€ºããã·ã¹ãã ã¡ã¢ãªä¿è·ãŠãããïŒSMPUïŒããååšããªãããã§ããç·ã§ç€ºããéšåã¯ãããã®ã¡ã¢ãªã§ãã
ããã«èª¿æ»ãé²ãããšãããMPC5748ã®SMPUã¯CMPUã®æ©èœãå ŒãåããŠããããšãå€æããŸãããããã¯ã€ãŸããSTã®SPC58ã§èŠã€ãã£ãã®ãšåãè匱æ§ãMPC5748ã«ãååšããå Žåãæ»æè ã¯ã³ã¢ä¿è·ãšã·ã¹ãã ä¿è·ãå«ãã¡ã¢ãªä¿è·ã·ã¹ãã å šäœãå®å šã«ç¡å¹åã§ããããšãæå³ããŸãïŒ
NXPã®ã¬ãžã¹ã¿åã¯ãSTMicroelectronicsã®ããããšéåžžã«äŒŒãŠããŸãããGlobal ValidãGVLDãããã¯ãSMPUx_CES0ã¬ãžã¹ã¿ã®ããã31ã«äœçœ®ããŠããŸãã
åºå žïŒMPC5748Gãªãã¡ã¬ã³ã¹ããã¥ã¢ã«, Rev. 7.1, p. 493-494
ã¡ã¢ãªé åã¯ãã¬ãžã¹ã¿SMPUx_RGDn_WRD5ã§å®çŸ©ãããŠããŸã
Source: MPC5748G Reference Manual, Rev. 7.1, p. 505
STMicroelectronicsã®SPC58ãšéåžžã«ãã䌌ãŠããããªãŒãžã§ã³ã»ãã£ã¹ã¯ãªãã¿ã»ããã¯ïŒLCKïŒãŸãã¯SPC58ã§ã®èªã¿åãå°çšãããïŒROïŒã¯ãã¡ã¢ãªä¿è·é åãèšå®åŸã«ããã¯ããããã«äœ¿çšãããŸãïŒäžèšã®é»è²ã§ç€ºãããŠããŸãïŒãèµ€ãéšåã®æ³šææžããSPC58ã®ãã®ãšäŒŒãŠããããã§ãã
ããã§ãSPC58ãã€ã¯ãã³ã³ãããŒã©ã®å Žåãšåæ§ã«ãèšè¿°ã¯ã»ãŒåäžã§ãããªãŒãžã§ã³ãããã¯ãããšãSMPUã®ã°ããŒãã«æå¹ãããïŒGlobal ValidïŒãç¡å¹ã«ãªããSMPUãç¡å¹åã§ããªããªããšãããŠããŸãã
ããããç°¡åãªãã¹ãã§å€æããã®ã¯ãSMPUãæå¹åããããã¹ãŠã®LCKããããããã¯ãããŠããç¶æ ã§ããç¹æš©ãæã€æ»æè ãGlobal Validã0ã«èšå®ããããšã§ãSMPUãå®å šã«ç¡å¹åã§ãããšããããšã§ããå¥ã«CMPUãååšããªããããSMPUãç¡å¹åããããšã§æ»æè ã¯ã¡ã¢ãªç©ºéå šäœã«å¯ŸããŠå¶éãªãã®èªã¿åã/æžã蟌ã¿/å®è¡ã¢ã¯ã»ã¹ãåŸãããšãã§ããŸãã
NXPãžã®é瀺
MPC5748ãããã§ãã®æåã確èªããçŽåŸãç§ãã¡ã¯NXPã®PSIRTïŒè£œåã»ãã¥ãªãã£ã€ã³ã·ãã³ã察å¿ããŒã ïŒã«ããã®è匱æ§ã«é¢ãããã¹ãŠã®é¢é£æ å ±ãæäŸããŸããã
äœåºŠãã®ããåãã®åŸãNXPã¯ããã¥ã¡ã³ãã®èšè¿°ãäžæ確ã§ããããšãèªãããã®å€ïŒå ·äœçãªæ¥ä»ã¯æªå®ïŒã«èª€è§£ãé²ãããã®ããã¥ã¡ã³ãã®ãšã©ãã¿ãå ¬éãããšè¿°ã¹ãŸãããããããNXPã¯SMPUãã»ãã¥ãªãã£æ©èœã§ã¯ãªããšæèšããŸããã
以äžã«NXPã®åçå šæã瀺ããŸã12ã
ãæ¬è£œåã®ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã¯ãSMPUãã»ãã¥ãªãã£æ©èœã§ã¯ãªãããšãæ確ã«èšèŒããŠããŸããSMPUã¯ãã»ãã¥ãªãã£æŠèŠãã®ç« ããã»ãã¥ãªãã£ã¢ãžã¥ãŒã«ãã®ã»ã¯ã·ã§ã³ã§ã¯ãªãããã·ã¹ãã ã¢ãžã¥ãŒã«ãã®ã»ã¯ã·ã§ã³ã«èšèŒãããŠããŸãããŸããSMPUã¯ãæ©èœäžèŠ§ãè¡šã®ãã»ãã¥ãªãã£ãã®é ç®ã«ã¯å«ãŸããŠããããSMPUã説æããç« ã§ããã»ãã¥ãªãã£ããšããçšèªã¯äœ¿çšãããŠããŸãããã
ããããMPC5748ãããã®ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ãèªã¿é²ããŠããSMPUãã»ãã¥ãªãã£æ©èœã§ã¯ãªããšããæ確ãªèšè¿°ã¯èŠã€ãããŸããã§ãããããã©ãããããªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã®ç¬¬21ç« ç¬¬2ç¯ã®SMPUã«é¢ãããã©ã°ã©ãã«ã¯ã次ã®ããã«èšèŒãããŠããŸãã
ãã·ã¹ãã ã¡ã¢ãªä¿è·ãŠãããïŒSMPUïŒã¯ãã·ã¹ãã ãã¹ã¡ã¢ãªåç §ã®ããã®ããŒããŠã§ã¢ã¢ã¯ã»ã¹å¶åŸ¡ãæäŸããŸããSMPUã¯ãã·ã¹ãã ãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãåæã«ç£èŠããã¡ã¢ãªç©ºéãšãã®ã¢ã¯ã»ã¹æš©ãå®çŸ©ããäºåããã°ã©ã æžã¿ã®ãªãŒãžã§ã³ã»ãã£ã¹ã¯ãªãã¿ã䜿çšããŠããããã®é©åæ§ãè©äŸ¡ããŸããååãªã¢ã¯ã»ã¹å¶åŸ¡æš©éãæã€ã¡ã¢ãªåç §ã¯åŠçãèš±å¯ãããŸãããã©ã®ãªãŒãžã§ã³ã»ãã£ã¹ã¯ãªãã¿ã«ããããã³ã°ãããŠããªãããŸãã¯æš©éãäžååãªåç §ã¯ãã¢ã¯ã»ã¹ãšã©ãŒå¿çãšãªããŸãã13
ãªãã¡ã¬ã³ã¹ããã¥ã¢ã«ã§ã¯ãSMPUã«ã€ããŠçŽæ¥çãŸãã¯éæ¥çã«ãèšåããŠããŸããããã ããSMPUã«ã€ããŠæžãããç« ã§ã¯ãSMPUãMCUã®ã¡ã¢ãªç©ºéãžã®ã¢ã¯ã»ã¹æš©éãå¶åŸ¡ãã圹å²ãæ ã£ãŠãããšèšèŒãããŠããŸããããã¯ã³ã³ãã¥ãŒã¿ã»ãã¥ãªãã£ã®åºæ¬ãšãèšããæŠå¿µã§ãã
NXPãžã®è²¬ä»»ããé瀺ã®æç³»å
2024幎2æ28æ¥ | NXPã«æåã®ã¡ãŒã«éç¥ |
2024幎2æ28æ¥ | NXPãå éšIDãå²ãåœãŠ |
2024幎3æ21æ¥ | NXPãžãªãã€ã³ããŒã¡ãŒã«ãéä¿¡ |
2024幎3æ21æ¥ | NXPã®åç – 調æ»ãé²è¡äž |
2024幎3æ28æ¥ | NXPããè¿ä¿¡ â 泚ææžãã®è¡šçŸãææ§ã§ãããšèªãããšã©ãã¿ãå ¬éãããäºå®ãæåã¯ä»æ§éããšã®ããšã |
2024幎3æ31æ¥ | NXPãžãããªã説æãå«ãã¡ãŒã«éä¿¡ã SMPUã¯ã»ãã¥ãªãã£ã¡ã«ããºã ã§ããããããå®è£ äžã®è匱æ§ã§ãããšèª¬æã |
2024幎4æ4æ¥ | NXPããã®æçµåç – NXPã¯ãããã»ãã¥ãªãã£åé¡ãšããŠã¯èªèããªããšã®èŠè§£ã |
2024幎4æ16æ¥ | CVEãªã¯ãšã¹ã |
2024幎4æ28æ¥ | CVE-2024-33882ãå²ãåœãŠããã |
軜æžç
- éèŠãªã»ãã¥ãªãã£ã¡ã«ããºã ãäŸãã°MPUãªã©ã«é¢ããããŒã¿ã·ãŒãã®èšèŒãä¿¡é Œããåã«ãèªèº«ã§ãã¹ããè¡ãããå€éšã®ãããã¬ãŒã·ã§ã³ãã¹ããã³ããŒãå©çšãããªã©ããŠãå¿ ããã®äž»åŒµãæ€èšŒããŠãã ããã
- ãŸããMCUã®ãšã©ãã¿ïŒèšæ£æ å ±ïŒãå¿ ã確èªããŠãã ãããããã«ã¯ããããã®ã»ãã¥ãªãã£ç¶æ³ã«é¢ããéèŠãªæ å ±ãå«ãŸããŠããå ŽåããããŸãã
- CVE-2023-48010ã«é¢é£ããŠ: ããŒããŠã§ã¢ã®ã¡ã«ããºã ãã»ãã¥ãªãã£ç®çã§ä¿¡é Œã§ããªãå ŽåïŒäžè¿°ã®SMPUã®äŸã®ããã«ïŒããã®ã¡ã«ããºã ã«äŸåããªãã§ãã ããïŒåçã®ã»ãã¥ãªãã£ã¬ãã«ãéæããããã®ä»ã®æ¹æ³ãæ¢ãããå®å šã§ç¢ºå®ãªæ¹æ³ã§å©çšã§ããããã«ããŠãã ãããããšãã°ãSTMicroelectronics MCUã«ããCMPUã®ãããªä»ã®ã¡ã¢ãªä¿è·ãŠããããå©çšããããšãæ€èšããŠãã ããã
çµè«
æ¬è«æãéããŠç€ºããŠããããã«ãã¡ã¢ãªä¿è·ãŠãããïŒMPUïŒã¯ãã¹ãŠã®ãã€ã¯ãã³ã³ãããŒã©ã®é²åŸ¡æŠç¥ã«ãããŠéèŠãªåœ¹å²ãæãããŠããŸããMPUã¯ãèªåè»ã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ãã¯ã¹ãã«ãããŠäžå¯æ¬ ã§ãããè»äž¡å ã®ECUãçµã¿èŸŒã¿ã·ã¹ãã ã®ã»ãã¥ãªãã£ãä¿¡é Œæ§ãå®å šæ§ãåäžãããŸãããã®ãããå ±æãªãœãŒã¹ã«å¯Ÿããã¢ã¯ã»ã¹å¶åŸ¡ãå®è¡ããããã«èšèšãããããŒããŠã§ã¢ã¡ã«ããºã ãã»ãã¥ãªãã£æ©èœã§ã¯ãªãããšããNXPãSTMicroelectronicsã®äž»åŒµãåãå ¥ããã®ã¯æ¥µããŠå°é£ãªããã«æããŸãã
䞡瀟ãšããç¹å®ã®æäœæé ã«åŸãã°SMPUãç¡å¹åã§ããªããªããšæ確ã«è¿°ã¹ãŠããŸãããç§ãã¡ã瀺ããããã«ãã°ããŒãã«æå¹ãããïŒGlobal Valid BitïŒãããã¯ããã¯ãã ã£ãããŒããŠã§ã¢éšåãå®è£ ãããŠãããããã®çµæãç¹æš©ãæã€æ»æè ãSMPUãç¡å¹åããéåžžã¢ã¯ã»ã¹äžå¯èœãªæ©å¯ã¡ã¢ãªé åã«ã¢ã¯ã»ã¹ã§ããããšãå€æããŸããã
- åºå ž: https://www.techtarget.com/searchsecurity/definition/access-control#:~:text=Access%20control%20is%20a%20security,access%20control%3A%20physical%20and%20logical. â©ïž
- W. Stallings, L. Brown, Computer Security: Principles and Practice, 3rd Edition, p. 114 â©ïž
- Nicolas Dejon, Chrystel Gaber, Gilles Grimaud. From MMU to MPU: adaptation of the Pip kernel to constrained devices. 3rd International Conference on Internet of Things & Embedded Systems (IoTE 2022), Dec 2022, Sydney, Australia. ffhal-03705114v2f â©ïž
- https://hal.science/hal-03705114v2/file/FromMMUToMPUAdaptationOfThePipKernelToConstrainedDevices-IoTE2022-Final.pdf p. 2 â©ïž
- ãã¹ãã©ã³ã¶ã¯ã·ã§ã³ãšã¯ãã³ã³ãã¥ãŒã¿åãããã·ã¹ãã å ã§ããã¹ã«ãã£ãŠæ¥ç¶ããã2ã€ã®ããã€ã¹éã§ããŒã¿ãå¶åŸ¡æ å ±ã亀æããããšãæããŸãããã¹ã¯ãã³ã³ãã¥ãŒã¿ã·ã¹ãã å ã®è€æ°ã®ããã€ã¹ãäºãã«éä¿¡ã§ããããã«ããéä¿¡çµè·¯ã§ãã â©ïž
- https://en.wikipedia.org/wiki/PowerPC_e200 â©ïž
- ASIL DïŒAutomotive Safety Integrity Level DïŒã¯ãISO 26262èŠæ Œå ã§å®çŸ©ãããŠããåæãã¶ãŒãïŒå·å®³ãªã¹ã¯ïŒã®æãé«ãåé¡ãæããŸãããã®ã¬ãã«ã¯ãåççã§ã¯ãªãæ®äœãªã¹ã¯ãåé¿ããããã«é©çšãããæãå³æ Œãªå®å šå¯Ÿçã®æ°Žæºã瀺ããŠããŸãã â©ïž
- ããã¯ãSTMicroelectronicsãPowerPCãã€ã¯ãã³ã³ãããŒã©ã©ã€ã³ã«ä»ããåæšåã§ãã â©ïž
- ãã®åœ±é¿ãåããMCUã®ãªã¹ãã¯ã2024幎3æ13æ¥ã«STMicroelectronicsããã¡ãŒã«ã§éä¿¡ãããŸããã â©ïž
- https://www.nxp.com/products/processors-and-microcontrollers/power-architecture/mpc5xxx-microcontrollers/ultra-reliable-mpc57xx-mcus:MPC57XX â©ïž
- https://www.nxp.com/docs/en/data-sheet/MPC5748G.pdf, p. 4 â©ïž
- ãã®è¿ä¿¡ã¯ã2024幎4æ4æ¥ã«éä¿¡ãããã¡ãŒã«ããã®ãã®ã§ãã â©ïž
- MPC5748G Reference Manual, Rev. 7.1, 01/2019, p. 479 â©ïž