USB Security

วันนี้ได้ความรู้ใหม่เกี่ยวกับ USB Security จากกระทู้ใน SANS ICS Community มาประมาณนี้

กรณีที่ไม่ต้องใช้ USB

  • รัน regedit แล้วไปที่ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR สร้าง REG_DWORD value ชื่อ Start แล้วใส่ค่าเป็น 4
  • disable USB port ใน BIOS และใส่พาสเวิร์ดใน BIOS ด้วย เพื่อป้องกันการแก้ไข
  • ถ้าจะให้ชัวร์ก็ทำลาย port USB ไปเลย เค้าบอกว่าพวกอุปกรณ์ที่ใช้ lock port บางทีก็แกะได้ง่ายๆ ด้วย swiss army knife

กรณีที่ยังต้องใช้ USB อยู่

  • ใช้ sheep dip PC หรือ clean kiosk แสกน USB drive ก่อนนำไปใช้ในระบบ (เพิ่งเคยได้ยินคำว่า sheep dip PC ก็วันนี้ 😅) เครื่องพวกนี้ปกติจะไม่ต่อเน็ตเวิร์ก และมีโปรแกรม antivirus มากกว่าหนึ่งยี่ห้อ เพื่อสแกนไฟล์ใน USB drive
  • ใช้วิธี transfer ข้อมูลจาก untrusted USB drive มาใส่ใน trusted USB drive ก่อนเอาไปใช้ในระบบ (USB sanitizer) ลอง google ดูพบว่ามี solution แบบ open source ที่น่าสนใจคือ CIRCLean
  • solution แบบไม่ฟรี แต่คิดว่าคอนเซปต์น่าจะคล้ายๆ กันคือ ODIX ในหน้าเว็บเค้าเรียกว่า Content Disarm & Reconstruction แต่อ่านคำอธิบายแล้วเหมือนเอา sheep dip PC กับ USB sanitizer มารวมกัน

[Read More]

Zero Trust Network

เมื่อวันก่อนอ่านเรื่อง “What It Takes to Build a Zero Trust Network” รู้สึกว่าเป็นแนวคิดที่น่าสนใจดี เลยขอจดไว้หน่อย

เค้าว่า “Zero Trust” เป็นคำที่คิดโดยบริษัท Forrester Research เมื่อประมาณปี 2010 โดยมีคอนเซปต์คร่าวๆ คือ อุปกรณ์ทุกอย่างในเน็ตเวิร์กจะถือว่าเชื่อถือไม่ได้ จนกว่าจะได้รับการยืนยันตัวตนของอุปกรณ์และผู้ใช้งาน โดยไม่สนใจว่าอุปกรณ์นั้นจะอยู่ที่ไหนในเน็ตเวิร์ก

Trust is a dangerous vulnerability that can be exploited. John Kindervag, field CTO at Palo Alto Networks

แปลว่าแนวคิดการแบ่งแยกเน็ตเวิร์กแบบเดิมๆ จะไม่มีอีกต่อไป เพราะตามแนวคิดนี้ทุกอย่างเชื่อถือไม่ได้ ไม่มี trusted netwok, trusted device, หรือ trusted people 😮

[Read More]

DIY `laravel new` Command

เมื่อซัก 1–2 อาทิตย์ที่แล้ว พบปัญหาประหลาดกับคำสั่ง

laravel new <project-name>

โดยเมื่อรันคำสั่งดังกล่าว จะเจอ error ประมาณนี้

$ laravel new test-project
Crafting application...
'composer' is not recognized as an internal or external command,
operable program or batch file.
Application ready! Build something amazing.

คืออยู่ดีๆ เหมือนมันหาคำสั่ง composer ไม่เจอ ก็งงสิครับ เพราะแต่ก่อนคำสั่งนี้ (laravel new …) มันเคยใช้งานได้ หรือถ้าลองเรียก composer เฉยๆ ใน Git Bash มันก็ยังทำงานได้ปกติ 😅

เช็คไปเช็คมา เลยพบว่ามันเกิดจาก 2–3 สาเหตุร่วมกันคือ

[Read More]

Holistic Security

