วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559

Zimbra โดน Hack 2016 (ตอนที่ 1)

ตั้งแต่ช่วงสามเดือนสุดท้ายของปี 2015 ผมพบว่ามีการจู่โจมระบบ Mail Server อีกระลอกหลังจากที่เงียบ หายไปตั้งแต่ต้นปี

จุดประสงค์ของการเจาะระบบก็เหมือนเดิมครับ คือ Hackerพยายามเอาเครื่อง Zimbra หรือเครื่อง Mail Server ของเราเป็นเครื่องส่ง Spam mail แต่มารอบนี้มีกระบวนการที่แนบเนียนและพลิกแพลงไปกว่าเดิม จนทำให้หลุดรอบระบบตรวจจับบางแบบไปได้ด้วย

รูปแบบการเจาะระบบ Mail Server
ก่อนหน้านี้ ถ้าท่านผู้อ่านได้ติดตาม Thai Zimbra จะเห็นบทความที่ผมเขียนได้พูดถึงการพยายามเจาะระบบ Mail Server ของเหล่า Hacker ซึ่งวิธีการก็สรุปได้ไม่กี่แบบคือ

พยายามใช้เครื่อง  Mail Server  เป็น  Spam Mail Relay  คือกลายเป็นเครื่องที่ทำหน้าที่ส่งต่อ  (Relay)   Spam  จากเครื่องต้นทางของ  Hacker
 ระบบ  Zimbra ที่กลายเป็น  Spam Relay  ส่วนใหญ่เกิดกับ  Zimbra  ที่ติดตั้งไม่ถูกต้อง  หรือตัว Zimbra  เองติดตั้งถูกต้องแต่  Config Firewall  ไม่ถูกต้อง  กระบวนการนี้ แทบไม่ต้องเจาะระบบเลย  แค่ลองใช้เครื่อง Mail  Server เป้าหมายเป็น  Spam Relay ถ้าใช้ได้  ก็เรียบร้อย

เจาะมาทางช่องโหว่ของระบบ  เช่น ทางช่องโหว่ทางด้านความปลอดภัยของตัว  Zimbra  หรือระบบปฏิบัติการ  Linux เช่นเข้ามาทาง  port ssh (TCP port 22)

จู่โจมโดยการเดา  Password ของ  Account บน  Zimbra โดยพยายามเจาะ  Account มาตรฐาน  Account  ที่คาดว่าจะมีในระบบ  รวมไปถึงรายชื่อ Account   ที่ได้มาโดยวิธีอื่นๆ  ซึ่งผมเคยเขียนบทความที่เกี่ยวข้องก่อนหน้านี้แล้วครับ   เช่นจากบทความ  http://thaiZimbra.blogspot.com/2013/12/Zimbra-admin.html



รูปแบบการ Brute Force เพื่อ Hack Zimbra แบบปกติ เมื่อเครื่องต้นทางถูก Block   Hacker จะย้ายไป Hack จากเครื่องใหม่แทน 

ที่ผมเน้นในบทความนี้จะเป็นการเจาะระบบแบบสุดท้าย คือการเดา password ซึ่งรูปแบบการเจาะระบบแบบเดิมๆ นี้ Hacker จะพยายาม login โดยใช้ Account  ของ Zimbra ที่ได้มาโดยวิธีการใดวิธีการใดวิธี การหนึ่ง  โดยปกติ ช่องทางการเจาะระบบ Email จะเข้ามาทาง web client (TCP port 80 หรือ 443),  pop3(s), imap(s) , smtp , และถ้าเป้าหมายเป็น  Zimbra จะเพิ่มช่องทางคือ Admin Console (TCP port 7071)ไปด้วย โดยใช้โปรแกรมที่เขียนขึ้นมาพิเศษทำการทดลอง login เข้ามาตามช่องทางเหล่านี้ ส่วน Password ที่ใช้ในการ login จะได้จากเดาได้จากรายชื่อ Password ที่น่าจะเป็นไปได้ซึ่ง Hacker จะมี list ของ password เป็นหมื่นๆคำ

