security_baseline_iis_v1.1_mohaymen

33
لی صذ ی عیغتن ػبهلتیی بی اه چک لیغتذ ؽبهل ایي عجی بی جب به ثشخی اص ثش کظ پش بیکذ ثب کبسثشد هبة هی ثبؽذ بی ذیظ د عش ػبتی اع ير تی سر چک لیست امىی( يب يیىذيزىذريیس د سIIS )

Upload: ali-tajik

Post on 15-Apr-2017

42 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Security_Baseline_IIS_V1.1_mohaymen

کظ ثشخی اص ثشبه بی جبجی ایي عذ ؽبهل چک لیغتبی اهیتی عیغتن ػبهل یذص لی

اعالػبتی عشیظ دذ بی ة هی ثبؽذکبسثشد هبذ ثبکبی پش

چک لیست امىیتی سرير

(IISسريیس دىذ يب يیىذيز )

Page 2: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

1 چک لیست اهیتی سزر

ضثک سیستن ػاهل زم افشارای هن

ظیوات اهیتی ) Security Auditingایي چک لیست جت تزرسی ت رد استفاد قزار هی گیزد ( ه

وایذ در صرت ػذم ارسیاب تا تج ت پیکزتذی فؼلی سزر اقذام ت تاییذ یا ػذم تاییذ هار د اهیتی هی

ادی) ا ارائ ضذ ایي هارد Best Practicesرػایت کات پیط ( ک تسط ضزکتای ساسذ زم افشار

تزای اصالح ت تین اهي ساسی ) ذ ضذ تذیی Security Hardeningضاسایی ( ارجاع داد خا

سط هالک در صرت ػذم رفغ هطکالت ضاسایی ضذ ت سزر ایي هارد ت ػاى ریسک در ظز است ک

خاذ ضذ . گزفت

حق مالکیت سىذ

------------------------------------ت وشاوی -----------------------ایه سىذ در مالکیت

تد ي شامل اطالعات محرماو ي تجاري است. مالکیت ایه سىذ را ومی تان تذين کسة اجاز

کذام از اقالم ایه ت شخص حقیقی یا حققی دیگري اوتقال داد. یچ مذیریت شرکتکتثی از

------------------------------------------تان تذين اجاز کتثی از سىذ را ومی مرد استفاد

ومد، یا مىتشر کرد. قرار داد، مجذدا استفاد

Page 3: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

2 شىاسىام ارزیاتی امىیتی

آدرس دارایی :

:پیماوکار : کارفرما

وام ارزیاب : محل ارزیاتی :

:مالک دارایی وام تجیسات شثک سرير : وع دارایی

تاریخ پایان ارزیاتی : تاریخ شريع ارزیاتی :

Full Access Limited Access Document Basedوع ارزیاتی :

Page 4: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

3 IISتنظیمات امنیتی مبتنی بر

تنظیمات پایه

ای سیستویدرای ری اطویاى اس قزار گزفتي دایزکتری ای هجاسی ػاى : هتؾش هی ؽد، تعظ دایشکتسی بی هجبصی ثش سی هکبى بی IISهبثغ ة ک تعظ تضیحبت :

هی ؽد دایشکتسی بی هجبصی ثش سی فیضیکی سی بسددیغک قشاس هی گیشذ.تفی

پبستیؾي بی عیغتوی قشاس گیشذ صیشا ایي کبس ن ثبػث اؽغبل ؽذى فضبی فبیل بی

دس فست آعیت پزیش عیغتوی تعظ ایي فبیل ب هی ؽد ن ایي اهکبى جد داسد ک

فبیل دس ة عبیت یب ة اپلیکیؾي، هحشهبگی یکپبسچگی اعالػبت فبیل بی IOثدى

عیغتوی تحت تأثیش قشاس گیشد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

هجبصی ثش سی دسای عیغتوی دعتس صیش اجشا ثشای اعویبى اص قشاس گشفتي دایشکتسی بی سػ پیبد عبصی :

ؽد:

%systemroot%\system23\inetsrv\appcmd list vdir

دس فست قشاس گشفتي دایشکتسی بی هجبصی ثش سی دسای عیغتوی هی ثبیغتی کبسبی

صیش اجبم ؽد:

\C:\inetpub\wwwrootهؾبذ ی هحتای ة دس .1

دادى آى ث فضبی هحذد ؽذ ی فبیل بی اختقبؿکپی یب کبت کشدى هحتی .3

جض دسایبی عیغتوی( هبذ \D:\webrootة )ث

تغییش دادى هؼکظ کشدى توبهی اپلیکیؾي ب دایشکتسی بی هجبصی ثش سی .2

فضبی جذیذ ث فست صیش:

I. Expand the server node

II. Expand Sites

III. Expand Default Web Site

IV. Click on app1

V. In the Actions pane, select Basic Settings

VI. In the Physical path text box, put the new location of the

application, D:\wwwroot\app1 in the example above

http://technet.microsoft.com/en-us/library/cc169961.aspx لیکب هبثغ :

http://blog.iis.net/thomad/archive/3222/23/12/moving-the-iis6-inetpub-directory-

to-a-different-drive.aspx

ری تواهی سایت ا Host Headerپیکزتذی ػاى : داسای یک Hostقبثلیتی سا ثشای Host Header تضیحبت : پست هی ثبؽذ IPچذیي ة عبیت ک

هی ؽد ثشای توبهی عبیت بی پیکشثذی ؽد. ایجبد هی کذ ث ویي دلیل تفی

اص هی ؽد وچیي DNS rebindingهبغ اجبم هفقیت آهیض حوالت Host Hederاعتفبد

یب تؾخیـ تؼبهل ثب اپلیکیؾي جلگیشی IPاص اجبم هفقیت آهیض اعکي بی هجتی ثش

هی کذ.

Page 5: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

4 بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

دعتس صیش اجشا ؽد: Host Headerثشای ثشسعی پیکشثذی سػ پیبد عبصی :

%systemroot%\system23\inetsrv\appcmd list sites

هغبثق صیش ػول ؽد: Default Web Siteثش سی Host Headerثشای پیکشثذی

1. Open IIS Manager

3. In the Connections pane expand the Sites node and select Default Web Site

2. In the Actions pane click Bindings

4. In the Site Bindings dialog box, select the binding for which host headers are

going to be configured, Port 22 in this example

5. Click Edit

6. Under host name, enter the sites FQDN, such as www.examplesite.com

6. Click OK, then Close

http://technet.microsoft.com/en-us/library/cc652195332WS.12339.aspx لیکب هبثغ :

http://crypto.stanford.edu/dns/dns-rebinding.pdf

http://www.sslshopper.com/article-ssl-host-headers-in-iis-6.html

http://blogs.iis.net/thomad/archive/3222/21/35/ssl-certificates-on-sites-with-host-

headers.aspx

Directory Browsingغیز فؼال کزدى ػاى :

ا هی دذ تب هحتای یک دایشکتسی اص عشیق اسعبل ایي اجبص س Directory Browsing تضیحبت :

دس شکذام IISدسخاعت تعظ کبسثشوبیؼ داد ؽد. دس فست فؼبل ثدى ایي یژگی دس

هی ثیذ: اص ؽشایظ صیش کبسثش لیغتی اص هحتای دایشکتسی سا دس ففخ

فبیل هؾخقی دسURL .ؾذ ثبؽذ دسخاعت داد

یژگیDefault Documents دسIISغیش فؼبل ثبؽذ یب دسفست فؼبل ثدى، IIS تاذ

وخای IISهجد دس Default Document Listهکبى فبیل سا دس دایشکتسی ک ثب

داسد، پیذا کذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

دعتس صیش اجشا ؽد: Directory Browsingثشای اعویبى اص غیش فؼبل ثدى سػ پیبد عبصی :

%systemroot%\system23\inetsrv\appcmd list config /section:directoryBrowse

دس فست پیکشثذی ث سػ پیؾبدی هی ثبیغتی صیش وبیؼ داد ؽد: ث فستک

<system.webServer>

<directoryBrowse enabled="false" />

<system.webServer>

http://technet.microsoft.com/en-us/library/cc635242332WS.12339.aspx لیکب هبثغ :

http://technet.microsoft.com/en-us/library/cc621129332WS.12339.aspx

تز ری کوتزیي سطح دستزسی Application Pool Identityتظین پیص فزض قزار دادى ػاى : -ب اػوبل هجبص کبسثشاى هغئلیی هی ثبؽذ ک ثب Application Pool Identitie تضیحبت :

Page 6: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

5 w2wp.exe کبس هی کذ سا هؾخـ هی کذ.اختقبؿ دادى فحیح هاسد ثبال کوک هی کذ

تب اعویبى حبفل ؽد ک تاثغ اپلیکیؾي ب ث دسعتی کبس هی کذ. یت کبسثشاى

بیی ک تعظ عیغتن هحبفظت هی ؽذ، گشفت هی ؽد. ACLهغئالى یض اص

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

تغییش یبفت، ApplicationPoolIdentityث DefaultAppPool identityثشای ثشسعی ایک آیب سػ پیبد عبصی :

دعتس صیش اجشا ؽد:

%systemroot%\system23\inetsrv\appcmd list config /section:applicationPools

IIS Managerهی ثبیغتی ثشای اپلیکیؾی ک اص Application Pool identityپیؼ فشك

GUI اعتفبد هی کذ تظین ؽد تب اص دعتسAppCmd.exe دسCLI یذص یب اعکشیپت

WMI.ث فست هغتقین فبیل بی پیکشثذی سا تغییش دذ ،

دس ث فست صیش تغییش هی IISدس ApplicationPoolIdentityیت پیؼ فشك عبخت ؽذ

یبثذ:

1. Open the IIS Manager GUI

3. In the connections pane, expand the server node and click Application Pools

2. On the Application Pools page, select the DefaultAppPool, and then click

Advanced Settings in the Actions pane

4. For the Identity property, click the '...' button to open the Application Pool

Identity dialog box

5. Select the Built-in account option choose ApplicationPoolIdentity from the list, or

input a unique application user created for this purpose

6. Restart IIS

دس ثش ؽذ اص دعتس ApplicationPoolIdentityای تغییش یت پیؼ فشك عبخت

AppCmd.exe :هی ؽد هبذ صیش اعتفبد

%systemroot%\system23\inetsrv\appcmd set config /section:applicationPools

/[name='DefaultAppPool'].processModel.identityType:ApplicationPoolIdentity

فست تؼشیف دعتی کبسثشاى یذص هبذ اکبت بی عشیظ، کبسثش یبصهذ ایي اعت ک دس

ث توبهی فبیل بی ضشسی هبثغ IIS_IUSRS groupثبؽذ. IIS_IUSRS groupػضی اص

ایي گش هی ؽدهی تاذ ث عیغتن دعتشعی داسذ ثبثشایي قتی یک اکبت ػض

یکپبسچ ػول کذ application pool identityػاى یک

http://technet.microsoft.com/en-us/library/cc661162332WS.12339.aspx لیکب هبثغ :

http://learn.iis.net/page.aspx/142/understanding-built-in-user-and-groupaccounts-

in-iis-6/

ا تحت یک یت Application Pool فؼالیت اطویاى اس ػاى : اص یک یت Application Poolsتظین تضیحبت : ک خغشات ثبلقکبؼ ث هظسثشای اعتفبد

هی تاذ اپلیکیؾي سا دس هؼشك خغش قشاس دذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

ثبؽذ، ApplicationPoolIdentityسی ب Application Poolثشای ثشسعی ایک سػ پیبد عبصی : تظین ؽذ

هغبثق صیش ػول هی ؽد:

Page 7: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

6 1. Open IIS Manager

3. Open the Application Pools node underneath the machine node; select

Application Pool to be verified

2. Right click the Application Pool and select Advanced Settings…

4. Under the Process Model section, locate the Identity option and ensure that

ApplicationPoolIdentity is set

appcmd.exe اص دعتس Application Poolثشای پیکشثذی یت سی هغبثق صیش اعتفبد

هی ؽد:

%systemroot%\system23\inetsrv\appcmd set config /section:applicationPools

/[name='DefaultAppPool'].processModel.identityType:ApplicationPoolIdentity

http://technet.microsoft.com/en-us/library/cc652449332WS.12339.aspx لیکب هبثغ :

http://blogs.iis.net/tomwoolums/archive/1//2001002/iis-2-/-applicationpools.aspx

http://learn.iis.net/page.aspx/634/application-pool-identities/

ا تزای سایت ا Application Poolاطویاى اس هحصز ت فزد تدى ػاى : ایجبد کشد ک ث Application Pool Identitiesیک یژگی اهیتی جذیذ ثب بم IISv2.2 تضیحبت :

Application Pool ب هجص اجشا تحت یک اکبت ثذى یبص ث تؼشیف پیبم لکبل یب داهیي سا

هی دذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

اص دعتس سػ پیبد عبصی : توبهی پیکشثذی اپلیکیؾي ب، هغبثق صیش هی تاى appcmd.exeثب اعتفبد

آى ب application pool identityآى ب application poolعبیتی ک آى ب دس آى غتذ،

سا ثشسعی کشد:

%systemroot%\system23\inetsrv\appcmd list app

ثشای پیکشثذی هی ثبیغتی هغبثق صیش ػول ؽد:

1. Open IIS Manager

3. Open the Sites node underneath the machine node

2. Select the Site to be changed

4. In the Actions pane, select Basic Settings

5. Click the Select… box next to the Application Pool text box

6. Select the desired Application Pool

6. Once selected, click OK

http://technet.microsoft.com/en-us/library/cc652449332WS.12339.aspx : لیکب هبثغ

http://blogs.iis.net/tomwoolums/archive/3222/13/16/iis-6-2-applicationpools.aspx

http://learn.iis.net/page.aspx/634/application-pool-identities/

Application Pool Identityتزای استفاد اس Anonymous User Identityپیکزتذی ػاى : IISت بی هجضا اجشا کشد. ب سا ثب ی application poolهی تاى IISv2ثشای ایضل کشدى تضیحبت :

ای پیکشثذی ؽد تب دس فستیک ثشای ة عبیت تؼشیف اکبت بؽبعیهی تاذ ثگ

کذ. application pool identityؾذ ثبؽذ، ث فست اتهبتیک اص پیکشثذی یت اعتفبد

Page 8: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

7 اص کبسثشاى بؽبط ث ایضل کشدى عبیت کوک application pool identityثشای اعتفبد

هی کذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

اص فبیل سػ پیبد عبصی : اعویبى اص usernameثشای تأییذ هؾخقبت applicationHost.configاعتفبد

ؽذ ثبؽذ: anonymousAuthentication tagایک هبذ صیش خبلی قشاس داد

<system.webServer>

<security>

<authentication>

<anonymousAuthentication userName="" />

</authentication>

</security>

</system.webServer>

هی IISدس anonymousAuthentication nodeدس usernameهؾخقبت ثشای پیکشثذی

ثبیغتی هغبثق صیش ػول ؽد:

1. Open the IIS Manager GUI and navigate to the desired server, site, or

application

3. In Features View, find and double-click the Authentication icon

2. Select the Anonymous Authentication option and in the Actions pane select

Edit...

4. Choose Application pool identity in the modal window and then press the OK

button

1. Open the IIS Manager GUI and navigate to the desired server, site, or

application

3. In Features View, find and double-click the Authentication icon

2. Select the Anonymous Authentication option and in the Actions pane select

Edit...

4. Choose Application pool identity in the modal window and then press the OK

button

اص دس عغح عشس anonymousAuthenticationثشای پیکشثذی AppCmd.exeثشای اعتفبد

هی ثبیغتی هبذ صیش ػول ؽد:

%windir%\system23\inetsrv\appcmd set config - section:anonymousAuthentication

/username:"" --password

/http://learn.iis.net/page.aspx/323/application-pool-identity-as-anonymous-user لیکب هبثغ :

http://learn.iis.net/page.aspx/634/application-pool-identities/

Application Pool Identityا تزای اجزا ت ػاى Application Poolپیکزتذی ػاى : ب ایي اجبص سا هی دذ تب ثب یک اکبت Application Poolث Application Pool Identity تضیحبت :

. بم اکبت ثذى یبص ث ایجبد کتشل داهیي یب اکبت بی لکبل، اجشا ؽد هحقش ث فشد

Application Pool ث بمApplication Pool اثغت هی ثبؽذApplication Pool Identity دس

Page 9: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

8 ب تظین Application Poolهؼشفی ؽذ. پیؾبد هی ؽد Server 3222 SP3یذص

اجشا ؽذ. ApplicationPoolIdentityؽذ تب ث ػاى

ب ثشای اعتفبد اص کوتشیي اهتیبص یت هبذ Application Poolتظین

ApplicationPoolIdentity .ث هظس کبؼ خغشات ثبلق یت اجبم هی ؽد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

هی ثبیغتی هؾبث ApplicationPoolIdentityث DefaultAppPool identityدس فست تغییش سػ پیبد عبصی :

دعتسات صیش اجشا ؽد:

%systemroot%\system23\inetsrv\appcmd list config /section:applicationPools

دس IISهی ثبیغتی دس ApplicationPoolIdentityثشای تغییش یت پیؼ فشك تؼشیف ؽذد

کبسبی صیش اجبم ؽد:

1. Open the IIS Manager GUI

3. In the connections pane, expand the server node and click Application Pools

2. On the Application Pools page, select the DefaultAppPool, and then click

Advanced

Settings in the Actions pane

4. For the Identity property, click the '...' button to open the Application

PoolIdentity dialog box

5. Select the Built-in account option choose ApplicationPoolIdentity from the list

6. Restart IIS

دس DefaultAppPool identityثشای تغییش اص دعتس ApplicationPoolIdentityتؼشیف ؽذ

AppCmd.exe هی ؽد:هغبثق صیش اعتفبد

%systemroot%\system23\inetsrv\appcmd set config /section:applicationPools

/[name='<Your AppPool>'].processModel.identityType:ApplicationPoolIdentity

/http://learn.iis.net/page.aspx/634/application-pool-identities لیکب هبثغ :

استفاد اس پزتکل ای رهشگاری قی ػاى : غیش فؼبل ؽذ SSL 3.2 PCT 1.2پیؾبد هی ؽد پشتکل بی سهض گبسی ضؼجف تضیحبت :

اص Diffie-Hellman Ephemeral. پیؾبد هی ؽد اص پشتکل SSL 2.2 TLS 1.xاعتفبد

(DHE ثشای )PFS .ؽد اعتفبد

هی ثبیغتی پشتکل بی ضؼیف غیشفؼبل ؽد. SSLثش سی عشیظ بی هجتی ثش

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

دعتس SP3ثش سی PCT 1.2ثشای اعویبى اص غیش فؼبل ثدى پشتکل سػ پیبد عبصی : هی ثبیغتی هؾبث

ؽد . )ث فست پیؼ فشصیش اعتفبد یب هقذاسی ك غیش فؼبل هی ثبؽذ( )اعویبى اص ایک

