Posted on Jul 19, 2019

ทำไมถึงไม่ควรร่วมสนุกชิง OSMO Pocket จาก AIS

Posted in Tech
Comments Post a Comment

วันนี้ได้ MMS ว่าให้ร่วมสนุกชิงรางวัล DJI OSMO Pocket จาก AIS Serenade ซึ่งกำลังอยากได้พอดี เลยกดตามลิงค์ไป เจอว่าให้ตอบคำถาม กับรายละเอียดนิดหน่อยก็ได้ลุ้นของรางวัลล่ะ พอเลื่อนลงมาจะกรอกข้อมูล เห็นว่ามีชื่อ-นามกสุล เบอร์โทรศัพท์ และอีเมล เลยขอดูหน่อยว่าเว็บไม่ใช่ Phishing นะ

พอดูเท่านั้นแหล่ะ ชัดเลย … เว็บไม่ได้มีความปลอดภัยใดๆ SSL/TLS ไม่มี !! นี่มันปี 2019 แล้วนะ ในขณะที่ทุกๆคนพยายามส่งเสริมให้ประชาชนระมัดระวังการกรอกข้อมูล การเข้าเว็บ ไม่ให้เป็นเหยื่อของ spam/phishing แต่องค์กรเองไม่ได้มีความใส่ใจด้านนี้เลย

ไม่มี SSL/TLS แล้วยังไง ?

อธิบายง่ายๆคือ ไม่มีแล้วแปลว่า ข้อมูลที่เรากรอกสามารถมองเห็นได้จากอุปกรณ์เน็ตเวิร์คใดๆที่มันวิ่งผ่าน อาจจะเป็น Router ที่บ้านที่ติดมัลแวร์เพราะไม่ได้อัพเดท, เจ้าของหอพักที่เก็บ Log ตามพรบ., เจ้าหน้าที่ใน Mobile Operator ที่เข้าถึง Data log, ป้าในร้านกาแฟที่เปิด sniffing package ของ WiFi ที่ไม่ได้เข้ารหัส (เวอร์มั๊ย)

ต่อให้พยายามฝืนเป็น HTTPS แล้วก็ไม่สำเร็จ

เมื่อเป็นเช่นนี้แล้ว ก็อย่าสงสัยเลย

  • ทำไมเรามี spam เยอะ (กรณีนี้ได้ serenade group ด้วย target ชั้นดี)
  • ทำไมเราถึงโดน Identity Thief เพราะเค้าได้ชื่อ อีเมล เบอร์โทรไปแล้ว เหลืออีกนิดเดียวก็ครบแล้ว

สรุป … ปิดไปครับ อย่าไปลุ้นเลย ไม่ควรกรอกอะไรทั้งนั้น

ปล. เหตุการณ์คล้ายๆกันนี้ก็เคยเกิดกับ Starbucks TH มาก่อนแล้ว …

Posted on Dec 06, 2017

อย่าพึ่งลงทะเบียนรับของขวัญปีใหม่จาก Starbucks

Posted in Tech
Comments 1 Comment

As of 16:45 BKK Time, เหมือนว่าทาง Starbucks Thailand ได้แก้ไขให้ redirect ไปยังหน้าที่มี SSL เรียบร้อยแล้ว


ช่วงนี้หลายๆคนที่เป็นสมาชิกสตาร์บัคส์น่าจะเริ่มได้รับเมล ให้ลงทะเบียนเพื่อรับของขวัญปีใหม่ 2018 ตามภาพข้างล่าง (สมาชิกแบบโกลด์น่าจะได้เมลหน้าตาต่างไปอีกนิด)

ความน่าเศร้าก็คือ เมื่อคลิกลิงค์เพื่อเลือกสาขาที่จะรับของรางวัลนั้น มันจะเปิดหน้าใหม่ไปที่ http://newyear.starbuckscard.in.th/greenth หรือ /gold ก็ว่าไป แล้วให้กรอก username/password

ถ้าสังเกตดีๆจะเห็นว่า URL ที่เปิดมานั้นไม่ได้เป็น https ซึ่งมันไม่ปลอดภัยที่จะกรอกรหัสใดๆลงไปเลย นี่ไม่ใช่ครั้งแรกที่ Starbucks Thailand ไม่ได้สนใจเรื่องความปลอดภัยขนาดนี้ ทั้งๆที่บริการ Cash card แบบนี้ควรจะต้องถูกดูแลอย่างเข้มงวด ไม่ใช่ทำๆส่งๆไปแบบนี้

 

 