วิธีนี้ในวงการเรียกว่า Brute Force ครับ

Brute Force แบบเดิมๆ
จากข้อมูลที่ผมได้รับ รูปแบบการ Brute Force (หรือที่บางคนเรียกว่าถูกยิง) ที่ใช้กันก่อนหน้านี้สรุปลักษณะที่เหมือนๆกันได้ดังนี้  คือ

1) Brute Force มาจากเครื่องเพียงเครื่องเดียว ซึ่งถ้าเรา Block เครื่องนี้ Hacker จะเปลี่ยนเครื่องยิงมาจากเครื่องอื่นๆใน Internet แทน

2) จะพยายามเดา password ที่ละ Account โดยยิง password  เป็นชุดติดๆกัน เรียกได้ว่าวินาทีละครั้งเลยทีเดียวเลย  ถ้าพยายามสักพักแล้วไม่ได้ จะเปลี่ยนไปลอง hack กับ Account ชื่อใหม่ๆ บนเครื่องเดิม

3) ถ้าระบบเป้าหมายมี Account ที่ถูกเดา Password ได้สำเร็จ Hacker จะใช้ Account นั้นส่ง Spam Email ออกไปเป็นจำนวนมาก โดยส่งไปยังเป้าหมายที่เป็น Domain เดียวกันเป็นส่วนใหญ่ และหลายๆครั้งพบว่า โดเมนเป้าหมายเป็น Free Email เช่น hotmail.com, outlook.com, yahoo.com, gmail.com ซึ่ง   Account ต้นทางที่ใช้ส่ง Spam ออกไป อาจจะไม่ใช่ Account ที่ถูกเดา password สำเร็จก็ได้นะครับ

4) Spam Email ที่ส่งออกไป 1 ฉบับ จะระบุผู้รับ(TO: หรือ CC:)หลายๆคน ที่เคยเห็นมีตั้งแต่ 5 ถึง 20  หรือมากกว่านั้นในฉบับเดียว

วิธีการสังเกตุว่า Zimbra Server ของเราถูก hack
ถ้าระบบถูก hack และกลายเป็นเครื่องส่ง Spam แบบเดิมๆ ผู้ดูและระบบ จะรู้ว่า Zimbra Server ที่ดูแลอยู่ถูก hack กลายเป็นเครื่องส่ง Spam  ไปแล้ว จากการที่

1) มี Email ส่งไปยัง Domain ภายนอกที่ปกติไม่เคยมีธุรกรรมด้วย ในปริมาณที่มากผิดปกติ
ถ้ายังปล่อยให้เกิดเหตุการนี้ไปเรื่อยๆ จะทำให้เกิดข้อต่อไปคือ

2) IP Address ภายนอก ของ Email Server ติด Blacklist ของ IP ที่ใช้ส่ง Spam

3) ส่ง Email ไป Email Address ภายนอกไม่ได้

4) ส่ง Email ไปยัง Email Address ภายใน Domain เดียวกันช้า

5) มี Email ค้างอยูใน Queue ส่งไม่ออก เป็นพันๆ หรือหมื่นๆ ฉบับ

ในครั้งหน้า ผมจะมาพูดต่อถึงวิวัฒนาการการ hack ระบบ Mail Server ในปีที่ผ่านมาครับ ว่า มีการพลิกแพลง ที่ทำให้ยากแก่การตรวจจับกันอย่างไร

ศิวัฒน์ ศิวะบวร

วันเสาร์ที่ 26 ธันวาคม พ.ศ. 2558

อบรม Zimbra ( Open Source) Administration ครั้งที่ 3

อบรม Zimbra ( Open Source) Administration ครั้งที่ 3

จัดรวมกับ OSS4Crop (ศูนยสนับสนุนและถ่ายทอดโอเพ่นซอร์สเทคโนโลยี่)

สถานที่อบรม : ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ บางเขน

28-30 พฤษภาคม 2557

วิทยากร ศิวัฒน์ ศิวะบวร

เริ่มอบรม 







ตอบคำถามของผู้เข้าอบรม ระหว่างการทำ LAB

