10 Bước Bảo Mật Ứng Dụng Web Hiệu Quả
Operations Security
Là một người sở hữu trang web có trách nhiệm, bạn chắc chắn đã nhận thức được tầm quan trọng của bảo mật. Đặc biệt, đối với các ứng dụng web phục vụ nhu cầu người dùng thì vấn đề an toàn luôn cần được đặt lên trên hết.
Theo số liệu dưới đây, số lượng các cuộc tấn công DDoS đã liên tục tăng trong vài năm qua và dự kiến sẽ tiếp tục tăng trong tương lai.
Mặc dù không thể đảm bảo rằng mức độ bảo mật sẽ luôn là 100%, vì vẫn có những sự cố bất ngờ có thể xảy ra. Tuy nhiên, các công ty vẫn có thể thực hiện được một số phương pháp sau đây để giảm thiểu khả năng gặp phải các sự cố bảo mật ứng dụng web.
Mục lục bài viết
Lên kế hoạch bảo mật ứng dụng web
Bạn không thể bảo mật ứng dụng web hiệu quả nếu không có kế hoạch thực hiện. Đáng tiếc là nhiều công ty thường không có kế hoạch bài bản và cuối cùng không đạt được kết quả nào như kỳ vọng.
Hãy bàn bạc với đội bảo mật CNTT của mình để phát triển một kế hoạch bảo mật ứng dụng web chi tiết. Bản kế hoạch đó cần phác thảo được các mục tiêu của tổ chức, chẳng hạn như bạn muốn nâng cao mức độ tuân thủ chung của toàn công ty hoặc cần bảo vệ thương hiệu của mình trước những bê bối bảo mật.
Trong bản kế hoạch cũng cần có thứ tự ưu tiên những ứng dụng nào trước và cách kiểm tra bảo mật cho các ứng dụng đó. Cho dù kiểm thử thủ công, thông qua giải pháp đám mây, thông qua phần mềm trên trang web, thông qua nhà cung cấp dịch vụ được quản lý, hay thông qua một số phương tiện khác… thì cũng đều cần được hoạch định trước.
Dù bản kế hoạch hoặc checklist về bảo mật sẽ khác nhau tùy thuộc vào cơ sở hạ tầng của mỗi công ty, bạn có thể tham khảo Checklist 6 bước kiểm tra bảo mật web app của Synopsys để làm điểm bắt đầu.
Ngoài ra, nếu tổ chức đủ lớn, bản kế hoạch chi tiết của bạn cần nêu rõ tên các cá nhân trong tổ chức – những người sẽ tham gia duy trì liên tục các bước bảo mật ứng dụng web. Cuối cùng, hãy đảm bảo rằng bạn đã tính toán tất cả các chi phí mà tổ chức sẽ phải chi trả cho các hoạt động này.
Liệt kê tất cả ứng dụng web mà bạn sở hữu
Trên thực tế, hầu hết các tổ chức đều có nhiều ứng dụng giả mạo đang chạy ngầm và thường không nhận ra chúng cho đến khi gặp phải sự cố. Bạn sẽ không thể duy trì bảo mật cho ứng dụng web nếu không biết chính xác công ty mình đang sử dụng những ứng dụng nào.
Có bao nhiêu ứng dụng tất cả? Vị trí của chúng ở đâu? Việc thực hiện kiểm kê như vậy có thể khá tốn thời gian, nhưng nó mang lại rất nhiều lợi ích cho việc bảo mật về lâu dài.
Trong khi liệt kê lại các ứng dụng, hãy ghi lại mục đích của từng ứng dụng. Rất có thể sau khi kiểm kê xong xuôi bạn sẽ thấy nhiều ứng dụng dư thừa hoặc không còn cần thiết. Bản kiểm kê này sẽ có ích cho các bước sau đó nữa, vì vậy hãy dành đủ thời gian để làm và đảm bảo bạn nắm được từng ứng dụng một.
Sắp xếp thứ tự ưu tiên cho các ứng dụng web
Sau khi hoàn thành kiểm kê các ứng dụng web đang có, bước tiếp theo cần làm là sắp xếp chúng theo thứ tự ưu tiên.
Hãy sắp xếp các ứng dụng thành ba loại như sau:
- Cực kỳ quan trọng
- Quan trọng
- Trung bình
Các ứng dụng cực kỳ quan trọng chủ yếu là những ứng dụng phải đối mặt với những tác nhân bên ngoài và chứa thông tin khách hàng. Đây là những ứng dụng nên được quản lý trước, vì hacker có khả năng sẽ nhắm đến và khai thác chúng nhiều nhất.
Các ứng dụng quan trọng có thể là ứng dụng nội bộ hoặc bên ngoài và chứa một số thông tin nhạy cảm.
Các ứng dụng có mức độ ưu tiên trung bình là các ứng dụng ít tiếp xúc với những yếu tố bên ngoài nhiều hơn, nhưng cũng vẫn cần phải kiểm tra sau hai loại trên.
Bằng cách phân loại các ứng dụng như vậy, bạn có thể dành những bài kiểm thử bao quát cho các ứng dụng cực kỳ quan trọng và sử dụng các bài kiểm thử ít chuyên sâu hơn cho các ứng dụng ít quan trọng hơn. Điều này sẽ giúp bạn sử dụng hiệu quả nhất các tài nguyên của công ty và công việc cũng sẽ tiến triển nhanh hơn.
Sắp xếp thứ tự ưu tiên cho các lỗ hổng
Khi duyệt danh sách các ứng dụng web trước khi kiểm thử, bạn cần quyết định những lỗ hổng nào cần phải loại bỏ ngay và những lỗ hổng nào không đáng lo ngại.
Thực tế là hầu hết các ứng dụng web đều có nhiều rất nhiều lỗ hổng. Báo cáo an ninh website 2019 của CyStack đã phân tích hơn 9.000 website bị hack tại Việt Nam và phân loại theo nền tảng:
Tỷ lệ phân bố các trang web bị nhiễm độc dựa trên nền tảng – Năm 2019
Tìm được tất cả các lỗ hổng trong tất cả các ứng dụng web là điều không thể mà cũng không nên tốn thời gian. Ngay cả sau khi phân loại các ứng dụng theo mức độ quan trọng, bạn cũng sẽ tốn kha khá thời gian để kiểm thử tất cả những ứng dụng đó. Nếu giới hạn chỉ kiểm tra các lỗ hổng mang tính đe dọa nghiêm trọng nhất, bạn sẽ tiết kiệm được rất nhiều thời gian và sẽ hoàn thành công việc nhanh hơn.
Việc xác định tập trung vào lỗ hổng nào phụ thuộc vào việc bạn đang sử dụng các ứng dụng nào. Bạn nên thực hiện một vài biện pháp bảo mật tiêu chuẩn (sẽ được nói rõ hơn ở phía dưới) tuy nhiên với một số lỗ hổng nhất định của ứng dụng thì cần phải nghiên cứu và phân tích sâu.
Hãy lưu ý rằng khi có kết quả kiểm thử, bạn có thể sẽ nhận ra rằng mình đã bỏ qua một số vấn đề nhất định. Đừng ngại tái kiểm thử để nhóm lại các lỗ hổng và tập trung vào các lỗ hổng vừa phát hiện thêm.
Sử dụng ít đặc quyền nhất có thể khi chạy ứng dụng
Ngay cả khi đã đánh giá và kiểm thử tất cả các ứng dụng web và loại bỏ các lỗ hổng nguy hiểm nhất, thì các rủi ro vẫn còn tồn tại.
Mỗi ứng dụng web có các đặc quyền cụ thể trên cả máy tính cục bộ và máy tính từ xa. Những đặc quyền này nên được điều chỉnh hợp lý để tăng cường bảo mật.
Lời khuyên là hãy sử dụng ít đặc quyền nhất cho tất cả các tài khoản, trên tất cả các ứng dụng của bạn.
Quản trị viên sẽ là người có quyền cao nhất, được phép thay đổi cài đặt hệ thống. Ngoài ra, tất cả những người dùng khác chỉ được phép thực hiện các tác vụ nằm trong phạm vi nhiệm vụ của họ.
Trường hợp hiếm khi xảy ra đó là các đặc quyền trong ứng dụng bị điều chỉnh không chính xác dẫn tới một số người dùng không thể truy cập các tính năng mà họ cần thì vẫn có thể xử lý sau được. Tốt hơn hết là trong tình huống này thì “cẩn tắc vô áy náy”.
Phương án phòng vệ tạm thời
Ngay cả khi bạn điều hành một startup nhỏ thì vẫn có thể mất vài tuần, thậm chí vài tháng để triển khai các giải pháp bảo mật cho ứng dụng web.
Trong thời gian đó, bạn hoàn toàn có thể thực hiện các biện pháp bảo vệ tạm thời để tránh sự cố đáng tiếc xảy ra. Dưới đây là một vài gợi ý dành cho bạn:
- Loại bỏ chức năng không an toàn: Nếu có một chức năng làm cho ứng dụng dễ bị tấn công hơn thì hãy xem xét loại bỏ tạm thời chức năng đó trong thời gian này.
- Sử dụng tường lửa ứng dụng web (WAF) để bảo vệ ứng dụng khỏi các lỗ hổng phiền toái.
WAF sẽ lọc và chặn lưu lượng HTTP không mong muốn vào ứng dụng web và giúp bảo vệ ứng dụng khỏi các cuộc tấn công XSS, SQL injection…
Trong suốt quá trình này, các ứng dụng web hiện tại cần phải được theo dõi liên tục để đảm bảo rằng chúng không bị xâm phạm bởi các bên thứ ba. Nếu công ty hoặc trang web của bạn bị tấn công trong thời gian này, hãy tìm ra điểm yếu và giải quyết trước khi tiếp tục công việc khác. Bạn nên tập thói quen ghi chép cẩn thận các lỗ hổng đó và cách xử lý chúng để có thể xử lý các sự cố trong tương lai với cách thức tương tự.
Sử dụng Cookie an toàn
Một yếu tố khác mà nhiều tổ chức không nghĩ tới khi thực hiện các biện pháp về bảo mật ứng dụng web là sử dụng cookies. Cookies rất thuận tiện cho các doanh nghiệp và người dùng. Chúng cho phép trang web ghi nhớ người dùng đã truy cập để các lượt truy cập trong tương lai nhanh hơn và trong nhiều trường hợp là được cá nhân hóa nhiều hơn. Tuy nhiên, cookies cũng có thể bị hacker thao túng để đoạt quyền truy cập vào các khu vực được bảo vệ.
Chắc chắn chúng ta sẽ không thể dừng việc sử dụng cookies, vì chúng quá tiện lợi. Tuy nhiên bạn cần xem xét điều chỉnh cài đặt cookies để giảm thiểu rủi ro bị tấn công.
- Đầu tiên, không bao giờ sử dụng cookies để lưu trữ thông tin rất nhạy cảm hoặc quan trọng. Ví dụ: không sử dụng cookies để ghi nhớ mật khẩu của người dùng, vì điều này sẽ giúp hacker dễ dàng truy cập trái phép.
- Đặt ngày hết hạn cho cookies. Việc lưu trữ cookie vô thời hạn mang lại nhiều rủi ro hơn là lợi ích.
- Cuối cùng, hãy cân nhắc việc mã hóa thông tin được lưu trữ trong cookies mà bạn sử dụng.
Thực hiện các biện pháp bảo mật web sau đây
Ngoài những điều đã nêu bên trên, có một số đề xuất bảo mật ứng dụng web mà bạn có thể thực hiện ngay với tư cách là chủ sở hữu trang web hoặc doanh nghiệp:
- Sử dụng HTTPS và chuyển hướng tất cả lưu lượng (traffic) HTTP sang HTTPS.
- Hỗ trợ ngăn chặn các cuộc tấn công cross-site scripting bằng cách triển khai X-XSS header chống lại các cuộc tấn công XSS.
- Thực hiện chính sách bảo mật nội dung.
- Ngăn chặn sự tham gia của con người vào các cuộc tấn công xen giữa (MitM) bằng cách kích hoạt các khóa công khai (public key pin).
- Áp dụng subresource integrity cho các phần tử <script> hoặc <link> của tài nguyên
- Sử dụng phiên bản cập nhật của TLS và tránh hoàn toàn việc sử dụng SSL.
- Các biện pháp như sử dụng mật khẩu mạnh kết hợp chữ thường và chữ in hoa, số, ký hiệu đặc biệt, v.v … Sử dụng một phần mềm quản lý mật khẩu như KeyPass để tạo và lưu trữ mật khẩu mạnh.
Đào tạo nâng cao nhận thức về bảo mật ứng dụng web
Nếu bạn đang vận hành một công ty, rất có thể chỉ có một số người nhất định trong tổ chức của bạn nắm bắt được tầm quan trọng của bảo mật ứng dụng web.
Phần lớn người dùng sẽ không nhận ra được các rủi ro liên quan tới bảo mật ứng dụng web. Đây là một vấn đề cần được giải quyết.
Khi nhân viên đã được đào tạo rồi, họ sẽ dễ dàng phát hiện ra các lỗ hổng hơn. Về bản chất, giúp mọi người hiểu về bảo mật ứng dụng web cũng là một cách hay để khiến họ cùng tham gia vào hoạt động tìm kiếm và loại bỏ các lỗ hổng. Như vậy, hãy cân nhắc việc mời một chuyên gia bảo mật ứng dụng web đến đào tạo nâng cao nhận thức cho nhân viên xem nhé.
Bằng cách giúp mọi người cùng nắm được vấn đề và đảm bảo rằng họ biết phải làm gì nếu gặp phải lỗ hổng hoặc vấn đề khác, bạn có thể tăng cường quy trình bảo mật ứng dụng web tổng thể của mình và duy trì các bước bảo mật ứng dụng web một cách tốt nhất có thể.
Chương trình Bug Bounty
Một cách tuyệt vời để nhận phản hồi từ cộng đồng về các vấn đề tiềm ẩn liên quan tới bảo mật ứng dụng web là tổ chức một chương trình Bug bounty (trao thưởng khi phát hiện ra lỗi bảo mật).
Ngay cả khi bạn điều hành một công ty và tuyển dụng các chuyên gia bảo mật chuyên nghiệp, họ vẫn có thể không xác định được tất cả các rủi ro bảo mật tiềm ẩn.
Do đó, để khuyến khích cộng đồng tìm ra các rủi ro về bảo mật và báo cáo cho doanh nghiệp, hãy trao giải thưởng bằng tiền mặt.
Trước đây, việc tổ chức Bug bounty khá phức tạp và thường chỉ diễn ra tại các công ty, tập đoàn có hệ thống lớn. Và bạn phải có nhiều mối quan hệ với cộng đồng Hacker mũ trắng để có thể thu hút họ tham gia tìm lỗi cho mình.
Nhưng ngày nay, với sự ra đời của các nền tảng Bug bounty trung gian như WhiteHub, việc triển khai Bug bounty đã trở nên đơn giản hơn nhiều.
Ngày càng có nhiều startup công nghệ, doanh nghiệp vừa và nhỏ tham gia kiểm thử hệ thống web app, mobile app của họ bằng các chương trình Bug bounty.
>> Chương trình bug bounty của Getfly CRM
Tóm tắt
Việc duy trì các bước bảo mật ứng dụng web là nỗ lực của cả tập thể. Chắc chắn rằng có những bước bạn có thể thực hiện ngay lập tức để cải thiện bảo mật ứng dụng nhanh chóng và hiệu quả. Tuy nhiên, khi các ứng dụng phát triển, chúng trở nên cồng kềnh hơn nên cũng khó theo dõi tính bảo mật hơn.
Vì vậy, cần phải triển khai bảo mật bài bản và có hệ thống để mang lại hiệu quả bền vững. Hy vọng bài viết này đã giúp bạn có thêm kiến thức để bắt đầu lên kế hoạch bảo mật các ứng dụng web của mình, qua đó bảo vệ khách hàng và công việc kinh doanh bền vững.