Chắc hẳn bạn nghe nhiều về việc cùng đường chuyền bị virus tấn công hay là những dữ liệu bảo mật bị rò rỉ ra ngoài, . .. Tất cả chỉ bởi trang web khi thiết lập không được bảo mật an toàn. Việc thực hiện bảo mật website sẽ được thực hiện thế nào và có điều bạn cần phải biết để tối ưu hoá? Bài viết dưới đây sẽ chia sẻ tất cả những kiến thức về bảo mật website đến các bạn.
Bảo mật website là một biện pháp quan trọng bạn cần làm
Bạn rất an tâm, tin cậy vì cứ tưởng rằng website của bạn sẽ không bao giờ bị tấn công (hack website) vì nhiều lí do khác như:
- Lí do 1: Website của bạn chả có j mà hack cả. Tôi đang thiết kế website giới thiệu công ty chứ không "rảnh rỗi" để mà hack –> thực ra hacker sẽ có các mục đích khác nhau từ bé đến to mà hack vào những website như vậy của bạn.
- Lí do 2: Website của bạn đang sử dụng công nghệ ABC và cũng khá tốt. Đảm bảo sẽ không ai hack bạn nữa –> có thể bạn thừa, nhưng cũng có khi bạn "thiếu". Những lỗ hổng trong website vẫn tồn tại từ hàng chục năm nay người dùng vẫn cố gắng tìm kiếm cách lấp đầy. Nhưng lỗ hổng thì có đấy vì sẽ không ai dám chắc 100% là không bị hack.
- Lí do 3: Dù website tôi có bị hack đi chăng nữa cũng không sao với tôi cả. Tôi không quan tâm –> bạn đang hạ thấp tiềm năng trang web của mình và khả năng cạnh tranh trên môi trường internet.
Thực tế cũng có rất nhiều khách hàng cũng tương tự với bạn, họ không quan tâm về việc bị tấn công website, chỉ đến khi bị hack, họ mới hoảng hốt bàng hoàng vì đã rất muộn màng mà. Do đó để có thể chuyên tâm cho việc buôn bán online bạn cũng nên lưu ý chọn một công ty thiết kế website uy tín, sẽ giúp ích khá nhiều việc bảo mật website giúp bạn. Mặc dù giao toàn bộ cho đơn vị công ty thiết kế trang web thì bạn cũng cần biết các kiến thức căn bản về bảo mật website là như thế nào.
Một số phương pháp hữu ích để bạn bảo mật website
Thường xuyên cập nhật cho phần mềm app website
Có vẻ như thể nó là một điều không thể, việc đảm bảo mọi phần mềm được cập nhật là điều cần thiết đối với việc giữ các trang web của bạn an toàn trước các nguy cơ luôn rình rập. Điều tương tự có thể thực hiện đối với cả hệ thống máy chủ và bất cứ phần mềm nào bạn đang sử dụng trên trang web như CMS hoặc browser, khi lỗ hổng bảo mật website được nhìn thấy trong phần mềm app, tin tặc sẽ nắm chắc cơ hội để có thể khai thác được.
Nếu bạn đang sử dụng một phần mềm quản lý cơ sở dữ liệu thì bạn không cần phải lo ngại nhiều đến việc cài đặt những phiên bản cập nhật bảo mật đối với phần mềm bởi vì công ty có quyền sẽ hỗ trợ bạn trong việc này.
Nếu bạn đang sử dụng phần mềm của nhà cung cấp thứ ba ví dụ như một CMS hoặc website, bạn cũng nên đảm bảo rằng bạn đã cài đặt một bản bảo mật khác. Hầu hết những nhà sản xuất phần mềm điều có một list gởi email nhắc nhở hoặc trang nhập liệu RSS chỉ ra bất cứ sự cố đối với bảo mật website nào. WordPress, OpenCart và nhiều CMS khác sẽ báo cho bạn biết các cập nhật mới sẵn có như thế nào mỗi khi bạn đăng nhập.
Đảm bảo bạn thường xuyên cập nhật những chức năng mới và sử dụng những phần mềm như Gemnasium để được thông báo ngay lập tức khi một lỗ hổng được phát hiện trên một hoặc những phần website của bạn.
Xem thêm: Các tiêu chuẩn của một website chuyên nghiệp
Cài đặt bảo mật SQL injection
SQL injection là loại tấn công trang web nguy hiểm nhất dựa trên những nội dung form website, nguyên nhân là những dữ liệu trên website không được bảo mật đúng và phần mềm hacking lợi dụng những điểm yếu trên để tiến hành chống phá, kiểu tấn công trên khá đơn giản nhằm giành được mục tiêu ngay kể cả các tin tặc ít kinh nghiệm cũng có thể thực hiện hành vi phá hoại, nguy hiểm hơn nữa, nếu hành động phá hoại được thực hiện từ những tin tặc có tay nghề cao, chỉ cần một lỗi nhỏ trong source code website có thể chiếm toàn quyền truy nhập root của những máy chủ web và sau đấy tin tặc sẽ tấn công vào những máy chủ web khác.
Structured Query Language (SQL) là ngôn ngữ lập trình gần như phổ biến của cơ sở dữ liệu cho phép lưu trữ, xử lý và truy vấn dữ liệu. Cơ sở dữ liệu sử dụng SQL như MS SQL Server, MySQL, Oracle, Access. .. và tất nhiên, những cơ sở dữ liệu này cũng phải hứng chịu cuộc tấn công SQL injection. Các phần mềm diệt virus cũng không hề hữu hiệu để có thể ngăn chặn những cuộc tấn công SQL injection, đơn thuần bởi chúng được sử dụng nhằm xác định và bảo vệ một kiểu dữ liệu cụ thể khác.
Cách ngăn ngừa SQL injection hiệu quả nhất được tạo nên bởi hai phần. Đầu tiên là liên tục kiểm tra và sửa lỗi của toàn bộ các máy chủ, dịch vụ và phần mềm, sau là kiểm tra và sử dụng đúng source code đồng thời kiểm tra source code trang web không cho phép xuất hiện những lệnh SQL có tín hiệu khác thường.
Cài đặt bảo mật website với XSS
Tấn công cross-site scripting (XSS) hay là tấn công JavaScript xâm nhập trên website của bạn, sau đó chạy trong trình duyệt của người dùng và có thể sửa đổi nội dung trang web để đánh cắp thông tin rồi chuyển lại cho người tấn công. Ví dụ: nếu bạn đăng bình luận 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 email với những thẻ tập lệnh cùng JavaScript sẽ chạy trong trình duyệt của mọi người dùng khác nhằm lấy trộm cookie trình duyệt của họ, sau đó cho phép diễn ra cuộc tấn công để quản lý danh tính của mọi người dùng đã hiển thị bình luận. Bạn cần đảm bảo mọi người dùng không nhúng nội dung JavaScript trên những trang đang tồn tại của bạn.
Đây là mối quan tâm chính đối với các nhà phát triển web ngày nay, khi các trang được dựa hoàn toàn trên nội dung người dùng và rất nhiều tình huống tạo bằng HTML, sau đó cũng được xử lý front-end bằng Angular và Ember. Các frameworks này cung cấp nhiều khả năng phòng thủ XSS nhưng cũng có thể tương tác với máy chủ và truy vấn của khách hàng để có thể tạo ra những cuộc tấn công mới tinh vi hơn nữa, không chỉ là chèn JavaScript vào HTML thông thường, mà bạn cũng có thể chèn nội dung source code bằng việc chèn các lệnh Angular hoặc Ember.
Chìa khoá ở đây là tập trung rằng nội dung mà người dùng tạo ra có thể vượt quá phạm vi mà bạn muốn và được trình duyệt hiểu như là một phần khác mà bạn đang dự định, điều này cũng giống với bảo vệ chống lại SQL injection. Khi bạn tạo ra HTML, sử dụng các hàm cụ thể để thực hiện những gì bạn đang thực hiện (ví dụ: sử dụng element.setAttribute và element.textContent, nhưng không phải là cài đặt element.innerHTML bằng thủ công) hoặc sử dụng các hàm trong frameworks tự chạy chẳng hạn như là liên kết cú pháp để tạo nội dung HTML.
Một tính năng quan trọng khác trong bộ tính năng của XSS Defender là Content Security Policy (CSP). CSP là một tính năng mà máy chủ của bạn có thể tính phí cho trình duyệt nhằm hạn chế cách JavaScript được thực hiện như thế nào đối với website, chẳng hạn như không cho phép chạy bất kỳ tập lệnh nào không được lưu trữ trên tên miền của bạn, không cho phép JavaScript inline hoặc vô hiệu hoá hàm eval (), điều này làm cho những tập lệnh của tin tặc khó làm việc hơn, ngay cả khi chúng có thể đưa vào trang web của bạn.
Bảo mật với những báo cáo lỗi trên website
Hãy thận trọng với thông tin bạn cung cấp trong những báo cáo lỗi, hãy cung cấp các lỗi cần thiết đối với người dùng để đảm bảo họ không làm lộ thông tin trên máy chủ của bạn (chẳng hạn: API hoặc password cơ sở dữ liệu). Không cung cấp tất cả thông tin chi tiết cần thiết cho bạn điều này có thể làm cho những cuộc tấn công tinh vi kiểu SQL injection trở nên dễ dàng hơn bao giờ hết, lưu trữ những lỗi cần thiết trong nhật ký máy chủ của bạn và luôn cho phép người dùng xem thông tin họ cần.
Phòng chống và xử lý những cuộc tấn công website từ DDOS
DDOS là những cuộc tấn công sử dụng nhiều máy trạm tấn công trực tiếp tới Server với mục tiêu làm tắc nghẽn máy chủ và ngăn cản khả năng truyền thông tin, kết nối mạng và việc truy cập tới Website của bạn. Mặc dù tấn công DDOS không lấy cắp được dữ liệu hay làm thay đổi kết cấu của website nhưng nó cũng mang tới khá nhiều bất tiện và rắc rối khi mắc phải. Vì vậy với DDOS bạn cần phải tìm hiểu kỹ và có phương án xử lý có thể triển khai ngay lập tức.
Phê duyệt và xác nhận yêu cầu hợp lệ bảo mật cho website phía máy chủ
Xác nhận phải luôn được thực hiện đồng thời trên trình duyệt và phía máy chủ, trình duyệt có thể phát hiện những lỗi nhỏ khi mà ký tự số không được bỏ trống hoặc khi bạn gõ chữ trên những ký tự số. Tuy nhiên, đôi khi chúng có thể được bỏ qua vì bạn phải đảm bảo thực hiện những xác nhận này nếu không thực hiện được điều đó sẽ dẫn đến việc mã độc hại được chèn vào cơ sở dữ liệu có thể gây ra những sự cố không mong đợi trong trang web của bạn.
Cài mật khẩu ( password ) có mức độ bảo mật cao
Mọi người luôn nghĩ họ có thể sử dụng mật khẩu mạnh, tuy nhiên điều đó không có nghĩa là họ luôn sẵn lòng thực hiện điều đó.
Điều vô cùng cần thiết là sử dụng mật khẩu đủ an toàn trên máy chủ và vùng quản lý website, nhưng cũng cần đặt mật khẩu mạnh đối với người dùng của bạn nhằm tăng cường khả năng bảo mật tài khoản của họ.
Việc tuân thủ những quy định đối với mật khẩu ví dụ như ít nhất là từ tám ký tự, gồm một chữ cái và viết thường sẽ góp phần bảo mật dữ liệu của họ suốt thời hạn dài và an toàn.
Mật khẩu phải luôn được lưu trữ dưới dạng những ký tự mật mã, an toàn hơn nữa là sử dụng một phương pháp mã hoá khác ví như SHA, sử dụng thuật toán mã hoá có nghĩa là nếu bạn xác minh người dùng, bạn chỉ cần sử dụng những ký tự được mã hoá.
Trong tình huống có ai muốn đột nhập và ăn cắp mật khẩu của bạn, việc sử dụng mật khẩu đã mã hoá có thể góp phần giảm thiểu tổn thất do khó lòng mà giải mã được mật khẩu.
Bên cạnh đó bạn cũng cài mật khẩu hai lớp trên toàn bộ những tài khoản thao tác online của website, như tài khoản email, tài khoản hosting, tài khoản quản trị viên website. Tâm lý của hacker là lựa chọn các trang web bị lãng quên, kém bảo mật quá thì sẽ tiến công trước, còn trang web nào có mức độ bảo mật cao, phức tạp hơn nó cho qua.
Xét duyệt việc tải tập tin ( folder ) trên website
Cho phép người dùng tải tệp trên trang web của bạn có thể là mối đe doạ đối với bảo mật website, ngay kể cả khi chỉ cần một hành động đơn giản là đổi avatar của họ. Rủi ro là bất cứ tệp hình ảnh tải nào cũng có thể bao gồm một tập lệnh được thực hiện trên máy chủ có đường dẫn vào trang web của bạn.
Nếu bạn sử dụng một dịch vụ tải tập tin, cần phải biết cách thức kiểm soát toàn bộ kích thước file, nếu bạn cho phép người dùng tải tập tin hình ảnh, bạn không thể nào căn cứ trên đoạn đuôi mở rộng của hình ảnh hoặc tập tin mime mà xác định được tệp có thể là một hình ảnh và nội dung có thể dễ bị sao chép, ngay cả việc xem tập tin hoặc sử dụng các tính năng giúp xác định kích cỡ hình ảnh không phải là cơ sở bằng chứng đủ, phần lớn những tệp hình ảnh cho phép lưu trữ một phần mô tả có chứa source code được thực hiện bởi máy chủ.
Vậy làm như thế nào để bảo mật website thông qua việc tải tập tin?
Giải pháp được khuyến cáo là chặn truy cập trực tiếp giữa những tập tin tải lên với máy chủ. Bằng phương pháp trên, bất cứ tập tin nào được tải trên trang web của bạn cần được lưu trữ trong một máy chủ bên ngoài webroot hoặc trong cơ sở dữ liệu dưới định dạng blob. Nếu tệp của bạn được truy cập trực tiếp, bạn sẽ cần phải thiết lập một tập lệnh cho phép tìm kiếm đến từng tập tin hoặc thư mục riêng biệt và gửi tệp cho trình duyệt.
Thẻ hình ảnh có thuộc tính src không phải là URL trực tiếp của hình ảnh, vì vậy, thuộc tính src của bạn có thể trỏ đến cùng tập lệnh truyền tập tin và cho phép bạn xác định đúng kiểu tập tin trong thư mục HTTP.
Đảm bảo bạn có một cài đặt tường lửa hiện đang ngăn chặn hầu hết những cổng không cần thiết, nếu có thể cài đặt một DMZ để cho phép truy cập các cổng 80 và 443 ở bên ngoài. Mặc dù điều này có thể không khả dụng nếu bạn không có quyền truy cập đến máy chủ của mình thông qua mạng LAN vì bạn cần các cổng bảo mật cho phép tải tệp lên và truy cập từ Internet đến máy chủ của bạn thông qua SSH hoặc RDP, nếu bạn cho phép các tệp tải lên trên Internet và sử dụng các giao thức truyền bảo mật vào máy chủ của bạn thông qua SFTP hoặc SSH.
Nếu có thể, nên đặt cơ sở dữ liệu của bạn trên một máy chủ tách biệt với máy chủ web của bạn, điều này có nghĩa là máy chủ cơ sở dữ liệu không truy cập trực tiếp được bên ngoài, chỉ có máy chủ website của bạn mới có thể truy cập, giảm rủi ro thông tin của bạn bị lộ.
Cuối cùng, không nên hạn chế khả năng truy cập đến máy chủ của bạn.
Bảo mật website với chứng chỉ HTTPS
HTTPS là một công nghệ được sử dụng nhằm tăng cường bảo mật trên Internet, HTTPS bảo đảm với người dùng khi họ đang giao tiếp với máy chủ đích và không ai khác có thể truy cập hoặc sửa đổi thông tin gì họ đang truy cập.
Nếu có bất kỳ điều gì khiến người dùng không thể ẩn danh, bạn sẽ phải sử dụng HTTPS để cung cấp nó. Một form đăng nhập thông thường sẽ được thiết lập cookie, được gởi kèm với mọi yêu cầu gửi đến trang web của bạn mà người dùng thực hiện đăng nhập sẽ được sử dụng để xác minh mỗi yêu cầu đăng nhập, bạn sẽ có thể sao chép người dùng cách chính xác và sau đó truy cập thông tin đăng nhập của họ.
Để tránh những cuộc xâm nhập tương tự, vui lòng sử dụng HTTPS trên toàn website của mình. Điều đó không hề phức tạp và rắc rối hơn trước kia đâu, bạn chỉ cần sử dụng HTTPS và có những công cụ cộng gộp sẵn có cho từng frameworks để tự thiết lập điều này giúp bạn.
Thêm vào nữa, Google đã tuyên bố rằng họ sẽ cải thiện thứ hạng từ khoá của website nếu bạn sử dụng HTTPS, đây là một điều rất có lợi đối với việc SEO trang web.
Cách nhanh nhất để thiết lập chuẩn HTTPS trên website chính là mua chứng chỉ SSL chất lượng từ LovaWeb
Các công cụ bảo mật cho website
Một khi bạn tin rằng bạn đã thực hiện hết các điều bạn có thể thì hãy sắp xếp thời giờ để thực hiện việc kiểm tra bảo mật website, cách tốt nhất để làm việc trên là qua việc sử dụng một vài công cụ bảo mật trang web.
Có khá nhiều công cụ trực tuyến và miễn phí để giúp bạn thực hiện việc kiểm tra, chúng dựa trên nền tảng giống với các dòng lệnh được hacker sử dụng nhằm kiểm tra toàn bộ những hành động lạm dụng và cố ý gây hư hại đến trang web của bạn bằng cách sử dụng một vài công cụ đã nói trước đấy với SQL injection. Một số công cụ miễn phí cần chú ý:
- Netsparker (có phiên bản miễn phí và phiên bản trả tiền) tốt cho kiểm tra SQL injection và XSS.
- OpenVAS, công cụ kiểm tra mã bảo mật mã nguồn mở mới nhất, tốt cho việc kiểm tra phát hiện lỗi tuy nhiên công cụ có thể được thiết lập và yêu cầu một server OpenVAS được thiết lập, OpenVAS là một sản phẩm của Nessus trước khi thực sự thành một công cụ kiểm tra mã nguồn đóng.
- SecurityHeaders.io (kiểm tra online miễn phí), công cụ nhanh kiểm tra bảo mật website (ví dụ về CSP và HSTS đã kích hoạt cũng như thanh định một tên miền chuẩn xác. ..).
- Xenotix XSS Exploit Framework, một công cụ của OWASP (Open Web Application Security Project) cung cấp một chuỗi những ví dụ về tiến công XSS để bạn có thể dễ dàng xác định phần đầu tiên của trang web dễ bị tác động từ Chrome, Firefox, Safari và INTERNET EXPLORER hay là không.
Kết quả từ mỗi cuộc kiểm tra có thể rất mơ hồ đối với chúng ta bởi vì chúng chứa khá nhiều vấn đề tiềm tàng, điều cần thiết là phải chú tâm giải quyết những vấn đề quan trọng nhất, mỗi một vấn đề báo cáo đều đính liền với một mô tả tốt về vấn đề dễ gây tổn hại, vì vậy bạn sẽ thấy một số vấn đề mức độ trung bình thấp không phải là mối quan tâm đối với website của bạn.
Nếu bạn mong muốn đi tiếp một bước tiến khác thì có một vài cách khác bạn có thể thực hiện như cách sửa đổi giá trị POST/GET, một proxy bảo mật sẽ giúp bạn bởi vì nó hỗ trợ bạn bỏ chặn những giá trị của một yêu cầu HTTP trong trình duyệt và server của bạn, một công cụ phần mềm miễn phí khác được gọi là Fiddler cũng là một lựa chọn sáng suốt.
Hy vọng với những lời khuyên trên đây sẽ giúp bảo vệ trang web và dữ liệu của bạn bảo mật, có khá nhiều CMS có chức năng bảo mật website hiện có, tuy nhiên điều tốt nhất là bạn phải có kiến thực đối với những lỗi bảo mật thông thường mới có thể tự bảo mật cho được website của bạn. Nếu bạn không am hiểu nhiều vấn đề bảo mật, có thể hỏi bên đơn vị xây dựng website để họ thực hiện bảo mật website cho bạn.