บรรยากาศ ระหว่างพักรับประทานของว่าง 
ถ่ายภาพร่วมกันหลังจบการอบรม 

อบรม Zimbra (Open Source Edition) Administraion ครั้งที่ 2

อบรม Zimbra (Open Source Edition) Administraion ครั้งที่ 2

จัดรวมกับ OSS4Crop (ศูนยสนับสนุนและถ่ายทอดโอเพ่นซอร์สเทคโนโลยี่)

สถานที่อบรม : ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ บางเขน

27-29 พฤษภาคม 2556

วิทยากร ศิวัฒน์ ศิวะบวร















ผู้เข้าอบรม


อบรม Zimbra Open Source Edition Administration ครั้งที่ 4

อบรม Zimbra  Open Source Edition Administration ครั้งที่ 4

จัดรวมกับ OSS4Crop (ศูนยสนับสนุนและถ่ายทอดโอเพ่นซอร์สเทคโนโลยี่)

สถานที่อบรม : ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ บางเขน

19-21 พฤษภาคม 2558

วิทยากร   ศิวัฒน์ ศิวะบวร

ลงทะเบียน ก่อนเข้าอบรม 
เริ่มการอบรม ครั้งที 3 



ผู้เข้าอบรม






ถ่ายรูปร่วมกัน หลังจบการอบรม 

อบรม Zimbra (Open Source Editon ) Admistration ครั้งที่ 1

รวบรวมภาพการ อบรม Zimbra ZOpen Source Edition ) Administration ครั้งที่ 1

จัดรวมกับ OSS4Crop (ศูนยสนับสนุนและถ่ายทอดโอเพ่นซอร์สเทคโนโลยี่)  และ ได้รับทุนสนับสนุน จาก SIPA

สถานที่อบรม : ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเกษตรศาสตร์ บางเขน

วันที่ 13 - 15 กันยายน 2555

วิทยากร ศิวัฒน์ ศิวะบวร










วันพฤหัสบดีที่ 10 ธันวาคม พ.ศ. 2558

วิธีการ ปิด/เปิดความสามารถ Send Later บน Zimbra

ก่อนหน้านี้ ผมได้เขียนบนบทความ Send Email Later : ตั้งเวลาส่ง Email บน Zimbra  ไป มีคำถามต่อเนื่องมาว่า ทำไมบาง Account ไม่สามารถส่ง Email แบบ Send Later ได้ เพราะ ไม่มี icon รูปสามเหลี่ยมข้างหลัง คำว่า send ในปุ่ม send

ที่ผู้ใช้บางคน มองไม่เห็น icon นี้ เพราะความสามารถ Send Later นี้ไม่ได้เปิด ถ้าจะอนุญาตให้ผู้ใช้สามารถใช้งานได้ ก็ต้องเปิด feature นี้ก่อนครับ ซึ่งสามารถทำได้สองจุด คือ เปิดที่ Account และอีกวิธีคือ เปิดที่ COS (Class of Service) ซึ่งการเปิดที่ COS จะเป็นการเปิดให้ Account ทก Account ที่อยู่ใน COS นั้นๆครับ

ซึ่งทั้งสองวิธีนี้ ต้องเข้าไปที่ Admin Console (https://zimbra_hostname:7071) นะครับ

ปิด/เปิด Send Later เป็นราย Account  
วิธีนี้ เป็นการปิดหรือเปิด Send Later เฉพาะบาง Account ที่เราต้องการ โดยหลังจาก login เข้าไปที่ Admin Console ทำได้ตามขั้นตอนนี้ครับ

1) ที่หน้าจอแถวด้านซ้าย เลือก Manage หน้าจอจะเปลี่ยนไปที่หน้าจอ Manage










2) ที่หน้าจอนี้ เลือก Account ที่หน้าจอด้านขวา เลือกชื่อ Account ที่ต้องการแก้ไข โดยกด double click ที่ชื่อ Account



