Tôi đã đi Positive Hack Talks Hà Nội 2024, và đây là những điều tôi học được!

All images from this post are from Positive Technologies, unless otherwise noted. Thank you PT Security (@PTsecurity_EN on X) for permission to use these photos for non-profit, educational purposes.

Все фотографии в этом посте предоставлены компанией Positive Technologies, если не указано иное. Благодарим PT Security (@PTsecurity_EN на X) за разрешение использовать эти изображения в образовательных и некоммерческих целях.

29/11 vừa rồi là một ngày thứ 6… không được bình thường lắm. 6h tôi lồm cồm bò ra khỏi nhà để vào lớp học lúc 6h45 môn Lập trình Mạng tại trường Bách yêu dấu. Chỉ khác có một điều: Tôi phải thuyết trình báo cáo môn học. Nhanh, gọn, lẹ. Đồng đội tôi đã cắm đến 2h sáng để hoàn thành slide thuyết trình để cho tôi bây giờ lên nói (cảm ơn người anh em). Thầy cũng góp ý, chê chỗ a, chỗ b, chỗ c. Tôi gật đầu lia lịa, đối chất với thầy ít phút, ghi chép lại những thứ cần sửa, rồi về chỗ. Tôi vẫn còn nhớ như in, lúc đó là 7 giờ 20 phút sáng. Dạ em chào thầy. Em đi trước đây ạ. Nhớ như vậy là vì hôm nay có một thứ còn quan trọng hơn!

Sau đó không lâu, từ cổng Trần Đại Nghĩa, một cô “gơn phố” phóng xe vù vù ra đường. Cô nhắm thẳng tới Khách sạn Mövenpick Hà Nội. Cô cắp sách cắp bút đi học, từ những anh chị hacker mà cô vẫn hằng ước được gặp một lần, tại sự kiện Positive Hack Talks Hanoi 2024.

Lúc đầu chẳng hiểu tôi đọc lịch không kỹ sao đó, tôi cứ đinh ninh là sự kiện sẽ ngắn thôi, chỉ diễn ra trong một buổi sáng. Hoá ra nó kéo dài từ sáng tới chiều. Tôi đọc agenda xong mà lẩm bẩm nghĩ chắc sẽ vừa đói vừa mệt, nhưng dù sao cũng phải cố gắng mà nghe cho bằng hết. Kết cục? Các anh chị người Nga và Việt đã vừa tổ chức sự kiện cho tôi được đi học, họ lại còn bao tôi trọn gói đủ thứ thức ăn thức uống, trà bánh và buffet bữa trưa. Vừa no cái bụng, vừa đã cái đầu, tôi không có từ nào đủ để cảm ơn mọi người hơn nữa!

Mà sự kiện lại miễn phí các bạn ạ… Cái phí duy nhất có lẽ là chịu khó tìm thông tin, đăng ký, xác nhận, sắp xếp lịch và cày 20km đường để đến nơi cần đến. Aisss nhưng vì sự học những thứ này không là gì với tôi hết 🙂

Tôi thực sự không hối hận khi đã dành thời gian cả ngày thứ 6 hôm đó để tham dự sự kiện. Từng phút một, tôi được học và nói chuyện với những người thú vị. Và với bài blog này, tôi mong mình có thể chia sẻ phần nào trải nghiệm của mình và những bài học mà tôi đã rút ra, nhất là cho những bạn nào chưa có điều kiện tham gia.

https://phtalks.ptsecurity.com

Toàn bộ sự kiện bằng tiếng Anh, nên muốn nghe hiểu và đặt câu hỏi thì bạn phải có tiếng Anh nhé. Khoản đấy thì tôi không lo lắm. Tôi chỉ hơi buồn vì tiếng Nga của tôi chỉ dừng ở mức привет, Спасибо, với да, да, да, thành ra tôi chả tán được anh Nga nào.

Hieu Minh Ngo | Hack the Hackers: The Art of Blackhat Counterintelligence