วิธีทางแก้แบบขอไปที คือ แก้ URL เพิ่ม https:// เข้าไปด้วยตัวเอง แลัวจะมีการแจ้งเตือนเพราะว่า Certificates ที่มีนั้นไม่ตรงกับ domain ก็คงทำได้แค่เพียงกด Advance แล้วคลิก Proceed to newyear.starbuckscard.in.th (unsafe) ต่อไป เพื่อยอมให้ใช้ SSL certificate อันนี้ แต่อย่างน้อยก็เข้ารหัส username/password ของเราไว้ เพื่อไม่ให้คนดูแลระบบที่ทำงานหรือระหว่างทางสามารถเห็นรหัสผ่านของเราได้

 

จะได้ตามภาพด้านล่าง แล้วจึงค่อยกรอก username/password ต่อไป

 

ไม่แน่ใจว่ามีใครรู้จักคนดูแลระบบของ Starbucks Thailand หรือไม่ ฝากแจ้งหน่อย เพราะนี่ไม่ใช่ครั้งแรก

 

… ถ้าจะบอกว่าเหมือนให้เด็กฝึกงานทำก็คงไม่ผิด

Posted on Jan 27, 2017

ว่าด้วยเรื่องของ Thai Root CA

Posted in Tech
Comments Post a Comment

ขอเกาะกระแสของข่าว ไมโครซอฟท์รับ root CA ของรัฐบาลไทยตั้งแต่ปลายปีที่แล้ว ซึ่งนำมาซึ่งความแตกตื่นของผู้คนในวง IT ระดับนึง

ข้างล่างนี้คือความเห็นส่วนตัวล้วนๆ หลังจากที่อ่านความเห็นมาพักนึงเลยอยากลองวิเคราะห์เองบ้าง

Certificate ที่ว่า ตัวที่ได้รับรองจาก Mcirosoft Root CA

ก่อนอื่นขอเดาว่า หลังจาก MS รับรอง root CA ของไทย ซึ่งจริงๆแล้วเป็นองค์กรในกำกับดูแลของรัฐ (NRCA ที่อยู่ภายใต้ สพธอ./ETDA) แต่ด้วยความเชือเรื่องการแทรกแทรงการทำงานของบ้านเรา อาจจะเรียกว่าเป็นของรัฐก็คงได้

ผลกระทบในคือ

กรณีเลวร้ายที่สุด – NRCA ออกใบรับรองให้ Single Gateway ของรัฐบาล ทำให้รัฐบาลสามารถทำตัวเองเป็น MITM (Man in the middle) แอบเป็นตัวกลางระหว่างเรากับผู้ให้บริการ เช่น Facebook โดยที่เราไม่รู้ตัว Web Browser หลายๆตัวก็เชื่อถือใบรับรองนี้ ทำให้การดูแค่ว่าเวลาเข้าเว็บแล้วแม่กุญแจเป็นสีเขียวก็ไม่เพียงอีกต่อไป ต้องล้วงลงไปดูด้วยว่า ไอใบสีเขียวๆเนี่ย ออกโดยใคร ถ้าออกโดย NRCA เมื่อไหร่ก็แปลว่าโดนเข้าให้แล้ว

ทางออกที่หลายๆคนเริ่มทำ และเริ่มมีบทความแนะนำให้เอาออกคือ Untrust certificate ของ หน่วยงานที่ว่า และหน่วยงานอื่นๆที่ NRCA ออกใบรับรองให้มีสิทธิออกใบรับรองอีกที (อินเซบชันกันไป) ซึ่งใครไม่ไว้ใจในหน่วยงานที่ว่า และไม่ไว้ใจในรัฐบาลก็ทำตามได้เลย ลองดูจากที่นี่ วิธีลบ root CA cert รัฐบาลไทยออกจากเครื่อง

 

ส่วนในมุมมองเชื่อว่า NRCA สร้างขึ้นมาเพื่ออำนวยความสะดวกให้กับโครงสร้างพื้นฐานของประเทศ มากกว่าจะมาโฟกัสเรื่อง ดักฟังประชาชน (แต่ไม่ได้แปลว่าทำไม่ได้)  เพราะว่าอะไร ?

 