ثبؽذ تظین ؽذ ثبؽذ(: 2سی یب جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\P

CT1.2\Server\Enabled

دعتس صیش R3ثش سی PCT 1.2ثشای اعویبى اص غیش فؼبل ثدى پشتکل هی ثبیغتی هؾبث

ؽد فست پیؼ فشاعتفبد تظین 2)اعویبى اص ایک ثش سی ك غیش فؼبل هی ثبؽذ( )ث

ؽذ ثبؽذ(:

Page 10: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

9 HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\P

CT1.2\Server\DisabledByDefault

هی ثبیغتی هؾبث R3 SP3ثش سی SSL 3.2ثشای اعویبى اص غیش فؼبل ثدى پشتکل

ؽد ثش سی ست پیؼ فش)ث فدعتس صیش اعتفبد 2ك فؼبل هی ثبؽذ( )اعویبى اص ایک

تظین ؽذ ثبؽذ(:

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\S

SL3.2\Server\Enabled

دعتس R3 SP3ثش سی SSL 2.2ثشای اعویبى اص فؼبل ثدى پشتکل هی ثبیغتی هؾبث

فست پیؼ فشؽد صیش اعتفبد )ث یب هقذاسی جد ك فؼبل هی ثبؽذ( )اعویبى اص ایک