วันนี้มีโอกาสได้ไปร่วมสัมมนา Roundtable เรื่อง “The Future of Cybersecurity is Physical” ที่จัดโดยบริษัท Accenture ในงาน Asian Utility Week 2018 ที่ Impact Exhibition Hall 1–2 ฟังโดยรวมแล้วก็เหมือนเป็นแนวคิด/Solution ที่ดี แต่ยังรู้สึกตะหงิดๆ อยู่ เลยขอจดไว้ก่อน เผื่อนึกอะไรออกวันหลัง 😑

ก่อนเริ่มการนำเสนอ เค้าเปิดวิดีโอนี้ให้ดู

TL;DW ประมาณว่าเป็นวิดีโอของกลุ่มแฮ็กเกอร์ที่ได้รับการว่าจ้างให้ลองโจมตีหน่วยงานด้านพลังงานแห่งหนึ่งในอเมริกา โดยเริ่มตั้งแต่การพยายามบุกรุกเข้าไปในตัวอาคาร ผ่านล็อก รั้ว ประตู ลองเปิดรถที่จอดทิ้งไว้อยู่เพื่อหาบัตร ฯลฯ จนสามารถเข้าไปวางอุปกรณ์/มัลแวร์ในเครื่องพีซีของบริษัทได้ มีการใช้โดรนบินสำรวจเพื่อหาจุดบอดของกล้อง Infrared CCTV อะไรทำนองนี้

[Read More]

Writing BAHTTEXT() in PHP

เมื่อวันก่อนมีคนมาโพสต์ถามใน LINE ว่า จะเขียนโค้ด PHP เพื่อแปลงค่าเงินเป็นตัวหนังสือให้สั้นๆ เหมือนโค้ด FoxPro ที่แปะให้ดูเป็นตัวอย่างได้ไหม

FUNCTION spell

PARAMETER Vn
Va = STRT(TRAN(Vn,'@R G9A9B9C9D9E9F9A9B9C9D9E9F9.9F9S'),' F0.','')

RETURN STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(;
STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(STRT(;
SUBS(Va,RAT(' ',Va)+2,35),'1','หนึ่ง'),'2','สอง'),'3','สาม'),'4','สี่'),;
'5','ห้า'),'6','หก'),'7','เจ็ด'),'8','แปด'),'9','เก้า'),'.0F0S','บาทถ้วน'),;
'0F',''),'0E',''),'0D',''),'0C',''),'0B',''),'0',''),'A','ล้าน'),;
'B','แสน'),'C','หมื่น'),'D','พัน'),'E','ร้อย'),'F','สิบ'),'.','บาท'),;
'หนึ่งสิบ','สิบ'),'สองสิบ','ยี่สิบ'),'สิบหนึ่ง','สิบเอ็ด'),'S','สตางค์')

รู้สึกว่าน่าสนใจดีเลยลองเขียนดู แน่นอนว่าออกมาไม่ใกล้เคียงกับคำว่าสั้น 😅 แต่ก็สนุกดีและใช้งานได้ เลยขอจดเก็บไว้หน่อย รูปแบบการทำงานของฟังก์ชันพยายามลอกของ Excel มา คือปัดทศนิยมเป็นสองตำแหน่ง รองรับค่าลบ ค่าศูนย์ และตัวเลขยาวๆ ได้ (เท่าที่ทดสอบด้วย PHPUnit คือที่ระดับ 1×1012 ยังโอเคอยู่) หน้าตาโค้ดก็ประมาณนี้

[Read More]
php  bahttext  rant  code 

Using SDN May Help Improve ICS Security

พอดีช่วงนี้เริ่มอ่านข้อมูลเกี่ยวกับ OT/ICS Security มากขึ้น และมีเรื่องน่าสนใจหลายอย่าง เลยคิดว่าทำเป็นโน้ตไว้ให้หาง่ายๆ และคอยอัพเดตเรื่อยๆ น่าจะเข้าท่าดี 🤔

เรื่อง SDN (Software-Defined Network) อันนี้น่าสนใจเพราะด้วยแนวโน้มของเทคโนโลยี องค์กรส่วนใหญ่น่าจะมีแผนการย้ายระบบขึ้นคลาวด์กันแล้ว ซึ่งโดยปกติมันก็จะมาพร้อม SDN ด้วย

