Tại sao cần bảo mật Website
Chúng ta bảo vệ trang web của mình vì “Phòng bệnh hơn chữa bệnh”. Không ai muốn website bị tấn công gây ra các hậu quả:
- Gián đoạn hoạt động kinh doanh;
- Bị lộ dữ liệu khách hàng và thông tin quan trọng;
- Ảnh hưởng đến SEO (Từ khóa bị mất thứ hạng trên Google);
- Ảnh hưởng tới uy tín thương hiệu;
- Không thể chạy quảng cáo Google và Facebook.
Tuy nhiên, có hai lí do quan trọng khiến cho việc bảo mật website cấp bách hơn bao giờ hết:
Vai trò của website trong nền kinh tế số
Nếu như trước đây website chỉ có chức năng giới thiệu sản phẩm hoặc giới thiệu doanh nghiệp. Thì ngày nay, trong thời đại kinh tế số và TMĐT, website giữ một vai trò quan trọng hơn nhiều:
- Website là công cụ hữu hiệu để thu thập thông tin khách hàng, giúp doanh nghiệp cải thiện chất lượng sản phẩm, dịch vụ, cũng như hiệu quả của các chiến dịch truyền thông;
- Website giúp doanh nghiệp bán hàng và thanh toán trực tuyến, tiết kiệm chi phí mặt bằng và nhân công (web thương mại điện tử như tiki, shopee, vntrip, luxstay);
- Website có thể là kênh để phân phối phần mềm trực tiếp tới khách hàng (mô hình SaaS như base.vn, Getfly, WhiteHub);
- Và còn nhiều ứng dụng thiết thực khác của website như giao dịch tài chính, tiền điện tử, thanh toán, kết nối, mạng xã hội, v.v.
Tất cả những vai trò đó khiến cho website ngày càng quan trọng với doanh nghiệp. Do đó, khi hệ thống website bị hack, doanh nghiệp cũng chịu nhiều thiệt hại hơn so với trước đây, cả thiệt hại về tiền bạc lẫn uy tín bị ảnh hưởng.
Định nghĩa lỗ hổng bảo mật website
Định nghĩa lỗ hổng bảo mật
Lỗ hổng bảo mật là những điểm yếu nằm trong thiết kế và cấu hình của hệ thống, lỗi của lập trình viên hoặc sơ suất trong quá trình vận hành.
Cách thức hoạt động
- Hacker sử dụng các công cụ dò quét để phát hiện một loạt các website có cấu hình bảo mật kém hoặc website trên các nền tảng phổ biến như WordPress hay Joomla có các lỗ hổng đã được công bố nhưng chưa được chủ website xử lý.
- Tin tặc sẽ lợi dụng chúng để tấn công, cài đặt mã độc và phá hoại các website.
Các lỗ hổng phổ biến
- SQL Injection:
Cho phép kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào và các thông báo lỗi do hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp. - SQL Injection cho phép xóa, chèn, cập nhật, v.v. trên cơ sở dữ liệu của website, thậm chí là server.
Local file inclusion
- Website thường sử dụng các biến để lưu địa chỉ của file, ví dụ như ở trang thông báo lỗi, địa chỉ thật của file chứa thông tin về lỗi sẽ được lưu ở
- Lỗ hổng này xảy ra khi giá trị của biến này được thay thế bằng đường dẫn tới một file khác, từ đó hacker có thể truy cập trái phép vào những file nhạy cảm hoặc thực thi các file độc hại trên web server
Cross Site Scripting (XSS)
- Cho phép hacker chèn những đoạn script độc hại (thường là Javascript hoặc HTML) vào website và thực thi trong trình duyệt của người dùng.
- Hacker có thể dùng XSS để gửi những đoạn script độc hại tới một người dùng bất kỳ để lấy cookie, keylogging hoặc lừa đảo.
Server-Side Template Injection
Template là một thành phần thường được sử dụng trong các website và email. Lỗ hổng này là khi lập trình viên cho phép dữ liệu đầu vào của người dùng được chèn vào template mà không có biện pháp bảo vệ. Không giống XSS, Template Injection đặc biệt nguy hiểm ở chỗ cho phép tấn công trực tiếp vào server và thực thi mã từ xa.
Một số cách thức hữu ích để bảo mật website
Thường xuyên cập nhật phần mềm ứng dụng website
Có vẻ như đây là một điều hiển nhiên, việc đảm bảo tất cả phần mềm được cập nhật là điều quan trọng trong việc giữ cho trang web của bạn tránh khỏi những nguy hiểm luôn luôn rình rập.
Điều này có thể áp dụng cho cả hệ điều hành máy chủ và bất kỳ phần mềm nào bạn đang chạy trên trang web bao gồm CMS hoặc diễn đàn, khi lỗ hổng bảo mật website được tìm thấy trong phần mềm ứng dụng, tin tặc sẽ chớp lấy thời cơ nhanh chóng cố gắng lạm dụng chúng.
Bảo mật SQL injection
SQL injection là hình thức tấn công trang web phổ biến nhất dựa trên các thao tác form website, lý do là các nội dung này thường không được mã hoá chính xác và công cụ hacking tận dụng các điểm yếu này để hoạt động phá hoại, loại khai thác này rất dễ dàng để đạt được mục đích ngay cả những tin tặc thiếu kinh nghiệm cũng có thể thực hiện hành động này, nghiêm trọng hơn.
Structured Query Language (SQL) là ngôn ngữ gần như phổ quát của cơ sở dữ liệu cho phép lưu trữ, thao tác và truy xuất dữ liệu. Cơ sở dữ liệu sử dụng SQL bao gồm MS SQL Server, MySQL, Oracle, Access… và dĩ nhiên, các cơ sở dữ liệu này cũng phải chịu cuộc tấn công SQL injection.
Các chương trình chống vi-rút cũng không mấy hiệu quả để có thể chặn các cuộc tấn công SQL injection, đơn giản vì chúng được sử dụng để phát hiện và ngăn chặn một loại dữ liệu hoàn toàn khác.
Cách phòng ngừa SQL injection phổ biến nhất được tạo thành từ hai thành phần. Đầu tiên là thường xuyên cập nhật và vá lỗi của tất cả các máy chủ, dịch vụ và ứng dụng, sau đó sản xuất và sử dụng tốt source code đồng thời kiểm thử source code trang web không cho phép tồn tại các lệnh SQL có dấu hiệu bất thường.
Bảo mật website với XSS
Tấn công cross-site scripting (XSS) hay tấn công JavaScript độc hại vào website của bạn, sau đó chạy trong trình duyệt của người dùng và có thể thay đổi nội dung trang web hoặc ăn cắp thông tin để gửi lại cho kẻ tấn công.
Ví dụ: nếu bạn hiển thị nhận xét trên một trang không có xác nhận hợp lệ thì kẻ tấn công có thể gửi một thông điệp chứa các thẻ tập lệnh và JavaScript có thể chạy trong trình duyệt của mọi người dùng khác và lấy cắp cookie đăng nhập của họ, từ đó cho phép xảy ra cuộc tấn công nhằm kiểm soát tài khoản của mọi người dùng đã xem bình luận.
Bạn cần đảm bảo rằng người dùng không thể đưa nội dung JavaScript vào các trang đang hoạt động của bạn.
Đây là mối quan tâm đặc biệt trong các ứng dụng web hiện đại, nơi các trang được xây dựng chủ yếu từ nội dung người dùng và trong nhiều trường hợp tạo ra HTML, sau đó cũng được xử lý front-end như Angular và Ember.
Phê duyệt / xác nhận hợp lệ bảo mật website phía máy chủ
Xác nhận phải luôn luôn được thực hiện cả trên trình duyệt và phía máy chủ, trình duyệt có thể bắt các lỗi đơn giản như các trường bắt buộc không được bỏ trống hoặc khi bạn nhập văn bản vào các trường số. Tuy nhiên, thỉnh thoảng chúng có thể được bỏ qua và bạn phải đảm bảo kiểm tra các xác nhận này vì không thực hiện được điều đó có thể dẫn đến tình huống mã độc được chèn vào cơ sở dữ liệu có thể gây ra các kết quả không mong muốn trong trang web của bạn.
Cài mật khẩu có độ bảo mật cao
Mọi người đều biết họ nên sử dụng mật khẩu phức tạp, nhưng điều đó không có nghĩa là họ luôn sẵn sàng thực hiện điều đó.
Điều rất quan trọng là sử dụng mật khẩu đủ mạnh cho máy chủ và khu vực quản trị website, nhưng cũng cần nhấn mạnh mật khẩu tốt cho người dùng của bạn để bảo vệ tính bảo mật tài khoản của họ.
Việc thực thi các yêu cầu về mật khẩu chẳng hạn như tối thiểu là khoảng tám ký tự, bao gồm một chữ cái và chữ viết hoa sẽ giúp bảo vệ thông tin của họ trong thời gian dài tuyệt đối an toàn.
Mật khẩu phải luôn luôn được lưu trữ dưới dạng các giá trị mã hoá, tốt hơn là sử dụng một thuật toán băm một chiều như SHA, sử dụng phương pháp này có nghĩa là khi bạn xác thực người dùng, bạn chỉ cần so sánh các giá trị được mã hóa.
Trong trường hợp có ai đó xâm nhập và đánh cắp mật khẩu của bạn, việc sử dụng mật khẩu đã băm có thể giúp hạn chế thiệt hại vì khó có thể giải mã được chúng.
Xét duyệt việc tải tập tin lên website
Cho phép người dùng tải tệp lên trang web của bạn có thể là nguy cơ ảnh hưởng tới bảo mật website, ngay cả khi chỉ cần một thao tác nhỏ là thay đổi avatar của họ. Rủi ro là bất kỳ tệp nào tải lên vô tội vạ có thể chứa một tập lệnh được thực hiện trên máy chủ có đường dẫn tới trang web của bạn.
Nếu bạn sử dụng một hình thức tải tập tin, cần phải biết cách quản lý tất cả các file, nếu bạn cho phép người dùng tải lên hình ảnh, bạn không thể dựa vào phần đuôi mở rộng của ảnh hoặc loại mime để xác minh rằng tệp đó là một hình ảnh vì chúng có thể dễ dàng bị giả mạo.
Ngay cả việc mở tập tin hoặc sử dụng các chức năng để kiểm tra kích thước hình ảnh không phải là bằng chứng căn cứ đầy đủ, hầu hết các định dạng hình ảnh cho phép lưu trữ một phần miêu tả có thể chứa source code được thực hiện bởi máy chủ.
Xem thêm: Tổng hợp một số loại mã nguồn mở nhiều người quan tâm nhất hiện nay
Như Hoan – Tổng hợp
(Tham khảo thêm: mona, cystack,…)