3) หน้าจอสำหรับ Edit Account จะแสดงขึ้นมา ที่หน้าจอด้านซ้าย เลือก Features
4) ที่หน้าจอด้านขวา เลือนลงมาจนเห็นกลุ่มของ Config  ที่ชื่อ Mail Features
5) ในกลุ่ม Config นี้หาบรรทัดที่เขียนว่า Mail Send Later  ถ้าติ๊กถูก จะเป็นการ Enable อนุญาตให้ Account นี้สามารถใช้งาน Mail Send Later ได้ แต่ถ้าเราเอาเครื่องหมายติ๊กถูกออก จะเป็นการ Disable  ไม่ให้ใช้งานครับ
6) เสร็จแล้วกดปุ่ม Save (อย่าลืม)



ปิด/เปิด Send Later เป็นกลุ่มตาม COS 

    นอกจากนี้ เรายังสามารถปิดหรือเปิดความสามารถ Send Later ให้กับหลายๆ Account พร้อมๆ กัน โดยแก้ไขที่ COS หรือ Class of service  วิธีการนี้ Account ทั้งหมดที่อยู่ภายใต้ COS ที่เราแก้ไข จะถูกปิดหรือเปิด Feature นี้ พร้อมๆ กัน ซึ่งสะดวก ไม่ต้องแก้ทีละ Account ครับ   

    ส่วนวิธีการ หลังจากเข้า Admin Console แล้วทำตามขั้นตอนนี้ครับ

1) ที่หน้าจอแถวด้านซ้าย เลือก Configure หน้าจอจะเปลี่ยนไปที่หน้าจอ configure










2) ในหน้าจอ Configure ที่หน้าจอด้านซ้าย เลือก Class of Service ที่หน้าจอแถวด้านขวาจะปรากฏรายชื่อของ COS ที่มีอยู่ในระบบ เลือก Edit COS โดยการ double click ไปที่ชื่อ COS ที่ต้องการแก้ไข

จากตัวอย่างนี้ ผมเลือก Default COS



3) หน้าจอสำหรับ Edit COS จะแสดงขึ้นมาที่หน้าจอแถวด้านซ้าย เลือก Features
4) ที่หน้าจอด้านขวา เลือนลงมาจนเห็นกลุ่มของ Config  ที่ชื่อ Mail Features
5) ในกลุ่ม Config นี้หาบรรทัดที่เขียนว่า Mail Send Later  เลือกติ๊กถูกเพื่อ Enable หรือติ๊กออกเพื่อ Disable
6) สุดท้าย กดปุ่ม Save



ทดลอง setup ดูนะครับ มีคำถามหรือติดตรงไหน สอบถามมาทาง Thaizimbra Facebook Fanpage ได้เลยครับ


ศิวัฒน์ ศิวะบวร

วันจันทร์ที่ 7 ธันวาคม พ.ศ. 2558

Send Email Later : ตั้งเวลาส่ง Email บน Zimbra

คำถามหนึ่งที่ผมได้รับค่อนข้างบ่อยบน ThaiZimbra Facebook Fanpage ก็คือคำถามที่ว่า Zimbra มีความสามารถ Recall ลบหรือแก้ไข Email ทีส่งออกไปแล้วกลับมาเหมือน Microsoft Exchange ได้หรือเปล่า

คำตอบก็คือไม่มีครับ Feature  นี้บน Exchange เป็น Feature ที่ไม่มาตรฐาน Mail Server อื่นนอกเหนือจาก Microsoft Exchange ไม่มึครับ และเนื่องจากความไม่เป็นมาตรฐาน เราจึงไม่สามารถ Recall Email ที่ถูกส่งไปแล้ว ไปยัง Email Server ยี่ห้ออื่นๆ กลับมาได้ครับ (และส่วนตัว ผมคิดว่าถึงแม้จะส่งไปยัง MS Exchange แต่เป็นคนละเครื่องกัน ก็ Recall Email ไม่ได้ครับ ใครรู้ช่วยตอบที)

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

เป็นความสามารถที่มีใน Zimbra ตั้งแต่ version 8.0 เป็นต้นไปครับ

การใช้งาน Send later
1) เขียน Email ตามปกติ

