Đang cân nhắc chuyển sang nghề An ninh mạng ? Hãy đọc đi

Hàng năm, hàng nghìn sinh viên các trường đại học, cao đẳng và dạy nghề ngành an ninh mạng hoặc khoa học máy tính ra trường để rồi nhận ra rằng các công ty không hề hài lòng với các kỹ năng cơ bản và kinh nghiệm thực tế của mình. Dưới đây là góc nhìn dành cho một cuộc khảo sát gần đây đã chỉ ra sự thiếu hụt ngày càng lớn của những kỹ năng này và vài suy ngẫm về việc làm sao để những người đang xây dựng cho mình sự nghiệp trong những lĩnh vực này có thể thể hiện mình tốt hơn giữa đám đông.

Gần như tuần nào KrebsOnSecurity cũng nhận được ít nhất một email từ ai đó xin lời khuyên làm thế nào để nhảy được vào nghề an ninh mạng. Phần lớn trong số đó hỏi họ cần đạt những chứng chỉ gì, hoặc hỏi chuyên ngành cụ thể nào trong ngành bảo mật máy tính sẽ có tương lai xán lạn nhất.

Hiếm khi tôi được hỏi là họ cần những kỹ năng gì trong thực tế để làm cho mình trở thành một ứng cử viên nặng ký khi đi xin việc. Tuy rằng trong các câu trả lời của mình, tôi luôn báo trước rằng bản thân tôi không hề có một bằng cấp hay chứng chỉ nào liên quan đến máy tính cả, nhưng tôi thường xuyên nói chuyện với các lãnh đạo cấp cao trong ngành an ninh mạng và các nhà tuyển dụng, và thường xuyên hỏi về ấn tượng của họ đối với những ứng cử viên ngày nay trong ngành này.

Một trong những câu trả lời thường gặp của các vị lãnh đạo này là có rất nhiều bạn đơn giản là thiếu kinh nghiệm thực tế cũng như thiếu sự quan tâm đến cách mà các hệ thống thông tin kinh doanh chiến lược của họ được vận hành, bảo trì và bảo vệ ra sao.

Đồng ý rằng, đa số các bạn vừa mới tốt nghiệp đều bị thiếu kinh nghiệm thực tế. Nhưng may mắn thay, một trong những điểm có thể coi là độc đáo của ngành an ninh mạng đó là anh có thể đạt được một tay nghề khá thành thạo cùng những kiến thức cơ bản bằng cách tự học và thực hành kiểu cổ điển thử-và-sửa.

Một ý quan trọng tôi gần như luôn viết trong các câu trả lời của mình cho độc giả là hãy tìm hiểu kỹ xem máy tính và các thiết bị khác nói chuyện với nhau như thế nào. Tôi nói điều này ra là vì nắm chắc kiến thức về mạng là một kỹ năng nền tảng để học những mảng khác về sau. Tìm việc trong ngành bảo mật mà không hiểu cặn kẽ từng gói dữ liệu làm việc như thế nào cũng giống như cố trở thành kỹ sư hoá học mà không nhớ nổi bảng tuần hoàn vậy.

Tôi không nói bừa đâu. SANS Institute, một tổ chức chuyên đào tạo và nghiên cứu về bảo mật thuộc thành phố Bethesda, bang Maryland, mới đây đã thực hiện một khảo sát với sự tham gia của hơn 500 chuyên gia an ninh mạng ở 284 công ty khác nhau nhằm tìm hiểu xem họ cần những kỹ năng gì nhất ở các ứng viên, và cái nào thường xuyên bị thiếu hụt nhất.

Bản khảo sát yêu cầu người tham gia hãy sắp xếp một loạt kỹ năng từ “không thể thiếu” cho đến “không cần thiết”. Trọn vẹn 85 phần trăm đã chọn kết nối mạng là kiến thức “không thể thiếu” hoặc “rất quan trọng”, sau đó là thành thạo hệ điều hành Linux (77 phần trăm), Windows (73 phần trăm), thành thạo những kỹ thuật khai thác phổ biến (73 phần trăm), thành thạo về kiến trúc máy tính và công nghệ ảo hoá (67 phần trăm), dữ liệu và mã hoá (58 phần trăm). Có lẽ hơi ngạc nhiên là, chỉ có 39 phần trăm xếp hạng ngôn ngữ lập trình là kinh nghiệm “không thể thiếu” hoặc “rất quan trọng” (Lát nữa tôi sẽ quay lại với chủ đề này).

Các chuyên gia an ninh mạng tham gia trả lời khảo sát đã đánh giá những ứng viên tiềm năng như thế nào về những kỹ năng “không thể thiếu” hoặc “rất quan trọng” này? Kết quả có thể khiến ta trợn tròn mắt:

Kỹ năngTỉ lệ ứng viên
không làm được
những việc cơ bản
Tỉ lệ ứng viên
có kinh nghiệm
thực tế
Các kỹ thuật tấn công phổ biến66%4,5%
Kiến trúc máy tính47%12,5%
Kết nối mạng46%4%
Hệ điều hành Linux40%14%
Biết lập trình32%11,5%
Dữ liệu và mã hoá30%2%

“Báo cáo từ các công ty nói rằng các sinh viên ngành an ninh mạng chuẩn bị quá kém và rằng họ mất rất nhiều tháng trời tìm kiếm mới ra được một người ở mức khởi điểm, thậm chí không tìm nổi,” Giám đốc mảng nghiên cứu ở SANS Institute Alan Paller nói. “Chúng tôi giả định rằng việc bóc tách ra những kỹ năng mà các công ty đang tìm kiếm nhưng không thấy ở các bạn sinh viên chính là khởi điểm của con đường giải quyết những thách thức này cũng như giúp lấp đi những kỹ năng bị khiếm khuyết trong lĩnh vực an ninh mạng.”

Một sự thật là, vài chuyên gia bảo mật máy tính hiện nay tôi biết, những người thông minh nhất, sâu sắc nhất và tài năng nhất, họ không giắt lưng bất cứ bằng cấp hay chứng chỉ nào liên quan đến máy tính. Thậm chí, rất nhiều trong số họ thậm chí còn chưa từng qua trường cao đẳng hay dạy nghề, hoặc hoàn thành chương trình học nào ngang cấp đại học cả.

Nhưng, họ lại đâm đầu vào ngành bảo mật là vì sự say mê và tò mò mãnh liệt về chủ đề này, và chính sự tò mò đó đã đưa họ đến việc học hành hết mức có thể – chủ yếu bằng cách đọc sách, thực hành rồi mắc lỗi (rất nhiều lần).

Tôi nhắc đến việc này không phải để can ngăn việc các bạn theo đuổi các bằng cấp hoặc chứng chỉ trong ngành (đó có thể là yêu cầu tối thiểu của phòng nhân sự của các công ty lớn) mà là để nhấn mạnh rằng những thứ đó không phải là chìa khoá vạn năng dẫn đến một sự nghiệp lừng lẫy, ổn định và lương tương đối cao.

Hơn nữa, thiếu một trong những kỹ năng đã được nhắc đến ở trên, các bạn sẽ đơn giản không phải là ứng viên thực sự sáng giá hoặc nổi bật khi thời cơ đến.

Nhưng mà, làm thế nào?

Vậy ta nên tập trung vào cái gì đây, và tốt nhất là bắt đầu từ đâu? Đầu tiên, phải hiểu rằng mặc dù có gần như vô số cách để thu thập kiến thức và hầu như không có giới hạn nào về chiều sâu mà ta có thể khám phá, xắn tay vào làm thử là cách nhanh nhất để học.

Không, tôi không nói đến việc phá phách mạng nhà ai, hay xâm nhập vào các website nào cả. Đừng làm thế khi chưa được phép. Nếu các bạn buộc phải nhắm đến một dịch vụ hoặc website nào đó, hãy chọn những chỗ có đưa ra các chương trình săn tìm lỗi để được công nhận và/hoặc được nhận phần thưởng, và nhớ là phải tôn trọng ranh giới của những chương trình này đấy.

Còn thì, hầu hết những gì các bạn muốn học thông qua thực hành đều có thể mô phỏng lại được. Muốn giỏi về các kỹ thuật tấn công và các lỗ hổng phổ biến? Có vô số tài nguyên miễn phí có sẵn; rất nhiều bài viết và videos trên mạng hướng dẫn sử dụng những bộ đồ nghề được làm ra với mục đích chuyên khai thác như Metasploit, WebGoat, và các bản Linux tuỳ biến như Kali Linux. Rồi cũng có rất nhiều các công cụ do thám và dò lỗi miễn phí như Nmap, Nessus, OpenVASNikto. Nhiêu đây đương nhiên không phải là tất cả.

Hãy thiết lập một môi trường riêng để vọc vạch. Dùng một máy tính tạm hoặc hoặc máy chủ thứ hai, hoặc dùng các phần cứng cũ được bán rất nhiều và rẻ trên các trang như eBay hoặc Craigslist. Các phần mềm ảo hoá miễn phí như VirtualBox sẽ đơn giản hoá việc làm quen với các hệ điều hành khác nhau mà không cần động vào phần cứng.

Hoặc là trả tiền cho ai đó thiết lập một máy chủ ảo để các bạn có thể chọc ngoáy. Các dịch vụ của Amazon trên EC2 là lựa chọn khá rẻ và tốt. Nếu định thử nghiệm với các ứng dụng web, các bạn có thể cài đặt bao nhiêu dịch vụ trong mạng nội bộ tuỳ ý, ví dụ như những phiên bản cũ của WordPress, Joomla hoặc các hệ thống thương mại điện tử như Magento.