ثبؽذ یب تظین ؽذ ثبؽذ(: ffffffسی ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\S

SL2.2\Server\Enabled

دعتس R3 SP3ی ثش س TLS 1.2ثشای اعویبى اص فؼبل ثدى پشتکل هی ثبیغتی هؾبث

ؽد فست پیؼ فشصیش اعتفبد )ث یب هقذاسی جد ك فؼبل هی ثبؽذ( )اعویبى اص ایک

ثبؽذ یب تظین ؽذ ثبؽذ(: ffffffسی ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\T

LS1.2\Server\Enabled

دعتس صیش R3ثش سی TLS 1.1ثشای اعویبى اص فؼبل ثدى پشتکل هی ثبیغتی هؾبث

ثش سی ؽد )اعویبى اص ایک :تظین ؽذ ثبؽذ( 2اعتفبد

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\T

LS1.1\Server\DisabledByDefault

دعتس صیش R3ثش سی TLS 1.3فؼبل ثدى پشتکل ثشای اعویبى اص هی ثبیغتی هؾبث

ثش سی ؽد )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2اعتفبد

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\T

LS1.3\Server\DisabledByDefault

http://support.microsoft.com/kb/126492/en-us لیکب هبثغ :

http://support.microsoft.com/default.aspx?scid=kb;EN-US;345222

http://technet.microsoft.com/en-us/security/advisory/3522512

http://blogs.technet.com/b/erezs_iis_blog/archive/3212/22/33/perfect-secrecyin-

an-imperfect-world.aspx

Weak Cipher Suitesغیز فؼال کزدى ػاى : تضیحب

ت :

SSL 2.2 TLS 1.2 اص cipherبی هختلف فشان هی کذ. ش cipher suiteاختیبساتی سا ثشای اعتفبد

suite یک کلیذ ثشای تجبدل، احشاص یت، سهضگزاسی الگسیتن بیMac دس ؾغت بی هسد اعتفبد

SSL/TLS تلیذ هی کذ. پیؾبد هی ؽدcipher suite .بی ضؼیف غیش فؼبل ؽذ

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

ؽد )اعویبى DES 56/56ثشای اعویبى اص غیش فؼبل ثدى سهض دعتس صیش اعتفبد هی ثبیغتی هؾبث

ثبؽذ یب اص ایک ثبؽذ(: 2سی یب هقذاسی جد ذاؽت تظین ؽذ

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56

Page 11: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

10

دعتس صیش اعتفبد ؽد )اعویبى اص NULLثشای اعویبى اص غیش فؼبل ثدى سهض هی ثبیغتی هؾبث

ثبؽذ یب ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL\Enabled

ؽد هی ثبیغتی هؾبث RC3 42/132ثشای اعویبى اص غیش فؼبل ثدى سهض دعتس صیش اعتفبد

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC342/132\E

nabled

ؽد RC3 56/132ثشای اعویبى اص غیش فؼبل ثدى سهض دعتس صیش اعتفبد هی ثبیغتی هؾبث

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC356/132\E

nabled

ؽد RC4 42/132ثشای اعویبى اص غیش فؼبل ثدى سهض دعتس صیش اعتفبد هی ثبیغتی هؾبث

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC442/132\E

nabled

ؽد هی ثبیغتی RC4 56/132ثشای اعویبى اص غیش فؼبل ثدى سهض دعتس صیش اعتفبد هؾبث

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/132\E

nabled

دع RC4 64/132ثشای اعویبى اص غیش فؼبل ثدى سهض ؽد هی ثبیغتی هؾبث تس صیش اعتفبد

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC464/132\E

nabled

دعتس صیش RC4 132/132ثشای اعویبى اص غیش فؼبل ثدى سهض ؽد هی ثبیغتی هؾبث اعتفبد

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: 2سی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4132/132\

Enabled

دعتس صیش اعتف Triple DES 162/162ثشای اعویبى اص فؼبل ثدى سهض ؽد هی ثبیغتی هؾبث بد

ثبؽذ یب )اعویبى اص ایک تظین ؽذ ثبؽذ(: ffffffffسی یب هقذاسی جد ذاؽت

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple

DES162/162\Enabled

دعتس صیش AES 356/356ثشای اعویبى اص فؼبل ثدى سهض ؽد )هی ثبیغتی هؾبث اعویبى اعتفبد

