Cùng với sự phát triển chung của thế giới, trong những năm gần đây, số lượng thuê bao Internet của Việt Nam tăng trưởng nhanh chóng. Hiện, số thuê bao Internet chiếm gần 32% dân số Việt Nam. Đa số các doanh nghiệp và các tổ chức có hệ thống mạng và website giới thiệu, quảng bá thương hiệu, với gần 200.000 tên miền .vn và hàng triệu tên miền thương mại. Có rất nhiều doanh nghiệp đã ứng dụng thanh toán trực tuyến vào công việc kinh doanh, giao dịch,…
Tuy nhiên, mạng Internet Việt Nam còn tiềm ẩn rất nhiều những nguy cơ về mặt an ninh, an toàn thông tin. Dựa trên các bản báo cáo tổng hợp về an ninh thông tin của nhiều hãng bảo mật nước ngoài như McAfee, Kaspersky hay CheckPoint…, nguy cơ mất an toàn thông tin ở Việt Nam đang tăng lên đứng thứ 5 trong tổng số 10 nước có nguy cơ mất an toàn thông tin cao nhất trong năm 2010. Cụ thể, Việt Nam đứng sau Trung Quốc, Nga, Ấn Độ và Mỹ về mức độ rủi ro mà qua đó người sử dụng và các nhà cung cấp dịch vụ Internet có thể bị tấn công. Năm quốc gia còn lại gồm Đức, Malaysia, Pháp, Ukraine và Tây ban Nha.
Theo đánh giá của một số chuyên gia về an ninh mạng, các tên miền .vn đang đứng hàng thứ 3 trong bảng xếp hạng các tên miền có nguy cơ bị tấn công (khoảng
15.000 website). Đặc biệt, đã có nhiều trang web có tên miền .vn bị hacker tấn công dùng làm địa chỉ để chuyển hướng ngầm truy cập của người sử dụng đến các web chứa mã độc để cài cắm các phần mềm gián điệp vào máy người truy cập, đánh cắp thông tin cá nhân.
Các chuyên gia an ninh mạng cũng cho biết, đa số các trang web lớn của Việt Nam đều có lỗ hổng bảo mật và có thể bị chiếm quyền điều khiển. Lỗ hổng an ninh của các hệ thống ngày càng được phát hiện nhiều hơn. Số lượng các điểm yếu an ninh trong năm 2010 là 4.300, có tới 30% lỗ hổng có mức độ nguy hiểm cao. Gần một nửa (49%) số lỗ hổng an ninh vẫn chưa có các bản vá do nhà cung cấp dịch vụ phát hành.
Hiện trạng an toàn thông tin Việt Nam năm 2014
Diễn biến ngày càng phức tạp của tội phạm công nghệ cao gióng lên hồi chuông cảnh báo về nguy cơ mất an toàn an ninh mạng tại Việt Nam. Tính đến hết quý III năm 2014, tổng khối lượng website “.vn” của Việt Nam bị tấn công và chiếm quyền kiểm soát đã lên đến con số hơn 6.500. Trung bình mỗi ngày có hơn 18 website của Việt Nam bị chiếm quyền điều khiển, trong đó hầu hết các tấn công xuất phát điểm đều đến từ các nguồn ngoài lãnh thổ.
Theo SecurityDaily, trong 2 ngày 10-11/5/2014 đã có hơn 200 website của Việt Nam bị các nhóm hacker tấn công và để lại những lời nhắn, hình ảnh mang tính chất khiêu khích và chứng tỏ các website đó đều đã bị kiểm soát. Ngoài ra, một số đợt tấn công cao điểm từ bên ngoài nhắm vào hệ thống website Việt Nam có thể kể đến nữa là 2 đợt tấn công của các nhóm tin tặc vào cuối tháng 4/2014 và đầu tháng 9/2014. Đặc biệt, trong nửa đầu tháng 9/2014 đã có tổng cộng 1039 website của Việt Nam bị chiếm quyền trong cùng một thời điểm, đây là con số cao nhất được ghi nhận của năm nay. Điểm đáng chú ý là chỉ riêng trong hai đợt tấn công này, có đến 30 website của các cơ quan chính phủ và 69 website của cơ quan giáo dục Việt Nam bị chiếm quyền hoặc bị thay đổi giao diện trang chủ.
Một nghiên cứu vừa được công ty công nghệ Akamai có trụ sở tại Massachusetts, Hoa Kỳ, công bố cho thấy 43% các vụ tấn công trên mạng Internet toàn cầu và phát tán virus đến từ Trung Quốc. Đứng ở vị trí thứ hai là Indonesia với 15%, Mỹ đứng thứ 3 với 13%, Đài Loan 3,7%, Ấn Độ 2,1%, Nga 2%, Brazil 1,7%, Hàn Quốc 1,4%, Romania và Thổ Nhĩ Kỳ 1,2%.
Không nằm ngoài những thống kê trên của Mỹ, chủ mưu thực hiện các cuộc tấn công quy mô tại Việt Nam kể trên phần lớn là do nhóm tin tặc Trung Quốc mang tên 1937CN, hoạt động dưới sự bảo trợ của chính phủ nước này. 1937CN cũng chính là nhóm đã thực hiện vụ tấn công vào máy chủ DNS của facebook.com.vn và thegioididong.com trong tháng 8/2013. Sau khi chiếm quyền thành công, nhóm công khai trên đưa lên trang chủ của mình các thông tin liên quan đến những vấn đề nhạy cảm giữa Việt Nam và Trung Quốc, về biển Đông cũng như các chiến tích đạt được trong việc tấn công các website Việt Nam. Ngoài ra, nhóm 1937CN cũng đã từng tấn công nhiều website “.gov.vn” (website của các tổ chức chính phủ Việt Nam).
Không chỉ riêng có 1937 CN tham gia tấn công, Sky-Eyeye, một nhóm hacker lớn khác của Trung Quốc cũng tham gia và đã thực hiện tấn công gần 100 website của Việt Nam. Nếu năm 2013 chỉ ghi nhận hơn 1.000 IP Trung Quốc thực hiện các cuộc tấn công thì con số năm 2014 đã tăng lên đến gần 70.000. Tiếp theo sau Trung Quốc là Mỹ (gần 25.000) và Đài Loan (hơn 20.000). Theo nhiều chuyên gia bảo mật trong nước, hacker Trung Quốc đã thả phần mềm gián điệp xâm nhập máy tính ở nhiều quốc gia khác trên thế giới cũng như tại Việt Nam. Các máy tính bị xâm nhập này đã bị biến thành các máy tính ma (zombie). Chúng liên kết các zoombie này thành một mạng máy tính tấn công lớn (còn gọi là botnet) rồi dùng nó để tấn công vào các website khác với sức công phá vô cùng nguy hiểm.
Từ ngày 13-19/10/2014, hàng chục website lớn do hãng truyền thông VCCORP quản lý và đồng quản lý bao gồm các báo mạng như Dân trí, Người lao động, Thời báo kinh tế Việt Nam, VnEconomy… và trang tin điện tử kenh14, Soha News, VTV, CafeF, Muachung… đột ngột tê liệt, không thể truy cập được. Trầm trọng hơn, các thông tin nhạy cảm và số liệu mật của VCCORP bị phơi bày trên một trang thanh toán điện tử của hãng. Sau 5 ngày sự cố, thiệt hại ban đầu cho VCCORP lên đến hàng chục tỉ đồng theo như lời một đại diện của tập đoàn này. Đây được coi là sự cố về hệ thống nghiêm trọng nhất từng xẩy ra với VCCORP từ trước đến nay, thu hút hàng triệu lượt quan tâm của cộng đồng mạng.
Sau nhiều nỗ lực điều tra, kết luận cho thấy rõ ràng đây là một cuộc phá hoại có chủ đích đã được lên kế hoạch và có đầu tư nhằm vào VCCORP. Nhóm tin tặc đã lợi dụng việc nhân viên của hãng đã không tuân thủ đúng quy trình chính sách bảo mật để
cài một phần mềm gián điệp được lập trình rất chuyên nghiệp để thực hiện ý đồ của chúng.
Hiện nay, nhiều công ty công nghệ, truyền thông tại Việt Nam kinh doanh dựa hoàn toàn trên Internet và việc bảo vệ các hệ thống máy chủ, dữ liệu là nhiệm vụ có ảnh hưởng sống còn đến sự phát triển của công ty. Tuy nhiên, các cá nhân, doanh nghiệp tại Việt Nam chưa nhận thức được về mối nguy hiểm đến từ các phần mềm, các chương trình chưa có bản quyền chia sẻ miễn phí trên Internet, cũng bởi tư duy tiết kiệm mà thường sử dụng các hệ điều hành, phần mềm không có bản quyền còn nhiều. Bởi vậy, đã xuất hiện nhiều lỗ hổng an toàn thông tin để hacker, virus hoặc mã độc có thể tấn công vào hệ thống bất cứ lúc nào.
Vấn đề trong bảo mật an ninh thông tin của doanh nghiệp và các tổ chức hiện nay, theo ông Stefan Tanase, chuyên gia nghiên cứu an ninh cấp cao, là ý thức của nhân viên về bảo mật thông tin cho đơn vị mình – “người gác cổng” này chính là lỗ hổng để các tin tặc tấn công vào doanh nghiệp. Hiện nay, rất ít công ty công nghệ chú trọng đến bảo mật vì phần lớn nhân viên hệ thống của các công ty này không được đào tạo bài bản về an toàn thông tin, không có các đội phản ứng nhanh tại chỗ để ứng phó với các sự cố an ninh có thể xẩy ra bất cứ lúc nào. Theo đó, khi có sự cố xảy ra các doanh nhiệp sẽ không có biện pháp xử lý, không kịp trở tay và dẫn tới những hậu quả lớn khó khắc phục.
Theo các chuyên gia an ninh mạng, để cung cấp dịch vụ online ổn định thì các hệ thống kiên quan phải được quản lý chặt chẽ, quản lý từ kỹ thuật, máy móc đến những con người tham gia vận hành hệ thống. Phải có chính sách dự phòng khi sự cố xảy ra. Hệ thống dữ liệu, máy chủ phải được phân bố nhiều địa điểm (site), không nên để tập trung một chỗ để phòng tránh những cuộc tấn công và cân bằng tải khi hệ thống có số lượng truy cập tăng cao.
1.4. Các rủi ro thƣờng gặp trong ứng dụng web 1.4.1. Dữ liệu đầu vào không đƣợc kiểm tra
Ứng dụng web sử dụng dữ liệu đầu vào trong các truy cập HTTP (hoặc trong các tập tin) nhằm xác định kết quả phản hồi. Hacker có thể sửa đổi bất kỳ phần nào của một truy xuất HTTP, bao gồm URL, querystring, headers, cookies, form fields, và
thậm chí field ẩn (hidden fields), nhằm vượt qua các cơ chế bảo mật [7]. Các tấn công phổ biến dạng này gồm:
Chạy lệnh hệ thống tùy chọn Cross site scripting
Lỗi tràn bộ đệm
Tấn công Format string SQL Injection
Cookie poisoning Sửa đổi file ẩn
Một số website bảo vệ chống lại loại tấn công này bằng cách thiết lập bộ lọc dữ liệu đầu vào. Vấn đề nan giải là có rất nhiều cách để mã hóa (encode) dữ liệu, và những phương cách mã hóa này không giống như các cách mã hóa thông thường khác ở chỗ là nó dễ dàng được giải mã. Tuy vậy, những nhà lập trình viên thường quên giải mã tất cả các tham số trước khi sử dụng chúng. Tham số cần phải được chuyển đổi đến dạng đơn giản nhất trước khi được kiểm tra, nếu không, dữ liệu xấu đầu vào có thể được mã hóa ẩn và vượt qua tầng bảo vệ của các module kiểm tra dữ liệu.
Một số lượng lớn ứng dụng chỉ sử dụng các cơ chế lọc phía trình duyệt để kiểm tra dữ liệu đầu vào. Các cơ chế kiểm tra phía trình duyệt rất dễ dàng được vượt qua, và ứng dụng web xem như không được bảo vệ bởi cơ chế này. Hacker có thể tạo ra các truy xuất HTTP không thông qua trình duyệt bằng cách sử dụng các công cụ như telnet, truy xuất thẳng đến cổng 80 cuả máy chủ web. Kiểm tra dữ liệu ở phía máy trình duyệt có lợi điểm về hiệu suất và tính dễ sử dụng, tuy nhiên cơ chế này không cung cấp bất cứ lợi điểm gì về bảo mật. Kiểm tra dữ liệu ở phía server đóng vai trò thiết yếu trong việc ngăn cản những cuộc tấn công dạng sửa đổi tham số đầu vào. Khi các cơ chế bảo vệ ở server đã được thiết lập, cơ chế bảo vệ phía trình duyệt có thể được sử dụng nhằm giảm bớt dung lượng các dữ liệu không hợp lệ đến máy chủ.
Hình 1.20. Sử dụng Proxy để thay đổi tham số
Hình1.20 mô tả phương cách phổ biến của hacker hiện nay sử dụng để tấn công ứng dụng web. Trước tiên, hacker thiết lập một proxy đứng giữa trình duyệt và máy chủ ứng dụng web. Proxy này có khả năng chặn các gói dữ liệu trước khi chuyển đến máy chủ, do đó cho phép hacker sửa đổi dữ liệu truy cập và chèn các mã tấn công trước khi gửi đến ứng dụng web.
Những cuộc tấn công dạng này đang có xu hướng ngày càng phổ biến hơn do số lượng các công cụ hỗ trợ các chức năng tạo tham số bất kỳ, tạo mã tấn công, tấn công brute force đang ngày càng tăng. Hậu quả của việc sử dụng các tham số không được kiểm tra không nên được xem nhẹ. Một số lượng lớn các cuộc tấn công sẽ gây khó khăn cho nhà lập trình web nếu họ không có một hệ thống tập trung kiểm tra tính hợp lệ của tất cả các truy xuất HTTP.
1.4.2. Lỗi kiểm soát truy cập nguồn tài nguyên
Kiểm soát truy cập tài nguyên (authorization), là cơ chế mà ứng dụng web cho phép truy cập đến nội dung, tính năng ứng dụng cho một số người sử dụng và từ chối truy cập cho một số người sử dụng khác. Những kiểm tra này được thực hiện sau quá trình xác thực, và quản lý các quyền truy cập mà người sử dụng được phép. Kiểm soát truy cập bề ngoài tưởng chừng là một vấn đề đơn giản nhưng thực tế là một vấn đề rất khó được thi hành đầy đủ. Một mô hình quản lý truy cập tài nguyên cho ứng dụng web cần được thiết kế theo sát các nội dung và hàm chức năng của một website cung cấp.
Những nhà lập trình viên thường không đánh giá được mức độ khó khăn trong việc xây dựng một cơ chế quản lý kiểm soát truy cập dữ liệu. Đa số những chức năng này không được thiết kế từ lúc đầu mà được xây dựng kèm theo tùy tính năng của ứng
dụng. Vì vậy, các chức năng kiểm soát được xây dựng ở khắp các module khác nhau trong mã nguồn. Khi ứng dụng được phát triển xong và đưa vào triển khai, các mã kiểm soát này sẽ trở nên không thống nhất và gây ra nhiều lỗ hổng nghiêm trọng khó phát hiện được.
1.4.3. Lỗi liên quan đến quá trình quản lý xác thực và phiên truy cập
Quản lý xác thực và phiên truy cập bao gồm tất cả các yếu tố quản lý xác thực người sử dụng và các phiên truy cập. Xác thực người dùng là một yếu tố quan trọng trong quy trình này, nhưng ngay cả những cơ chế xác thực mạnh nhất vẫn có thể bị mắc những lỗi liên quan đến các chức năng quản lý xác thực, bao gồm thay đổi password, quên password, nhớ password ở trình duyệt, cập nhật tài khoản, và những hàm chức năng khác.
Xác thực người dùng trên ứng dụng web thường bao gồm sử dụng một username và password. Những phương pháp xác thực khác mạnh hơn bao gồm các giải pháp phần cứng hoặc mềm dựa trên các token mã hóa hoặc dùng phương pháp sinh trắc học (biometrics). Tuy nhiên những phương pháp này có phần hạn chế do giá thành cao. Một số lượng lớn lỗi ứng dụng trong các hàm quản lý tài khoản và phiên truy cập có thể dẫn đến mối nguy cơ lộ tài khoản người sử dụng và thậm chí tài khoản của người quản trị.
Ứng dụng web thường phải theo dõi và duy trì phiên truy cập của người dùng nhằm phân biệt các truy cập từ người dùng khác nhau. Giao thức HTTP không cung cấp khả năng này và do đó ứng dụng web phải tự tạo cơ chế này. Thường thì, môi trường phát triển ứng dụng cung cấp cơ chế quản lý phiên truy cập (thường là dưới hình thức cookie token), tuy nhiên, đa số các nhà lập trình nghiêng về phát triển cơ chế riêng của họ. Trong cả hai trường hợp, nếu token quản lý phiên truy cập không được bảo vệ, hacker có thể ăn cắp token truy cập tài khoản của người khác.
1.4.4. Lỗi Cross Site Scripting (XSS)
Lỗi Cross –side scripting (thường được gọi tắt là XSS) xảy ra khi một ứng dụng web bị lợi dụng để gửi dữ liệu xấu (thường là đoạn mã script) đến trình duyệt của người sử dụng. Những lỗ hổng này rất phổ biến và xảy ra trong bất cứ phần nào của ứng dụng web có sử dụng dữ liệu từ người dùng trong các giá trị phản hồi mà không kiểm tra tính hợp lệ [4].
Một hacker có thể sử dụng lỗ hổng này để gửi các đoạn mã đến người dùng. Trình duyệt trong máy người dùng không thể biết được nên tin hay không tin đoạn mã nào, và sẽ thi hành đoạn script này. Bởi vì trình duyệt tin rằng đoạn mã đến từ một nguồn tin tưởng, đoạn mã script có thể truy cập đến cookies, session tokens, hoặc bất kỳ thông tin nhạy cảm nào được lưu lại trong trình duyệt có liên quan đến trang web đang truy cập. Những đoạn mã này còn có thể sửa đổi nội dung trang web. Hậu quả