Bài nói đầu tiên của anh Hiếu PC quá là hợp lý cho vị trí bài nói mở đầu. Bình thường đi “săn tìm” kẻ xấu cũng mệt mỏi lắm, nhưng anh Hiếu rất là biết cách kể chuyện. Trong 4-5 phần chính, anh đưa chúng tôi đi từ quá trình xuất hiện những nghi ngờ ban đầu, tới thu thập thông tin và xác định tên hacker anh đang theo dõi. Tôi nghe xong mà muốn mình giỏi mau mau để đi làm threat hunter…

Qua bài nói của anh, tôi có được một hình dung cơ bản về cách một threat hunter sẽ đi truy tìm những tên hacker như thế nào:

  1. Theo dõi tin tức, truyền thông, các vụ việc liên quan + Đặt nghi vấn và giả thuyết;
  2. Ghi chép lại các thông tin đã có và đang tìm kiếm được, phục vụ làm IOC và chứng cứ sau này;
  3. Tiếp tục tìm kiếm thêm từ những thông tin đã có (lặp lại mục 2 & 3 nếu cần);
  4. Xác định kẻ đứng sau vụ việc.
Sau bài nói này tôi chính thức đã simp anh Hiếu…

Kẻ mà anh tìm được là một bạn trẻ (sinh năm 2002?), anh đánh giá là cũng còn “gà”, chưa biết che giấu thông tin cá nhân. Dù sao nó cũng làm tôi hơi buồn, bạn giỏi vậy sao không viết blog chia sẻ, dạy đàn em chúng tôi học với, lại đi lừa người ta… Ngoài chuyện không biết “ăn vụng giấu mỏ”, hacker lỏ thường:

  • Tái sử dụng mã nguồn, hạ tầng, nền tảng… nào đó. Nếu có thay đổi thì chỉ là chút ít, kiểu như thêm vài ký tự phía sau chẳng hạn. Do đó đôi khi là cùng một mã hash, ta có thể truy vết họ ở rất nhiều nơi.
  • Sử dụng mã độc như một dịch vụ (Malware as a service): Tức là trả tiền để mua mã độc. Nhiều tiền thì mua được mã xịn còn không thì… kém xịn, có vậy thôi!

Một vài trang bạn có thể sử dụng trong quá trình làm thám tử: urlscan.io, netlas.io, CriminaIP, Sodan, urlquery.net, WHOIS, TgScanRobot (Telegram),… và những nguồn OSINT (Open Intelligence) khác, cứ tìm là có.

Anh Hiếu cũng nói thêm hacker giỏi thực sự thường đang ẩn náu ở những vùng như vùng “tam giác vàng”, họ hiểu lập trình và chả bao giờ bắt được họ.

Nikhil Shrivastava | Hacking BFSI systems: key learnings

Anh Niks này tôi tra ra cũng là một anh với profile rất khủng, làm “thợ săn tiền thưởng” toàn thời gian, vừa đi nói ở BLACKHAT MA về, giờ qua Việt Nam chơi với chúng tôi. Tôi cũng kỳ vọng một speaker BlackHat thì sẽ hay ho, nhưng có lẽ vì tôi còn thiếu hiểu biết về chủ đề, và cũng một phần do anh không được phép tiết lộ bên anh làm việc và hệ thống của họ, nên tôi gặp khó khăn trong việc theo dõi bài này.

Niks được một công ty mời vào kiểm thử phần mềm của riêng họ, và trong quá trình đó anh ấy nhận thấy phần mềm này có phụ thuộc vào một phần mềm khác đang được dùng trong rất nhiều hệ thống ngân hàng trên thế giới, bao gồm cả Việt Nam, có lỗ hổng bảo mật mà sau đó anh tìm ra.

