วิธีป้องกันการติดตั้ง extension บน Google Chrome ด้วย Group Policy

สำหรับเครื่องที่ใช้ Domain Controller ควบคุมเครื่อง Computer ที่อยู่ใน domain ส่วนที่ Windows Server มีให้ก็จะเป็น Policy template ที่เป็นระบบของ Windows เอง แต่ด้วยความอยากได้อยากมี ก็เลยหาวิธีควบคุม Google Chrome ด้วย GPO ซึ่งมันก็มีจริงๆ ซึ่งสิ่งที่อยากป้องกันการใช้ google chrome ก็คือไม่ต้องการให้พวก “ตัวแถม” ที่มันมักจะติดมากับ software ที่ user ติดตั้งเองตามอำเภอใจ เช่นพวก malware, ad-ware หรือ สารพัด search ทั้งหลาย ที่อยู่ดีๆ ก็มีคนแจ้งว่า ทำไมค้นหาใน Google ไม่ได้ ให้สันนิษฐานไว้เลยว่า ต้องโดนของแล้วละ

Downloading the policy template

ซึ่งของเดิมๆ มันจะไม่มี template สำหรับ Google Chrome เราต้องไป download มาติดตั้งเพิ่มเติมเองที่ https://dl.google.com/dl/edgedl/chrome/policy/policy_templates.zip โหลดเสร็จ แตกไฟล์ ในที่นี้เราจะใช้ folder windows ซึ่งด้านในมันจะมี folder ย่อย adm และ admx

ในที่นี้ผมใช้ Windows Server 2012 ผมจึงใช้ template ที่เป็น admx เมื่อเปิดเข้าไปใน folder จะพบไฟล์ดังภาพ

Importing the template to your GPO management console

Copy ไฟล์ chrome.admx, google.admx และ folder en-US ไปไว้ที่ C:\Windows\PolicyDefinitions ของ Windows Server  หรือใครจะใช้วิธี Import เข้าผ่านทาง Group Policy Management ก็ได้

ตัวอย่างการ Import template

เข้า GPO Editor เลือก Computer Confiuration > คลิกขวาที่ Administrative Template แล้วเลือก Add/Remove Template จากนั้นก็ browse file ที่เป็น adm หรือ admx ของ Google ที่โหลดมาข้างต้น

เมื่อ import สำเร็จแล้ว เปิดเข้ามาดูหน้า GPO Management Editor จะพบกับ policy template ของ Google Chrome ด้วยกัน 2 Folder ซึ่งรายละเอียดข้างในแตกต่างกันไม่มาก

Setting the STARTup PAGE

ทดสอบตั้ง Start Page ให้เป็นหน้าที่ต้องการ ให้เลือกไปที่ Startup pages / Action on startup = Enable / Option = Open a list of URLs ซึ่งเราจะกำหนด url ในหัวข้อถัดไป เสร็จแล้วกด ok

URLs to open on startup = Enabled / Options = {url ที่เราจะให้เปิด} ดังภาพ ถ้าต้องการเปิดหลาย url ก็ให้เพิ่มเข้าไปได้

ซึ่งในส่วนของ Homepage ก็ทำได้คล้ายๆ กัน

Block Extension on Google Chrome

มาถึงจุด highlight ที่จะทำในครั้งนี้คือ การปิดไม่ให้ computer ติดตั้ง extension เอง! เนื่องจากมันมี extension ขยะที่สร้างปัญหาให้กับ users เองนั้นแหละ โดยใช้ GPO เป็นตัวกำหนด โดยเข้าไปที่ Computer Configuration > Policies > Administrative Template: Policy definitions > Google > Google Chrome > Extensions 

Configure extension installation blacklist

Enabled / Options = * การใส่ * ดอกจัน หมายความว่าต้องการ block  ทั้งหมด ไม่ว่าอะไรก็ตาม

Help:

Allows you to specify which extensions the users can NOT install. Extensions already installed will be disabled if blacklisted, without a way for the user to enable them. Once an extension disabled due to the blacklist is removed from it, it will automatically get re-enabled.

A blacklist value of ‘*’ means all extensions are blacklisted unless they are explicitly listed in the whitelist.

If this policy is left not set the user can install any extension in Google Chrome.

Configure extension installation whitelist

Enabled / Options = {Extension IDs} ซึ่งหมายความว่า รายการที่กำหนดนี้จะได้รับข้อยกเว้นจาก blacklist