2) เมื่อจะส่ง Email ที่ปุ่ม Send (มุมบน ด้านซ้าย) ให้ใช้เมาส์คลิ๊กที่เครื่องหมายสามเหลี่ยมหลังปุ่ม Send จะมีเมนูย่อยแสดงให้เห็น เลือก Send later



หมายเหตุ ถ้าไม่เห็นเครื่องหมายสามเหลี่ยมหลังปุ่ม Send แสดงว่า ความสามารถนี้ถูกปิดไว้สำหรับ Account นี้ แจ้งให้ผู้ดูแลระบบเปิดให้ก่อน จึงจะสามารถใช้งานได้ครับ
ส่วนขั้นตอนการปิดเปิด  Send Later อ่านได้จากบทความเรื่อง วิธีการปิด/เปิดความสามารถ Send Later บน Zimbra

3) Send later Dialog box จะปรากฎขึ้นมา ให้เรากำหนดเวลาที่จะส่ง Email ฉบับนี้ เสร็จแล้วกดปุ่ม  OK


สังเกตุว่า เราสามารถกำหนดเวลาส่ง ใน Time zone อื่นได้ด้วย

แก้ไข Send Later Email 
Email ที่ถูกส่งด้วยวิธีการนี้ เมื่อยังไม่ถึงเวลาที่กำหนดให้ส่ง จะยังไม่ถูกส่งออกไปครับ แต่จะไปค้างอยู่ใน Draft folder โดยจะสังเกตุได้จากคอลัมน์ที่หัว(header) เป็นรูปซองจดหมาย+เครื่องหมายคำถาม จะเป็นรูปซองจดหมาย + นาฬิกา ซึ่งแสดงว่าเป็น Email ที่ถูกส่งด้วยวิธีการ Send later และกำลังรอส่งอยู่


ซึ่งระหว่างนี้ เราสามารถแก้ไข Email นี้ได้เหมือนกับ Email ที่อยู่ใน Draft folder  โดยทั่วๆ ไป ถ้าเราแก้ไข (โดยการกด double click) ที่ Send later Email นี้ ระบบจะเปิด Email ให้ขึ้นมาให้แก้ไข แต่เวลาที่ตั้งไว้จะถูกยกเลิกโดยอัตโนมัติ โดยจะมี Dialog box ปรากฏขึ้นมาตามรูป ถ้าเราต้องการตั้งเวลาส่ง ต้องกำหนดเวลาใหม่ตามขั้นตอนข้างต้น


และถ้าเปลี่ยนใจ จะไม่ส่ง Email นี้ เพียงแค่ลบ Email ใน Draft folder ก็เรียบร้อยแล้วครับ

ข้อดีของการใช้ Send Later 
ตามความเห็นส่วนตัวของผม คิดว่า Send Later ดีกว่าระบบ Recall Email ที่ถูกส่งไปแล้ว ดังนี้ครับ

1) ใช้ใด้กับการส่ง Email ทุกแบบ ทุกแบบในที่นี้คือ ไม่ว่า Email Address ปลายทางจะอยู่ในเครื่องเดียวกัน หรืออยู่ในเครื่องอื่น และเป็น Email Server ปลายทางเป็นยี่ห้ออะไรก็ได้

2) ผู้รับจะไม่เห็น Email (ที่ผิดพลาด)ตราบใดที่ยังไม่ถึงเวลาส่ง
ถ้าเป็นRecall อื่นถึงแม้จะลบ Email ที่ถูกส่งไปแล้วออกจาก Mailbox ของคนรับได้ แต่ก็เป็นไปได้ว่า ผู้รับอาจจะเปิดอ่าน และ  forward ไปให้คนอื่นเรียบร้อยแล้ว ซึ่งระบบลบ Email ทีส่งไปแล้ว ลบได้เฉพาะ Email ที่ส่งเท่านั้น ตามไปลบ Email ที่ forward ไปแล้วไม่ได้นะครับ (หรือถ้าได้ ผู้ดูและระบบต้องตามไปทำเอง ทีละคน)

ทดลองใช้งานดูนะครับ หวังว่าคงมีประโยชน์ไม่มากก็น้อย