Muốn học về kết nối mạng? Hãy đọc một quyển sách tử tế về TCP/IP, thực sự hiểu về các mô hình mạng và trong đó các tầng tương tác với nhau như thế nào.

Và trong khi đang thẩm thấu những thông tin này, hãy học cách dùng một vài công cụ để ứng dụng những kiến thức vừa được học vào thực tế. Ví dụ, tự làm quen với WiresharkTcpdump, hai công cụ cực kỳ hữu dụng cho các nhà quản trị mạng để xử lý các sự cố mạng và bảo mật và để hiểu các ứng dụng có sử dụng mạng (hoặc không sử dụng mạng) như thế nào. Cứ bắt đầu bằng việc nghiên cứu sử dụng trình duyệt và các ứng dụng hàng ngày của chính mình để xem dữ liệu được trao đổi qua mạng như thế nào. Cố hiểu từng ứng dụng đó hoạt động ra sao bằng cách quan sát những dữ liệu nào được gửi được và nhận, lúc nào, như thế nào, ở đâu.

Ngôn ngữ lập trình

Biết lập trình bằng những ngôn ngữ như Go, Java, Perl, Python, C hay Ruby có thể (hoặc không) nằm trong danh sách những kỹ năng hàng đầu mà các công ty đòi hỏi, nhưng biết một hoặc nhiều ngôn ngữ lập trình không chỉ làm cho hồ sơ của các bạn trông hấp dẫn hơn, mà còn giúp các bạn học hành tiếp thu dễ dàng hơn khi phải khai phá ở các mức độ chuyên sâu hơn.

Đồng thời cũng tuỳ vào chuyên ngành cụ thể nào trong mảng bảo mật mà các bạn muốn theo đuổi, vào một thời điểm nào đó các bạn sẽ nhận ra là không biết lập trình sẽ ít nhiều hạn chế khả năng mở mang kiến thức của mình.

Những bạn nào mà thấy e ngại phải học một ngôn ngữ lập trình mới, hãy thử làm quen với những dòng lệnh và công cụ cơ bản trên Linux. Viết được vài dòng lệnh cơ bản để máy tự động làm một vài việc thủ công có thể sẽ là một bước đệm khá quan trọng. Nói xa hơn, viết thành thạo các lệnh shell sẽ mang lại những lợi ích hết sức to lớn trong sự nghiệp của hầu hết các vị trí kỹ thuật liên quan đến máy tính (không liên quan đến việc các bạn có biết một ngôn ngữ lập trình cụ thể nào hay không).

Nhờ giúp đỡ

Hãy hiểu cho đúng nhé: Tương tự như việc học một nhạc cụ hay một ngôn ngữ mới nào đó thôi, học các kỹ năng cần thiết cho nghề an ninh mạng tốn rất nhiều thời gian và công sức. Nhưng đừng nản nếu gặp một chủ đề nào đó nhìn qua trông quá khó hiểu; cứ từ từ mà đi.

Đó là lý do nếu có các nhóm hỗ trợ nhau được thì rất tốt. Nghiêm túc đấy. Trong ngành an ninh mạng, mọi người hay tổ chức hội thảo và các buổi họp mặt ở từng khu vực. Tôi không biết phải nhấn mạnh sao về tầm quan trọng của việc thường xuyên gặp gỡ những người cùng chí hướng đối với đạo đức và nghề nghiệp của các bạn.

Khá nhiều trong số những buổi hội họp này miễn phí, bao gồm các sự kiện của Security BSides, các nhóm DEFCON, cũng như các buổi hội thảo ở OWASP. Và bởi vì ngành công nghệ tiếp tục có xu hướng thiên về nam giới, có một số buổi họp mặt và vài nhóm về an ninh mạng hướng đến nữ giới như Women’s Society of Cyberjutsu and và các tổ chức khác được liệt kê ở đây.

Trừ khi bạn sống ở nơi khỉ ho cò gáy nào đó, còn thì khả năng lớn là sẽ có một vài hội thảo và họp mặt về bảo mật sẽ diễn ra ở đâu đó quanh bạn. Mà thậm chí kể cả bạn có đang sống ở nơi quá xa xôi hẻo lánh, có rất nhiều buổi họp mặt vẫn đang diễn ra trực tuyến để tránh tình trạng lây lan của dịch COVID-19.

Tóm lại, đừng dựa vào bằng cấp hay chứng chỉ để khoả lấp những kỹ năng mà các công ty đang trông chờ ở bạn. Nghe có thể không công bằng lắm, nhưng chính các bạn mới là người cần phát triển và dung dưỡng những kỹ năng này để có thể làm việc cho công ty của mình trong tương lai và để có thể được tuyển dụng ở trong lĩnh vực này.

Tôi chắc rằng mỗi độc giả ở đây đều có ý kiến riêng của mình về việc làm sao để những người mới, những sinh viên và những người đang suy nghĩ về việc chuyển nghề sang ngành an ninh mạng có thể dành thời gian và công sức của mình một cách tốt nhất. Cứ đưa ra ý kiến của bạn ở dưới đây. Tôi có thể sẽ cập nhật bài viết này để ghi lại những ý kiến hay hơn.

