MS_CodeAccessSecurity - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒ.NETéçºïŒ
- ã³ãŒãã»ã¢ã¯ã»ã¹ã»ã»ãã¥ãªãã£
- .NET4ã«ããããµã³ãããã¯ã¹åAPI
ã³ãŒãã»ã¢ã¯ã»ã¹ã»ã»ãã¥ãªãã£ïŒCASïŒã«ããã
ã»ãã¥ãªãã£ã®ããã.NET ã®ããã°ã©ã ã®ã¢ã¯ã»ã¹èš±å¯ãèšå®ã§ããŸãã
-
.NET ã®ããã°ã©ã ãã³ãŒãã°ã«ãŒãã«åé¡ãã
ã»ãã¥ãªã㣠ããªã·ãŒ ã¬ãã«æ¯ã«ããããã®ã³ãŒãã°ã«ãŒãã®ã¢ã¯ã»ã¹èš±å¯ãèšå®ã§ããŸãã -
ä¿¡é ŒãããŠããã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ ãã¹ãã¯ã
ã¢ã¯ã»ã¹èš±å¯ã®èšå®ãè©äŸ¡ããã¢ã¯ã»ã¹èš±å¯ã»ãããäžããŸãã -
ããŒã¿ãããããã€ã¡ã³ãããClickOnce ãªã©ã®ãã¯ãããžã®å éšã§ãå©çšãããŠããŸãã
ç§»è¡ã¡ã¢ïŒèª€åïŒ: ç§»è¡å ã®ãã¢ã¯ã»ã¹èš±å¯ãèšå®ãè©äŸ¡ããã
ãã¢ã¯ã»ã¹èš±å¯ã®èšå®ãè©äŸ¡ããã«ä¿®æ£ããã
è£è¶³ïŒæ¬ããŒãžãä»èªãéã®åæïŒ: CAS ã¯
.NET Framework 4.0 ã§éæšå¥šãšãªãã.NET Core 以éã«ã¯ååšããªãã
æ¬ããŒãžã¯æŽå²çè³æãšããŠèªãããšã«ãªãããCAS ãç®æãããã®ãâ ã»ãã©ãããæ¥ãã³ãŒãããã«å¿ã㊠ãåäžããã»ã¹å ã§æš©éãåããã â ã€ã³ã¿ãŒãããããèœã¡ãŠããã³ãŒã㯠ãã¡ã€ã«ã«è§Šããªã â ã€ã³ãã©ã®ã³ãŒããªãå°ãèš±ã â ããŒã«ã«ãªãå šèš±å¯ ã»ãã®çºæ³ãå®çŸããŠããæè¡ - ããŒã¿ãã ãããã€ã¡ã³ãïŒIE ãã .exe ãèµ·åïŒ - ãXBAPãïŒãã©ãŠã¶å WPFïŒ - ClickOnce ã®éšåä¿¡é Œ - Silverlight â ãããããçŸåšã¯å šæ» ãããŠãã â ããªã廿¢ãããã®ãã ã»åŸè¿°ã® ïŒ IT èšäºã®èŠçŽã©ãã ãèšå®ãé£ãã䜿ãããªããªãã ã»å ããŠãã»ãã¥ãªãã£å¢çãšããŠç Žãããã â æš©éææ Œã®è匱æ§ãç¹°ãè¿ãçºèŠããã â Microsoft 㯠ãCAS ãã»ãã¥ãªãã£å¢çãšããŠäœ¿ããªããšæèš ãçŸåšã®èãæ¹ãâ ã»ä¿¡é ŒåºŠã®éãã³ãŒã㯠ãããã»ã¹ïŒã³ã³ããïŒãã·ã³ã§åããã ã»è©³çŽ°ã¯ [.NET4ã«ããããµã³ãããã¯ã¹åAPI](MS_DotNet4Sandbox)
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/ck90k585(v=vs.100)
ã¢ã»ã³ããªãŸãã¯ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã«äžããã¢ã¯ã»ã¹èš±å¯ãèšç®ããã
- ã»ãã¥ãªã㣠ããªã·ãŒ ã¬ãã«
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/628s5x1x(v=vs.100)- ãšã³ã¿ãŒãã©ã€ãº ããªã·ãŒ
- ã³ã³ãã¥ãŒã¿ãŒ ããªã·ãŒ
- ãŠãŒã¶ãŒ ããªã·ãŒ
- ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ ããªã·ãŒ
è£è¶³ïŒ4 ã€ã®ã¬ãã«ã¯ã©ãåæããããïŒ: ãèšç®ãããã®äžèº«ã
è£ã£ãŠãããšããªãèšå®ãé£ããã£ãããåããããã¢ã¯ã»ã¹èš±å¯ã®æ±ºå®æ¹æ³ãâ åããªã·ãŒ ã¬ãã«ãç¬ç«ã« ããã®ã¢ã»ã³ããªã«äžããèš±å¯ã»ããããç®åºãã æåŸã«ãå šã¬ãã«ã®ç©éåïŒANDïŒããåã ãšã³ã¿ãŒãã©ã€ãº : {A, B, C} ã³ã³ãã¥ãŒã¿ãŒ : {A, B} ãŠãŒã¶ãŒ : {A, B, C, D} ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ : {A, B, C} âââââââââââââââââââââ æçµçãªèš±å¯ : ã{A, B}ãâ â ãæãå³ããã¬ãã«ãåã€ã â ããªãåããªãã®ããã調ã¹ãã«ã¯ ã4 éå±€ãã¹ãŠã確èªãããå¿ èŠããã£ã â ãããã䜿ãããªããªãããšèšããã æå€§ã®çç±ã§ãã â ãããã«é£ããã£ãç¹ã ã»ã¬ãã«ããšã«ãã³ãŒã ã°ã«ãŒããæšæ§é ãã«ãªã£ãŠãã ã»æšã®åããŒãã«æ¡ä»¶ïŒèšŒæ ïŒãšèš±å¯ã»ãããä»ã ã»ã€ãŸã ã4 ã€ã®æšãåæã«èªã¿è§£ããå¿ èŠããã£ã
ã¡ã³ããŒã·ããïŒç¹å®ã®æ¡ä»¶ãæã€ã³ãŒãã®è«ççãªéãŸãïŒãšãã¡ã³ããŒã·ããã®èšŒæ ã
-
ã³ãŒã ã°ã«ãŒã
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/ka9xc0ek(v=vs.100)- ãã¹ãŠã®ã³ãŒã
- ã¢ããªã±ãŒã·ã§ã³ ãã£ã¬ã¯ããª
- æå·ããã·ã¥
- ãœãããŠã§ã¢çºè¡å
- ãµã€ã ã¡ã³ããŒã·ãã
- å³å¯ãªåå
- URL
- ãŸãŒã³
-
蚌æ ïŒäžèšãã³ãŒã ã°ã«ãŒãã®ã°ã«ãŒãåã«äœ¿çšãããïŒ
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/7y5x1hcd(v=vs.100)- ã¢ããªã±ãŒã·ã§ã³ ãã£ã¬ã¯ããª
- ããã·ã¥
- [çºè¡è ]
- ãµã€ã
- å³å¯ãªåå
- URL
- ãŸãŒã³
è£è¶³ïŒããŸãŒã³ãã¯ä»ãæ®ã£ãŠããæŠå¿µïŒ: ãã®äžèŠ§ã§æãã
ãŸãŒã³ã ãã¯ãCAS 廿¢åŸã Windows ã®ä»çµã¿ãšããŠçããŠããããã»ãã¥ãªã㣠ãŸãŒã³ãâ ã»ã〠ã³ã³ãã¥ãŒã¿ / ããŒã«ã« ã€ã³ãã©ããã / ä¿¡é Œæžã¿ãµã€ã / ã€ã³ã¿ãŒããã / å¶éä»ããµã€ã ã»Internet Explorer ç±æ¥ã ãã ãOS ã®ä»çµã¿ãšããŠä»ãæ©èœããã ãçŸåšã圱é¿ãåºãäŸãâ â ã»ãããããããŠã³ããŒããã ZIP ãå±éãããš åãã¡ã€ã«ã«ãZone.Identifierããšãã 代æ¿ããŒã¿ ã¹ããªãŒã ïŒADSïŒãä»ã â ãMark of the WebïŒMOTWïŒã ã»ãããä»ããŠãããš - Office ããããã¯ã ãã¥ãŒã§éã - PowerShell ã¹ã¯ãªããã®å®è¡ãå¶éããã - ãVisual Studio ããã«ããæåŠãããâ â [mark of the web](MS_MSBuildMarkOfTheWeb) ãåç § ãè§£é€æ¹æ³ã ã»ãã¡ã€ã«ã®ããããã£ã§ [èš±å¯ãã] ã«ãã§ã㯠ã»PowerShell: Unblock-File â ãå±éåã« ZIP åŽã§è§£é€ãããã®ã確å®
ã³ãŒã ã°ã«ãŒãã«é¢é£ä»ããããšãã§ããäžé£ã®ã¢ã¯ã»ã¹èš±å¯
- ååä»ãã¢ã¯ã»ã¹èš±å¯ã»ããïŒååä»ãã®ã¢ã¯ã»ã¹èš±å¯ã®ã»ããïŒ
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/4652tyx7(v=vs.100)- Nothing
- Execution
- Internet
- LocalIntranet
- Everything
- FullTrust
ã³ãŒãã»ã¢ã¯ã»ã¹ã»ã»ãã¥ãªãã£ããµããŒãããã¢ããªã±ãŒã·ã§ã³ããã¹ããã
ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã®ããšã
- ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ ãã¹ãïŒã³ãŒãã«é©çšããããªã·ãŒãæå®ã§ããïŒ
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/6700e49f(v=vs.100)- ãã©ãŠã¶ãŒ ãã¹ã (Microsoft Internet Explorer ãªã©)
- ã«ã¹ã¿ã ãã¶ã€ã³ ãã¹ã
- ãµãŒã㌠ãã¹ã (ASP.NET ãªã©)
- ã·ã§ã« ãã¹ã
è£è¶³ïŒ4 ã€ã®ãã¹ãã®ãã®åŸïŒ: ãã®äžèЧã¯ã
CAS ãåæãšããŠããäžçãæ¶ããããšã端çã«ç€ºããŠãããããã©ãŠã¶ãŒ ãã¹ããâ ã»Internet Explorer å ã§ .NET ã³ãŒããåãã â ããŒã¿ãã ãããã€ã¡ã³ããXBAP ã»ãInternet Explorer 㯠2022幎6æã«å»æ¢ã ã»XBAP ã Edge ã§ã¯åããªã â [XBAP](MS_XBAP) åç § â ãå®å šã«æ¶æ» ã ããµãŒã㌠ãã¹ãïŒASP.NETïŒã ã»å ±æãã¹ãã£ã³ã°ã§ ãä»äººã®ãµã€ãã®ã³ãŒãããå®ããããã«äœ¿ããã â <trust level="Medium" /> ç ã»ãASP.NET Core ã«ã¯ååšããªããâ â çŸåšã¯ãããã»ã¹ïŒã³ã³ããã§åé¢ããã ãã·ã§ã« ãã¹ãã ã»ãšã¯ã¹ãããŒã©ãã .exe ãçŽæ¥èµ·åããå Žå ã»çŸåšã¯ãMOTW ãšã¹ããŒã ã¹ã¯ãªãŒã³ãã ãã®åœ¹å²ãæ ã â ãã«ã¹ã¿ã ãã¶ã€ã³ ãã¹ãã ã»èªäœã¢ããªããã©ã°ã€ã³ããµã³ãããã¯ã¹ã§åãã ã»çŸåšã¯ AssemblyLoadContextïŒåé¢ã®ã¿ãã»ãã¥ãªãã£å¢çã§ã¯ãªãïŒ or å¥ããã»ã¹ / WebAssembly â
Caspol ãšããããŒã«ã䜿çšããŠã³ãŒãã»ã¢ã¯ã»ã¹ã»ã»ãã¥ãªãã£ãæ§æã§ããŸãã
- ã»ãã¥ãªã㣠ããªã·ãŒã®ç®¡ç
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/wztcyd2e(v=vs.100)- Caspol.exe (ã³ãŒã ã¢ã¯ã»ã¹ ã»ãã¥ãªã㣠ããªã·ãŒ ããŒã«)
https://learn.microsoft.com/ja-jp/dotnet/framework/tools/caspol-exe-code-access-security-policy-tool
- Caspol.exe (ã³ãŒã ã¢ã¯ã»ã¹ ã»ãã¥ãªã㣠ããªã·ãŒ ããŒã«)
è£è¶³ïŒ
caspol.exeã®çŸæ³ïŒ: ããŒã«èªäœã¯
.NET Framework ã«ä»ã忢±ãããŠããããæ©èœããªãããçŸæ³ãâ ã»%WINDIR%\Microsoft.NET\Framework\v4.0.30319\caspol.exe ã¯ãååšããã ã»ããã .NET Framework 4 以é㯠æ¢å®ã§ãã¬ã¬ã·ãŒ CAS ããªã·ãŒãç¡å¹ã â å®è¡ãããš ããã®æ©èœã¯ .NET Framework 4 ã§ã¯ æ¢å®ã§ç¡å¹ã«ãªã£ãŠããŸãããšããèŠåãåºã ãç¡çã«æå¹åããæ¹æ³ïŒéæšå¥šïŒã ã»app.config ã« <runtime> <NetFx40_LegacySecurityPolicy enabled="true"/> </runtime> ã»ãŸã㯠caspol -pp off â ãåŸæ¹äºæã®ããã ãã®æ©èœãã§ããã æ°èŠã«äœ¿ã£ãŠã¯ãããªã â ãé¢é£ããçšèªïŒSecurity Transparencyã ã»CAS ã®ä»£ããã« .NET 4 ã§å°å ¥ãããã¢ãã« ã»ã³ãŒãã 3 åé¡ãã - Transparent âŠ ç¹æš©æäœãã§ããªã - SafeCritical ⊠æ€èšŒããŠããç¹æš©ã䜿ã - Critical âŠ ç¹æš©æäœãã§ãã ã»ããã .NET Core 以éã¯ãæå³ãæããªãã
-
ã³ãŒã ã¢ã¯ã»ã¹ ã»ãã¥ãªãã£
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/930b76w0(v=vs.100)- ã³ãŒã ã¢ã¯ã»ã¹ ã»ãã¥ãªãã£ã®æŠèŠ
- ã³ãŒã ã¢ã¯ã»ã¹ ã»ãã¥ãªãã£ã®åºç€
- éšåä¿¡é Œã³ãŒãããã®ã©ã€ãã©ãªã®äœ¿çš
- å®å šãªã¯ã©ã¹ ã©ã€ãã©ãªã®äœæ
- å®å šãªãããŒãž ã³ã³ãããŒã«ã®äœæ
- ç¬èªã®ã³ãŒã ã¢ã¯ã»ã¹èš±å¯ã®äœæ
-
ã»ãã¥ãªã㣠ããªã·ãŒã®ç®¡ç
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/c1k0eed6(v=vs.100)- ã¢ã¯ã»ã¹èš±å¯ã®ä»äž
https://learn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/abt16x18(v=vs.100)
- ã¢ã¯ã»ã¹èš±å¯ã®ä»äž
ç§»è¡ã¡ã¢ïŒãªã³ã¯ïŒ: æ¬ããŒãžã®
msdn.microsoft.comã®ãªã³ã¯ã¯ã
Microsoft Learn ã®æ§ããŒãžã§ã³ ã¢ãŒã«ã€ã
ïŒlearn.microsoft.com/ja-jp/previous-versions/dotnet/netframework-4.0/...ïŒã«
察å¿ããããŒãžãããããããã¡ãã«çœ®ãæããã
ãã ã CAS ã¯éæšå¥šæè¡ã§ãããäžéšã¯æ©æ¢°ç¿»èš³ã®ãŸãŸãŸãã¯
è±èªã®ã¿ã®å¯èœæ§ãããã
CASã廿¢ã.NET 4ã®ã»ãã¥ãªãã£ã¯ã©ããªãã®ãïŒ ïŒ ïŒ IT
http://www.atmarkit.co.jp/fdotnet/special/dotnet4security_01/dotnet4security_01_01.html
- èŠçŽãããš
- CAS ã¯èšå®ãé£ãã䜿ãããªããªããã廿¢ãããã
- ã»ãã¥ãªã㣠ããªã·ãŒ ã¬ãã«ãã³ãŒãã°ã«ãŒãã蚌æ ãªã©ã¯å»æ¢ãããã
ã¢ã¯ã»ã¹èš±å¯ã®ä»çµã¿ã¯çãæ®ãã - ãã®ã¢ã¯ã»ã¹èš±å¯ã䜿çšãããµã³ãããã¯ã¹åã®ä»çµã¯ .NET4 以éã«æ®ã£ãŠããã
æ°ããã.NET4ã«ããããµã³ãããã¯ã¹åAPIããçšæãããã
ç§»è¡ã¡ã¢ïŒèª€åïŒ: ç§»è¡å ã®ã.NET4 ç§»è¡ã«æ®ã£ãŠãããã
ææïŒ.NET 4 ããåŸã®ããŒãžã§ã³ïŒããã.NET4 以éã«æ®ã£ãŠãããã«ä¿®æ£ããã
è£è¶³ïŒãã®èšäºã®äºæž¬ã®ãã®åŸïŒ: ãã¢ã¯ã»ã¹èš±å¯ã®ä»çµã¿ã¯çãæ®ãã
ãšããèŠçŽã¯åœæãšããŠæ£ããã£ããããã®åŸããã«åãããããæ®µéçãªæ¶æ» ãâ .NET Framework 4.0 â CAS ããªã·ãŒå»æ¢ãã¢ã¯ã»ã¹èš±å¯ïŒPermissionïŒã¯æ®ã .NET Framework 4.x â éšåä¿¡é Œã¯ããµããŒããããæšå¥šããªããæ±ã ã.NET Core / .NET 5 以éãâ â â ã¢ã¯ã»ã¹èš±å¯ã®ä»çµã¿ããšãååšããªãã â SecurityPermission çã®åã¯ äºæã®ããæ®ãããäœãããªãã â AppDomain ã®è€æ°çæãäžå¯èœ ãçŸåšã®ã»ãã¥ãªãã£èšèšã®èãæ¹ãâ ãåäžããã»ã¹å ã§ä¿¡é ŒåºŠãåãããã諊ãã ãããã»ã¹å¢çïŒOS å¢çïŒãããã¯ãŒã¯å¢çãã§åãã ã»ããã»ã¹åé¢ïŒå¥ exe + IPCïŒ ã»ãã³ã³ãããïŒDocker / Windows ã³ã³ããïŒ ã»ãWebAssemblyãïŒèšèªã©ã³ã¿ã€ã ã®ãµã³ãããã¯ã¹ïŒâ ã»OS ã®æ©æ§ïŒAppContainerãJob Objectã Windows SandboxïŒ ã»æå°æš©éã®ãµãŒãã¹ ã¢ã«ãŠã³ã â CAS ã®å€±æã瀺ããã®ã¯ ããå¢çã¯èãã»ã©ç Žããããããããšããæèšã§ãã
Tags: ç§»è¡, .NETéçº, ã»ãã¥ãªãã£