Theo tôi, bài nói của Niks trong một câu ngắn gọn sẽ là “Một case-study về pentest ứng dụng doanh nghiệp”. Những lỗi mà anh tìm ra cũng là những lỗ hổng tôi đã được học: Reflected XSS, Persistent XSS, CSRF, IDOR, SQL Injection, Path Traversal, SSRF… Cái hay không phải tới từ từng lỗ hổng riêng lẻ, mà là cách anh suy nghĩ và đi từng bước để khai thác liên tục từ lỗ hổng này tới lỗ hổng khác.

Với mức độ mà tôi có thể hiểu, tôi rút ra được vài bài học:

  • Tuỳ phong cách pentest của bạn, nhưng Niks chọn tập trung vào tìm kiếm những lỗ hổng low-impact trước, mấy cái này hay bị ngó lơ hay bỏ qua;
  • Ở từng thời điểm, nhìn lại và xác nhận xem bạn đã có những quyền gì, và bạn có thể tiến tới đâu nữa?
  • Sáng tạo chút: Trong cái app của Niks, quyền (permission) của các tài khoản được cấp theo cơ chế load module tương ứng. Khi anh ấy cố để tạo một tài khoản admin, phiên được tạo nhưng module không được load. Anh đã nghĩ “Nếu như mình truy cập thẳng vào một module thì sao?” và phần sau đó thì bạn chắc cũng đoán ra được 🙂
  • Xác suất thành công khi tiến hành kiểm thử cơ bản sẽ cao hơn khi ta được mời làm việc với những ứng dụng doanh nghiệp riêng tư, những thứ vốn không được đưa lên public hay trên các nền tảng bug bounty.

Le An | How to Steal a Drone (Drone Hijacking)

Các anh VNPT Cyber Immunity năm nay có một highlight khá đáng chú ý là việc các anh thực hiện chiếm quyền điều khiển được drone. Lên cả trên báo. Drone này là một model nào đó đến từ Trung Quốc, tôi cũng không thực sự rõ.

Hồi đầu tháng 10, được trường cử đi Ngày hội Đổi mới Sáng tạo ở NIC Hoà Lạc, tôi cũng đã được một anh từ VCI kéo vào giới thiệu và giải thích với sự nồng nhiệt tự hào. Tiện thể anh bảo tôi, cân nhắc vào với VCI bọn anh đi em ha! Những gì anh nói là kết quả cuối cùng, còn tới Positive Hack Talks tôi mới được hiểu phần nào bản chất và nguyên lý đằng sau.

Về cơ bản thì việc các anh thực hiện được việc hack này tới từ việc khai thác một lỗ hổng của ExpressLRS bị các tác giả từ chối fix. ExpressLRS là radio link mã nguồn mở cho phép bạn thiết lập một kết nối radio giữa bên phát (transmitter) và bên nhận (receiver) trong dải 900 MHz – 2.4 GHz.

https://github.com/ExpressLRS/ExpressLRS

Lỗ hổng nằm ở cơ chế xác thực để kết nối giữa transmitter và receiver. Đầu tiên bạn lắng nghe tín hiệu được phát từ cặp drone-transmitter gốc. Từ đó bạn sẽ giải ngược ra những thứ ban đầu, rồi dùng cái đó để kết nối lại với transmitter của bạn. Tất cả những gì chúng ta cần là:

  1. 4 bytes CRC hợp lệ (bạn nào chưa biết CRC là gì hãy tự Google);
  2. Một kết nối tới drone, cụ thể ở đây được thực hiện bởi một bảng FHSS (Frequency-hopping spread spectrum). (Hiểu đơn giản là bạn truyền tín hiệu bằng cách cho tần số sóng mang nhảy liên tục giữa các tần số khác nhau trong một phổ tương đối rộng.)

Tôi không có nhiều kiến thức lắm về mảng xử lý tín hiệu, ngoài một học phần Nhập môn khá cơ bản, nên cũng không dám nói gì nhiều. Có từ khoá gì thì tôi chỉ hết cho bạn rồi đấy, ai hứng thú có thể tự tìm đọc thêm nhé. Không biết lỗ hổng tới giờ đã được vá chưa.