เพราะว่า Certificate ที่ออกโดย NRCA (หรือใครๆก็ตาม) นั้นมันเอาไปทำอะไรได้เยอะมาก เช่น

SSL – ใบรับรองเพื่อยืนยันว่า Server ที่เราติดต่อด้วยนั้นเป็นของจริง และเข้ารหัสข้อมูลที่ส่งหากัน

Code signing – เวลาเราพัฒนาซอฟท์แวร์ เราสามารถ Sign โปรแกรมของเราได้ว่าที่สิ่งที่ลูกค้าได้ไปนั้น เป็นของเราจริงๆ ไม่ได้มีใครแอบเอาไฟล์อะไรมาแทรกเพื่อแก้ไขมัน ทุกไฟล์จึงควรได้รับการรับรองจากเราเสมอ

Digital signing – เข้าสู่ยุค paperless, เวลาเราเซ็นเอกสาร digital เช่น pdf ก็ต้องใช้ใบรับรองเหล่านี้ ซึ่งจะตรวจสอบกับ Root CA ว่าลายเซ็นถูกต้องเป็นของจริงหรือไม่

จริงๆยังมีพวกการยืนยันตัวต้นพวก Chip บน Smartcard ต่างๆก็ต้องพึ่งพา certificate เหล่านี้

 

 

เราลองมาดูกันว่า NRCA (และบ.ที่ได้รับอนุญาติ) ออกใบรับรองอะไรไปบ้างแล้ว แล้วถ้าเรา Untrust จะกระทบอะไรหรือไม่อย่างไร ?

หน่วยงานใช้บริการใบรับรองของ TDID (Thai digital id) ที่ได้การรับรองขาก NRCA อีกทอดหนึ่ง

ลองมาไล่ดูรายละเอียดกัน

Bank of Thailand (BOT)

TDID ออกใบรับรองให้ Root CA ของ BOT ซึ่งใช้ในการเข้ารหัสการส่งข้อมูลระหว่างหน่วยงาน

ซึ่งครั้งหนึ่งผมเคยทำงานอยู่ในตำแหน่งที่ต้องเกี่ยวกับการติดตั้ง/เปลี่ยน certificate ที่ออกโดย BOT ซึ่งตอนนั้นถ้าจำไม่ผิดยังมีสถานะเป็น Self-signed การมีอยู่ตรงนี้ของ NRCA ทำให้การออกใบรับรองโดยหน่วยงานที่จำเป็นต้องใช้ มีความน่าเชื่อถือมากขึ้น มากกว่าจะ issue กันเอง trust กันเอง ซึ่งถ้าโดยแอบเปลี่ยนในขั้นตอนใดขั้นตอนหนึ่งก็เสียหายได้ ไม่ว่าจะเป็นการแอบดูข้อมูลหรือแก้ไข

 

NITMX CA

National ITMX เป็นบริษัทตัวกลางที่ตั้งขึ้นเพื่อดูแล ATM Pool เวลาเรามีการทำธุรกรรมผ่าน ATM  “เดา” ว่าใบระบรองถูกออกให้กับ NITMX CA เพื่อใช้ใน web ที่เป็นระบบ Intranet


 

ใช้สำหรับระบบ Chip บน ATM ที่แต่ละธนาคารเอาไป Issue ต่อ ลองอ่านเพิ่มเติมที่เว็บเจ้าตัว http://www.thaidigitalid.com/index.jsp?page=thai_bank_chipcard.jsp

ยังมีอีกหลายอย่างที่พึ่งพากระบวนการออก Certificate ของ NRCA เช่น

ซึ่งส่วนตัวเห็นว่ากระบวนการข้างต้นเหล่านั้น จะสะดวกเมื่อการรับรอง/เพิกถอนสามารถทำได้จากหน่วยงานในประเทศ และจริงๆควรจะทำโดยหน่วยงานในประเทศเพื่อให้มั่นใจว่าไม่โดนแทรกแทรกจากตปท.

 

เพราะงั้นคิดว่าการมีอยู่ของ NRCA และได้รับการรับรองจาก Microsoft CA นั้นเป็นสิ่งที่ดี …  ดีกว่ามี NRCA ที่ไม่มีใครเชื่อถือ

