Cách Facebook Phát Hiện Lỗi trong 100 Triệu Dòng Mã
Facebook không có một bản ghi về quyền riêng tư và an ninh đặc biệt ấn tượng, đặc biệt là khi nhiều lỗi nổi bật của nó có thể tránh được. Nhưng với tỷ tỷ người dùng và một nền tảng khổng lồ cần bảo vệ, không dễ dàng để bắt kịp mọi khiếm khuyết trong 100 triệu dòng mã nguồn của công ty. Vì vậy, bốn năm trước, các kỹ sư của Facebook bắt đầu xây dựng một công cụ đánh giá tùy chỉnh không chỉ kiểm tra các loại lỗi đã biết mà còn có thể quét toàn bộ mã nguồn trong vòng dưới 30 phút—giúp kỹ sư phát hiện vấn đề trong các điều chỉnh, thay đổi hoặc tính năng mới quan trọng trước khi chúng được triển khai.
Nền tảng này, có tên là Zoncolan, là một công cụ "phân tích tĩnh" có bản đồ hóa hành vi và chức năng của mã nguồn và tìm kiếm vấn đề tiềm ẩn trong các nhánh cụ thể, cũng như trong sự tương tác của các đường dẫn khác nhau qua chương trình. Việc đánh giá thủ công về thay đổi mã nguồn không ngừng là không thực tế ở quy mô lớn như vậy. Nhưng phân tích tĩnh mở rộng rất tốt, vì nó đặt "quy tắc" về kiến trúc hoặc hành vi mã nguồn không mong muốn và tự động quét hệ thống để tìm các lỗi loại này. Nhìn thấy nó một lần, bắt gặp mãi mãi. Lý tưởng nhất, hệ thống không chỉ đánh dấu vấn đề tiềm ẩn mà còn cung cấp phản hồi thời gian thực cho kỹ sư và giúp họ học cách tránh những nguy hiểm.
"Mỗi khi một kỹ sư thay đổi mã nguồn của chúng tôi, Zoncolan sẽ bắt đầu chạy ở nền, và nó sẽ báo cáo trực tiếp cho kỹ sư đó hoặc nó sẽ đánh dấu cho một trong những kỹ sư an ninh của chúng tôi đang làm nhiệm vụ," Pieter Hooimeijer, quản lý kỹ thuật an ninh tại Facebook nói. "Vì vậy, nó chạy hàng nghìn lần mỗi ngày và đã tìm thấy khoảng 1.500 vấn đề trong năm 2018."
Công cụ phân tích tĩnh không tự mình phát hiện ra các loại lỗ hổng mới; chúng chỉ có thể bắt gặp những vấn đề dựa trên các quy tắc mà chúng được chỉ đạo phải tuân theo. Nhưng chúng là một công cụ hữu ích để bắt gặp những loại lỗi giống nhau lần nữa, hoặc đào ngược một tập hợp lỗi từ một quy tắc mới duy nhất. Chúng cũng không độc đáo đối với Facebook; công cụ phân tích tĩnh được rộng rãi sử dụng trong cộng đồng an ninh và ngành công nghiệp phát triển rộng lớn. Nhưng Hooimeijer lưu ý rằng Zoncolan đặc biệt hiệu quả, vì nó được xây dựng tùy chỉnh để ánh xạ toàn diện mã nguồn cụ thể của Facebook. Hooimeijer nói rằng trước khi Facebook tiết lộ vào tháng 3 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 thường, công ty đã đưa một quy tắc về lỗi vào Zoncolan để quét mã nguồn để tìm kiếm những vấn đề tương tự có thể đang ẩn sau đó. Và tìm thấy một số.
"Bốn năm trước, chúng tôi sẽ phải nhanh chóng gọi một đội ngũ kỹ sư an ninh để bắt đầu lục soát mã nguồn một cách thủ công để tìm kiếm thêm vấn đề," Hooimeijer nói về sự cố. "Thay vào đó, chúng tôi đã sử dụng Zoncolan để đảm bảo không có vấn đề bổ sung nào trong mã nguồn của chúng tôi có tính chất giống nhau. Trong trường hợp này, chúng tôi đã tạo ra các quy tắc mới để tìm kiếm những vấn đề tương tự trong thực tế." Nguồn cảm hứng cho các quy tắc mới mở rộng khả năng phát hiện của Zoncolan đến từ nhiều nguồn trong Facebook, bao gồm chương trình thưởng lỗi của công ty.
Zoncolan có một cách tiếp cận được điều chỉnh đặc biệt để săn lùng lỗi bảo mật, so với các công cụ phân tích tĩnh tổng quát hơn tìm kiếm một loạt rộng lớn lỗi thiết kế và hiệu suất. Nó cũng tập trung vào luồng dữ liệu và mô hình có thể nhận biết, như một cách để giảm giảm số dương giả định điển hình của phân tích tĩnh. Tuy nhiên, Facebook không phải là công ty duy nhất tùy chỉnh một hệ thống theo ý muốn của mình; Google cũng có công cụ phân tích tĩnh được xây dựng tùy chỉnh riêng, đánh giá mã nguồn lớn 2 tỷ dòng của công ty.
"Bất kỳ công ty nào có một chu kỳ phát triển phần mềm tốt đều có bộ phân tích mã nguồn để đảm bảo họ loại bỏ những rủi ro trước khi chuyển sang sản xuất," nói David Kennedy, CEO của công ty tư vấn phản ứng sự cố doanh nghiệp TrustedSec. "Hầu hết các tổ chức chín chắn sử dụng công cụ phân tích mã nguồn tĩnh, vì nó là phương tiện quý giá nhất trong việc xác định những rủi ro đã biết. Tuy nhiên, nó không bao gồm mọi thứ."
Kennedy chỉ ra rằng một công cụ như Zoncolan sẽ không phát hiện ra những vấn đề quyền mà dẫn đến việc mất dữ liệu của 30 triệu tài khoản Facebook vào tháng 9. "Một công cụ phân tích mã nguồn sẽ không tìm thấy điều đó," ông nói. Và nhiều vấn đề nghiêm trọng nhất của Facebook trong những năm gần đây là vấn đề quyền riêng tư dựa trên chính sách không liên quan đến lỗi mã nguồn ngẫu nhiên.
Hooimeijer lặp lại rằng Zoncolan không phải là viên đạn bạch kim. Nhưng ông nói rằng với đầu tư mà Facebook đã đặt vào nền tảng, ông hy vọng một phiên bản của công cụ sẽ một ngày nào đó được cung cấp như một công cụ phân tích mã nguồn tĩnh nguồn mở để các tổ chức khác sử dụng. Những đặc điểm làm cho Zoncolan hiệu quả trong việc săn lùng lỗi trong mã nguồn của Facebook có thể chuyển thành một công cụ hữu ích rộng rãi. Nhưng trong một phiên bản nguồn mở dành cho việc chạy ngoài Facebook, công ty cũng cần xây dựng tính linh hoạt cho các môi trường đa dạng hơn.
Một bước tiến về mục tiêu này là công cụ kiểm tra mã gọi là Pyre mà Facebook công bố nguồn mở vào năm 2018 cho ngôn ngữ lập trình phổ biến Python. Công cụ không có phạm vi và tập trung an ninh đầy đủ của Zoncolan, nhưng là một ví dụ về loại tài nguyên mà Facebook có kế hoạch công bố.
"Chúng tôi đã đầu tư rất nhiều công sức vào việc xây dựng điều này, vì vậy đó là quỹ đạo: Zoncolan nhưng cho Python," ông nói. "Chúng tôi muốn chia sẻ sự tuyệt vời bên ngoài Facebook nữa."
Cộng đồng an ninh luôn hoan nghênh một công cụ nguồn mở chất lượng cao khác. Nhưng Facebook cần tiếp tục hoàn thiện mọi phòng thủ có sẵn để bắt kịp các vấn đề an ninh người dùng trước khi chúng trở nên nghiêm trọng.
Những bài viết tuyệt vời khác từ MYTOUR
- Một biển số xe "NULL" đưa một hacker vào địa ngục vé
- Đua nhau để trung hòa một loại men nấm siêu chết người
- Thăm nhà máy nơi Bentley thủ công những chiếc xe sang trọng của mình
- Làm thế nào để giảm bạo lực bằng súng: Hỏi một số nhà khoa học
- Nó Đến Từ Điều Gì Đó Khó Chịu đổ lỗi cho 4chan về Trump
- 👁 Nhận dạng khuôn mặt đột ngột xuất hiện khắp mọi nơi. Bạn có nên lo lắng không? Ngoài ra, đọc tin tức mới nhất về trí tuệ nhân tạo
- ✨ Tối ưu hóa cuộc sống gia đình của bạn với những lựa chọn tốt nhất từ đội ngũ Gear của chúng tôi, từ robot hút bụi đến đệm giá rẻ đến loa thông minh.