Riêng 4 bytes CRC kia, trong ExpressLRS đã luôn cố định sẵn 3 bytes đầu, việc các anh làm là đi brute force byte cuối cùng thôi. Viết script để đoán, so khớp, rồi chọn ra candidate là bảng CRC đúng nhất.

Một vòng nghía qua dự án này và tôi phát hiện ra nó hỗ trợ phần cứng với dòng vi xử lý Espressif hoặc STM32. Có thời gian chọc ngoáy là tôi và những người anh em tôi – đội theo module IoT khối ICT – cũng có thể hiểu được đấy. Nhưng thay vì học hack thì chúng tôi vẫn đang phải ngồi làm mạch tưới cây, mạch phát nhạc tò te tí các bạn ạ…

Tôi chẳng biết là do khán phòng nhiều người nhiều máy móc rồi bị nhiễu sóng, chồng sóng thế nào đó, hoặc là do lý do gì khác, các anh demo mãi mới được. Vì cũng là thực hiện trong phòng kín, nên cũng chẳng cho con drone bay tứ tung được mà buộc cái dây giữ cố định nó rồi minh hoạ bằng việc cho nó quay trái phải tại chỗ. Mặc dù là tôi ngồi ở hàng ghế đầu, nhìn rõ rồi, nhưng tôi thấy nó cũng không được trực quan lắm.

Những gì làm được hiện tại là lừa con drone kết nối vào với transmitter giả mạo, rồi “giết” con này bằng cách tiếp tục điều khiển nó bay lòng vòng cho tới lúc cạn pin. Khi hai con transmitter cùng cố gắng để kết nối tới drone, cách tiếp cận hiện tại là transmitter giả mạo cố gắng phát tín hiệu mạnh hơn transmitter thật. Nghe giống tấn công Evil Twin mạng WiFi quá ta!

Còn câu chuyện làm sao để giữ hẳn quyền kiểm soát (persistence), rồi đưa con drone đó làm nhiều thứ khác nữa, anh Ân bảo “đó là một câu chuyện cho một bài nói khác”.

Arseniy Sharoglazov | Practical Use Cases of Exploiting MS Exchange in External Penetration Tests

Không liên quan lắm nhưng trong những gì tôi quan sát được hôm đó thì anh Arseniy đúng là mô tả tiêu biểu cho một pentester sống đời introvert, một ngày nọ bị công ty đá đít bắt đi nói trước đám đông…

Cũng phải nói thật với bạn, ngồi nghe hết bài này đến bày khác, đến bài của anh Arseniy thì thực sự là tôi… cần đi vệ sinh. Đi xong ra chả hiểu sao đã tới phần kết bài, mặc dù tự cho là bản thân ngắm vuốt cũng không lâu lắm.

Bài nói của anh Arseniy có một điểm cộng lớn là được cấu trúc rất tốt, từng phần, từng bước một, nên bạn nghe mà không hiểu thì chỉ trách là bạn hoặc là “gà”, hoặc là không tập trung. Đây đúng là một cẩm nang về external pentest (kiểm thử từ bên ngoài mạng nội bộ).

Không biết là có xin được slide không nhỉ? Tôi không nhớ rõ tất cả các bước. Đầu tiên là câu chuyện quen thuộc tìm kiếm server và endpoint, sau đó thực hiện đoán username (User Enumeration) với Time-based NTLM, AutoDiscover V2, Classic SMTP… rồi đoán password (Password Spraying) bằng test policy cho một tài khoản, brute force với wordlist, dùng MS Sync thử shadow authen nếu sợ bị phát hiện…

Tôi hiểu về cơ bản là bạn tận dụng những thứ có sẵn của dịch vụ, đọc tài liệu (documentation) xem nó có những tính năng gì, rồi sáng tạo bằng cách nghĩ xem có thể dùng nó để thực hiện kiểm thử thế nào đó hay không.