Help:

Allows you to specify which extensions are not subject to the blacklist.

A blacklist value of * means all extensions are blacklisted and users can only install extensions listed in the whitelist.

By default, all extensions are whitelisted, but if all extensions have been blacklisted by policy, the whitelist can be used to override that policy

Configure the list of force-installed apps and extensions

ตัวนี้แถมเข้ามา เพราะเห็นว่ามันบังคับติดตั้ง Extension ได้ด้วย ซึ่งวิธีการก็แค่นำ Extension หรือ App IDs และ Update URLs มาใส่ไว้เท่านั้น ในที่นี้ update url ก็ใช้ของ google ไปนั้นแหละ ไม่ยาก

abgnbkcdbiafipllamhhmikhgjolhdaf;https://clients2.google.com/service/update2/crx

Help:

Specifies a list of apps and extensions that are installed silently,
without user interaction, and which cannot be uninstalled nor
disabled by the user. All permissions requested by the
apps/extensions are granted implicitly, without user interaction,
including any additional permissions requested by future versions of
the app/extension. Furthermore, permissions are granted for the
enterprise.deviceAttributes and enterprise.platformKeys extension
APIs. (These two APIs are not available to apps/extensions that are
not force-installed.)

This policy takes precedence over a potentially conflicting ExtensionInstallBlacklist policy. If an app or extension that previously had been force-installed is removed from this list, it is automatically uninstalled by Google Chrome.

For Windows instances that are not joined to a Microsoft® Active
Directory® domain, forced installation is limited to apps and
extensions listed in the Chrome Web Store.

Note that the source code of any extension may be altered by users via Developer Tools (potentially rendering the extension dysfunctional). If this is a concern, the DeveloperToolsDisabled policy should be set.

Each list item of the policy is a string that contains an extension ID and an “update” URL separated by a semicolon (;). The extension ID is the 32-letter string found e.g. on chrome://extensions when in developer mode. The “update” URL should point to an Update Manifest XML document as described at https://developer.chrome.com/extensions/autoupdate. Note that the “update” URL set in this policy is only used for the initial installation; subsequent updates of the extension employ the update URL indicated in the extension’s manifest.

For example, gbchcmhmhahfdphkhkmpfmihenigjmpp;https://clients2.google.com/service/update2/crx installs the Chrome Remote Desktop app from the standard Chrome Web Store “update” URL. For more information about hosting extensions, see: https://developer.chrome.com/extensions/hosting.

If this policy is left not set, no apps or extensions are installed automatically and the user can uninstall any app or extension in Google Chrome.

Testing

จัดแจงนำ GPO ที่สร้างขึ้นนี้ ไปใส่ใน OU ที่ต้องการทดสอบ เสร็จแล้วสั่ง Update Group Policy (gpupdate /force) แล้วดูผลลัพท์ โดยเปิด Google Chrome ขึ้นมา จะพบว่าหน้าแรก เป็นหน้าที่เรา Set ไว้ จากนั้นลองเข้า chrome web store เพื่อติดตั้ง extension หรือ app หรือ themes มันจะขึ้นแบบนี้!

เมื่อดูในหน้า chrome://policy ก็มีรายละเอียดตามภาพ

สรุป

เท่าที่ทดสอบดู ไม่มีปัญหากับ OS ได้ทั้ง Windows XP ขึ้นไป ซึ่งเมื่อตั้ง blacklist * มันจะส่งผลให้ extension ที่ติดตั้งในเครื่องอยู่ก่อนหน้า ไม่ทำงานไปด้วย ก็ต้องระมัดระวังในส่วนนี้ เพราะจะเหนื่อยตอนที่ต้องเอา ID มาใส่ใน whitelist แต่ก็มั่นใจว่า มันง่ายกว่าการเปิดทั้งหมด แต่ตามจับ extension แถมจากการติดตั้ง program แน่นอน เพราะมันจะเปลี่ยน ID ไปเรื่อยๆ  block เท่าไหร่ก็ไม่หมด สำหรับ extension ที่ force installed นี้ ผมลง Anti Miner ไว้ด้วยครับ เพราะช่วงนี้ระบาดมาก หลายๆ เว็บหาเงินด้วยวิธีเป็นปลิง หรือ บางเว็บก็อาจโดน hack แบบไม่รู้ตัว ทั้งนี้สามารถดูการตั้งค่า policy เพิ่มเติมได้ที่