Facebook làm thế nào để tìm ra lỗi trong 100 triệu dòng code?

Facebook không quá nổi bật về khả năng bảo vệ quyền riêng tư và bảo mật, đặc biệt là một số lỗ hổng nghiêm trọng của họ đáng ra có thể tránh được. Dẫu vậy, với hàng tỷ người dùng và một nền tảng khổng lồ, thật khó để Facebook có thể phát hiện ra tất cả lỗ hổng trong 100 triệu dòng code của họ.

Vì thế, 5 năm trước, các kỹ sư của Facebook đã tạo ra một công cụ kiểm tra đặc biệt với khả năng tìm kiếm các lỗi đã biết và có thể quét toàn bộ codebase của Facebook trong vòng chưa tới 30 phút. Công cụ này giúp các kỹ sư của Facebook tìm ra vấn đề trong các chỉnh sửa, thay đổi hoặc tính năng mới trước khi tung chúng ra cho người dùng.

Zoncolan là công cụ check code lỗi nội bộ của Facebook
Zoncolan là công cụ check code lỗi nội bộ của Facebook

Công cụ có tên Zoncolan này được thiết lập để phân tích tĩnh, ánh xạ hành vi và chức năng của codebase và tìm kiếm các vấn đề tiềm ẩn trong các nhánh code riêng lẻ cũng như các tương tác của các phần khác trong chương trình. Rõ ràng là không thể dùng con người để tìm lỗi trong codebase dài gần như vô tận của Facebook. Tuy nhiên, với phương thức phân tích tĩnh, Zoncolan hoàn toàn đáp ứng được nhu cầu của Facebook.

Zoncolan đặt ra các quy tắc về kiến trúc hoặc code lỗi và tự động quét hệ thống để tìm ra các lỗi này ở nhiều mức độ khác nhau. Mỗi lần phát hiện ra lỗi, Zoncolan sẽ ghi nhớ và không bao giờ bỏ qua lỗi tương tự trong lần quét sau đó. Lý tưởng hơn, không chỉ đánh dấu các vấn đề tiềm ẩn, Zoncolan còn cung cấp cho các kỹ sư những phản hồi theo thời gian thực để họ rút kinh nghiệm, tránh mắc lại lỗi đó.

"Mỗi khi một kỹ sư của chúng tôi đề xuất xong một bản cập nhật cho codebase, Zoncolan sẽ bắt đầu chạy ngầm và nó sẽ báo cáo trực tiếp kết quả với kỹ sư đó hoặc nó sẽ gắn cờ những mã lỗi để báo cho các kỹ sư bảo mật có trách nhiệm vá lỗi", ông Pieter Hooimeijer, quản lý kỹ thuật bảo mật tại Facebook chia sẻ. "Vì thế, mỗi ngày Zoncolan chạy hàng nghìn lần và tìm thấy khoảng 1.500 lỗi trong năm 2018".

Không chỉ Facebook, các hãng khác cũng có giải pháp tương tự
Không chỉ Facebook, các hãng khác cũng có giải pháp tương tự

Công cụ phân tích tĩnh Zoncolan không tự tìm ra các lỗ hổng mới mà chỉ tìm ra các lỗi cũ dựa trên những quy tắc mà các kỹ sư đưa vào. Tuy nhiên, nó cực kỳ hữu ích để tìm ra các lỗi tương tự lặp đi lặp lại hoặc tìm ra một loạt lỗi khi một quy tắc mới được thêm vào.

Facebook không phải là hãng duy nhất sử dụng phương thức này. Các công cụ phân tích tĩnh đã được sử dụng rộng rãi trong cộng đồng bảo mật và ngành công nghiệp phát triển. Nhưng theo Hooimeijer, Zoncolan đặc biệt hiệu quả vì nó được xây dựng để ánh xạ toàn diện bộ code của Facebook. Ví dụ, đầu năm nay Zoncolan đã giúp Facebook phát hiện ra rằng họ vô tình lưu trữ hàng trăm triệu mật khẩu người dùng dưới dạng văn bản, không được mã hóa.

"Những năm trước, chúng tôi đã phải tập trung nhiều kỹ sư bảo mật cùng lúc để tìm code lỗi một cách thủ công khi có vấn đề xảy ra", Hooimeijer nói. "Nhưng sau đó, chúng tôi sử dụng Zoncolan để đảm bảo không có vấn đề phát sinh nào trong codebase có bản chất tương tự nhau. Chúng tôi đã tạo ra các quy tắc mới để tìm thấy những vấn đề có bản chất tương tự". 

Zoncolan có cách tiếp cận đặc biệt, phù hợp với việc săn các lỗ hổng bảo mặt trong khi các công cụ phân tích tổng quát khác lại tập trung nhiều hơn vào các lỗi thiết kế và hiệu suất. Nó cũng tập trung nhiều hơn vào các luồng dữ liệu và các mẫu có thể nhận biết nhằm giảm phát hiện sai. Google cũng đang có một công cụ phân tích tĩnh được phát triển để kiểm tra codebase với 2 tỷ dòng của họ.

Tuy nhiên, Zoncolan vẫn còn có những nhược điểm
Tuy nhiên, Zoncolan vẫn còn có những nhược điểm

Theo David Kennedy, CEO của công ty tư vấn ứng phó sự cố TrustedSec, Zonkolan vẫn có hạn chế của nó. Kennedy chỉ ra rằng Zoncolan không thể phát hiện ra vụ xâm phạm dữ liệu của 30 triệu tài khoản Facebook hồi tháng 9 năm ngoái. "Công cụ phân tích codebase như Zoncolan sẽ không phát hiện ra những vấn đề ấy", Kennedy nói. Và những vấn đề nghiêm trọng nhất của Facebook trong vài năm qua là các vấn đề bảo mật liên quan tới chính sách của công ty chứ không liên quan gì đến các lỗi code.

Hooimeijer cũng đồng ý rằng Zoncolan không phải là "viên đạn bạc", giúp giải quyết mọi vấn đề của Facebook. Tuy nhiên, ông cho rằng với sự đầu tư của Facebook, một ngày nào đó Zoncolan sẽ có sẵn như một công cụ mã nguồn mở cho cả những công ty, tổ chức khác. Các thuộc tính giúp Zoncolan trở nên hiệu quả trong việc tìm code lỗi trên Facebook có thể được khái quát để sử dụng rộng rãi.

Năm 2018, Facebook từng phát hành công cụ check mã có tên Pyre. Đây là công cụ mã nguồn mở được dùng để check lỗi cho ngôn ngữ Python. Hiện tại, Pyre chưa được cập nhật các chức năng và đặc tính của Zoncolan nhưng nó là ví dụ cho những gì Facebook có thể chia sẻ trong tương lai.

Thứ Tư, 29/07/2020 10:55
42 👨 12.586
0 Bình luận
Sắp xếp theo
    ❖ Chuyện công nghệ