Anh trai hơi shy có gửi cho một wordlist mà anh đã thực hiện brute force thành công có tên là “dodgypass.txt”, tôi bới GitHub của anh chàng mà chẳng tìm thấy. Chắc lại để private rồi.

Chìa khoá của thành công của anh được anh nhắn nhủ trong 1 từ khoá “1st mover advantage”, hiểu nôm na là “lợi thế của kẻ đi đầu”. Trước một hệ thống, chưa ai nghĩ tới kiểm thử dịch vụ MS Exchange, ta có thể thử xem sao? Từ đó, ngay cả khi ta đi một con đường tấn công thông thường (typical attack path), ta vẫn có thể có xác suất tìm ra thứ gì đó.

Kien Tran Trung | Empowering Malware Analysis with IDA AppCall Feature

Nếu phải nói cảm nhận của tôi về bài nói của anh Kiên trong 1 status thì nó hẳn sẽ là cái này:

Rất xin lỗi anh @m4n0w4r nhưng thực sự là em không hiểu gì ạ…

Nói “không hiểu gì” thì cũng không đúng lắm, cái hiểu của tôi như một mảnh vải rách đụp nhiều chỗ, muốn vá chắc phải bổ túc phân tích mã độc thêm vài tháng nữa.

Chỉ tay mấy cái đứa không hiểu gì này!

Để hiểu cách thức hoạt động của mã độc, thường chúng ta sẽ cố gắng tìm ra chuỗi những hành vi thâm nhập của nó (Injection Chain). Có 2 cách:

  1. Bạn cố gắng đọc code, hiểu logic của một hay nhiều hàm. Sau đó viết code để cài đặt lại (reimplement) những logic này bằng một ngôn ngữ lập trình bậc cao.
  2. Bạn lười. Hãy dùng IDA AppCall 🙂

Về tổng quan, anh ấy cho chúng ta 2 phần chính: Phần 1, giới thiệu về IDA AppCall và cơ chế hoạt động của tính năng này; Phần 2, minh hoạ cách sử dụng tính năng đó qua 2 trường hợp cụ thể khi anh phân tích 2 mẫu mã độc khá nổi tiếng: LokiBot và Emotet.

Để sử dụng tính năng này, bạn cần có được prototype của một hàm và một callable object (tôi xin phép dừng dịch ra tiếng Việt vì đã quá mệt mỏi…), rồi sau đó đặt breakpoint, gọi tới đối tượng này. Sau khi làm những bước lằng nhằng đó thì IDA sẽ cho phép bạn gọi hàm như thể đó là hàm built-in. Hiểu đơn giản thì bạn theo dõi được là mã độc này gọi tới hàm nào, rồi lại gọi tới hàm nào, cho bạn hình dung ra là nó đang định làm gì.

Sau đó là ví dụ cụ thể để sử dụng tính năng này với việc phân tích LokiBot và Emotet. Tôi chả nhớ gì ngoài việc Emotet có một biến thể là FatEmotet (Emotet béo!) khi hacker thực hiện padding bằng một mớ null byte, khiến cho các file DLL nặng khủng khiếp để bypass kiểm tra của sandbox. Slide rất nhiều meme (vui), hỏi đáp bằng tiếng Việt vì anh Kiên đã quá mệt mỏi (những anh trai thư giãn…), còn tôi thì ngồi đó ngờ nghệch (vì chả hiểu gì lắm).

Đấy, cao siêu thế, tôi hiểu lõm bõm được có vậy thôi. Anh Kiên nói thế nào mà tôi chỉ thấy… buồn cười, cười được trong khi mất gốc. Anh chị em nào hiểu được nhiều hơn xin phép chỉ giáo cho em nó với ạ!

Ảnh chụp bởi tác giả. Slide cuối cùng, cũng là lời nhắn nhủ của anh Kiên, như một cú tát vào mặt cho tôi tỉnh ngộ khi đã trót dại chọn phân tích mã độc làm nghiên cứu đồ án tốt nghiệp.