และไม่ว่าประชาชนจะ Untrust Root CA ตัวนี้หรือไม่ …. ก็คง(ยัง)ไม่มีผลกับบริการที่ NRCA และ TDID ออกใบรับรองไปแล้ว

เพราะว่าโดยปกติแล้วใบรับรอง SSL ของเว็บไซต์ก็นิยมขอขจากบริการจากต่างประเทศได้สะดวกกว่าอยู่แล้ว

 

สุดท้ายก็ ถ้าเห็น SSL Certificate ของเว็บทั่วๆไปออกโดย NRCA หรือ TDID เมื่อไหร่ ก็ .. ตัวใครตัวมันล่ะ … ซึ่งสองหน่วยงานที่ว่าถ้าโดน report เมื่อไหร่ คิดว่า MS ก็คงไม่ปล่อยไว้

ตัวอย่าง SSL Certificate ของ Facebook, ต่อไปต้องดูที่ Issued by ให้ละเอียดขึ้น

ปล. เหตุการณ์แบนี้อาจจะไม่ได้เกิดขึ้นแค่ในระดับประเทศเท่านั้น ในบริษัทที่เครื่องคอมพิวเตอร์อยู่ภายใต้ Domain เดียวกัน บริษัทก็สามารถส่ง Certificate “ใดๆ” มาให้เครื่องคอมพิวเตอร์ในโดเมน trust ได้ แล้วก็ทำ Main in the middle ได้เช่นเดียวกัน

ปล2. ผมไม่ได้มีส่วนได้ส่วนเสียใดๆกับใครในเรื่องนี้ (ฮา) ผิดพลาดอะไร เข้าใจอันไหนไม่ตรงกันคอมเม้นชี้แนะด้วยคับ

 

References:

รูปภาพและการให้บริการของ TDID มาจาก www.thaidigitalid.com

อีกหนึ่งความเห็นที่น่าสนใจของ NRCA https://www.facebook.com/X20AThinkpad/posts/1759466287412850 

Posted on Nov 08, 2016

Security Risk : หลีกเลี่ยงการล็อกอินเข้าเว็บ starbuckscard ของประเทศไทย

Posted in Tech
Comments 34 Comments

หลายๆคนที่กินสตาร์บัคส์บ่อยๆ น่าจะมีสตาร์บัคส์การ์ดเป็นของตัวเอง เพราะจะได้สะสมดาวเอาไว้รับสิทธิพิเศษนู่นนี่นั่น … อย่างที่เหยื่อการตลาด(อย่างเรา)ควรจะเป็น

แต่การที่เป็นเหยื่อการตลาด ไม่ได้หมายความว่าเราจะต้องเป็นเหยื่อของการขโมยรหัสผ่านด้วยในคนเดียวกัน ..

 

เรื่องของเรื่องคือ เมื่อสักสองสามสี่ห้าปีก่อน สตาร์บัคส์ประเทศไทยได้รื้อระบบสตาร์บัคส์การ์ดที่ใช้ร่วมกับประเทศอื่นๆ แล้วทำของตัวเองขึ้น …

สิ่งที่ตามมาก็คือเปิดให้สมาชิกลงทะเบียนสตาร์บัคส์การ์ดของตัวเองได้ มีแอพเช็คยอดเงิน ตรวจสอบสิทธิพิเศษ บัตรหายก็ขอใหม่ได้เพราะเราผูกกับบัญชีผู้ใช้เราแล้ว (ควรจะ)ออกบัตรใหม่ได้เลย เงินอยู่ครบ

 

ก็เหมือนจะดี .. แต่แน่นอนว่าถ้าดีก็คงไม่บ่น 555+

 

เหตุผลคือ … ณ ไตรมาสสุดท้ายของปี 2016 แต่เว็บ www.starbuckscard.in.th ยังไม่บังคับให้เข้าเว็บแบบเข้ารหัส … เท่านั้นยังไม่พอ หน้าล็อกอินของ starbuckscard เองก็ไม่ได้บังคับให้เข้ารหัสเช่นเดียวกัน

หมายความว่า …. ตอนล็อกอิน … ทุกๆจุดที่ข้อมูลคุณผ่าน จากบ้านถึง server ของ starbucks สามารถเห็น email/password ของคุณได้หมด ตั้งแต่คนดูแลเน็ตเวิร์คที่ทำงาน ยันพนักงานที่ ISP ..

 