Disclaimer: ณ เวลาที่เขียนโน้ตนี้ ความรู้เกี่ยวกับ SDN ของผมมีน้อยมาก ดังนั้นข้อความข้างล่างคือการสรุปจาก discussion ตามความเข้าใจของผมเอง อาจจะมีผิดพลาดหรือมั่วบ้าง ต้องขออภัยไว้ล่วงหน้า 😆

[Read More]

How to Upgrade npm on Windows

ถ้าใครใช้ Node.js บนวินโดวส์ น่าจะเคยเจอข้อความที่บอกว่า npm เวอร์ชันที่คุณใช้มันเก่าแล้วนะ ให้อัพเกรดโดยใช้คำสั่ง npm install -g npm ซึ่งถ้าลองรันดูก็จะพบว่า… มันอัพเกรดไม่ได้ 🙄 ที่ตลกคือ ถึงจะอัพเกรด Node.js เป็นเวอร์ชันล่าสุด npm ตัวที่มากับแพ็กเกจก็ยังไม่ใช่เวอร์ชันล่าสุดอยู่ดี 😒

ลอง Google ดูก็พบว่ามีคนทำ tools ไว้ให้ชื่อ npm-windows-upgrade ผมเคยลองใช้แล้วเวิร์กอยู่ แต่ล่าสุดมาลองอีกทีเมื่อประมาณเดือนที่แล้ว พบว่าใช้ไม่ได้ 😑 เดาว่าสาเหตุอาจจะเกิดจากตามที่เค้าเตือนไว้ในหน้า GitHub

Chances are that you attempted to upgrade npm before, it somehow failed, and you then went looking for this tool. If the tool fails to upgrade, it may be troubled by partial changes done during npm install npm or npm upgrade npm.

[Read More]
nodejs  npm 

Let’s Encrypt Wildcard Certificate

วันนี้เพิ่งเห็นว่า Let’s Encrypt เปิดให้ใช้งาน Certificate แบบ Wildcard แล้ว เลยบ้าเห่อรีบเปลี่ยนอย่างไว (จริงๆ suksit.com ยังไม่มี subdomain จะเปลี่ยนทำไม 🤣)

การใช้ Wildcard Certificate มีเงื่อนไขนิดหน่อย คือต้องใช้ Client ที่รองรับ ACME v2 และจะเปลี่ยนจากการ validate แบบเดิม ไปใช้ DNS-01 Challenge แทน อย่างผมใช้ Certbot คำสั่งที่ใช้ในการสร้าง Wildcard Certificate จะเป็นประมาณนี้

[Read More]

Open Graph Protocol

เมื่อวานเพิ่งค้นพบว่ามันมีสิ่งที่เรียกว่าโปรโตคอล Open Graph อยู่ด้วย (เชยโคตรๆ 😅)

สาเหตุที่ทำให้มาเจอเรื่องนี้ก็คือ ผมทำเว็บไว้อันนึง แล้วมีคนแชร์ลิงก์ผ่าน LINE แต่มีประเด็นนิดหน่อยคือ ภาพ preview ที่ LINE เลือกมาโชว์ มันดันเป็นโลโก้ของหน่วยงานอื่น เลยต้องพยายามหาวิธีให้ LINE มันเอารูปที่เราต้องการมาโชว์เป็น preview แทน

ทีแรกเข้าใจว่า LINE มันเอารูปแรกที่เจอในเว็บมาเป็น preview เลยพยายามเอารูปที่จะใช้ไปใส่ไว้บนๆ ของหน้าเว็บ แล้วตั้ง display: none; ไว้… แน่นอนว่าไม่เวิร์ก 😆 เลยลองวิธีต่อมา คือเอารูปไปใส่ไว้ตรง branding ของ navigation bar ด้านบนสุดเลย กะว่าถ้ามันอ่านมา ยังไงเจอรูปนี้ก่อนแน่นอน แต่ก็ยังไม่ได้ผลอยู่ดี

[Read More]

2018 Resolutions

  • Learn Go
  • Learn Kotlin to build Android app
  • Learn Python (network programming and pentesting)
  • Finish at least a book per month
  • Improve management skills
  • Contribute to open source projects
  • Dunno, may be added later… 😑