Bữa trưa: Review ngắn nhà hàng Mangosteen

Sau 5 bài nói hại não của buổi sáng, chúng tôi nghỉ đi ăn trưa.

Lúc đầu tôi cũng hơi lo sợ, sự kiện kéo dài cả ngày mà không rõ là ăn uống thế nào, tôi thủ sẵn cho mình cái bánh mì mua vội ở cổng trường. Rồi sau đó tôi nhận ra là mình đã lo thừa. Check-in xong, các chị gửi tôi thẻ khách cùng với voucher ăn trưa. Cha mẹ ơi trưa nay con không đói 🙂 Vậy là tôi đi ăn thôi.

Tôi đánh giá là cái menu buffet của nhà hàng Mangosteen hôm đó cũng ở mức cơ bản. Không biết ai lên menu nhưng tôi thấy nói chung là cũng chu đáo: Có cả đồ Âu và đồ Việt, không sợ ai bị đói hay không hợp khẩu vị. Nói nhỏ: Tôi đã từng đi những nơi người ta kém tinh tế đến độ để cả menu là đồ của một nước duy nhất trong khi người tham gia đa quốc tịch. Tôi ăn plant-based cũng vẫn lựa được đồ. Các chị phục vụ và đầu bếp cũng chu đáo, quản lý còn đi đôn đốc dọn dẹp nữa. Tôi không định chuyển việc từ hacker lỏ thành quản lý chuỗi F&B trong tương lai gần đâu, chỉ là thích luyện óc quan sát chút thôi.


Sergey Temnikov | CosmicSting: Unveiling one of the Largest E-Commerce Exploit — Vulnerability Discovery, Live Demo and Security Impact

Cái làm hành trình của Sergey dở khóc dở cười, đó là khi anh tìm ra bug thì bên Adobe chấm điểm CVSS rõ thấp, lúc đầu còn không có ý định fix. Anh kể một câu chuyện mà bug hunter nào cũng đồng cảm: Gửi báo cáo, 1 tháng sau có câu trả lời đầu tiên, trả lời và giải thích thêm cho họ, 3-4 tháng nữa mới có phản hồi tiếp theo. Bẵng đi một thời gian chả có gì. Xong tới cuối năm tự dưng họ lại ngoi lên. Có thêm một ai đó cũng vào báo cái bug tương tự. Bạn lại phải tiếp tục đào lại làm tiếp…

Xong đùng một cái, một ngày nọ khi bạn đang lướt báo, bạn nhận ra chiếc CVE “nho nhỏ” bạn submit mùa xuân năm ngoái giờ đây đã được đặt tên! Một cái tên hẳn hoi, mà nghe cũng ghê gớm ra trò. CosmicSting, nghe đã thấy đau. CVSS của nó giờ là 9.8! Người ta gửi bạn tiền (cũng nhiều hehe), vá lỗ hổng, và thế là… phew, hết chuyện.

Chuyện chính đây. Sau đây là phần mào đầu của anh Sergey, phiên bản Việt hoá cung cấp bởi bạn Tiểu Phương.

Tôi không biết các bạn thế nào, nhưng Sergey tôi thì thích chọn target nào nó dễ dễ thôi. Tôi có 3 tiêu chí: Thứ nhất là mã nguồn mở, vì tôi muốn đọc được code bên trong. Thứ hai là ứng dụng server app. Thứ ba là cài cắm nhanh gọn, 1-click install, cứ tải về rồi ấn “Next”, “Next”, “Next”, thế cho nhàn.

Target thì có thể được liệt kê trong bug bounty, hoặc tới trực tiếp từ các vendor. Cái này thì tuỳ.

Sau khi xác định được mục tiêu rồi thì tôi tìm xem có những gì đã được xây dựng với công nghệ đó, và bắt đầu test chúng. Lần này tôi chọn nền tảng Magento. Tôi nhận ra là đã có vô vàn những trang web bán hàng trực tuyến được xây trên Magento và Adobe Commerce, hay quá, vậy là tôi chọn một trang này để kiểm thử.