تظین ؽذ ثبؽذ(: ffffffffسی اص ایک

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\AES356/356\

Enabled

لیکب

هبثغ :

https://www.owasp.org/index.php/Testing_for_SSL-TLS_332OWASP-CM-221339

http://support.microsoft.com/kb/345222/en-us

http://msdn.microsoft.com/en-us/library/aa264656332v=vs.25339.aspx

http://msdn.microsoft.com/en-us/library/aa222513332v=vs.25339.aspx

HKLM\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4

132/132\Enabled

Page 12: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

11

FTPهحذدیت تز ری تؼذاد تالش ای رد ت فؼال کزدى ػاى :

bruteداسای یژگی اهیت ؽجک هی ثبؽذ ک ث فست اتهبتیک جلی حوالت IIS 2.2 تضیحبت :

force ثش سیFTP هی ثذد. دس ایي تظین هی ثبیغتی هبکضیون تؼذاد دفؼبتی تالػ

Connection closed by‘تؼییي ؽد ک پظ اص آى کبسثش پیبم FTPبهفق ثشای سد ث

remote host’ .سا دسیبفت هی کذ استجبعؼ قغغ هی ؽد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

ایي تظین ث فست پیؼ فشك فؼبل ؾذ اعت. ثشای پیکشثذی ایي تظین هی ثبیغتی سػ پیبد عبصی :

هاسد صیش اجبم ؽد:

1. Open IIS Manager

3. At the server level, open the FTP Logon Attempt Restrictions feature.

2. Check Enable FTP Logon Attempt Restrictions and enter the maximum number

of failed attempts and the time period. Enable Deny IP addresses based on the

number of failed login attempts.

4. Click Apply

-http://www.iis.net/learn/get-started/whats-new-in-iis-2/iis-22-ftp-logon لیکب هبثغ :

attemptrestrictions

Dynamic IP Addressهحذدیت تز ری فؼال کزدى ػاى :

هؼشفی کشد ک ثشای جلگیشی اص حوالت Dynamic IP Addressهحذدیت بیی ثشای IIS 2 تضیحبت :

DDoS هی ؽد. ایي تظین ثب ایجبد هحذدیت بی ک ث فست IP Addressاعتفبد

دعتی تؼشیف هی ؽد، تفبت داسد.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

ایي تظین ث فست پیؼ فشك فؼبل ؾذ اعت. ثشای پیکشثذی ایي تظین هی ثبیغتی سػ پیبد عبصی :

هاسد صیش اجبم ؽد:

1. Open IIS Manager.

3. Open the IP Address and Domain Restrictions feature.

2. Click Edit Dynamic Restrictions Settings..

4. Check the Deny IP Address based on the number of concurrent requests and

the Deny IP Address based on the number of requests over a period of time boxes.

The values can be tweaked as needed for your specific environment.

-http://www.iis.net/learn/get-started/whats-new-in-iis-2/iis-22-dynamic-ipaddress لیکب هبثغ :

restrictions

IISLockdown & URLScan

IISLockdown صة اجزای ػاى :

Page 13: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

12

دعتشط ثشای فرگشاى ایي اثضاس ثب غیش فؼبل کشدى یژگی بی غیش ضشسی عغح حوالت دس تضیحبت :

کشد: سا کبؼ هی دذ. تعظ اثضاس هی تاى اص هاسد صیش اعتفبد

دایشکتسی بی هجبصی ایجبد ؽذ ث فست IISHelp ،IISAdmin ،Scriptپبک کشدى ب

پیؼ فشك

بی ثذى اعتفبد script mappingایوي عبصی

anonymous Web usersسیی هحتای ة ثشای Writeغیش فؼبل کشدى قبثلیت

administrative toolsثش سی Executeغیش فؼبل کشدى هجص

metabaseپؾتیجبى گیشی اص

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

ثشای پیکشثذی ایي اثضاس هی تاى اص لیک صیش اعتفبد کشد: سػ پیبد عبصی :

https://support.microsoft.com/en-us/kb/216292

https://technet.microsoft.com/en-us/library/dd34/221.aspx لیکب هبثغ :

https://support.microsoft.com/en-us/kb/216292

URLScanصة پیکزتذی ػاى :

ایي اثضاس داسای قبثلیت بی صیش هی ثبؽذ: تضیحبت :

DenyExtensions : ایي یژگی ثشای هحذد کشدى فبیل بی داسای پغذ بهؼتجش اعتفبد

هی ؽد.

DenyVerbs ایي یژگی ثشای هحذد کشدى افؼبل خبؿ :HTTP هبذ(TRACE/TRACK,

DELETE, OPTIONS, PROPFIND.هی ؽد ( اعتفبد

DenyHeaders ایي یژگی ثشای هحذد کشدى ذسبی خبؿ :HTTP .هی ؽد اعتفبد

RemoveServerHeader ایي یژگی ثشای حزف یب تغییش اعالػبت هشثط ث عشس دس پبعخ :

اسعبلی ث کالیت هی ثبؽذ.

NormalizeUrlBeforeScan ،VerifyNormalization ،DenyUrlSequences ،AllowDotInPath ،

EnableLogging, PerProcessLogging, and PerDayLogging ،AllowLateScanning ...

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

کشد: URLScanثشای دالد سػ پیبد عبصی : هی تاى اص لیک صیش اعتفبد

http://www.microsoft.com/downloads/details.aspx?familyid=32d12926-dd6e-

4612-9932-6f94ef1c923a&displaylang=en

https://support.microsoft.com/en-us/kb/215333 لیکب هبثغ :

http://www.microsoft.com/downloads/details.aspx?familyid=32d12926-dd6e-

4612-9932-6f94ef1c923a&displaylang=en

http://www.iis.net/learn/extensions/working-with-urlscan/urlscan-setup

http://www.iis.net/learn/extensions/working-with-urlscan/urlscan-overview

پیکربندی احراز هویت

تزای هحذد کزدى دستزسی Global Authorization Ruleپیکزتذی ػاى : هی ثبیغتی اعویبى حبفل ؽد ک ایي تظین Global Authorization Ruleثشای پیکشثذی تضیحبت :

Page 14: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

13

ثش سی توبهی دایشکتسی بی صیشیي آى دایشکتسی یض اػوبل ؽد وچیي دعتشعی ث

یض هحذد ثبؽذ. web.configفبیل

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سػ پیبد عبصی : ثگ ای تؼشیف ؽذ ثبؽذ ک فقظ اػضبی گش authorization ruleثشای اعویبى اص ایک

Administrator اهکبى هؾبذ ثبص کشدى فبیلweb.config سا داسذ. ثشای پیکشثذی هبذ

صیش ػول هی کجن:

site/application/content:

<configuration>

<system.webServer>

<security>

<authorization>

<remove users="*" roles="" verbs="" />

<add accessType="Allow" roles="administrators" />

</authorization>

</security>

</system.webServer>

</configuration>

کین:هغبثق صیش ػول هی IISدس URL Authorizationثشای پیکشثذی

1. Connect to Internet Information Services (IIS Manager)

3. Select the server

2. Select Authorization Rules

4. Remove the "Allow All Users" rule

5. Click Add Allow Rule…

6. Allow access to the user(s), user groups, or roles that are authorized across all

of the web sites and applications (e.g. the Administratorsgroup)

/http://learn.iis.net/page.aspx/143/understanding-iis-62-url-authorization لیکب هبثغ :

http://learn.iis.net/page.aspx/112/changes-between-iis6-and-iis6-security/

اطویاى اس هحذد تدى دستزسی ت یژگی ای حیاتی سایت ػاى : تضیحبت :

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سػ پیبد عبصی :

لیکب هبثغ :

در تواهی فزم ای احزاس یت SSLاطویاى اس جد ػاى : دس ؽجک ػجس دذ clear textاحشاص یت هجتی ثش فشم ب هی تاذ اعالػبت اػتجبسی سا تضیحبت :

اص اسی ؽذ اتقبل زگسهض SSLثبثشایي الضاهی اعت ک تشافیک ثیي کبسثش عشس ثب اعتفبد

. پیؾبد هی ؽد ک استجبعبت ثیي ثخؼ بی هختلف عبیتی ک اص احشاص یت فشم یبثذ

Page 15: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

14

ؽد. SSLهی کذ، اص سهضگزاسی ب اعتفبد اعتفبد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سا web.configثشای فشم بی احشاص یت یک عبیت، فبیل SSLث هظس ثشسعی فؼبل ثدى سػ پیبد عبصی :

هاسد صیش ثشسعی هی ؽد: ؽذ هؾبذ

فشم بی احشاص یت فؼبل

tag : <forms requireSSL="true" />: .ثش سی آى ب تظین ؽذ ثبؽذ

پیکشثذی ایي تظین ث فست صیش اجبم هی ؽد:

1. Open IIS Manager and navigate to the appropriate tier

3. In Features View, double-click Authentication

2. On the Authentication page, select Forms Authentication

4. In the Actions pane, click Edit

5. Check the Requires SSL checkbox in the cookie settings section, click OK

http://technet.microsoft.com/en-us/library/cc661266(WS.12).aspx لیکب هبثغ :

پیکزتذی فزم ای احزاس یت تزای استفاد اس ککی ػاى : دس حبل SIDفشم بی احشاص یت هی تاذ ثگ ای پیکشثذی ؽذ ک تضیحبت : کبسثشی ک

اص عبیت هی ثبؽذ، دس یک اص ککی ثشای یب ککی ثبقی ثوبذ. URIاعتفبد اعتفبد

ی sessionهذیشیت ، سیغک URLاص اتقبل اعالػبت ککی دس ASP.NETهغ کشدى ثعیل

دس sessionسا کبؼ هی دذ. دس فست اتقبل اعالػبت session hi-jackingتالػ بی

URL ؽد یب اهکبى هوکي اعت دس الگ بی پشکغی، تبسیخچ ی هشسگش وبیؼ داد

اص اعکشیپت آسد.فشان document.locationدعتشعی ث کالیت سا ثب اعتفبد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

forms> سا ثبص کشد جد " web.configثشای ثشسعی اپلیکیؾي هی ثبیغتی فبیل سػ پیبد عبصی :

cookieless="UseCookies" /> "دس آى سا تأییذ ؽد:

<system.web>

<authentication>

<forms cookieless="UseCookies" requireSSL="true" timeout="22" />

</authentication>

</system.web>

پیکشثذی ایي تظین ث فست صیش اجبم هی ؽد:

1. Open IIS Manager and navigate to the level where Forms Authentication is

enabled

3. In Features View, double-click Authentication

2. On the Authentication page, select Forms Authentication

4. In the Actions pane, click Edit

5. In the Cookie settings section, select Use cookies from the Mode dropdown

http://technet.microsoft.com/en-us/library/cc623222332WS.12339.aspx لیکب هبثغ :

Page 16: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

15

تزای فزم ای احزاس یت Cookie Protection Modeپیکزتذی ػاى : هذ ثشای هحبفظت اص ککی بی تؼشیف ؽذ اعت:4 تضیحبت :

Encryption and validation دس ایي تظین اص الگسیتن اػتجبس عجی داد :riple-DES

(2DES) داؽتي عل کلیذ ثب هی کذ )دس فست دس دعتشعجدى ثشای سهضگبسی اعتفبد

عل هبعت(

None :Encryption validation .دسای اهیت پبییی اعت شد غیش فؼبل هی ثبؽذ

Encryption :ص ککی سا ثب اعتفبد اTriple-DES یبDES سهضگزاسی هی کذ لی اػتجبس

ب اجبم وی ؽد. عجی داد

Validation داسای عشحی ثشای اػتجبس عجی ککی ب هی ثبؽذ لی ککی ب دس حیي :

اتقبل سهضراسی وی ؽذ.

قشاس گیشد. Encryption and validationپیؾبد هی ؽد هذ هحبفظت اص ککی ب سی

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

forms> سا ثبص کشد جد " web.configثشای ثشسعی اپلیکیؾي هی ثبیغتی فبیل سػ پیبد عبصی :

protection="All" />:دس آى سا تأییذ ؽد"

<system.web>

<authentication>

<forms cookieless="UseCookies" protection="All" />

</authentication>

</system.web>

پیکشثذی ایي تظین ث فست صیش اجبم هی ؽد:

1. Open IIS Manager and navigate to the level where Forms Authentication is

enabled

3. In Features View, double-click Authentication

2. On the Authentication page, select Forms Authentication

4. In the Actions pane, click Edit

5. In the Cookie settings section, verify the drop-down for Protection mode is set

for Encryption and validation

http://technet.microsoft.com/en-us/library/cc621224332WS.12339.aspx لیکب هبثغ :

ذتظین طذ تاض Clearاطویاى اس ایک الواى فزهت پسرد تز ری ػاى : تضیحب

ت :

اجبص ی اتخبة بم کبسثشی پغسد ثشای <authentication>هشثط ث الوبى <credentials>الوبى

passwordFormatسا ث وشا پیکشثذی فبیل هی دذ. پیؾبد هی ؽد ک IISهذیشیت اکبت بی

تظین کشد( MD5یب SHA1تظین ؾد)هی تاى آى سا سی Clearثش سی

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

سا ثبص کشد هشثط ث اپلیکیؾي پیکشثذی ؽذ Configurationثشای ثشسعی هی ثبیغتی فبیل

:تؼشیف ؾذ ثبؽذ Clearسی passwordFormatاعویبى حبفل کشد

<configuration>

<system.web>

Page 17: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

16

<authentication mode="Forms">

<forms name="SampleApp" loginUrl="/login.aspx">

<credentials passwordFormat="SHA1">

<user

name="UserName1"

password="SHA1EncryptedPassword1"/>

<user

name="UserName3"

password="SHA1EncryptedPassword3"/>

</credentials>

</forms>

</authentication>

</system.web>

</configuration>

پیکشثذی ایي تظین ث فست صیش اجبم هی ؽد:

1. Locate and open the configuration file where the credentials are stored

3. Find the <credentials> element

2. If present, ensure passwordFormat is not set to Clear

4. Change passwordFormat to SHA1 or MD5

لیکب

هبثغ :

http://msdn.microsoft.com/en-us/library/e21fc52a.aspx

http://www.iis.net/ConfigReference/system.webServer/management/authentication/credential

s

http://msdn.microsoft.com/en-us/library/bb433421332VS.92339.aspx

Basicتزای احزاس یت SSLپیکزتذی ػاى : ػجس دذ ثبثشایي clear textهی تاذ اعالػبت اػتجبسی سا Basicاحشاص یت تضیحبت : دس ؽجک

اص سهضگزاسی ؽذ اتقبل یبثذ. SSLالضاهی اعت ک تشافیک ثیي کبسثش عشس ثب اعتفبد

Basicک اص احشاص یت ب اپلیکیؾي بیی عبیتپیؾبد هی ؽد ک استجبعبت ثیي

هی ک ؽد. SSLذ، اص سهضگزاسی اعتفبد اعتفبد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ سػ پیبد عبصی :

1. Open IIS Manager

3. In the Connections pane on the left, select the server to be configured

2. In the Connections pane, expand the server, then expand Sites and select the

site to

be configured

4. In the Actions pane, click Bindings; the Site Bindings dialog appears

5. If an HTTPS binding is available, click Close and see below "To require SSL"

6. If no HTTPS binding is visible, perform the following steps

کشدى یک ث فست صیش اجبم هی ؽد: HTTPS bindingثشای اضبف

Page 18: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

17

1. In the Site Bindings dialog, click Add; the Add Site Binding dialog appears

3. Under Type, select https

2. Under SSL certificate, select an SSL certificate

4. Click OK, then close

:ث فست صیش تظین اجبم هی ؽد SSL ثشای یبص ث

1. In Features View, double-click SSL Settings

3. On the SSL Settings page, select Require SSL, and Require 132-bit SSL

2. In the Actions pane, click Apply

http://technet.microsoft.com/en-us/library/dd262252332WS.12339.aspx لیکب هبثغ :

ASP.NETپیکربندی

Retailری Deployment Methodتظین ػاى : ی عشسبی <deployment retail>عئیچ تضیحبت : دس ظش گشفت ؽذ IISثشای ثشای اعتفبد

ایي عئیچ ثب غیشفؼبل کشدى اهکبى تلیذ هغیش ث ففحبت خبسجی، غیش فؼبل کشدى اعت.

ث debugاهکبى وبیؼ جضئیبت پیبم بی خغب ث کبسثشاى بیی غیشفؼبل کشدى عئیچ

اعالػبت اهیتی کوک هی کذ. اپلیکیؾي ب ثشای داؽتي ثتشیي کبسایی کوتشیي ؾت

تظین retailثشای توبهی هحقالت عشس سی Deployment Methodپیؾبد هی ؽد

ؽد.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سا ثبص کشد ثشسعی هی ؽد machine.config، فبیل IISپظ اص سا اذاصی هجذد سػ پیبد عبصی :

<deployment retail="true" /> سیtrue :تظین ؽذ ثبؽذ

<system.web> <deployment retail="true" /> </system.web>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open the machine.config file located in: %windir%\Microsoft.NET\Framework\<framework_version>\CONFIG 3. Add the line <deployment retail="true" /> within the <system.web> section 2. If systems are 64-bit, do the same for the machine.config located in: %windir%\Microsoft.NET\Framework64\<framework_version>\CONFIG

http://msdn.microsoft.com/en-US/library/ms332392332VS.22339.aspx لیکب هبثغ :

Debugخاهش کزدى ػاى : دذگبى تضیحبت : سا فؼبل هی کذ. debug، هذ ASP.NETفؼبل کشدى دس علث عس هؼول تعؼ

هشسگش خد cacheثبثشایي یبصی یغت تب شثبسک تغییشی دس کتشل هبثغ ثجد هی آسد

هی ؽد کبسثشاى سا debugسا پبک کذ. فؼبل کشدى خشجی ث کبسثشاى بیی وبیؼ داد

قبدس هی عبصد تب جضئیبت اعالػبت اپلیکیؾي سا ثذعت آسذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

Page 19: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

18

اعویبى سا ثبص کشد هشثط ث عشس یب اپلیکیؾي هسد ظش web.configهی ثبیغتی فبیل سػ پیبد عبصی :

ثبؽذ: falseسی <compilation debug>حبفل کشد ک عئیچ تظین ؽذ

<configuration> <system.web> <compilation debug="false" /> </system.web> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open IIS Manager and navigate desired server, site, or application 3. In Features View, double-click .NET Compilation 2. On the .NET Compilation page, in the Behavior section, ensure the Debug field is set to False 4. When finished, click Apply in the Actions pane

http://technet.microsoft.com/en-us/library/cc635213332WS.12339.aspx لیکب هبثغ :

ا Custom Error Messageاطویاى اس خاهش ثدى ػاى : هی ؽد، پیبم خغبی ASP.NETصهبیک اپلیکیؾي تضیحبت : یب یک یژگی HTTP/1.x 522ؽکغت

هی ؽد. ادهیي ب Request Filteringپیکشثذی ؽذ )هبذ ( دسیبفت هبغ وبیؼ ففح

هجد دس customErrors> tag>هی تاذ چگگی وبیؼ پیبم بی خغب سا تظین کذ.

web.config :داسای ع هذ هی ثبؽذ

On یچ کالیت ب کبسثش لکبل، بؽذ، ثشایتظین ؾذ ث defaultRedirect: دس فستیک

وبیؼ داد هی ؽد. customپیبم خغبی

Off پیبم خغبی :custom غیش فؼبل جضئیبت خغبیASP.NET ثشای کالیت ب کبسثش لکبل

وبیؼ داد هی ؽد.

RemoteOnly پیبم خغبی :custom فقظ ثشای کالیت ب وبیؼ داد هی ؽد جضئیبت

ثشای کبسثش لکبل وبیؼ داد هی ؽد.)پیؼ فشك( ASP.NETخغبی

تظین ؾذ Offسی customErrorsث ویي هظس هی ثبیغتی اعویبى حبفل ؽد

ثبؽذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

اعویبى سا ثبص کشد هشثط ث عشس یب اپلیکیؾي هسد ظش web.configهی ثبیغتی فبیل سػ پیبد عبصی :

customErrors>یب </ "customErrors mode="RemoteOnly>حبفل کشد ک تگ

mode="On" /> ثبؽ آى تؼشیفسی ذ.ؽذ

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open the IIS Manager GUI and navigate to the site to be configured 3. In Features View, find and double-click .NET Error Pages icon 2. In the Actions Pane, click Edit Feature Settings 4. In modal dialog, choose On or Remote Only for Mode settings 5. Click OK

http://msdn.microsoft.com/en-us/library/h2hfz6fc.aspx لیکب هبثغ :

http://technet.microsoft.com/en-us/library/dd569296332WS.12339.aspx

Page 20: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

19

ASP.NET stack tracingاطویاى اس فؼال ثدى ػاى : چگگی جوغ آسی، رخیش عبصی وبیؼ ASP.NETکذبی هغیشیبثی traceالوبى تضیحبت :

ش دسخاعت ففح، یک پیبم tracingسا پیکشثذی هی کذ. دس فست فؼبل ثدى traceدادى

trace یب دس الگ بی هغیش اپلیکیؾي رخیش هی اضبف تلیذ هی کذ ک ث خشجی ففح

machine.configدس فبیل </ "deployment retail="true>ؽد. ثبثشایي پیؾبد هی ؽد

تظین ؽد.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

:asp.netدس tracingاعویبى اص سؽي جدى سػ پیبد عبصی :

Trace="true"

(:web.configدس فبیل افلی اپلیکیؾي )هبذ tracingاعویبى اص فؼبل جدى

<configuration> <system.web> ... <trace enabled="true"> ... </system.web> </configuration>

Tracing :قبثل پیکشثذی دس چذ عغح هی ثبؽذ

1. Machine.config 3. Root-level web.config 2. Application-level web.config 4. Virtual or physical directory-level web.config

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

machine.configدس </ "deployment retail="true>اعویبى اص فؼبل ثدى .1

بیی ک ث .3 اس جبع داد ASP.NET tracingحزف کشدى توبهی توبهی هؾخق

ی traceؽذ اعت ثب پبک کشدى ث فست صیش: trace فؼبل کشدى هؾخق

:ثشای ش ففح

حزف توبهی اسجبػبت:

Trace="true"

:ثشای ش اپلیکیؾي

<configuration>

<system.web>

...

<trace enabled="true">

...

</system.web>

</configuration>

غیش فؼبل هی ثبؽذ ASP.NET tracingث فست پیؼ فشك

http://msdn.microsoft.com/en-us/library/94c55d22332v=vs.122339.aspx هبثغ :لیکب

http://msdn.microsoft.com/en-us/library/2x5wc962332v=vs.122339.aspx

Page 21: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

20

Session Stateتزای Cookies Modeپیکزتذی استفاد اس ػاى : -session hiدس فست پیکشثذی فحیح ککی ب، سیغک حوالتی وچى تالػ ثشای تضیحبت :

jacking ی کبؼ هی یبثذ دس د cookieless. ایي اهکبى ثب قشاس دادى هؾخق

sessionState سیUseCookies یبFalse اجبم هی ؽد ک هی ثبیغتی اعالػبتsession

ؽذ. URIخبسج اص اتقبل داد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

اعویبى سا ثبص کشد هشثط ث عشس یب اپلیکیؾي هسد ظش web.configهی ثبیغتی فبیل سػ پیبد عبصی :

ذ:ؽذ ثبؽ تؼشیف use cookiesسی sessionStateحبفل کشد ک تگ

<system.web> <sessionState cookieless="UseCookies" /> </system.web>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open the IIS Manager GUI and navigate desired server, site, or application 3. In Features View, find and double-click the Session State icon 2. In the Cookie Settings section, choose Use Cookies from the Mode dropdown 4. In the Actions Pane, click Apply

اص دس sessionStateثشای پیکشثذی AppCmd.exeوچیي ایي تظین هی تاذ ثب اعتفبد

عغح عشس هغبثق صیش اجبم ؽد:

%windir%\system23\inetsrv\appcmd set config /commit:WEBROOT /section:sessionState /cookieless:UseCookies /cookieName:ASP.NET_SessionID /timeout:32

http://technet.microsoft.com/en-us/library/cc662663332WS.12339.aspx لیکب هبثغ :

http://msdn.microsoft.com/en-us/library/h6bb9cz9332VS.61339.aspx

HttpOnlyاطویاى اس تظین ضذى ککی ا تا هطخص ػاى : سی ککی ب، اهکبى دعتشعی اص عوت کالیت ب HttpOnly flagدس فست تظین ؽذى تضیحبت :

ثب اجشای اعکشیپت دس هشسگش خد جد خاذ داؽت. جلگیشی اص اجشای اعکشیپت

سا cross site scriptingدعتشعی ث هحتای ککی دس عوت کالیت، احتوبل حوالت

کبؼ هی دذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سا ثبص کشد ثشسعی هی ؽد اپلیکیؾي web.config، فبیل IISپظ اص سا اذاصی هجذد سػ پیبد عبصی :

httpOnly cookies سیtrue :تظین ؽذ ثبؽذ

<httpCookies httpOnlyCookies="true" />

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

پیکشثذی فبیل web.configثبص کشدى فبیل .1 کشدى تگ .3 ث وشا </ "httpCookies httpOnlyCookies="true>اضبف

<system.web> :ث فست صیش <configuration> <system.web> <httpCookies httpOnlyCookies="true" /> </system.web>

Page 22: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

21

</configuration>

http://authors.aspalliance.com/aspxtreme/aspnet/syntax/httpCookies.aspx لیکب هبثغ :

http://www.asp121.com/tips/index.asp?id=162

https://tools.ietf.org/wg/httpstate/charters

MachineKey Validation Methodپیکزتذی ػاى : هی ثبؽذ ک اص الگسیتن کلیذبیی ثشای ASP.NETهشثط ث machineKeyالوبى تضیحبت :

هی کذ. ایي یژگی تابیی هذیشیت تظیوبت سهضگزاسی hashingسهضگزاسی اعتفبد

عشیظ بی اپلیکیؾي هبذ وبیؼ ضؼیت، فشم ب، احشاص یت، اػضب ، ظبیف

ؽبعبیی کبسثشاى بؽبط سا داسد.

ؽذ: سػ بی سهضگزاسی ؽبهل هاسد صیش هی

Advanced Encryption Standard (AES):

یبصهذ فضبی کوی هی ثبؽذ. داسای AESایي سػ ث عبدگی قبثل تعؼ

.ایي سػ اص یک کلیذ هحشهب ثیت هی ثبؽذ 356 193 132اثؼبد کلیذ

هی کذ جت سهضگبسی سهضگؾبیی اعتفبد

Message Digest 5 (MD5):

ی اص ایي سػ ثشای ؽذ هی ؽد یک پیبم خالف اهضبی دیجیتبل اعتفبد

ؽذ ی پیبم افلی هی ثبؽذ تلیذ هی کذ. 132 ثیتی ک خالف

Secure Hash Algorithm (SHA1):

ی ؽذ دلیل اعتفبد اص پیبم خالف ثیتی داسای ایوی ثیؾتشی 162ث

هی ثبؽذ. MD5غجت ث

Triple Data Encryption Standard (TripleDES):

هی ثبؽذ.ایي سػ ع Data Encryption Standard (DES)ایي سػ جضئی اص

اص عل DESهشتج اص ث اعتفبد تش هی ثبؽذ لی ثب تج هؼولی آغت

عبصهبى یبصهذ 193کلیذ ثیتی، داسای اهیت ثیؾتشی هی ثبؽذ. دس فستیک

performance .ؽد ثبالیی جبؽذ، پیؾبد هی ؽد اص ایي سػ اعتفبد

دس عغح هؼول اص SHA1یب AESپیؾبد هی ؽد ثشای اعتفبد اعتفبد

ؽد.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

قشاس گشفتي اعویبى اص ثشای سػ پیبد عبصی : ث فست صیش Machine Key encryption methodهسد اعتفبد

ػول هی ؽد:

1. Open IIS Manager and navigate to the level that was configured, the WEBROOT, or server in this case 3. In the features view, double click Machine Key 2. On the Machine Key page, verify that SHA1 is selected in the Encryption method dropdown

اص دعتس ینتظ یيا یکشثذیپ :اجبم هی ؽد یشث فست ص appcmd.exeثب اعتفبد

%systemroot%\system23\inetsrv\appcmd set config /commit:WEBROOT /section:machineKey/validation:SHA1

http://technet.microsoft.com/en-us/library/cc663361332WS.12339.aspx لیکب هبثغ :

http://technet.microsoft.com/en-us/library/cc663326332WS.12339.aspx

Page 23: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

22

Global .NET Trust Levelپیکزتذی ػاى : هی ثبؽذ. NET.3.2.ایي یژگی دس تضیحبت : ASP.NET code access سژى بی ثبالتش قبثل اعتفبد

security (CAS) عغح دعتشعی بیی ک ثبیذ ث یک اپلیکیؾي دس عشس اختقبؿ داد

ک ثب اپلیکیؾي ب عبصگبس ثبؽذ، Trustعغح ؽد سا تؼشیف هی کذ. تظین پبییي تشیي

هی تاذ اص ث خغش افتبدى اپلیکیؾي عیغتن جلگیشی کذ.

ؽبهل هاسد صیش هی ؽد: Trustهقبدیش هوکي ثشای عغح

Full.دس ایي عغح اپلیکیؾي داسای دعتشعی ب هحذد ث توبهی هبثغ هی ثبؽذ :

High دس ایي عغح دعتشعی ث کذبی اهیتی هجد هی ثبؽذ هاسد صیش هحذد ؽذ :

اعت:

o Call unmanaged code o Call serviced components o Write to the event log o Access Microsoft Windows Message Queuing queues

o Access ODBC, OLD DB, or Oracle data sources

Medium : ػال ثش هحذدیت بی عغحHigh :داسای هحذدیت بی صیش هی ثبؽذ

o Access files outside the application directory o Access the registry

Lowدیت بی عغح : ػال ثش هحذMedium :داسای هحذدیت بی صیش هی ثبؽذ

o Write to the file system o Call the System.Security.CodeAccessPermission.Assert method to expand permissions to resources o Minimal: specifies a minimal level of code access security, which means that

the application has only execute permission

یب پبییي تش قشاس گیشد. Mediumسی عغح global .NET Trust Level پیؾبد هی ؽد

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

قشاس گشفتي سػ پیبد عبصی : ث فست صیش ػول هی Global .NET Trust Levelثشای اعویبى اص هسد اعتفبد

ؽد:

1. Open IIS Manager and navigate to the level that was configured, the server in this example 3. In the features view, double click .NET Trust Levels

2. On the .NET Trust Levels page, verify that Medium (web_mediumtrust.config) is selected in the Trust Level dropdown

اص دعتس ینتظ یيا یکشثذیپ :اجبم هی ؽد یشث فست ص appcmd.exeثب اعتفبد

%systemroot%\system23\inetsrv\appcmd set config /commit:WEBROOT /section:trust/level:Medium

http://technet.microsoft.com/en-us/library/cc663326(WS.12).aspx لیکب هبثغ :

http://msdn.microsoft.com/en-us/library/ms691442332VS.92339.aspx

Professional IIS 6 by Ken Schaefer, Jeff Cochran, Scott Forsyth, Rob Baugh, Mike

Everest, Dennis Glendenning

http://support.microsoft.com/kb/3692921

Page 24: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

23

IIS HTTPهخفی کزدى جشئیات خطاای ػاى : ففحبت خغببی ة عبیت هی ثبیغتی ثگ ای تظین ؽذ ثبؽذ ک جضئیبت پیبم بی تضیحبت :

دادى الی یب خغب فقظ دس صهبى اسصیبثی ث هظس ثشعشف کشدى هؾکل دس صهبى تعؼ

آسدى اعالػبت عبیت تعظ کبسثشاى جلگیشی ؽد. وبیؼ داد ؽد تب اص ثذعت

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سی errorModeاعویبى حبفل کشد ک سا ثبص کشد web.configهی ثبیغتی فبیل سػ پیبد عبصی :

DetailedLocalOnly یبCustom ذ:ؽذ ثبؽ تؼشیف

<system.web> <system.webServer> <httpErrors errorMode="DetailedLocalOnly"> </httpErrors> </system.webServer> </system.web>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open IIS Manager with Administrative privileges 3. In the Connections pane on the left, expand the server, then expand the Sites folder 2. Select the Web site or application to be configured 4. In Features View, select Error Pages, in the Actions pane, select Open Feature 5. In the Actions pane, select Edit Feature Settings 6. In the Edit Error Pages Settings dialog, under Error Responses, select either Custom error pages or Detailed errors for local requests and custom error pages for remote requests 6. Click OK and exit the Edit Error Pages Settings dialog

http://technet.microsoft.com/en-us/library/dd291922332WS.12339.aspx :لیکب هبثغ

http://www.iis.net/configreference/system.webserver/httperrors

محدود و فیلتر کردن درخواست ها

پیکزتذی فیلتز تزای هاکشیون طل درخاست ا ػاى : تضیحب

ت :

اسعبلی http ثشای تؼییي هبکضیون اذاص ی دسخاعت بی maxAllowedContentLengthفیلتش

اذاص ی توبهی دسخاعت بی پیؾبد هی ؽد اص کالیت ث عشس هی ثبؽذ. (ثشحغت ثبیت)

ثشای دسخاعت بی فیلتش اسعبلی اص کالیت ب ث عوت عشسب ثش سی هقذاس هبعجی قشاس گیشد.

کند. ثبترا 1.404.کذ پیبم خغب ثب هی ثبیغتی IISؽذ

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

فیلتشبی سی دسخاعت ب ثشسعی ؽد. وچیي هی سا ثبص کشد web.configهی ثبیغتی فبیل

ذ.ث عس هثبل هبکضیون ؽذ ثبؽ تؼشیف maxAllowedContentLengthثبیغتی اعویبى حبفل کشد ک

:تظین ؽذ اعت 32.6MBعل دسخاعت دس صیش ثشاثش

<configuration> <system.webServer> <security> <requestFiltering>

Page 25: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

24

<requestLimits maxAllowedContentLength="22222222" /> </requestFiltering> </security> </system.webServer> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, click on the server, site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. Click Edit Feature Settings... in the Actions pane 5. Under the Request Limits section, key the maximum content length in bytes that will allow applications to retain their intended functionality, such as 22222222 (approx. 32.6 MB)

لیکب

هبثغ :

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimit

s

http://learn.iis.net/page.aspx/142/use-request-filtering/

URLپیکزتذی فیلتز تزای هاکشیون درخاست ای ػاى : تضیحب

: ت

بی اص هؾ maxURLپبساهتش عل )ثش حغت هبکضیون هی ثبؽذ <requestLimits>خق

اعتثبی URLثبیت(دسخاعت بی پزیشفت ؽد سا تؼشیف IIS( ک هی تاذ تعظ query string)ث

ثشای دسخاعت بی فیلتش اػوبل ؽد. URIهی کذ. پیؾبد هی ؽد یک هحذدیت ثش سی عل

سا ثجت کذ. 424.14کذ پیبم خغب ثب هی ثبیغتی IISؽذ

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

فیلتشبی سی دسخاعت ب ثشسعی ؽد:سا ثبص کشد web.configهی ثبیغتی فبیل

<configuration> <system.webServer> <security> <requestFiltering> <requestLimits maxURL="4296" /> </requestFiltering> </security> </system.webServer> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, click on the connection, site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. Click Edit Feature Settings... in the Actions pane 5. Under the Request Limits section, key the maximum URL length in bytes that has been tested with web applications

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimitلیکب

Page 26: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

25

s هبثغ :

http://learn.iis.net/page.aspx/142/use-request-filtering/

QueryStringپیکزتذی فیلتز تزای هاکشیون درخاست ای ػاى : اسعبلی QueryString ثشای تؼییي هبکضیون اذاص ی دسخاعت بی MaxQueryStringفیلتش تضیحبت :

بی هسد پزیشػ دس هقذاس پیؾبد هی ؽد .هی ثبؽذ IIS هسد پزیشػ queryداد

string لتش ؽذ ثشای دسخاعت بی فی .هحذد ؽدIIS کذ پیبم خغب ثب هی ثبیغتی

سا ثجت کذ. 424.15

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

فیلتشبی سی دسخاعت ب ثشسعی ؽد. سا ثبص کشد web.configهی ثبیغتی فبیل سػ پیبد عبصی :

ذ:ؽذ ثبؽ تؼشیف maxQueryStringوچیي هی ثبیغتی اعویبى حبفل کشد ک

<configuration> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="3242" /> </requestFiltering> </security> </system.webServer> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, go to the connection, site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. Click Edit Feature Settings... in the Actions pane 5. Under the Request Limits section, key in a safe upper bound in the Maximum query string (Bytes) textbox

/http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering لیکب هبثغ :

requestLimits

http://learn.iis.net/page.aspx/142/use-request-filtering/

ا URLدر ASCIIذاضتي اجاس ی استفاد اس کاراکتزای غیز ػاى : وی ؽذ، ASCIIایي یژگی ث هظس تأییذ یب سد کشدى دسخاعت بیی ک ؽبهل کذبی تضیحبت :

سا ثجت 424.13کذ پیبم خغب ثب هی ثبیغتی IISهی ثبؽذ. ثشای دسخاعت بی فیلتش ؽذ

کذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

فیلتشبی سی دسخاعت ب ثشسعی ؽد. سا ثبص کشد web.configهی ثبیغتی فبیل سػ پیبد عبصی :

falseثشای ایي فیلتش سی ؽذ وچیي هی ثبیغتی اعویبى حبفل کشد ک هقذاس تؼشیف

ذ:ثبؽ

Page 27: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

26

<configuration> <system.webServer> <security> <requestFiltering allowHighBitCharacters="false"> </requestFiltering> </security> </system.webServer> </configuration>

:ؽد اجبم هی یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, go to the connection, site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. Click Edit Feature Settings... in the Actions pane 5. Under the General section, uncheck Allow high-bit characters

/http://learn.iis.net/page.aspx/142/use-request-filtering لیکب هبثغ :

http://learn.iis.net/page.aspx/926/urlscan-1-reference/

Professional IIS 6 by Ken Schaefer, Jeff Cochran, Scott Forsyth, Rob Baugh, Mike

Everest, Dennis Glendenning

Double-Encodedتزگزداذى درخاست ای ػاى : تضیحب

ت :

دس فست جلگیشی هی کذ. Double-Encodedتظین ایي فیلتش اص اص حوالت پیشاهى دسخاعت بی

فؼبل کشدى ایي یژگی، د فشآیذ ثشای ثبصگشی دسخاعت ب اجبم هی ؽد. دس فست هتفبت ثدى د

دسخاعت فشآیذ پیؾبد هی ؽد سا ثجت کذ. 424.11کذ پیبم خغب ثب IISثشگشداذ ؽذ

ثشگشداذ ؽد. double-encodedدسخاعت بی

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

فیلتشبی سی دسخاعت ب ثشسعی ؽد. وچیي هی سا ثبص کشد web.configهی ثبیغتی فبیل

ذ:ثبؽ falseسی allowDoubleEscapingثشای فیلتش ؽذ ثبیغتی اعویبى حبفل کشد ک هقذاس تؼشیف

<configuration> <system.webServer> <security> <requestFiltering allowDoubleEscaping="false"> </requestFiltering> </security> </system.webServer> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, select the site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. Click Edit Feature Settings... in the Actions pane

Page 28: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

27

5. Under the General section, uncheck Allow double escaping

بم یک فبیل دس ؽبهل "+" ثبؽذ، ثشای اجشای قبثلیت ب هی ثبیغتی URLدس فستیک

allowDoubleEscaping سیtrue .تظین ؽذ ثبؽذ

لیکب

هبثغ :

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimit

s

http://learn.iis.net/page.aspx/142/use-request-filtering/

ت ػاى : فایل ای تا پسذ تأییذ طذذادى اجاستضیحب

ت :

هسد پزیشػ ة FileExtensionsفیلتش ث ادهیي ایي اجبص سا هی دذ تب پغذبی هؾخقی ک

توبهی پغذبیی ک ث عس فشیح allowUnlistedعشسب غت )یب یغت( سا تؼشیف کذ. یژگی

config ، .bat ، .exe.. اغلت پغذبی تأییذ یب سد ؾذ اذ سا تؼشیف هی کذ داؽت جبیذ اجبص

ث هظس تؼشیف پغذبی هسد تأییذ AllowExtensions DenyExtensionsی ثبؽذ. آپؾي ب

پیؾبد هی ؽد تب حذ اهکبى توبهی پغذبدس لیغت پغذبی غیش قبثل اعتفبد، هی ثبؽذ.

دس فست ثشگشداذى دسخاعت تعظ تأییذ ؾذ ب قشاس گیشذ فقظ پغذبی ضشسی تأییذ ؽذ.

سا ثجت هی کذ. 424.6پیبم خغب ثب کذ IIS ایي فیلتش،

ضؼیت

: تغت

بهفق -هفق

هیضاى سیغک :

صیبد -هتعظ –کن

سػ

پیبد

عبصی :

فیلتشبی سی دسخاعت ب ثشسعی ؽد. وچیي هی سا ثبص کشد web.configهی ثبیغتی فبیل

fileExtensions>ثبیغتی اعویبى حبفل کشد ک هقذاس

allowUnlisted > ثشاثشfalse ثشای غیش فؼبل کشدى دسخاعت بیی ثبؽذ. ث ػاى هثبل ؽذ تؼشیف

داسای پغذی ث جض :داسذ هبذ صیش ػول هی ؽد html.یب asp ، .aspx.ک

<configuration>

<system.webServer>

<security>

<requestFiltering>

<fileExtensions allowUnlisted="false">

<add fileExtension=".asp" allowed="true" />

<add fileExtension=".aspx" allowed="true" />

<add fileExtension=".html" allowed="true" />

</fileExtensions>

</requestFiltering>

</security>

</system.webServer>

</configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager

3. In the Connections pane, select the server

2. In the Home pane, double-click Request Filtering

4. Click Edit Feature Settings... in the Actions pane

5. Under the General section, uncheck Allow unlisted file name extensions

Page 29: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

28

اص دعتس هغبثق صیش ػول هی ؽد: AppCmd.exeثشای پیکشثذی ایي تظین ثب اعتفبد

%windir%\system23\inetsrv\appcmd set config

/section:requestfiltering/fileExtensions.allowunlisted:false

لیکب

هبثغ :

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimit

s

http://www.iis.net/learn/manage/configuring-security/configure-requestfiltering-in-iis

تزای کتزل کذ ا Write Script/Executeاختصاظ ذادى هجس ػاى : داسای هجصبی تضیحبت : یب Read ،Write ،Scriptظبیف کتشل کذ ب ث فستی هی ثبؽذ ک

Execute هی ثبؽذ.پیؾبد هی ؽد یکی اص هجصبیExecute/Script یبWrite (

ؽد. ایي کبس ثبػث هی ؽد تب خغش اجشای کذبی شد هجص( ث آى ب اختقبؿ داد

هخشة دس عشسب کبؼ یبثذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سا ثبص windir%\system23\inetsrv\config%دس ApplicationHost.configهی ثبیغتی فبیل سػ پیبد عبصی :

دس Executeیب Scriptاعویبى حبفل کشد گبهیک <handlers>پظ اص پیذا کشدى کشد

accessPolicy ،قشاس داسذWrite :دس آى جبؽذ

<system.webserver> <handlers accessPolicy="Read, Script"> </handlers> </system.webserver>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Notepad as Administrator 3. Open the ApplicationHost.config file in %windir%\system23\inetsrv\config 2. Edit the <handlers> section accessPolicy attribute so that Write is not present when Script or Execute are present

http://technet.microsoft.com/en-us/library/dd291912332WS.12339.aspx لیکب هبثغ :

http://blogs.iis.net/thomad/archive/3226/11/25/quo-vadis-accessflags.aspx

Falseتز ری notListedIsapisAllowedاطویاى اس تظین ضذى یژگی ػاى : هخشة کوک هی کذ. ISAPث جلگیشی اص اجشای پغذبی تظین ثدى ایي یژگی تضیحبت :

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد -هتعظ –کن

سا ثبص windir%\system23\inetsrv\config%دس ApplicationHost.configهی ثبیغتی فبیل سػ پیبد عبصی :

ثش <isapiCgiRestriction>دس notListedIsapisAllowedاعویبى حبفل کشد یژگی کشد

:تظین ؽذ ثبؽذ Falseسی

<system.webServer> <security> <isapiCgiRestriction notListedIsapisAllowed="false"> </isapiCgiRestriction> </security> </system.webServer>

Page 30: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

29

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open IIS Manager as Administrator 3. In the Connections pane on the left, select server to be configured 2. In Features View, select ISAPI and CGI Restrictions; in the Actions pane, select Open Feature 4. In the Actions pane, select Edit Feature Settings 5. In the Edit ISAPI and CGI Restrictions Settings dialog, clear the Allow unspecified ISAPI modules check box, if checked 6. Click OK

http://technet.microsoft.com/en-us/library/dd262246332WS.12339.aspx لیکب هبثغ :

http://www.iis.net/ConfigReference/system.webServer/security/isapiCgiRestriction

Falseتز ری notListedCgisAllowedاطویاى اس تظین ضذى یژگی ػاى : هخشة کوک هی کذ. CGIتظین ثدى ایي یژگی ث جلگیشی اص اجشای اعکشیپت بی تضیحبت :

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

سا ثبص windir%\system23\inetsrv\config%دس ApplicationHost.configهی ثبیغتی فبیل سػ پیبد عبصی :

ثش <isapiCgiRestriction>دس notListedCgisAllowedاعویبى حبفل کشد یژگی کشد

:تظین ؽذ ثبؽذ Falseسی

<system.webServer> <security> <isapiCgiRestriction notListedCgisAllowed="false"> </isapiCgiRestriction> </security> </system.webServer>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open IIS Manager as Administrator 3. In the Connections pane on the left, select the server to configure 2. In Features View, select ISAPI and CGI Restrictions; in the Actions pane, select OpenFeature 4. In the Actions pane, select Edit Feature Settings 5. In the Edit ISAPI and CGI Restrictions Settings dialog, clear the Allow unspecified CGI modules check box 6. Click OK

http://technet.microsoft.com/en-us/library/dd291919332WS.12339.aspx لیکب هبثغ :

HTTP Trace Methodغیز فؼال کزدى ػاى : ثش هی Traceسا سی پبعخ HTTPهحتای دسخاعت بی HTTP Trace Method تضیحبت :

گشداذ.فرگش هی تاذ ثب اعتفبد اص ایي اشم ث اعالػبت حغبعی هبذ اعالػبت احشاص

دس دس خاعت هی ثبؽذ، دعتشعی پیذا کذ. HTTP headerیت یب ککی ب ک دس

سا ثجت هی کذ. 424.6پیبم خغب ثب کذ IIS 2فست ثشگشداذى دسخاعت تعظ ایي فیلتش،

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

Page 31: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

30

ؽذى ایي تظین اعویبى حبفل اص پیکشثذی سا ثبص کشد web.configهی ثبیغتی فبیل سػ پیبد عبصی :

ؽد:

<configuration> <system.webServer> <security> <requestFiltering> <verbs> <add verb="TRACE" allowed="false" /> </verbs> </requestFiltering> </security> </system.webServer> </configuration>

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. In the Connections pane, select the site, application, or directory to be configured 2. In the Home pane, double-click Request Filtering 4. In the Request Filtering pane, click the HTTP verbs tab, and then click Deny Verb... in the Actions pane 5. In the Deny Verb dialog box, enter the TRACE, and then click OK

http://www.kb.cert.org/vuls/id/266592 لیکب هبثغ :

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/ve

rbs

IISتنظیمات ورود به

IIS Web Logتغییز هحل پیص فزض ػاى : اعالػبت توبهی دسخاعت ب سا ثجت هی کذ. ایي الگ ب الیي آیتوی هی ثبؽذ ک IIS تضیحبت :

قشاس هی گیشذ ثغیبس ثب اسصػ هی ثبؽذ. کبسثشاى ثشای پبعخ بی اهیتی هسد اعتفبد

عؼی دس پبک کشدى ؽاذ فؼبلیت بی خد هی خشاثکبس ثب آگبی اص ایي هحل، پیعت

ه سا ث هحلی )غیش IISهحل پیؼ فشك رخیش عبصی الگ بی ی ؽدکذ ثبثشایي تفی

اص دسای عیغتوی( اتقبل داد ؽد.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

الگ ب دس هحلی غیش اص پیؼ فشك خد قشاس داسذ، ثب تج ث سػ پیبد عبصی : ح ی ثشای اعویبى اص ایک

الگ گیشی د هسد صیش تغت ؽد:

1. A folder containing .log files or 3. .log files in the root of the specified directory

اص یژگی ث ینتظ یيا یکشثذیپ یب IIS Management UIالگ گیشی دس ب اعتفبد

AppCmd.exe .اجبم پزیش هی ثبؽذ

اص D:\LogFilesثشای تغییش هحل خیش عبصی الگ ب ث فست AppCmd.exeثب اعتفبد ث

صیش ػول هی ؽد:

%windir%\system23\inetsrv\appcmd set config -section:sites

Page 32: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

31

siteDefaults.logfile.directory:"D:\LogFiles"

-http://www.iis.net/learn/extensions/advanced-logging-module/advanced لیکب هبثغ :

loggingfor-iis-custom-logging

http://support.microsoft.com/kb/23263921

Advanced IIS Loggingفؼال کزدى ػاى : کشدى قغوت بی هسد اویت کغت کبس، پبلیغی تضیحبت : ایي هبژل کتشل بیی ثشای اضبف

بیی سی فبیل رخیش عبصی الگ فیلتش کشدى دسخاعت ب ایجبد هی کذ.پیؾبد هی

ث ع کغت کبس قغوت بی ثب اسصػ Advanced Loggingؽد فؼبل ؽذ ثب تج

تی سا ثجت خاذ کشد.اص دیذ کغت کبس، قبیغ اهی

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

دس حبل log.فبیل بی Advanced Logثشای اعویبى هی ثبیغتی ثشسعی ؽد دس هحل سػ پیبد عبصی :

عبخت ؽذى ثبؽذ.

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ

1. Open Internet Information Services (IIS) Manager 3. Click the server in the Connections pane 2. Double-click the Advanced Logging icon on the Home page 4. Click Enable Advanced Logging in the Actions pane

---http://learn.iis.net/page.aspx/569/advanced-logging-for-iis-62 لیکب هبثغ :

customlogging#open

http://technet.microsoft.com/en-us/library/cc623236332WS.12339.aspx

ETW Logging ػاى : اص آى ادهیي هی ت IIS 2.5 تضیحبت : اذ اعالػبت یک هتذ الگ گیشی جذیذ هتؾش کشد ک ثب اعتفبد

اسعبل کذ. Event Tracing for Windows (ETW)الگ سا ث

اعالػبت الگ سا سی دیغک رخیش کذ، ادهیي ب قبدس خاذ ثد ث IISدس فستیک

اعالػبت الگ ب سا دسیبفت کذ وچیي ثشسعی اسصیبثی فبیل بی الگ real-timeفست

ثب ادهیي ب قبدس خاذ ثد ETWهتی کبس دؽاس صهبجشی هی ثبؽذ. ثب فؼبل عبصی

اص اثضاسبی اعتبذاسد کئشی، اعالػبت الگ ب سا ث فست هؾبذ real-timeاعتفبد

کذ.

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ سػ پیبد عبصی :

1. Open IIS Manager 3. Select the server or site to enable ETW 2. Select Logging. 4. Ensure Log file format is W2C. 5. Select Both log file and ETW event 6. Save your settings.

http://www.iis.net/learn/get-started/whats-new-in-iis-25/logging-to-etw-in-iis-25 لیکب هبثغ :

Page 33: Security_Baseline_IIS_V1.1_mohaymen

[email protected]

32

http://blogs.technet.com/b/erezs_iis_blog/archive/3212/26/15/hook-me-up.aspx

FTPدرخواست های

FTPرهشگذاری درخاست ای ػاى : کشدى تضیحبت : FTP siteث SSL certificateاضبف

بهفق -هفق : تغتضؼیت

هیضاى سیغک :

صیبد –هتعظ –کن

:اجبم هی ؽد یشث فست ص ینتظ یيا یکشثذیپ سػ پیبد عبصی :

1. Open IIS Manager, select the FTP server and choose FTP SSL Settings in the Features View pane 3. Under the SSL Certificate dropdown, choose the SSL certificate to be configured for Use 2. In the SSL Policy section, click the radio button next to Require SSL connections; it is important to require SSL, because allow SSL still permits non-SSL FTP 4. Click Apply in the Actions pane

-http://www.windowsnetworking.com/articles_tutorials/IIS-FTP-PublishingService لیکب هبثغ :

Part2.html

http://learn.iis.net/page.aspx/224/using-ftp-over-ssl/222