Fuzzing vốn không phải là kỹ thuật mới mẻ đối với người làm công tác kiểm thử an toàn phần mềm. Tuy nhiên, có lẽ không phải bất cứ ai hiểu rõ về fuzzing cũng nhìn thấy tầm quan trọng của công tác này. Vừa qua, Dmitri Vjukov - một chuyên gia phân tích, phát hiện lỗ hổng của Google đã chia sẻ trên Tạp chí Hacker (Nga) một số thông tin thú vị về việc fuzzing tại Google. Qua những chia sẻ của anh có thể thấy được tầm quan trọng của fuzzing trong kiểm thử phần mềm nói chung và vai trò của nó đối với gã khổng lồ Google nói riêng. Danh xưng "tôi" trong bài báo dưới đây chính là Dmitri Vjukov - tác giả bài viết gốc.
Tại sao fuzzing lại được sử dụng ở Google?
Ngày nay, công nghệ cho phép phát triển phần mềm với tốc độ nhanh hơn, vì thế mà lượng code chúng tôi có là rất lớn. Tính chính xác của code là rất quan trọng và tính ổn định cũng thế, nhưng tính an toàn càng quan trọng hơn và phải ở vị trí số 1. Thị trường hiện nay yêu cầu công việc phải được giải quyết một cách nhanh chóng, nhưng bất kỳ công ty nào cũng phải kiểm soát được chi phí sản xuất. Do vậy, không thể tăng tốc công việc bằng cách thuê nhiều nhân công hơn; mà thị trường lao động hiện nay không đáp ứng được số lượng lớn lao động có trình độ chuyên môn cao như đòi hỏi của Google.
Trong hoàn cảnh này, giải pháp kiểm thử truyền thống không còn phù hợp và không bắt kịp tốc độ tăng số lượng code. Vì thế, việc chuyển sang kiểm thử tự động bằng fuzzing là điều dễ hiểu. Để thực hiện điều này, chúng tôi kêu gọi các chuyên gia (developer) phát triển các bài kiểm tra để bổ sung vào tập hợp các bài kiểm tra thử nghiệm khác.
Hiện tại, chúng tôi triển khai OSS-Fuzz trên các server của mình. Đây là một hệ thống liên tục thực hiện fuzzing cho ác dự án nguồn mở. Đến nay, đã có hơn 200 dự án tham gia chương trình này. Nếu như bạn có một sản phẩm nguồn mở với lượng người dùng đông đảo, bạn có thể tham gia vào OSS-Fuzz. Bạn chỉ cần cung cấp fuzzer cho chúng tôi cùng chỉ dẫn để biên dịch phiên bản mới nhất, chúng tôi sẽ cung cấp cho bạn dịch vụ hosting trên cluster để thực hiện tìm kiếm lỗi.
Tiến trình Fuzzing sử dụng OSS-Fuzz
Trong năm 2017, OSS-Fuzz đã giúp phát hiện ra hơn 2.000 lỗi trong 16 dự án mã nguồn mở khác nhau. Hiện nay, số lượng dự án đã tăng lên hơn 3 lần, còn số lượng lỗi đã được phát hiện thì vượt quá 10.000 lỗi. Trong số những lỗi tìm được, thì có khoảng 35% là những trường hợp bất thường được phát hiện theo cách Sanitizer UBsan, khoảng 15% là lỗi liên quan đến bộ nhớ và tràn bộ đệm và hơn 10% là những lỗi có bản chất rất khác nhau.
Ngoài ra, chúng tôi còn có ClusterFuzz dành riêng để fuzzing cho Chromium. Đến nay, hệ thống này bao gồm hơn 350 fuzzer; phần lớn trong số đó là dựa trên libFuzzer và AFL, nhưng cũng có những fuzzer hoàn toàn chuyên biệt.
Chúng tôi cũng nỗ lực khuyến khích sử dụng fuzzing ngoài phạm vi Google thông qua các hoạt động như: tổ chức cuộc thi fuzzing, tổ chức tuần lễ fuzzing, trình bày các báo cáo về fuzzing ở các hội nghị khác nhau.
Có lần tôi đã tự hỏi: tổng cộng chúng tôi đã phát hiện được bao nhiêu lỗi nhờ fuzzing? Năm 2017, con số này là khoảng 15.000. Tôi không rõ đó là do code của chúng tôi quá tồi hay là do các fuzzer hoạt động quá hiệu quả!
Trên đây là đôi nét về việc fuzzing ở Google, hi vọng qua đây những người làm an toàn thông tin, đặc biệt là các bạn sinh viên, sẽ có thêm động lực để theo đuổi lĩnh vực rất khó là phát hiện lỗ hổng phần mềm.
Nguyễn Tuấn Anh
Tạp chí Hacker số 05 (242) 2019
14:00 | 03/07/2019
15:00 | 02/07/2019
14:00 | 26/06/2019
10:00 | 29/03/2024
Một dịch vụ lừa đảo mới có tên là Darcula sử dụng 20.000 tên miền để giả mạo thương hiệu và đánh cắp thông tin xác thực từ người dùng Android và iPhone tại hơn 100 quốc gia thông qua iMessage.
07:00 | 11/03/2024
Mới đây, các nhà nghiên cứu của hãng bảo mật Kaspersky (Nga) đã phát hiện một Trojan ngân hàng tinh vi mới đánh cắp thông tin tài chính nhạy cảm có tên là Coyote, mục tiêu là người dùng của hơn 60 tổ chức ngân hàng, chủ yếu từ Brazil. Điều chú ý là chuỗi lây nhiễm phức tạp của Coyote sử dụng nhiều kỹ thuật tiên tiến khác nhau, khiến nó khác biệt với các trường hợp lây nhiễm Trojan ngân hàng trước đó. Phần mềm độc hại này sử dụng trình cài đặt Squirrel để phân phối, tận dụng NodeJS và ngôn ngữ lập trình đa nền tảng tương đối mới có tên Nim làm trình tải (loader) trong chuỗi lây nhiễm. Bài viết này sẽ phân tích hoạt động và khám phá khả năng của Trojan ngân hàng này.
09:00 | 01/02/2024
Một lỗ hổng nghiêm trọng trong giao diện dòng lệnh (CLI) của Jenkins cho phép kẻ tấn công lấy được các khóa mật mã có thể được sử dụng để thực thi mã tùy ý từ xa.
09:00 | 25/12/2023
Các nhà nghiên cứu tại công ty an ninh mạng Elastic Security Labs (Singapore) cho biết đã phát hiện các kỹ thuật mới được sử dụng bởi phần mềm độc hại GuLoader để khiến việc phân tích trở nên khó khăn hơn. Một trong những thay đổi này là việc bổ sung các ngoại lệ vào tính năng VEH (Vectored Exception Handler) trong một chiến dịch tấn công mạng mới đây.
Năm 2024, các tác nhân đe dọa được dự báo sẽ tận dụng sức mạnh của trí tuệ nhân tạo (AI) để thực hiện các hoạt động lừa đảo một cách thông minh hơn. Bằng việc sử dụng công nghệ AI tạo sinh, chúng có thể tạo ra các chiến thuật tấn công mới, khó phát hiện và kiểm soát.
16:00 | 18/05/2024