Demo của Sergey là cái demo ổn nhất trong số những minh hoạ của ngày hôm đó. Anh định biểu diễn 2 script Python, cái đầu chạy song cái sau lỗi không dịch được nên anh quyết định thôi. Căn bản vì cái script thứ hai này anh chưa kiểm tra lại. Bài học ở đây là luôn phải test demo trước khi thuyết trình múa code nhé các bạn 🙂

Bạn có thể đọc thêm về lỗ hổng này ở: https://sansec.io/research/cosmicsting. Hay tuyệt vời.

Kseniia Naumova | Stratocaster: How we automated the routine search for unknown malware in the network traffic

Bài nói của Kseniia là bài nói giới thiệu công cụ của Positive Technologies, không vì mục đích thương mại mà vì mục đích nghiên cứu đơn thuần.

Strastocaster là công cụ lưu hành nội bộ, được xây dựng với mục đích nghiên cứu riêng cho PT Security. Kseniia bảo các chị cũng không có ý định đưa nó ra thị trường hay tích hợp với bên thứ ba nào khác ở thời điểm hiện tại.

Vì tôi cũng đang phải làm công cụ hỗ trợ phân tích mã độc nên tôi nghe với 200% sự tập trung.

Đội nghiên cứu của Kseniia có nhiệm vụ cần phải tìm kiếm mã độc trong những gói tin mạng (.pcap), và họ mong muốn tự động hoá quy trình đó, nên họ đã viết công cụ này. Bắt đầu bằng việc xác định quy trình bình thường họ thực hiện, sau đó tiến hành tự động hoá, từng bước, từng bước một.

  1. Thu thập file PCAP từ nhiều nguồn khác nhau;
  2. Tiến hành thực hiện một loạt các công đoạn: Parsing, Detecting, Collecting, Decrypting, Fuzzy hasing.
  3. Dựng nên các hàm autocorrelation, vẽ Bigram marking rồi dùng học máy để phân tích những hình ảnh này nhằm xác định xem có mã độc hay không.
Tôi mong một ngày tôi vừa xinh vừa giỏi như chị ấy… Đi một ngày đàng gặp cả nùi người xịn mà.

Cuối bài tôi giơ tay đặt câu hỏi. Tôi chẳng biết là vì lý do bí mật hay chị đang hơi run trước đám đông mà chị cứ trả lời lòng nhà bà vòng, tôi nghe mà không thoả mãn lắm. Cũng vì thời gian có hạn, sau khi tôi giơ tay nói tự dưng 2-3 anh em khác cũng đặt câu hỏi, mà ông anh MC người Nga ngồi kè kè bên cạnh tôi kiểu “Quà của mày đây. Cảm ơn vì câu hỏi.” vẻ thúc giục, tôi cũng chẳng muốn hỏi dài dòng thêm nữa.

Sergei Ignatov | Rock (Paper Scissors) Chip: bypassing secure boot on recent RK devices

Về mặt thẩm mĩ mà nói thì slide của anh Sergei xứng đáng nhận được điểm 10 trong mắt tôi. Thiết kế đẹp, chữ to, rất cô đọng, không một mớ thông tin đọc muốn loạn thần. Với tôn chỉ thiết kế slide để nó được phục vụ như một cái slide đúng nghĩa, tôi nghĩ tôi và anh sẽ là những người bạn hợp cạ.

Bài nói duy nhất trong ngày liên quan nhiều tới phần cứng. Trước khi đi vào các attack surface, Sergei giảng một thôi một hồi về khái niệm Root of Trust, quá trình thiết lập sự tin cậy vào giây phút một hệ thống được bật lên. Nghe rất là hay ho – Apple, Intel, AMD,… mỗi bên lại có quá trình xác thực riêng.