starbuckscard1
ตัวเว็บไม่บังคับ SSL ส่วนฟอร์มล็อกอินก็ไม่ระบุ URL เข้ารหัสเช่นกัน

 

ถ้าหากคุณรอดพ้นหน้า Login เข้ามาได้ (ยังไงวะ) … ท่าไม้ตายที่ทำให้มันแย่ได้อีกก็คือ .. การเปลี่ยนพาสเวิร์ด 

ปกติการเปลี่ยนพาสเวิร์ด เป็นการธรรมดามากที่จะต้องตรวจสอบรหัสผ่านเดิมก่อน เพื่อให้มั่นใจว่าเป็นเจ้าของเองจริงๆ ถึงแม้ว่าจะล้อกอินอยู่แล้วก็ตาม ซึ่งเว็บนี้ก็ทำนะ .. ทำฝั่ง Client คือ พี่แกส่งรหัสผ่านมาในหน้าเว็บเลย เวลาเรากรอกรหัสเดิม มันก็รู้ได้เลยโดยไม่ต้องถาม server ให้เหนื่อย … ซึ่งเหมือนเหมือนจะดี แต่มันไม่ !!

โดยปกติเว็บไซต์ควรจะเก็บพาสเวิร์ดของเราแบบเข้ารหัสทางเดียว หมายความว่าคนดูแลเว็บเอ็งก็ไม่(ควรที่จะ)สามารถรู้ได้ว่ารหัสผ่านของเราเป็นอะไร เพื่อที่ว่าเวลาข้อมูลหลุดไปอย่างน้อยผู้ไม่ประสงค์ดีก็จะไม่ได้เอาไปใช้ได้เลย

แต่เว็บนี้นอกจากจะไม่ได้เข้ารหัสทางเดียวแล้ว ยังส่งรหัสผ่านกลับมาที่ Client เพื่อตรวจสอบด้วย ประกอบกับความแย่ของการไม่บังคับเว็บให้เข้ารหัส SSL ผลก็คือ รหัสผ่านของคุณก็วิ่งพล่านไปทั่วระบบเครือข่าย รอใครซักคนมาหยิบเอาไป … ยิ่งถ้าคุณใช้รหัสผ่านและอีเมลเดียวกับบริการอื่นๆแล้วละก้อ …. ความซวยอาจจะมาเยือนได้

starbuckscard2
พาสเวิร์ดในฐานข้อมูลไม่แน่ใจว่ารหัสมั๊ย แต่ส่งกลับมาที่ Client แบบนี้โดนขโมยได้แน่นอน

คำแนะนำ

ถ้าการเลิกใช้ไม่ได้เป็นหนึ่งในทางเลือก ก็แนะนำให้

  1. เข้าเว็บด้วย https เป็นอันดับแรกที่ https://www.starbuckscard.in.th
  2. เปลี่ยนพาสเวิร์ดเป็นอันที่ไม่ซ้ำกับอันอื่นๆ
  3. ถ้าพาสเวิร์ดอันเก่าซ้ำกันบริการอื่นๆ แนะนำให้ไปเปลี่ยนพาสเวิร์ดเหล่านั้นทั้งหมด

ถ้าใครว่างลองแงะแอพบน Android กับ iOS ทีว่าเข้ารหัสด้วยมั๊ย ….

 

จริงๆแอบคาดหวังให้บริการที่เกี่ยวของกับการเงินมีความปลอดภัยมากกว่านี้ … บริการนี้มันเกือบจะเข้าข่ายบัตรเงินสดด้วยซ้ำไป มีหน่วยงานไหนจะต้องตรวจสอบบ้างมั๊ยน้า …

 

ปล. รหัสผ่านด้านบนนี่เอาไปลองได้ 555+

ปล2. อีกเรื่องที่ไม่ชอบคือ ทำไมต้องพิมพ์ชื่อนามสกุลของเราลงในใบเสร็จทุกครั้งที่ซื้อด้วย … privacy ของเราอยู่ที่ไหน !!

ปล3. ถ้าสังเกต code ที่ highlight ในรูปที่สอง จะพบว่าคนพัฒนาเอารหัสผ่านมาใส่ในช่อง input ที่มี type เป็น color !!!!! … มันก็ error เด๊ ….