(Bài viết này được dịch trực tiếp từ https://krebsonsecurity.com/2020/07/thinking-of-a-cybersecurity-career-read-this/ dưới sự cho phép của chính tác giả Brian Krebs)

Lời thú tội của một Siêu trộm danh tính, Phần II

Bài báo hôm qua đã phần nào kể lại câu chuyện của Ngô Minh Hiếu, một hacker mà Sở Mật vụ Mỹ mô tả là kẻ gây ra tổn hại về vật chất và tài chính cho nhiều người Mỹ hơn bất cứ tội phạm nào đã bị bắt trước đây. Mới đây Hiếu đã bị trục xuất về Việt Nam sau bảy năm ngồi tù do tổ chức vài đường dây buôn bán danh tính. Cậu giờ muốn kể ra những trăn trở của mình để thuyết phục những tội phạm mạng khác hãy sử dụng khả năng của mình cho mục đích chính đáng. Đây là những gì xảy ra sau khi cậu bị phục kích.

Ngô Minh Hiếu, 29 tuổi, trong một bức ảnh gần đây

Phần I của loạt bài này kết thúc khi Hiếu bị còng tay ngay sau khi bước xuống máy bay từ Việt Nam đến Guam, nơi cậu đinh ninh rằng mình sẽ gặp một tên tội phạm khác, kẻ hứa rằng sẽ kết nối cậu với trùm của tất cả các băng nhóm chuyên buôn bán danh tính.

Hiếu đã kiếm hơn 125.000 USD mỗi tháng nhờ buôn đi bán lại quyền truy cập bất chính của mình vào những nhà cung cấp dữ liệu lớn nhất thế giới. Nhưng Sở Mật vụ Mỹ đã phát hiện ra những tài khoản này và triệt hạ từng cái một. Hiếu trở nên ám ảnh với việc mở lại đường dây của mình và muốn duy trì thu nhập như trước đây. Lúc này, đường dây buôn bán danh tính của cậu đã thu về xấp xỉ 3 triệu USD.

Trong lúc đó, các đặc vụ ở Sở Mật vụ Mỹ đã sử dụng một kẻ trung gian để lừa Hiếu tưởng rằng mình đang dẫm chân lên lãnh thổ của một nhóm tội phạm khác. Ở phần I:

Sở Mật vụ Mỹ đã liên lạc với Hiếu thông qua một trung gian ở Anh – một tên tội phạm mạng đã bị kết án, và hắn đã đồng ý hợp tác với Sở. Hắn bảo rằng chính hắn đã khoá quyền truy cập của Hiếu vì hắn đến trước, rằng Hiếu đang cản trở công việc làm ăn của hắn.

“Tên người Anh đó bảo Hiếu, ‘Ê, mày đang dẫm lên sân của tao rồi đấy, tao đang tạm khoá mày lại. Trả tiền đây, mày sẽ được được lấy lại quyền truy cập’,” Đặc vụ Matt O’Neill ở Sở Mật vụ Mỹ nhớ lại.

Sau hàng tháng trời nói qua nói lại với tên người Anh khó chịu này, Hiếu đồng ý gặp mặt tại Guam để hoàn tất thoả thuận. Nhưng ngay khi bước chân xuống khỏi máy bay ở Guam, cậu đã bị các đặc vụ ở Sở Mật vụ Mỹ bắt giữ.

Trong một cuộc phỏng vấn với KrebsOnSecurity, Hiếu nói cậu đã phải trải qua hai tháng tù giam ở Guam để chờ chuyển đến Mỹ. Sau một tháng cậu được phép gọi điện về nhà 10 phút để giải thích với gia đình cậu đang vướng vào chuyện gì.

“Đó là thời khắc vô cùng khó khăn,” Hiếu nói. “Họ rất buồn và đã khóc rất nhiều.”

Điểm dừng đầu tiên trong chặng đường truy tố của cậu là ở New Jersey, nơi cậu thú nhận đã hack vào MicroBilt, một trong những nhà cung cấp dữ liệu đầu tiên mở đường cho những lần nâng cấp dịch vụ sau này của đường dây buôn bán danh tính của cậu nhiều năm sau.

Tiếp đến là New Hampshire, nơi cậu đã nhận tội và làm nhân chứng cho ba phiên toà khác dành cho những tên tội phạm trộm danh tính, những kẻ đã sử dụng dịch vụ của cậu trong nhiều năm. Một trong số đó là Lance Ealy, một tên trộm danh tính hàng loạt ở thành phố Dayton, bang Ohio, đã sử dụng dịch vụ của Hiếu để mua hơn 350 “fullz” – thuật ngữ để chỉ một bộ dữ liệu hoàn chỉnh cho người nào muốn trộm danh tính của ai đó, bao gồm số Chứng minh thư, họ cũ của mẹ, ngày sinh, địa chỉ nhà riêng, số điện thoại, địa chỉ email, tài khoản ngân hàng và cả mật khẩu nữa.

Ealy sử dụng dịch vụ của Hiếu chủ yếu để làm giả hồ sơ hoàn thuế gửi đến Sở Thuế vụ Mỹ, đòi một lượng lớn tiền hoàn thuế dưới danh nghĩa của những nạn nhân đã bị trộm danh tính, những người sau đó mới đi nộp hồ sơ hoàn thuế và phát hiện ra đã có ai đó nộp trước mình rồi.

Sự hợp tác của Hiếu với chính phủ đã đưa đến 20 cuộc bắt giữ khác, hàng chục kẻ trong số đó bị dụ ra ngoài ánh sáng nhờ O’Neill và những đặc vụ khác ở Sở Mật vụ Mỹ đóng giả Hiếu.

Sở Mật vụ Mỹ gặp khó khăn trong việc đưa ra một con số thiệt hại tài chính chính xác gây ra bởi các đường dây buôn bán danh tính của Hiếu trong nhiều năm trời, chủ yếu bởi vì những dịch vụ này chỉ giữ lại những lệnh tìm kiếm mà khách hàng đã tìm kiếm, chứ không giữ lại những lệnh mà khách hàng đã trả tiền.

Nhưng dựa vào những gì thu thập được, chính phủ ước tính rằng đường dây của Hiếu đã gây ra thiệt hại xấp xỉ 1,1 tỉ USD cho những tài khoản ngân hàng và tài khoản dịch vụ vừa bị lừa đảo, và khoảng 64 triệu USD tiền hoàn thuế bị gian lận ở các bang và ở Sở Thuế vụ.

“Chúng tôi đã nói chuyện với một vài khách hàng của Hiếu, những người khá cởi mở về việc tại sao họ lại dùng những dịch vụ như thế này,” O’Neill nói. “Rất nhiều trong số họ trả lời giống nhau: Đối với họ, mua những danh tính này tốt hơn nhiều so với mua thông tin thẻ thanh toán, vì thông tin thẻ chỉ có thể dùng được một hai lần. Trong khi danh tính thì có thể dùng đi dùng lại cho cả vài năm.”

O’Neill kể anh vẫn thấy thật đáng kinh ngạc vì việc Hiếu gần như vô danh khi so sánh với giới trộm thẻ tín dụng khét tiếng, vài trong số đó phải chịu trách nhiệm cho những đường dây trộm hàng trăm triệu thẻ từ những công ty buôn bán cỡ lớn.

“Tôi không biết có tên tội phạm nào đã gây ra nhiều tổn thất về tài chính và vật chất cho người Mỹ hơn Hiếu,” O’Neill nói với KrebsOnSecurity. “Nhưng phần lớn trong số họ lại chưa bao giờ nghe đến tên hắn.”

Hiếu nói cậu không thấy ngạc nhiên khi biết những đường dây của cậu đã gây thiệt hại nặng về về tài chính như thế. Nhưng cậu hoàn toàn không chuẩn bị để nghe nó từ góc độ con người cụ thể. Trong suốt quá trình tố tụng, Hiếu ngồi đó để nghe những câu chuyện thương tâm, những câu chuyện mà trong đó đường dây và dịch vụ của cậu đã huỷ hoại cuộc sống của rất nhiều người.

“Khi tổ chức đường dây này, tôi thực tình không hề quan tâm, vì tôi chẳng biết khách hàng của mình là ai, lại càng không biết họ có ý định gì với số dữ liệu đó,” Hiếu nói. “Nhưng trong thời gian ra toà, Toà án Liên bang Mỹ nhận được khoảng 13.000 lá thư từ những nạn nhân nói rằng mình đã bị mất nhà, mất việc, hoặc không còn có thể mua nhà hay lên kế hoạch tài chính chỉ vì tôi. Điều đó khiến tôi cảm thấy rất buồn, tôi nhận ra mình đã là một con người vô cùng tồi tệ.”

Dịch vụ trộm định danh của Hiếu lúc đó, usearching[.]info.

Mặc dù đã phải thuyên chuyển trại giam nhiều lần, Hiếu dường như luôn đụng phải những nạn nhân của việc trộm danh tính ở bất cứ nơi nào cậu đến, từ cai tù, nhân viên chăm sóc sức khoẻ, cho đến những nhân viên tư vấn.

“Khi đang trong tù ở thành phố Beaumont, bang Texas, tôi đã nói chuyện với một trong những nhân viên sỹ quan cải huấn ở đó, cô kể tôi nghe về một người bạn của cô đã bị trộm danh tính, và cô ấy đã mất tất cả kể từ đó,” Hiếu nhớ lại. “Cuộc sống của cô ấy hoàn toàn bị đảo lộn. Tôi không rõ đó có phải là một trong những nạn nhân của tôi không, nhưng câu chuyện đó khiến tôi phát ốm. Giờ tôi biết rằng những gì tôi làm thật đáng kinh tởm.”

Cậu hacker người Việt vừa được ra tù cách đây vài tháng, và hiện đang trong quá trình cách ly bắt buộc 3 tuần do COVID-19 tại một cơ sở của chính phủ gần thành phố Hồ Chí Minh. Những tháng cuối trong tù, Hiếu bắt đầu đọc tất cả những tài liệu trong tầm tay về máy tính và an toàn Internet, cậu thậm chí còn viết ra một bản hướng dẫn rất dài cho những người sử dụng Internet với những lời khuyên làm thế nào để tránh bị hack hoặc tránh trở thành nạn nhân của việc trộm dang tính.

Hiếu nói mặc dù cậu mong muốn một ngày nào đó sẽ được làm việc trong ngành an ninh mạng, nhưng cậu không vội. Cậu đã nhận được ít nhất một lời mời làm việc ở Việt Nam, nhưng cậu đã từ chối. Cậu bảo vẫn chưa sẵn sàng đi làm lại, mà muốn dành thời gian cho gia đình – đặc biệt là với bố cậu, hiện đã được chẩn đoán bị ung thư giai đoạn 4.

Lâu dài hơn, Hiếu nói, cậu muốn được hướng dẫn những bạn trẻ, giúp họ đi trên con đường đúng đắn, tránh xa những tội ác trên mạng. Cậu giờ trở nên vô cùng thành khẩn về những hành vi phạm tội của mình và những hậu quả do mình gây ra. Hồ sơ LinkedIn của cậu nhấn mạnh rằng cậu là một tội phạm mạng đã bị kết án.

“Tôi hy vọng những việc tôi làm có thể thay đổi được suy nghĩ của ai đó, hoặc nếu ít nhất có một ai đó quay đầu làm người tốt là tôi vui rồi,” Hiếu nói. “Đã đến lúc tôi phải làm gì đó đúng đắn, để chuộc lỗi với mọi người, tôi biết những việc này mình làm được.”

Mặc dù vậy, tỉ lệ tái phạm của các tội phạm mạng vô cùng cao, cậu hoàn toàn có thể dễ dàng trượt ngã về con đường cũ. Nói cho cùng, một vài người cũng như cậu, biết rất rõ cách làm thế nào để khai thác được quyền truy cập vào những dữ liệu cá nhân.

O’Neill nói anh rất tin tưởng Hiếu sẽ rửa tay gác kiếm. Nhưng anh cũng thêm vào rằng dịch vụ của Hiếu nếu tồn tại đến thời điểm này có thể sẽ còn thành công và béo bở hơn nữa do số lượng các vụ lừa đảo sử dụng danh tính bị trộm để gian lận ở các cơ quan hành chính bang và liên bang để kiếm lợi từ các khoản nợ hỗ trợ đại dịch và bảo hiểm thất nghiệp.

Hiếu nhất quyết cho rằng mình không hề có ý định làm gì để mình có thể vào tù lần nữa.

“Nhà tù là nơi rất khó khăn, nhưng nó cho tôi thời gian để suy nghĩ về cuộc đời và những lựa chọn của mình,” cậu nói. “Tôi tự hứa với mình sẽ làm việc thật tốt và trở nên con người tốt hơn mỗi ngày. Tôi đã biết rằng tiền chỉ là một phần trong cuộc sống. Nó không phải là tất cả và nó cũng không thể mang lại hạnh phúc thật sự. Tôi hy vọng những ai đang phạm tội trên không gian ảo ngoài kia có thể học bài học gì đó từ tôi. Tôi hy vọng họ sẽ dừng tay và thay vào đó, hãy dùng khả năng của mình để làm thế giới tốt hơn.”

(Bài viết này được dịch trực tiếp từ https://krebsonsecurity.com/2020/08/confessions-of-an-id-theft-kingpin-part-ii/ dưới sự cho phép của chính tác giả Brian Krebs)

Lời thú tội của một Siêu trộm danh tính, Phần I

Vào thời điểm đỉnh cao trong sự nghiệp tội phạm công nghệ cao của mình, hacker “Hieupc” đã kiếm được 125.000 USD nhờ mở ra dịch vụ trộm danh tính cá nhân hết sức đắt khách bằng cách bòn rút hồ sơ người tiêu dùng của những nhà cung cấp dữ liệu hàng đầu thế giới. Cho đến khi lòng tham và tham vọng của cậu lao thẳng vào một cái bẫy tinh vi được sắp đặt bởi Sở Mật vụ Mỹ. Giờ đây, sau hơn bảy năm trong tù, Hieupc đã được về Việt Nam, cậu hy vọng có thể thuyết phục những bạn trẻ có ý định trở thành tội phạm mạng hãy sử dụng khả năng của mình cho mục đích chính đáng.

Ngô Minh Hiếu, thời còn trẻ

Trong vòng vài năm bắt đầu từ khoảng 2010, cậu thiếu niên Việt Nam Ngô Minh Hiếu đã điều hành một trong những dịch vụ phổ biến nhất và đạt lợi nhuận khủng nhất trên mạng Internet bằng cách bán “fullz“, là những thông tin cá nhân bị trộm của người tiêu dùng bao gồm tên, ngày sinh, số Chứng minh thư, email và địa chỉ nhà riêng.

Hiếu có được kho báu dữ liệu về người tiêu dùng của mình nhờ xâm nhập trái phép và dùng các mánh khoé để chen giữa vào một chuỗi những nhà cung cấp dữ liệu có tiếng. Khi bị Sở Mật vụ Mỹ bắt giữ năm 2013, Hiếu đã kiếm được hơn 3 triệu USD nhờ bán fullz cho những cá nhân và băng nhóm tội phạm có tổ chức có địa bàn hoạt động trên toàn nước Mỹ.

Matt O’Neill là đặc vụ hồi tháng 2 năm 2013 đã thực hiện thành công kế hoạch dụ Hiếu ra khỏi Việt Nam để đến Guam, tại đây cậu hacker trẻ tuổi ngay lập tức bị bắt và bị đưa về Mỹ truy tố. O’Neill hiện dẫn đầu Trung tâm Điều tra Toàn cầu, chuyên hỗ trợ điều tra hoạt động của các tổ chức tội phạm xuyên quốc gia.

O’Neill nói anh bắt tay vào điều tra việc làm ăn trộm danh tính của Hiếu sau khi đọc về nó trên một bài báo năm 2011 của KrebsOnSecurity, “Định danh của bạn đáng giá bao nhiêu?” Theo O’Neill, điều đáng kinh ngạc nhất ở Hiếu là việc ngày đó tên tuổi của cậu gần như chìm nghỉm giữa một rừng những tội phạm khét tiếng đã bị xử tội, những kẻ đã buôn lậu thông tin thẻ tín dụng với số lượng rất lớn.

Công việc làm ăn của Hiếu đã mở ra cả một thế hệ tội phạm mạng mới mà hậu quả ước chừng lên tới cả tỷ USD chỉ riêng những định danh mới bị làm giả, đồng thời làm ảnh hưởng đến lịch sử tín dụng của vô số người Mỹ.

“Tôi không biết có tên tội phạm nào đã gây ra nhiều tổn thất về tài chính và vật chất cho người Mỹ hơn Hiếu,” O’Neill nói với KrebsOnSecurity. “Hắn đã bán thông tin cá nhân của hơn 200 triệu người Mỹ, để rồi ai cũng có thể mua lại với giá vài xu cho mỗi mẩu thông tin.”

Vừa được thả ra khỏi nhà tù ở Mỹ và trục xuất về Việt Nam, Hiếu hiện đang trong quá trình cách ly bắt buộc 3 tuần do COVID-19 tại một cơ sở của chính phủ. Tại đây, cậu liên lạc với KrebsOnSecurity mong muốn kể ra câu chuyện rất ít người biết đến này, để cảnh tỉnh những người muốn theo chân cậu.

Điểm khởi đầu

Mười năm trước, cậu hacker 19 tuổi Hiếu thường xuyên lượn lờ trên các diễn đàn an ninh mạng trong nước. Hiếu nói cậu sinh ra trong một gia đình trung lưu chuyên buôn bán đồ điện tử, và cậu được bố mẹ mua một cái máy tính năm 12 tuổi. Cậu bị hút hồn kể từ đó.

Vài năm sau, cậu đi du lịch để học tiếng Anh ở một trường đại học ở New Zealand. Cậu lúc này đã quản lý một vài diễn đàn hacker, và trong quá trình học cậu đã phát hiện ra một lỗ hổng trong hệ thống mạng của nhà trường để lộ ra thông tin về thẻ thanh toán.

“Tôi đã liên lạc với các kỹ thuật viên ở đó để sửa lỗi, nhưng vì chả ai quan tâm cả nên tôi đã hack luôn cả hệ thống,” Hiếu nhớ lại. “Rồi tôi sử dụng cùng lỗ hổng ấy để hack vài trang web khác. Tôi đã trộm được vô số thẻ tín dụng.”

Hiếu kể cậu đã dùng các thẻ tín dụng đó để mua vé xem ca nhạc và các sự kiện trên Ticketmaster, sau đó bán lại ở một trang web đấu giá ở New Zealand tên là TradeMe. Trường nơi cậu học sau đó đã phát hiện ra sự xâm nhập và vai trò của Hiếu, rồi cảnh sát Auckland vào cuộc. Visa du lịch của Hiếu không được gia hạn sau học kỳ đầu tiên, và để trả thù cậu đã tấn công trang web của trường, khiến nó sập hơn hai ngày liền.

Hiếu nói cậu quay về học lại ở Việt Nam, nhưng rồi nhận ra cậu đã dành đa số thời gian của mình trên các diễn đàn tội phạm mạng.

“Tôi đã chuyển từ hack cho vui đến hack vì lợi nhuận khi thấy rằng kiếm tiền từ việc ăn trộm cơ sở dữ liệu khách hàng quá dễ dàng,” Hiếu nói. “Tôi có nói chuyện với một vài người bạn trên các diễn đàn ngầm, bọn tôi đã lên kế hoạch cho một hoạt động phạm tội mới.”

“Bọn họ nói làm việc với thẻ tín dụng và các thông tin liên quan đến ngân hàng rất nguy hiểm, thế là tôi bắt đầu nghĩ đến việc bán thông tin cá nhân,” Hiếu kể tiếp. “Đầu tiên tôi nghĩ, ờ thì, chỉ là thông tin thôi mà, nghe cũng không xấu xa lắm vì không liên quan trực tiếp đến ngân hàng. Nhưng mà tôi đã nhầm, và rồi tiền kiếm được ngày càng nhiều khiến tôi mù quáng trước rất nhiều thứ.”

MicroBilt

Mục tiêu lớn đầu tiên của cậu là MicroBilt, một công ty chuyên về báo cáo tín dụng của người tiêu dùng ở New Jersey.

“Tôi đã hack vào hệ thống và lấy trộm tài khoản các khách hàng của họ để từ đó tôi có thể dùng chính mật khẩu của những khách hàng này truy cập vào các dữ liệu người tiêu dùng,” Hiếu nói. “Tôi ở trong hệ thống đó gần cả năm mà không ai hay biết.”

Ngay sau khi có quyền truy cập vào MicroBilt, Hiếu kể, cậu dựng lên Superget[.]info, một trang web được quảng cáo là có bán thông tin cá nhân của từng người tiêu dùng. Hiếu nói ban đầu dịch vụ của cậu khá thủ công, cậu yêu cầu khách hàng phải đưa ra một bang cụ thể hoặc một người tiêu dùng cụ thể, rồi cậu sẽ thực hiện bằng cách tự mình tìm kiếm.

Dịch vụ trộm định danh của Hiếu lúc đó, superget[.]info

“Tôi đã cố để có thêm nhiều thông tin nữa, nhưng tốc độ mạng Internet ở Việt Nam lúc đó quá chậm,” Hiếu nhớ lại. “Tôi không thể nào tải được vì lượng dữ liệu quá lớn. Nên tôi đành tự tìm thủ công cho bất cứ khách hàng nào muốn tìm thông tin về ai đó.” Nhưng rồi Hiếu phát hiện ra cách sử dụng những máy chủ lớn hơn ở Mỹ để tự động hoá việc thu thập thông tin người tiêu dùng từ các hệ thống của MicroBilt và những nhà cung cấp dữ liệu khác. Như tôi đã từng viết về công việc làm ăn của Hiếu hồi tháng 11 năm 2011:

“Superget cho phép người dùng tìm kiếm thông tin cụ thể của từng cá nhân theo tên, thành phố, bang. Mỗi “điểm” có giá 1 USD, và mỗi lệnh tìm kiếm tìm ra được một số Chứng minh thư hay một ngày sinh sẽ có giá 3 điểm. Càng mua nhiều điểm, giá mỗi lệnh tìm kiếm sẽ càng rẻ: 6 điểm có giá 4,99 USD; 35 điểm có giá 20,99 USD, và 100,99 USD mua được 230 điểm. Khách hàng nào có nhu cầu đặc biệt có thể chọn “gói bán buôn,” có giá cho 1.500 điểm là 500,99 USD, và giá cho 3.500 điểm là 1.000,99 USD”

“Cơ sở dữ liệu của chúng tôi được cập nhật HÀNG NGÀY,” chủ trang web cam kết. “Có thể tìm thấy khoảng 99% đến gần 100% người dân Mỹ, hơn bất cứ trang web nào khác trên Internet hiện nay.”

Sự xâm nhập của Hiếu vào MicroBilt cuối cùng cũng bị phát hiện, và công ty đã đá cậu ra khỏi hệ thống. Nhưng cậu nói mình đã quay trở lại nhờ một lỗ hổng khác.

“Tôi hack qua hack lại họ trong vòng vài tháng gì đó,” Hiếu nói. “Họ phát hiện ra [các tài khoản của tôi] và sửa nó, rồi tôi lại tìm ra lỗ hổng khác để hack.”

Court (Ad)Ventures, và Experian

Trò mèo vờn chuột này tiếp diễn cho đến khi Hiếu tìm được một nguồn dữ liệu người tiêu dùng ổn định và chắc chắn hơn nhiều: một công ty đặt tại Mỹ tên là Court Ventures, chuyên tổng hợp các dữ liệu được công bố công khai từ các tài liệu của toà án. Hiếu vốn không hứng thú với dữ liệu của Court Ventures, mà là một thoả thuận chia sẻ dữ liệu của nó với một công ty cung cấp dữ liệu khác là U.S. Info Search, với lượng dữ liệu nhạy cảm của người tiêu dùng hơn rất nhiều.

Bằng việc làm giả giấy tờ và những thủ đoạn dối trá, Hiếu đã thuyết phục được Court Ventures rằng cậu là một thám tử tư ở Mỹ.

“Khi đăng ký họ có hỏi tôi một vài giấy tờ để xác nhận,” Hiếu kể. “Thế là tôi phải dùng một vài tiểu xảo đề qua được vòng kiểm tra.”

Sau đó, vào tháng 3 năm 2012, một chuyện còn phi thường hơn đã xảy ra: Experian – một trong ba công ty về dữ liệu người dùng lớn nhất Mỹ – mua lại Court Ventures. Chín tháng sau cuộc sát nhập, Hiếu vẫn còn nguyên quyền truy cập của mình.

“Từ đó, dữ liệu được Experian quản lý,” cậu kể. “Tôi đã trả Experian khá nhiều tiền, vài nghìn đô mỗi tháng”.

Vẫn còn nhiều nghi vấn về việc liệu có ai ở Experian thẩm định những tài khoản cũ từ Court Ventures không. Nhưng cũng không khó để phát hiện ra rằng vị khách hàng đặc biệt này đang có ý định gì đó ám muội.

Đầu tiên, Hiếu trả tiền hoá đơn hàng tháng cho những lệnh tìm kiếm của khách hàng của mình bằng cách chuyển khoản bằng các ngân hàng trên khắp thế giới, chủ yếu là các tài khoản của các tổ chức tài chính ở Trung Quốc, Malaysia và Singapore.

O’Neill nói trang web trộm danh tính của Hiếu có hàng chục nghìn lệnh tìm kiếm mỗi tháng. Ví dụ, hoá đơn đầu tiên mà Court Ventures gửi Hiếu trong tháng 12 năm 2010 là 60.000 lệnh. Khi công ty này được Experian mua lại, dịch vụ của Hiếu đã thu hút hơn 1.400 khách hàng thường xuyên với trung bình 160,000 lệnh tim kiếm mỗi tháng.

Và quan trọng hơn cả là lợi nhuận khổng lồ của Hiếu.

“Dịch vụ của hắn lên như tên lửa,” ông nói. “Court Ventures chỉ tính hắn 14 xu, trong khi hắn thu của khách hàng 1 USD mỗi lệnh.”

Lúc này, O’Neill và các đồng sự ở Sở Mật vụ Mỹ đã có cả đống lệnh của toà án liên quan đến dịch vụ trộm danh tính của Hiếu, bao gồm cả lệnh cho phép họ truy cập vào tài khoản email mà cậu dùng để liên lạc với khách hàng và quản lý trang web. Các đặc vụ phát hiện ra một vài email từ Hiếu hướng dẫn đến một kẻ đồng loã khác cách trả tiền cho Experian bằng cách chuyển khoản qua các ngân hàng ở khu vực Châu Á.

TLO

Nhờ làm việc với Sở Mật vụ Mỹ, Experian nhanh chóng vô hiệu hoá và khoá các tài khoản của Hiếu. Nhận ra cơ hội hiếm có, Sở Mật vụ Mỹ đã liên lạc với Hiếu thông qua một trung gian ở Anh – một tên tội phạm mạng đã bị kết án, và hắn đã đồng ý hợp tác với Sở. Hắn bảo rằng chính hắn đã khoá quyền truy cập của Hiếu vì hắn đến trước, rằng Hiếu đang cản trở công việc làm ăn của hắn.

“Tên người Anh đó bảo Hiếu, ‘Ê, mày đang dẫm lên sân của tao rồi đấy, tao đang tạm khoá mày lại. Trả tiền đây, mày sẽ được được lấy lại quyền truy cập’,” O’Neill nhớ lại.

Tên tội phạm trung gian ở Anh, dưới lệnh của Sở Mật vụ Mỹ và các nhà chức trách Anh, bảo Hiếu nếu muốn giữ quyền truy cập thì phải đồng ý gặp mặt trực tiếp. Nhưng Hiếu đã không cắn câu ngay lập tức.

Thay vào đó, cậu nhảy sang một kho dữ liệu khác. Tương tự như cách tiếp cận với Court Ventures để có quyền truy cập, Hiếu đã có tài khoản ở một công ty có tên là TLO, một nhà cung cấp dữ liệu khác chuyên bán những dữ liệu vô cùng chi tiết và nhạy cảm của đa số người Mỹ.

Dịch vụ của TLO chỉ dành cho những nhân viên thi hành pháp luật và một số ít các chuyên gia thẩm định có lý do hợp pháp để truy cập những thông tin này. Năm 2014, Trans Union – một công ty khác trong số ba công ty về dữ liệu người dùng lớn nhất Mỹ – đã mua lại TLO.

Và trong một thời gian ngắn, Hiếu dùng quyền truy cập của mình vào TLO để nâng dịch vụ của mình lên một tầng mới – một dịch vụ trộm danh tính được mang tên usearching[.]info. Trang web này đồng thời có luôn cả dữ liệu người dùng từ một công ty chuyên cho vay ngắn hạn mà Hiếu hack được, như báo cáo của tôi hồi tháng 9 năm 2012, Dịch vụ trộm danh tính được nối với các trang web cho vay ngắn hạn. Hiếu nói những trang web cho vay ngắn hạn này liên tục cung cấp cho cậu khoảng 1.000 fullz mỗi ngày.

Dịch vụ trộm định danh của Hiếu lúc đó, usearching[.]info.

Mù quáng bởi lòng tham

Lúc này, Hiếu đã là đa triệu phú USD: Hàng loạt các trang web và những hợp đồng bán buôn của cậu với ba tổ chức tội phạm mạng Nga đã mang lại cho cậu hơn 3 triệu USD. Cậu nói với bố mẹ tiền này là từ các công ty cậu làm website đưa cho, thậm chí cậu còn dùng một phần tiền bẩn này để trả nợ của gia đình (cửa hàng điện tử nhà cậu nợ nần chồng chất, ai đó trong gia đình đã vay một khoản lớn nhưng không trả lại).

Nhưng phần lớn, Hiếu kể, cậu chi tiêu cho những thứ phù phiếm, mặc dù cậu nói không hề đụng đến ma tuý và rượu bia.

“Tôi chi tiền đi du lịch và ô tô và rất rất nhiều những thứ ngu ngốc khác,”, cậu nói.

Khi TLO khoá tài khoản của Hiếu, Sở Mật vụ Mỹ lại tận dụng cơ hội này để tên trung gian người Anh một lần nữa quay sang Hiếu.

“Hắn bảo Hiếu hắn đã lại khoá cậu, và hắn sẽ làm thế nữa,” O’Neill nói. “Và nếu cậu muốn lấy lại những quyền truy cập này, thì phải đồng ý gặp mặt và lên kế hoạch hợp tác.”

Sau hàng tháng trời nói qua nói lại với tên người Anh khó chịu này, Hiếu đồng ý gặp mặt tại Guam để hoàn tất thoả thuận. Hiếu nói lúc đó cậu hiểu rằng Guam là một lãnh thổ chưa hợp nhất của Mỹ, nhưng cậu không để ý rằng đó chỉ là một trong những thủ thuật giăng bẫy tinh vi của lực lượng hành pháp.

“Tôi đã quá nóng lòng để có được một cơ sở dữ liệu ổn định, tôi đã quá mù quáng bởi lòng tham và hành động thiếu suy nghĩ,” Hiếu nói. “Rất nhiều người bảo tôi ‘Đừng đi!,’, nhưng tôi bảo họ rằng tôi phải thử xem sao.”

Nhưng ngay khi bước chân xuống khỏi máy bay ở Guam, cậu đã bị các đặc vụ ở Sở Mật vụ Mỹ bắt giữ.

(Bài viết này được dịch trực tiếp từ https://krebsonsecurity.com/2020/08/confessions-of-an-id-theft-kingpin-part-i/ dưới sự cho phép của chính tác giả Brian Krebs)

LingualBox Security Issue

I recently found out this service LingualBox that provides one-on-one English sessions by Philippines teachers for whom want to improve their English skill. I figured that the service’s price is highly affordable, plus Philippines’s fluent English speaking is undoubted, so I decided to give it a try. So far I found my favorite tutor and very happy with the service.

But on other hand, as a programmer, when looking around and inspect some API calls from front-end, I found a major bug that allow any LingualBox user (even with Trial permission, i.e no active subscription) to book one-on-one sessions for FREE with any tutors. I’m documenting it here for reference purpose and will not publish it until it’s solved by LingualBox, as it would suffer this great service (and price is already reasonable).

Let’s start with manual booking process

  • I registered a new account pltchuong, ID 10030, and I’m a Trial user by default with 0 regular tickets and 2 non-expiration tickets
  • I booked a random slot of a random tutor:
  • This is how the API looks like:
RequestResponse
  • Looking at this API request, I found something interesting:
    • Obviously, start_timestamp, end_timestamp and tutor_id are all required for a booking request
    • However there is also ticket_cost and sub_ticket_cost, which I guess indicating the “price” I have to pay for each session. sub_ticket_cost probably for non-expiration ticket and ticket_cost probably for regular ticket.
  • With these two extra parameters, I suppose we can “control the price” by changing it to 0 (i.e free), so let’s change sub_ticket_cost to 0 instead of 1, and send request by cURL:
curl 'https://api.lingualbox.com/book'
  ...
'{"tutor_id":7428,"start_timestamp":1594796400000,"end_timestamp":1594797900000,"ticket_cost":0,"sub_ticket_cost":0}'
  • Looks like booking is successful:
{"booking":{"id":174092,"start_at":1594796400000,"end_at":1594797900000,"consumed_tickets":0,"consumed_sub_tickets":0,"created_at":"2020-07-13T18:27:28.704Z","updated_at":"2020-07-13T18:27:28.704Z","student_name":"Phan Chuong",...
  • And this is the result after a couple more tries: My 2 non-expiration tickets is remain unused, even though I booked 4 slots in total.
  • I also tried with my actual account, but this time I changed ticket_cost instead and as expected, I don’t have to spend any regular tickets for booked sessions
TimelineAction
2020/07/12Found the bug
2020/07/13Publish a protected document
2020/07/14LingualBox confirmed the issue and fixing
2020/07/17LingualBox fixed the bug

Phỏng vấn trước xTalk 06/19

Q: Xin anh giới thiệu một chút về mình – như nơi công tác, công việc hiện nay, để nhiều xTer được biết đến anh đầy đủ hơn ạ?
A: Mình hiện đang là Big Data Engineer ở T-Mobile, một trong ba nhà mạng viễn thông ở Mỹ. Nhóm của mình chuyên về phân tích dữ liệu của khách hàng là các thuê bao để phục vụ cho nhóm marketing và nhóm tìm đối tác.

Q: Anh kỳ vọng sẽ mang đến những điều gì cho các bạn qua phần chia sẻ ngày mai ạ?
A: Từ fresher mới ra trường để đến được một lập trình viên có thể làm được việc trong những ngạch nhỏ / mới như Big Data là một quãng đường khá dài và lòng vòng, mình hy vọng việc nói về công việc hàng ngày thực tế của mình sẽ cho các bạn sinh viên hoặc các bạn có ý định chuyển sang ngạch BigData có một cái nhìn cụ thể hơn, có khi lại nghĩ là “Ôi tưởng sao, dễ thế ý hả” cũng nên ^.^

Q: Vì sao anh lựa chọn chia sẻ chủ đề “Công việc của một Kỹ sư Big Data”?
A: Tuần sau mình sẽ có một bài phát biểu ở Spark + AI Summit 2020, là diễn đàn lớn nhất và sôi nổi nhất về nền tảng Apache Spark và các ứng dụng của nó trong Big Data và Trí tuệ nhân tạo. Khi nhận tin là sẽ được phát biểu chính thức, mình đã nghĩ ngay đến FUNiX, là sao mình không thử chia sẻ những cái mình biết cho các bạn học viên bằng tiếng Việt để mọi người dễ tiếp cận? Và thế là nảy ra ý tưởng này.

Q: Bản thân anh đã làm công việc này lâu chưa và theo anh có những cơ hội gì cho xTer FUNiX nếu muốn theo nghề này ạ?
A: Mình đã làm được gần 4 năm, là cơm áo gạo tiền với dòng đời xô đẩy thôi ^.^ Nhưng thật sự để theo hướng BigData mà không phí phạm thời gian thì nên có định hướng từ đầu, thay vì học lan man hết ngôn ngữ này đến nền tảng khác (là cách tiếp cận của rất nhiều lập trình viên nước ta, dưới góc nhìn của mình)

Q: Học FUNiX, các bạn cần thêm những điều kiện gì để theo đuổi lĩnh vực khá hot như Big Data ạ?
A:

  • Tiếng Anh, các tài liệu về BigData bằng tiếng Việt không nhiều và ít tài liệu chính thống (sách, giáo trình, …) nên khả năng đọc được tài liệu bằng tiếng Anh là rất quan trọng.
  • Học SQL, là nền tảng của Data, rất nhiều vấn đề có thể được giải quyết chỉ bằng SQL.
  • Học Python, là ngôn ngữ của giới chuyên gia về dữ liệu, rất nhiều thư viện hỗ trợ và quan trọng hơn hết là nó rất đơn giản để bắt đầu.
  • Học Apache Spark, là nền tảng của các chương trình xử lý dữ liệu lớn cũng như trí tuệ nhân tạo. (Nói thêm là mình cũng đang trong quá trình thử dịch một quyển sách về Apache Spark cho người mới học, hy vọng đóng góp được gì đó cho cộng đồng)
  • Nếu được thì nên đầu tư chút thời gian vào môn toán thống kê (statistics) để có chút kiến thức về dữ liệu, giúp ích khá nhiều sau này.

Q: Anh là xTer đầu tiên nhận bằng FUNiX. Sau khi có bằng, công việc của anh đã có sự thay đổi ra sao ạ?
A: Không thực sự thay đổi nhiều lắm trong công việc, nhưng nó giúp mình có sự tự tin về mặt giấy tờ thủ tục hành chính. Việc này đặc biệt quan trọng với những người có ý định xin việc hay định cư ở nước ngoài. Luật ở các quốc gia minh biết (Mỹ, Úc, NZ, Canada, Nhật, …) đều yêu cầu có bằng cấp nếu muốn  được cấp thị thực làm việc (liên quan đến công việc lập trình).

Q: Là một người đi trước, với cách học FUNiX, anh có chia sẻ gì giúp các bạn học hiệu quả để gặt hái được những thành công như anh ạ?
A: Thành công thì hơi quá ^^.Tin vui là học ở FUNiX cho bạn quyền kiểm soát thời gian và tốc độ học, cũng như có hệ thống hỗ trợ khá tốt. Nhưng tin buồn là cũng như tất cả startup khác, FUNiX cũng đang phải tự hoàn thiện mình về nhiều mặt. Tuy nhiên học viên hoàn toàn có thể tự khắc phục (với sự hỗ trợ tốt như trên) bằng cách tìm hiểu thêm các nguồn tài liệu từ bên ngoài, vô cùng đa dạng và phong phú. Thêm chút thời gian và tâm huyết, mình hy vọng các bạn sẽ đạt được hiệu quả mong muốn.

I’m a Data Engineer

(Bản Tiếng Việt)

Q. said I got many lucks in my career path. That’s sound like it! I’m clearly just a hardworking-honest-naive guy, so no surprise if luck has been playing a vital role in my life. Even though with all that, I just finally realized what I really want to do in this giant technology industry.

I always thought I was a Full-stack Software Engineer, i.e I can play any role when building apps for web or mobile, doesn’t matter if it’s from front-end or back-end. I’m telling you the truth. I have all experiences with building products, outsourcing, freelancing, from Vietnam to worldwide (bad experiences too, to be fair). I thought I was cool, until I saw US market.

Vietnamese said: birds land on good soil. Birds come to US are countless. Birds from everywhere, various color, various size. Numerous is not a big deal here, turns out many of them are really good developers, that raises the industry standard into a pretty high level. One common from the majority of them is they tend to concentrate on a very few specific topics. They then become the experts on their subjects (Subject Master Expert – SME) instead of expanding and racing with technology changes.

Hm, I probably went off topic a little…

I guess life was hard on me, from a proudly Software Engineer, I had to work as a SQL Engineer for my bread and butter, i.e only deal with SQL. Though, I’m lucky when having my managers who guided me and enlightened me, I started to learn Statistics and Machine Learning, then I joined Data Mining practices without noticing. Turns out data is very cool. Put it simple, if I can collect enough your data (both quantity and variety), I basically can tell something about your characteristics as well as your hobbits.

Few weeks ago, my direct manager had left me and Data Science team with unfinished projects. I thought I was crash. I stressed and couldn’t sleep for a while, thought hard about my career path and my future. Q. once again helped me out, wake me up from chaotic, that’s when I realized I finally know what to do next: a Big Data Engineer with Distributed Computing, and a Spark expert. The path is long and big enough for my career, and the path that I really enjoyed at every single achievement.

Life is full of blessings of disguise, all the things that we experience happen for a reason. And you Q., thank you! I know I’m truly lucky having you in my life.

Tôi là một Data Engineer

(English version)

Q. bảo tôi luôn may mắn trong công việc của mình. Quả đúng thật! Ngoài những thứ như chăm cày cuốc, thật thà chất phác, ngây thơ nhà quê ra tỉnh, những gì tôi có ngày hôm nay một phần lớn là nhờ may mắn mà có. Vậy mà lăn lộn lập trình 10 năm nay, đến giờ tôi mới nhận ra mình muốn làm gì trong ngành Công nghệ thông tin vừa to khủng bố vừa thay đổi nhanh như chảo chớp này.

Tôi đã từng nghĩ mình là một Full-stack Software Engineer, tức là trong giới app hay web hay mobile, tôi làm ở vị trí nào cũng được, từ trên (front-end) xuống dưới (back-end) tôi đều không ngại. Tôi không nói điêu. Kinh nghiệm làm sản phầm của công ty cũng như kinh nghiệm làm outsource, rồi làm freelancer, rồi làm ở Việt Nam và ở nước ngoài tôi không thiếu (nói cho công bằng thì ăn chửi cũng không ít). Tôi đã từng nghĩ mình hay ho lắm, cho đến khi tôi sang Mỹ.

Người ta nói quả không sai: đất lành chim đậu. Chim đậu ở Mỹ nhiều thôi rồi là nhiều. Thôi thì chim bay đến từ khắp nơi, đủ loại màu sắc, đủ kích cỡ to nhỏ. Nhiều là một chuyện, nhưng hội lập trình viên khắp thế giới đổ đến quá nhiều người tài, khiến cho mặt bằng chung của lập trình viên ở Mỹ bị đẩy lên rất cao. Một điểm chung ở đa số bọn họ là chỉ tập trung vào một ngách nhỏ thay vì dàn trải kiến thức và kinh nghiệm ở nhiều mảng công nghệ khác nhau. Họ trở thành các chuyên gia trong lĩnh vực của mình (Subject Master Expert – SME) và không cần lúc nào cũng phải chạy đua theo các công nghệ mới.

Hm, hình như hơi lạc đề…

Còn tôi, tôi vô tình bị dòng đời xô đẩy, từ thân làm một Software Engineer đầy tự hào, cơm áo gạo tiền buộc tôi phải thành một SQL Engineer, tức là chỉ ăn cháo viết code SQL. Rồi tôi may mắn được các sếp thương tình và chỉ đường, tôi bắt đầu tập tành học về Statistics và Machine Learning, rồi dấn thân vào con đường Data Mining lúc nào không hay. Hoá ra, dữ liệu thú vị vô cùng. Nói đơn giản, nếu tôi thu được đủ dữ liệu về bạn (cả về số lượng và sự đa dạng), tôi về cơ bản có thể phán nhiều thứ hay ho về con người cũng như sở thích của bạn.

Cách đây vài tuần, sếp tôi vì nhiều lí do đã chuyển công ty, bỏ lại tôi và đội Data Science với một mớ lộn xộn những dự án dang dở. Tôi đã tưởng rằng đó là một trong những sự kiện đen tối nhất. Tôi đã căng thẳng và mất ngủ một thời gian, nghĩ ngợi về con đường sự nghiệp trong tương lai của mình. Q. lại một lần nữa giải thoát cho tôi, khiến tôi tỉnh lại trong cơn hỗn độn và nhận ra rằng tôi đã chọn cho mình được một con đường: Chuyên gia về Big Data Engineer và Distributed Computing. Một con đường đủ dài và đủ rộng cho sự nghiệp của tôi, một con đường mà mỗi bước đi đều mang lại cho tôi một niềm vui và phấn khích.

Chuyện đời đúng không khác chuyện Tái ông mất ngựa là mấy, may đó rủi đó không ai biết đâu mà lần. Còn Q., cảm ơn em! Anh biết anh thật sự may mắn khi có em.

Bluezone có thực sự minh bạch code của mình?

Tôi dù không phải chuyên gia bảo mật, cũng không phải chuyên gia mobile apps, càng không phải chuyên gia mảng truy vấn dấu vết, tôi chỉ là người theo dõi những diễn biến xung quanh việc release Bluezone, mở mã nguồn, …

Một trong những tiêu chí của Bluezone là “Minh bạch”, minh chứng bằng việc mở mã nguồn ở https://github.com/BluezoneGlobal. Tinh thần này về bản chất rất đáng hoan nghênh.

Hình ảnh được chụp từ website bluezone.vn
(Chụp lúc 9h50′ sáng ngày 05/09/2020 giờ Seattle, Mỹ)

Tuy nhiên, từ thời điểm công bố mã nguồn (vào tầm ngày 26/04/2020), không có mấy hoạt động diễn ra trên những repo của tài khoản này:

Hình ảnh chụp từ repo bluezone-app, nơi chứa code cho các ứng dụng trên Android và iOS
(Chụp lúc 9h55′ sáng ngày 05/09/2020 giờ Seattle, Mỹ)

Hình ảnh chụp từ repo bluezone-scan, nơi chứa code cho thư viện chung (rất quan trọng) trong việc scan các thiết bị Bluetooth. Đây cũng là nơi có nhiều tranh luận nhất về tính bảo mật và riêng tư của Bluezone.
(Chụp lúc 10h05′ sáng ngày 05/09/2020 giờ Seattle, Mỹ)

Nhưng mặt khác, Bluezone trên Google Play và trên App Store lại diễn ra vô cùng tích cực với các bản cập nhật được tung ra liên tục, khoảng 3 – 5 ngày một lần:

Quá trình release của Bluezone trên App Store cho các thiết bị iOS
(Chụp lúc 10h10′ sáng ngày 05/09/2020 giờ Seattle, Mỹ)

Thông tin về bản nhật mới nhất của Bluezone trên Google Store cho các thiết bị Android. Mặc dù không có lịch sử rõ ràng nhưng so sánh release note này với lịch sử cập nhật của App Store bên trên ta có thể giả định thời điếm cập nhật cho hai tảng này là như nhau.
(Chụp lúc 10h10′ sáng ngày 05/09/2020 giờ Seattle, Mỹ)

Một điều có thể thấy rất rõ ràng ở đây (mà không cần tải mã nguồn về và so sánh) là mã nguồn trên GitHub và các bản cập nhật của Bluezone không giống nhau. Hay nói cách khác, mã nguồn trên GitHub có thể chỉ là một bản sao của mã nguồn gốc được lưu trữ ở chỗ khác. Nếu điều này đúng là sự thật thì việc mở mã nguồn chỉ là một thủ tục và không có tác dụng như Bluezone nói.

Eyes On Me – Ánh Mắt Dành Cho Em

Tháng Chín tới được đi nghe hoà nhạc Final Fantasy Distant Worlds, cảm xúc về những ngày cuối đông trùm chăn chơi game lại tràn về. Những tháng ngày chơi game đĩa xước đánh đi đánh lại, để cuối cùng thắng được trùm cuối xúc động tràn trề không thể diễn tả nổi khi nghe bài hát cuối game.

“Eyes On Me” là bài hát đầu tiên mình nghe trong dòng Final Fantasy, mà hồi đó cũng lạ, nghe hay thật là hay mà chả hiểu quái gì. Mày mò mấy quyển từ điển dịch qua loa nắm ý, mà vẫn nghêu ngao hát theo như thật. Giờ 15 năm rồi vẫn thuộc làu làu lời bài hát, và giờ biết tiếng Anh rồi nên muốn dịch lại một cách trọn vẹn.

Dịch giả nào cũng thường chen những cảm xúc và cảm nhận của riêng mình vào bản dịch. Dịch bài hát trong game như thế này còn thêm một yếu tố là tình cảm của mỗi người lúc chơi game nữa. Mình tìm thử một vài bản dịch có sẵn trên mạng, nhưng không hài lòng nên quyết định tự dịch lại, theo đúng cảm giác bản thân, đúng vốn tiếng Anh khá khẩm hơn xưa, và đúng câu chuyện tình yêu Julia và Laguna.

Bản dịch này có thể nghe hơi sến sẩm, nhưng mình tin nó truyền tải được đủ cảm xúc của nhân vật chính trong câu chuyện, một chuyện tình buồn, đẹp và dang dở.

Final Fantasy VIII vốn là về những chuyện tình buồn.

Whenever sang my songs
On the stage, on my own
Whenever said my words
Wishing they would be heard
I saw you smiling at me
Was it real or just my fantasy
You’d always be there in the corner
Of this tiny in little bar

Mỗi khi phải độc diễn trên sân khấu này, Mỗi khi cất lên tiếng hát này, lòng thầm mong sẽ có ai đó lắng nghe…
Em lại thấy anh mỉm cười với em.
Có thật không nhỉ, hay chỉ là em tưởng tượng?
Hoá ra anh vẫn luôn ở đó,
Một góc nhỏ quán rượu không tên này.

My last night here for you
Same old songs, just once more
My last night here with you?
Maybe yes, maybe no
I kind of liked it to your way
How you shyly placed your eyes on me
Oh, did you ever know?
That I had mine on you

Đêm cuối này là dành cho anh đấy,
Vẫn bài hát cũ, chỉ lần này nữa thôi.
Đêm cuối này dành cho em nhé,
Được không anh?
Em khá thích cách anh nhìn em đấy,
Trộm đưa mắt lén nhìn người ta…
À, mà anh biết gì không?
Em cũng đã từng trộm nhìn anh đó!

Darling, so there you are
With that look on your face
As if you’re never hurt
As if you’re never down
Shall I be the one for you
Who pinches you softly but sure
If frown is shown then
I will know that you are no dreamer

Anh, vậy là anh đây rồi!
Trông anh lúc nào cũng thế,
Như thể chẳng bao giờ biết đau,
Như thể chẳng bao giờ biết buồn,
Liệu em có thể đánh anh thật khẽ để tự nhủ,
Trán anh mà nhăn lại, tức là anh không phải trong mơ.

So let me come to you
Close as I wanted to be
Close enough for me
To feel your heart beating fast
And stay there as I whisper
How I loved your peaceful eyes on me
Did you ever know
That I had mine on you

Hãy để em đến bên anh đi,
Hãy để em đến thật gần anh,
Đủ gần để em cảm nhận được trái tim anh đang đập.
Đủ gần để em thì thầm, em yêu ánh mắt dịu dàng của anh dành cho em.
Anh có biết rằng, em cũng đã từng nhìn anh trìu mến như thế đấy.

Darling, so share with me
Your love if you have enough
Your tears if you’re holding back
Or pain if that’s what it is
How can I let you know
I’m more than the dress and the voice
Just reach me out then
You will know that you’re not dreaming

Anh à, hãy chia sẻ cùng em đi,
[Chia sẻ] Tình yêu nếu anh còn có đủ,
[Chia sẻ] Nước mắt nếu anh còn kìm nén,
Hay [chia sẻ] nỗi đau nếu nó còn tồn tại.
Phải làm sao để anh hiểu rằng em đâu chỉ là mỗi áo quần này, giọng hát này?
Đưa tay chạm vào em đi, anh sẽ thấy đây không phải giấc mộng đâu…

Seattle,
Ngày 22 tháng 7 năm 2019

Setup your own PaaS platform with Flynn on AWS

If you, by accident, fell in love with Heroku but cannot afford that lovely PaaS platform, then there is one alternative for you: Flynn.

Prepare AWS clusters

Flynn only works on Ubuntu 16.04 and 14.04
Let’s stick with free tier for now
Make sure you select 3 or more instances
Maximize disk with free tier, since Flynn would need quite a lot of disk space later
Mark these new instances for Flynn
Make sure both inbound and outbound rules are open for all traffic (to simplify the process)
Wrap it up
All done

Prepare Domain DNS

Map all AWS IP addresses with a (sub)domain via a single A record, in this case is app.domain.com

Install and configure Flynn

We have 3 nodes 18.223.112.52 (1), 18.223.124.4 (2), 18.224.213.225 (3). Among those 3, we need to pick one as a start node, I pick (1) in this case, it doesn’t matter at all.

# All 3 nodes
# Install 2G swap because free tier has only 1G memory per node which is way too small.
sudo dd if=/dev/zero of=/var/swapfile bs=1M count=2048
sudo chmod 600 /var/swapfile
sudo mkswap /var/swapfile
echo /var/swapfile none swap defaults 0 0 | sudo tee -a /etc/fstab
sudo swapon -a
# All 3 nodes
# Install Flynn
sudo bash < <(curl -fsSL https://dl.flynn.io/install-flynn)
# Only (1)
# Start a discover network for Flynn
sudo flynn-host init --init-discovery

# The output is something like this 
# https://discovery.flynn.io/clusters/09e7fdc4-36b3-4570-8c85-7dae8d0214d3
# Only (2) and (3)
# Connect the other nodes to Flynn discover network
sudo flynn-host init --discovery "https://discovery.flynn.io/clusters/09e7fdc4-36b3-4570-8c85-7dae8d0214d3"
# All 3 nodes
# Start Flynn service and check
sudo systemctl start flynn-host
sudo systemctl status flynn-host
# Only (1)
# Bootstrap Flynn completely
sudo CLUSTER_DOMAIN=app.domain.com flynn-host bootstrap --min-hosts 3 --discovery "https://discovery.flynn.io/clusters/09e7fdc4-36b3-4570-8c85-7dae8d0214d3"

# The output is something like this 
# 19:13:14.694228 check online-hosts
# 19:13:14.972591 require-env require-env
# 19:13:14.972697 resource-check resource-check
# 19:13:14.974356 run-app discoverd
# 19:13:15.836601 run-app flannel
# 19:13:16.310663 wait-hosts wait-hosts
# 19:13:18.823280 gen-random pg-password
# 19:13:18.823321 gen-random pg-password 4f314f651b8a0dec7d9d006837cb7401
# 19:13:18.823325 run-app postgres
# 19:13:19.904673 gen-random controller-key
# 19:13:19.904754 gen-random controller-key 995573d813b02540237682d62adb4674
# 19:13:19.904758 gen-random bootstrap-id
# 19:13:19.904776 gen-random bootstrap-id 5a83c7f4-0523-44c4-8628-f44e4b00533c
# 19:13:19.904778 gen-random dashboard-session-secret
# 19:13:19.904797 gen-random dashboard-session-secret 50161b5c1df3f57a5b1d6270e2d004dd
# 19:13:19.904800 gen-random dashboard-login-token
# 19:13:19.904814 gen-random dashboard-login-token dbc908d02187302c722e689ba9dec045
# 19:13:19.904817 gen-random name-seed
# 19:13:19.904830 gen-random name-seed ff06e10bf3626a4ee38c
# 19:13:19.904833 gen-random router-sticky-key
# 19:13:19.904847 gen-random router-sticky-key L47SR9RFb6DSdx5cbJvGq2P7WUakiyPvw+lb9YTX5Bk=
# 19:13:19.904850 wait postgres-wait
# 19:13:23.916243 gen-tls-cert controller-cert
# 19:13:24.890119 gen-tls-cert controller-cert pin: r0jVc/eHMfwiQiuzgcS7pWSvlvugv59F9DS0OemCl50=
# 19:13:24.890278 run-app controller
# 19:13:26.132221 wait controller-wait
# 19:13:27.168155 add-app controller-inception
# 19:13:27.283960 add-app postgres-app
# 19:13:27.318831 add-app flannel-app
# 19:13:27.353704 add-app discoverd-app
# 19:13:27.388183 scale-app scheduler-scale
# 19:13:27.398182 run-app scheduler
# 19:13:28.110145 create-artifact slugbuilder-image
# 19:13:28.237730 create-artifact slugrunner-image
# 19:13:28.861974 create-artifact redis-image
# 19:13:28.909479 deploy-app redis
# 19:13:29.677007 add-provider add-redis-provider
# 19:13:29.687853 gen-random mariadb-password
# 19:13:29.687915 gen-random mariadb-password 2aacaeca89699761dc78421e9c729c14
# 19:13:29.687919 deploy-app mariadb
# 19:13:30.268651 add-provider add-mysql-provider
# 19:13:30.290202 gen-random mongodb-password
# 19:13:30.290242 gen-random mongodb-password 3469202615cada26804c81c83d5f5790
# 19:13:30.290246 deploy-app mongodb
# 19:13:30.652266 add-provider add-mongodb-provider
# 19:13:30.665027 deploy-app blobstore
# 19:13:32.248566 deploy-app router
# 19:13:33.666438 deploy-app gitreceive
# 19:13:34.166675 gen-random docker-receive-secret
# 19:13:34.166720 gen-random docker-receive-secret 81dff0c1a0c99fdf4164a79e2eb4a03c
# 19:13:34.166725 deploy-app docker-receive
# 19:13:34.468126 wait router-wait
# 19:13:34.475664 add-route gitreceive-route
# 19:13:34.496660 add-route docker-receive-route
# 19:13:34.515959 add-route controller-route
# 19:13:34.529193 wait controller-route-wait
# 19:13:35.032273 deploy-app logaggregator
# 19:13:35.304439 deploy-app taffy
# 19:13:35.346020 gen-random status-key
# 19:13:35.346078 gen-random status-key a200a5e2c7bca402b1e3db42df73d1d1
# 19:13:35.346082 deploy-app dashboard
# 19:13:35.724640 add-route dashboard-route
# 19:13:35.738518 deploy-app status
# 19:13:36.051176 add-route status-route
# 19:13:36.057352 wait redis-wait
# 19:13:36.061212 wait mariadb-wait
# 19:13:36.063471 wait mongodb-wait
# 19:13:36.065504 wait blobstore-wait
# 19:13:36.081872 wait gitreceive-wait
# 19:13:36.082830 wait docker-receive-wait
# 19:13:36.086710 status-check status-check
# 19:13:36.310786 status-check status-check all services healthy
# 19:13:36.310797 cluster-monitor cluster-monitor
# 19:13:36.328490 log log-complete
# 19:13:36.328618 log log-complete 
# 
# Flynn bootstrapping complete. Install the Flynn CLI (see https://flynn.io/docs/cli for instructions) and paste the line below into a terminal window:
# 
# flynn cluster add -p r0jVc/eHMfwiQiuzgcS7pWSvlvugv59F9DS0OemCl50= default app.domain.com 995573d813b02540237682d62adb4674
# 
# The built-in dashboard can be accessed at http://dashboard.app.domain.com and your login token is dbc908d02187302c722e689ba9dec045
# Run this from your local machine
# Install Flynn CLI
L=/usr/local/bin/flynn && curl -sSL -A "`uname -sp`" https://dl.flynn.io/cli | zcat >$L && chmod +x $L
# Configure Flynn CLI
flynn cluster add -p r0jVc/eHMfwiQiuzgcS7pWSvlvugv59F9DS0OemCl50= default app.domain.com 995573d813b02540237682d62adb4674

It’a all done, you now can access your Flynn dashboard at http://dashboard.app.domain.com. You will need to download the self-signed SSL certificate that is generated by Flynn and enable it, just follow the instruction on webpage.

Important note: The self-signed certificate is for testing purpose only.

Install SSL certificate for Flynn

You’d need to acquire a valid SSL certificate, could be free or you can buy it. Make sure you use the wildcard (sub)domain name for that certificate. In this example, I used subdomain app.domain.com, so I need to register *.app.domain.com for that certificate.

You’d need to merge ca_bundle.crt into certificate.crt. You now have only 2 files certificate.crt and private.key

# Run this from your local machine, at the directory where you stored certificate.crt and private.key
# Replace the self-signed certificate with the actual certificate for some Flynn's system apps
flynn -a dashboard route update `flynn -a dashboard route | grep -Eo 'http/[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'` --tls-cert "certificate.crt" --tls-key "private.key"
flynn -a controller route update `flynn -a controller route | grep -Eo 'http/[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}'` --tls-cert "certificate.crt" --tls-key "private.key"
flynn -a router env set TLSCERT="$(cat certificate.crt)" TLSKEY="$(cat private.key)"