Phương pháp của Sergei là tìm hiểu về quá trình đó, kiếm thêm về những khai thác sẵn có, và đặt câu hỏi: Chúng ta có thể khai thác Ở ĐÂU trong quá trình này nhỉ?

Tôi ngồi cười hềnh hệch với Sergei cái đoạn anh nói Baud Rate 1,500,000. Đúng là lập trình viên, thiết kế hệ thống,… thì cũng là con người. Con người thì có lúc hài hước, lúc lười, và lúc cả hai thứ này cùng tới một lúc. Thần giao cách cảm sao đó, anh cũng nhìn tôi mà cười nhăn nhở, từ phút đấy anh nói gì là tôi hiểu =)))

3 bài học mà tôi rút ra:

  1. Đọc tài liệu, đọc tài liệu, và đọc tài liệu. Con chip mà anh nghiên cứu, chẳng hiểu vì lý do nào mà tài liệu lồ lộ trên Internet với một cái watermark rất to “Confidential”. (cười) Mọi thứ chúng ta cần chủ yếu là ở đó. Làm phần cứng mà, manual và datasheet là người bạn thân. Tìm đi nhé.
  2. Nếu không có tài liệu thì sao? Chưa chắc là không thể. Thường những chip mới được xây dựng trên nền cải tiến các thế hệ cũ, chứ không ai sáng chế lại cái bánh xe. Chìa khoá là biết thứ bạn đang nghiên cứu được xây trên cái gì, rồi nghiên cứu cái-gì-đó đó để khai thác. Nếu nó là mã nguồn mở thì bạn ơi, bạn may mắn lắm rồi đó.
  3. Phần nhiều trong thứ này cũng là có may mắn: Đúng thứ, đúng thời điểm, đúng nơi. Cách duy nhất ta có thể làm là thử thật nhiều (nguyên văn: “Do, do, do”), và với nhiều kinh nghiệm hơn, ta sẽ làm được, đoán ra được nhiều thứ.

Nghe bài nói của Sergei mà tôi thấy cứ như ngồi ôn tập môn Kiến trúc Máy tính với môn Hệ điều hành. Tuy nhiên, một điều mà sau đó khi nói chuyện với những anh em người Việt ở hội thảo mà tôi đồng ý, đó là các bạn nước ngoài rất chịu khó đào sâu suy nghĩ, học hiểu những cái khó nhưng nền tảng, cùng với dành thời gian nghịch ngợm và thử nghiệm rất nhiều. Rồi sau đó? Họ chia sẻ, dạy lại cho người khác. Quá trình ấy làm nên cái giỏi của họ, một điều mà chắc chắn thế hệ trẻ chúng tôi cần học tập.

Đây cũng là bài nói cuối cùng trong ngày, khi diễn giả cuối cùng trong lịch – anh Cocomelonc – đáp xuống Hà Nội nhưng không ai biết tăm tích anh ở đâu. Mạnh dạn đoán anh đã đi đá bát phở bò, làm cốc trà đá, và quên mất mục đích ban đầu mình tới đây…

Kết

Sau khi hết giờ thì tôi còn được bắt chuyện với một vài bạn nam (các bạn nữ về hết rồi, hic!) và các anh, gặp được nhiều người rất là giỏi. Cộng đồng bảo mật công nhận là nhỏ xinh, đi đến đâu cũng gặp những người quen.

Đi những sự kiện thế này, vui nhất là được học, vui nhì là được cái hay, cái giỏi, lời động viên của mọi người làm mình mong muốn tiến bộ hơn nữa. Cộng đồng, cho dù trong lĩnh vực nào, thực sự rất quan trọng đối với sự phát triển của từng cá nhân. Tôi mong sao Việt Nam sẽ còn nhiều những sự kiện như thế này, bây giờ hẵng vẫn còn ít quá! Lúc nào có gì đó bạn hãy mách tôi với, tôi sẽ đi và viết note cho anh em 😀

Giờ thì tôi đi nhỏ mắt, tiếp tục phân tích mã độc đây…

In