ในฐานะนักพัฒนาแอป Google Play คุณมีบทบาทสำคัญในการรักษาความปลอดภัยของแอปและผู้ใช้ เนื่องจากมีแคมเปญที่เป็นการละเมิดด้านวิศวกรรมสังคมมากขึ้นเรื่อยๆ โดยเฉพาะที่มุ่งเป้าไปยังประชากรกลุ่มเปราะบาง การใช้มาตรการเชิงรุกเพื่อปกป้องผู้ใช้และความสมบูรณ์ของแอปจึงสำคัญยิ่งกว่าที่เคย
บทความนี้จะกล่าวถึงภาพรวมเกี่ยวกับ Flag ความปลอดภัยสำหรับ Android และ Play ที่มีประโยชน์ 2 รายการซึ่งจะยกระดับการรักษาความปลอดภัยของแอป นั่นก็คือ FLAG_SECURE
และ REQUIRE_SECURE_ENV
การทำความเข้าใจและใช้ Flag เหล่านี้อย่างมีประสิทธิภาพจะช่วยป้องกันการละเมิดที่กำหนดเป้าหมายและปกป้องระบบนิเวศของแอปให้ดียิ่งขึ้นได้
FLAG_SECURE
FLAG_SECURE เป็นสัญญาณที่บอกว่าแอปของคุณมีไว้เพื่อทำงานในสภาพแวดล้อมที่ปลอดภัยมากขึ้น เพื่อลดช่องโหว่ การตรวจสอบ และการโจมตีที่อาจเกิดขึ้น โดยเป็น Flag การแสดงผลที่ประกาศในโค้ดของแอปเพื่อระบุว่า UI ของแอปมีข้อมูลที่ละเอียดอ่อนซึ่งมีไว้สำหรับแพลตฟอร์มที่ปลอดภัยขณะใช้แอปเท่านั้น ซึ่งเป็นการส่งสัญญาณให้แอปและบริการอื่นๆ ทราบว่าข้อมูลไม่ควรปรากฏในภาพหน้าจอหรือดูในจอแสดงผลที่ไม่ปลอดภัย นักพัฒนาแอปจะประกาศ Flag นี้ เมื่อไม่ควรเผยแพร่ ดู หรือส่งเนื้อหาของแอปออกจากตัวแอปหรืออุปกรณ์ของผู้ใช้ ตัวอย่างเช่น หากหน้าจอในแอปมีข้อมูลที่ละเอียดอ่อนซึ่งอาจมีความเสี่ยงด้านความปลอดภัยหากบุคคลที่สามดู เช่น แอปการสนับสนุนจากระยะไกล เป็นต้น FLAG_SECURE
เป็นวิธีหนึ่งในการประกาศความไวดังกล่าวและทำให้สภาพแวดล้อมมีความปลอดภัย เพื่อความปลอดภัยและความเป็นส่วนตัว แอปทั้งหมดที่เผยแพร่ใน Google Play จะต้องยึดตาม FLAG_SECURE ซึ่งส่งผลให้ไม่มีการอํานวยความสะดวกหรือสร้างวิธีแก้ปัญหาเบื้องต้นเพื่อข้ามการตั้งค่า Flag ในแอปอื่นๆ
REQUIRE_SECURE_ENV
การโจมตีแบบวิศวกรรมสังคมเป็นเรื่องที่น่ากังวลโดยเฉพาะในประชากรผู้สูงอายุและกลุ่มเปราะบางอื่นๆ ที่อาจเสี่ยงต่อการชักจูงและหลอกลวง การโจมตีเหล่านี้มักหลอกให้ผู้ใช้เปิดเผยข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านหรือรายละเอียดทางการเงิน หรือการดาวน์โหลดเนื้อหาที่เป็นอันตราย
การใช้ Flag FLAG_SECURE
และ REQUIRE_SECURE_ENV
จะช่วยลดความเสี่ยงของการโจมตีแบบวิศวกรรมสังคมภายในแอปได้ Flag ทั้งสองนี้สามารถใช้แบบแยกกันหรือพร้อมกันก็ได้ เพื่อป้องกันการเจาะช่องโหว่ที่ผู้โจมตีมักใช้เข้าถึงข้อมูลส่วนตัวและข้อมูลที่ละเอียดอ่อนหรืออุปกรณ์ของผู้ใช้
การปกป้องผู้ใช้สูงอายุและประชากรกลุ่มเปราะบางจากการละเมิดด้านวิศวกรรมสังคม
การโจมตีแบบวิศวกรรมสังคมเป็นเรื่องที่น่ากังวลโดยเฉพาะในประชากรผู้สูงอายุและกลุ่มเปราะบางอื่นๆ ที่อาจเสี่ยงต่อการชักจูงและหลอกลวง การโจมตีเหล่านี้มักหลอกให้ผู้ใช้เปิดเผยข้อมูลที่ละเอียดอ่อน เช่น รหัสผ่านหรือรายละเอียดทางการเงิน หรือการดาวน์โหลดเนื้อหาที่เป็นอันตราย
การใช้ Flag FLAG_SECURE
และ REQUIRE_SECURE_ENV
จะช่วยลดความเสี่ยงของการโจมตีแบบวิศวกรรมสังคมภายในแอปได้ Flag ทั้งสองนี้สามารถใช้แบบแยกกันหรือพร้อมกันก็ได้ เพื่อป้องกันการเจาะช่องโหว่ที่ผู้โจมตีมักใช้เข้าถึงข้อมูลส่วนตัวและข้อมูลที่ละเอียดอ่อนหรืออุปกรณ์ของผู้ใช้
มาตรการป้องกันเพิ่มเติม
นอกเหนือจากการใช้ Flag ความปลอดภัยแล้ว ให้พิจารณาใช้มาตรการเพิ่มเติมต่อไปนี้เพื่อช่วยปกป้องผู้ใช้จากการละเมิดด้านวิศวกรรมสังคมด้วย
- ให้ความรู้ผู้ใช้เกี่ยวกับกลวิธีวิศวกรรมสังคม: แสดงคำเตือนที่ชัดเจนและกระชับภายในแอปเกี่ยวกับเทคนิควิศวกรรมสังคมที่พบได้ทั่วไป เช่น กลโกงฟิชชิงและการโทรหาจากทีมสนับสนุนปลอม
- นำกลไกการตรวจสอบสิทธิ์ที่ปลอดภัยมาใช้: ใช้วิธีการตรวจสอบสิทธิ์ที่มีประสิทธิภาพ เช่น การตรวจสอบสิทธิ์แบบ 2 ปัจจัย เพื่อป้องกันการเข้าถึงบัญชีผู้ใช้โดยไม่ได้รับอนุญาต
- อัปเดตแอปเป็นประจำ: อัปเดตแพตช์ด้านความปลอดภัยและแก้ไขข้อบกพร่องอยู่เสมอเพื่อจัดการช่องโหว่ที่อาจเกิดขึ้นซึ่งผู้โจมตีอาจใช้
การทำงานร่วมกันและการศึกษาต่อเนื่อง
การต่อสู้กับการละเมิดและการปกป้องผู้ใช้เป็นกระบวนการต่อเนื่องที่ต้องอาศัยความร่วมมือระหว่างนักพัฒนาแอป, Google Play และชุมชนการรักษาความปลอดภัยในวงกว้าง ดูแนวทางปฏิบัติแนะนำด้านความปลอดภัยล่าสุดได้จากบล็อกเกี่ยวกับความปลอดภัยและการรักษาความปลอดภัย
การทำงานร่วมกันจะช่วยให้เราสร้างระบบนิเวศของ Android ที่ปลอดภัยและเชื่อถือได้มากยิ่งขึ้นสําหรับผู้ใช้ทุกคน
คำถามที่พบบ่อย
คลิกคำถามด้านล่างเพื่อขยายหรือยุบ
การใช้ Flag เหล่านี้จะส่งผลเสียต่อแอปไหม และการติดตั้งใช้งานใช้เวลานานเท่าใดFlag เหล่านี้ออกแบบมาเพื่อเพิ่มความปลอดภัยและความเป็นส่วนตัวโดยไม่ลดทอนประสิทธิภาพ อย่างไรก็ตาม หากฟีเจอร์ของแอปอาศัยการแชร์ภาพหน้าจอหรือการบันทึกหน้าจอเป็นหลัก การตั้งค่า FLAG_SECURE
อาจป้องกันไม่ให้ผู้ใช้จับภาพในหน้าเหล่านั้น ในกรณีนี้ สิ่งสำคัญคือการสร้างสมดุลระหว่างความจำเป็นด้านความปลอดภัยและประสบการณ์ของผู้ใช้ นอกจากนี้ การปรับแต่งหรือส่วนขยายแอปของบุคคลที่สามบางอย่างอาจอาศัยวิธีการจับภาพหน้าจอที่ได้รับผลกระทบจาก Flag เหล่านี้ หากแอปผสานรวมกับเครื่องมือดังกล่าว คุณควรทดสอบความสามารถในการใช้งานร่วมกันก่อน
ปกติแล้วกระบวนการติดตั้งใช้งานนั้นรวดเร็วและไม่ยุ่งยาก โดยทั่วไปก็แค่เพิ่มโค้ดไม่กี่บรรทัดลงในหน้าหรือกิจกรรมที่เกี่ยวข้องซึ่งคุณต้องการใช้ Flag ระยะเวลาดำเนินการจะขึ้นอยู่กับความซับซ้อนของแอปและจำนวนหน้าที่เกี่ยวข้อง
FLAG_SECURE
เป็น Flag ระดับหน้าต่างที่เมื่อตั้งค่าแล้วจะระบุให้ถือว่าเนื้อหาในหน้าต่างนั้นๆ ปลอดภัย ซึ่งป้องกันไม่ให้เนื้อหาปรากฏในภาพหน้าจอ หรือไม่ให้เห็นเนื้อหาบนหน้าจอที่ไม่ปลอดภัย ส่วน REQUIRE_SECURE_ENV
จะส่งสัญญาณให้แอปอื่นๆ ทราบว่าแอปของคุณต้องทำงานในสภาพแวดล้อมที่ปลอดภัย ทั้ง FLAG_SECURE
และ REQUIRE_SECURE_ENV
เป็น Flag ความปลอดภัยที่ใช้เพื่อปกป้องแอป/ผู้ใช้ Android จากการละเมิดและการโจมตี
เมื่อแอปธนาคารใช้ FLAG_SECURE
ในหน้าจอการเข้าสู่ระบบ จะมีการสร้างหน้าต่างพิเศษที่ปกป้องข้อมูลที่ละเอียดอ่อน เช่น ข้อมูลเข้าสู่ระบบของผู้ใช้ ตามกฎทั่วไป การปกป้องนี้จะช่วยป้องกันไม่ให้เนื้อหาของหน้าต่างแสดงในหน้าจอที่ไม่ปลอดภัย หรือจับภาพไว้ในภาพหน้าจอ การบันทึก หรือการดูจากระยะไกล คุณจึงอาจเห็นเพียงพื้นที่ว่างบนหน้าจอประเภทดังกล่าวแทนที่จะเห็นรายละเอียดการเข้าสู่ระบบของผู้ใช้
ตัวอย่างแอปที่อาจใช้ Flag เหล่านี้ ได้แก่ แอปที่จัดการข้อมูลส่วนตัวและข้อมูลที่ละเอียดอ่อนของผู้ใช้ เช่น ข้อมูลทางการเงิน แอปธนาคารเป็นตัวอย่างของแอปที่มักใช้ FLAG_SECURE
แอปที่มีความเสี่ยงต่อการละเมิดเป็นพิเศษ เช่น แอปที่มีกลุ่มเป้าหมายเป็นผู้สูงอายุหรือประชากรกลุ่มเปราะบางควรพิจารณาใช้ Flag REQUIRE_SECURE_ENV
ด้วย
หากต้องการใช้ Flag "FLAG_SECURE" ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ AndroidManifest.xml
XML
<activity android:name=".MyActivity"
android:exported="true"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
หากต้องการใช้ Flag REQUIRE_SECURE_ENV
ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ AndroidManifest.xml
XML
<manifest ...>
<application ...>
…
<property android:name="REQUIRE_SECURE_ENV" android:value="1" />
…
</application>
</manifest>