Những gã khổng lồ công nghệ như Google, Microsoft và Apple đều biết làm thế nào để bảo mật đúng cách. Họ đầu tư vào công nghệ, quy trình và con người tốt nhất để đảm bảo rằng nhóm kỹ thuật của họ tạo ra phần mềm bảo mật.
Giờ đây, họ đang chia sẻ các phương pháp kỹ thuật bảo mật sản phẩm của mình. Ví dụ, Michal Zalewski, trước đây là giám đốc bảo mật sản phẩm tại Google và hiện là Phó giám đốc bảo mật tại Snap, có một bài đăng hấp dẫn trên blog với những suy nghĩ về cách quản lý các nhóm bảo mật sản phẩm. Trung tâm phản hồi bảo mật của Microsoft có một blog nơi các thành viên trong nhóm thường xuyên chia sẻ ý tưởng về cách cải thiện bảo mật.
Điều gì tạo nên sự khác biệt của các tổ chức kỹ thuật phần mềm lớn nhất và sáng tạo nhất ? Dưới đây là năm cách tiếp cận để thay đổi thực hành bảo mật của bạn và cải thiện tư duy cũng như cách nhìn của bạn về bảo mật. Những điều này không đòi hỏi bạn phải đầu tư giống như các đại gia công nghệ thường làm.
API an toàn hơn để ngăn chặn các lỗ hổng
Phòng bệnh tốt hơn chữa bệnh và lý tưởng nhất là bạn không được để mình mắc phải một số sai lầm phổ biến. Ví dụ, lỗ hổng cross-site scripting (chèn mã độc thông qua các đoạn script) phổ biến có thể tránh được bằng cách sử dụng hiệu quả tính năng tự động loại bỏ theo nhận biết ngữ cảnh. Tương tự như vậy, tiêm mã SQL (SQL Injection) có thể tránh được nếu bạn từ bỏ khả năng chạy dữ liệu chuỗi tùy ý như truy vấn trên một cơ sở dữ liệu; thay vào đó, bạn nên sử dụng một API bị hạn chế để xây dựng các truy vấn một cách có cấu trúc - ví dụ như các câu lệnh đã được chuẩn bị sẵn.
Phát hiện các lỗ hổng tại Time Zero
Sai lầm vẫn có thể xảy ra ngay cả với các API an toàn được thiết kế hoàn hảo. Do đó, điều quan trọng là phải liên tục chạy các phân tích để phát hiện ra những sai lầm này trước khi nó trở thành vấn đề. Thời điểm hoàn hảo để làm điều đó là tại thời điểm xem xét và đánh giá mã: gần với thời gian bằng 0 để nhà phát triển có thể tập trung vào các thay đổi mã liên quan và họ vẫn có đủ thời gian để chạy phân tích sâu. Trong bài viết giải thích các điều kiện tiên quyết để thành công của nhóm phân tích mã Google, nhóm đã chỉ ra điều quan trọng nhất là tạo ra các phân tích mới được đóng góp từ cộng đồng, mọi người sẽ cùng tham gia xây dựng những tiêu chuẩn mã hóa tốt và an toàn, cập nhật các phân tích khi các lớp lỗ hổng mới được phát hiện.
Xác định các điểm mù mới bằng việc sử dụng Red Team và tấn công giả
Để xác định các điểm mù, hãy sử dụng đội đỏ Red Team nội bộ (nhóm hacker mũ trắng đảm nhận công việc tấn công để tìm kiếm những lỗ hổng bảo mật và giúp công ty vá lỗi trước khi chúng trở thành mục tiêu của kẻ gian thật sự) để thực hiện các các cuộc tấn công “giả” hoặc thuê một công ty bên ngoài để tấn công các hệ thống của bạn. Đó là một sự đầu tư, và nó có thể “bắt” được những vấn đề khó có thể phát hiện một cách bình thường. Các chương trình trao thưởng cho các tổ chức/cá nhân phát hiện ra lỗi bảo mật, chẳng hạn như các chương trình do BugCrowd và HackerOne quản lý, có thể có hiệu quả trong việc tìm ra các điểm mù của bạn. Tuy nhiên, đó là một sự lãng phí tiền bạc nếu bạn không thực hiện các phương pháp tự động và rẻ hơn để vá vào các lỗ hổng xuất hiện một cách rõ ràng trước đó. Trên thực tế, những tiến bộ trong trí thông minh nhân tạo giúp nó có thể áp dụng một số kỹ thuật mà những người thử nghiệm hàng rào bảo mật chuyên nghiệp sử dụng một cách tự động - dịch vụ Phát hiện Rủi ro An ninh của Microsoft là một ví dụ, nó tự động tìm thấy điểm mù, hãy loại bỏ chúng bằng cách tạo phân tích mã mới.
Làm cho việc khai thác lỗ hổng trở nên cực kỳ khó khăn
Bạn không thể ngăn chặn tất cả các lỗ hổng bảo mật vì vậy bạn phải chuẩn bị cho điều tồi tệ nhất, đảm bảo rằng ngay cả khi các lỗ hổng ở đó, chúng vẫn rất khó khai thác. Một khu vực được phát triển mạnh mẽ là một khu vực di chuyển mục tiêu phòng thủ: bố trí mã ngẫu nhiên để kẻ tấn công khó có thể tìm ra cách khai thác các điểm yếu trong mã. Ví dụ, ngẫu nhiên hóa sơ đồ không gian địa chỉ (Address space layout randomization - ASLR) được sử dụng làm bảo vệ bổ sung trong Windows và Android.
Cấu trúc tổ chức: Nhóm bảo mật sản phẩm
Cho đến nay, chúng ta đã xem xét các biện pháp kỹ thuật, nhưng cơ cấu tổ chức cũng rất quan trọng. Một chủ đề phổ biến ở các công ty phần mềm tốt nhất là không có sự tách biệt tuyệt đối giữa bảo mật và kỹ thuật: Cả hai đang làm việc cùng nhau, luôn tìm kiếm cơ hội để tự động hóa chuyên môn bảo mật và tích hợp nó vào luồng công việc của nhà phát triển. Ví dụ, khi giám đốc an ninh của Facebook, Alex Stamos, từ chức, tờ New York Times đã trích dẫn một bản ghi nhớ nội bộ rằng nhóm bảo mật không còn hoạt động độc lập nữa mà sẽ làm việc chặt chẽ hơn với các nhóm kỹ thuật và sản phẩm.
Xu hướng này có tên: nhóm bảo mật sản phẩm. Thông thường, nhóm này tồn tại trong tổ chức kỹ thuật, báo cáo trực tiếp cho giám đốc bảo mật thông tin (CISO- Chief Information Security Officer), nếu chức vụ đó tồn tại. CISO bao quát toàn bộ bảo mật CNTT còn nhóm bảo mật sản phẩm chỉ chịu trách nhiệm về các sản phẩm đang được phát triển nội bộ.
Hậu quả của việc không di chuyển nhóm bảo mật sản phẩm vào nhóm kỹ thuật có thể rất xấu: Đội bảo mật chỉ đơn giản là báo cáo về các vấn đề và nhóm phát triển bị thúc ép để cung cấp các tính năng mới thay vì bảo mật và bỏ qua các báo cáo của nhóm bảo mật. Các nhóm bảo mật được khuyến khích báo cáo nhiều vấn đề nhất có thể (tránh phải chịu trách nhiệm trong trường hợp vi phạm xuất hiện), nhưng các nhà phát triển không có thời gian để xem xét tất cả các báo cáo này bởi vì nhiều báo cáo không phải là lỗi thực sự. Sự tách biệt này là hướng đi cũ và không còn ai đánh giá cao nó nữa.
Bảo mật sản phẩm thực sự chỉ có thể đạt được khi tất cả các nhà phát triển chịu trách nhiệm về tính bảo mật của mã mà họ viết. Nhiệm vụ của nhóm bảo mật sản phẩm là cung cấp cho các nhà phát triển kiến thức và công cụ để thực hiện điều đó.
Không có sách hướng dẫn tiêu chuẩn nào về cách các công ty công nghệ lớn xử lý bảo mật, nhưng họ đang chia sẻ các phương pháp mà họ đã thử và thành công với cộng đồng - điều mà mọi công ty thành công về bảo mật đều nên làm. Là một ngành công nghiệp, chúng ta cần phải suy nghĩ về bảo mật như một hệ sinh thái và chia sẻ những thực hành tốt nhất là cách tốt nhất để cải thiện từng cá nhân cũng như tất cả mọi người.