Thuật ngữ “phần mềm độc hại” bao hàm tất cả các loại phần mềm độc hại đƣợc thiết kế để làm hại máy tính hoặc mạng [9]. Phần mềm độc hại có thể đƣợc cài đặt trên máy ngƣời sử dụng mà nạn nhân không hay biết, thƣờng thông qua các liên kết lừa đảo hoặc nội dung tải xuống đƣợc đăng nhƣ là nội dung mong muốn.
chƣơng trình, văn bản, máy tính…). Sự lây lan của Virus
Có rất nhiều con đƣờng mà virus có thể lợi dụng để xâm nhập vào máy tính. Virus có thể lây qua mạng nội bộ (mạng LAN) thông qua các giao thức TCP/IP và UDP, qua email, qua các tệp tin tải về từ Internet hay từ các ổ đĩa USB (Univeral Serial Bus). Tinh vi hơn, chính có thể lợi dụng các lỗ hổng phần mềm, kể cả các hệ điều hành để xâm nhập, lây nhiễm lên máy tính thông qua mạng.
Hình 2.2 Minh họa lây nhiễm virus qua thƣ điện tử.
Email là một trong những con đƣờng lây lan virus chủ yếu và phổ biến nhất trên Internet hiện nay (hình 2.2). Từ một máy tính, virus thu thập các địa chỉ email trong máy và gửi email giả mạo có nội dung hấp dẫn kèm theo tệp virus để lừa ngƣời nhận mở các file này.
Những thiết bị lƣu trữ USB cũng là một nguồn lây lan virus đáng kể, nhất là tại Việt Nam hiện nay, khi USB đang là phƣơng tiện trao đổi dữ liệu của phần lớn ngƣời sử dụng máy tính. Từ máy tính bị nhiễm, virus sẽ copy chính nó vào tất cả các ô USB mà ngƣời sử dụng đƣa vào máy tính.
Hình 2.3 Minh họa sự phá hoại của virus
Đây chắc chắn là điều băn khoăn của tất cả những ngƣời sử dụng máy tính nếu chẳng may máy tính bị nhiễm virus. Bởi chúng ta đã biết, dù ít hay nhiều virus cũng đƣợc dùng để phục vụ những mục đích không tốt.
Virus là những phần mềm và do con ngƣời tạo ra, vì thế chúng cũng phá hoại theo những gì mà chủ nhân của chúng nhắm tới. Virus có thể tàn phá nặng nề dữ liệu, ổ đĩa và hệ thống, hoặc đơn giản hơn chỉ là một câu đùa vui hay nghịch ngợm đôi chút với màn hình, hay thậm chí đơn giản là nhân bản thật nhiều để ghi điểm. 2.2.2.2 Sâu máy tính (Worms)
Sâu máy tính thƣờng đƣợc coi là một nhánh của virus (hình 2.4), nhƣng có một vài khác biệt cơ bản. Sâu máy tính là một chƣơng trình tự sao chép, nhƣng không lây nhiễm tới các tập tin trong máy tính nhƣ virus. Thay vào đó, nó sẽ tự cài vào máy tính chỉ một lần, sau đó tìm cách lây lan sang máy tính khác.
Sâu máy tính thƣờng đƣợc thiết kế để khai thác khả năng truyền thông tin có trên những máy tính có các đặc điểm chung cùng hệ điều hành hoặc cùng chạy một phần mềm mạng và đƣợc nối mạng với nhau.
Trojan là chƣơng trình giả dạng phần mềm hợp pháp nhƣng khi khởi động sẽ gây hại cho máy tính. Trojan không thể tự động lây lan qua máy tính, đây cũng là đặc tính để phân biệt chúng với virus và sâu máy tính.
Ngày nay, Trojan thƣờng ẩn trong các đƣờng link và đƣợc tự động tải về mà ngƣời dùng không hề hay biết. Đa số các phần mềm tội phạm (crimeware) ngày nay tích hợp nhiều loại Trojan khác nhau, tất cả đều đƣợc viết để đảm nhiệm một chức năng độc hại nào đó. Phổ biến nhất là Trojan cửa sau (thƣờng bao gồm một keylogger), Trojan gián điệp, Trojan ăn cắp mật khẩu, và Trojan Proxies biến máy tính của bạn thành một máy chuyên phân tán thƣ rác.
2.2.2.4 Web ứng dụng và nguy cơ bảo mật dữ liệu 2.2.2.4.1 Injection
Injection là một kỹ thuật cho phép những 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 trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (xâm nhập) và thi hành các câu lệnh SQL bất hợp pháp (không đƣợc ngƣời phát triển ứng dụng lƣờng trƣớc), Sql injection có thể cho phép những kẻ tấn công thực hiện các thao tác, delete, insert, update….trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy, lỗi này thƣờng xảy ra trên các ứng dụng web có dữ liệu đƣợc quản lý bằng các hệ quản trị cơ sở dữ liệu nhƣ SQL, Server, MySQL, Oracle, DB2, Sysbase…
Khi triển khai các ứng dụng web trên Internet, nhiều ngƣời vẫn nghĩ rằng việc đảm bảo an toàn, bảo mật nhằm giảm thiều tối đa khả năng bị tấn công từ các tin tặc chỉ đơn thuần tập trung vào các vấn đề nhƣ chọn hệ điều hành, hệ quản trị cơ sở dữ liệu, webserver sẽ chạy ứng dụng… mà quên mất rằng ngay cả bản thân ứng
dụng chạy trên đó cũng tiềm ẩn một lỗ hổng bảo mật rất lớn. Một trong số các lỗ hổng này đó là SQL injection.
Các dạng tấn công bằng SQL Injection
Dạng tấn công vƣợt qua kiểm tra đăng nhập: Với dạng tấn công này, tin tặc có thể dễ dàng vƣợt qua các trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ liệu của ứng dụng web.
Dạng tấn công sử dụng câu lệnh SELECT: Dạng tấn công này phức tạp hơn. Để thực hiện đƣợc kiểu tấn công này, kẻ tấn công phải có khả năng hiểu và lợi dụng các sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các điểm yếu khởi đầu cho việc tấn công.
Dạng tấn công sử dụng câu lệnh INSERT: Thông thƣờng các ứng dụng web cho phép ngƣời dùng đăng kí một tài khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, ngƣời dùng có thể xem và hiệu chỉnh thông tin của mình.
Dạng tấn công sử dụng stored-procedures: Việc tấn công bằng stored- procedures sẽ gây tác hại rất lớn nếu ứng dụng đƣợc thực thi với quyền quản trị hệ thống “sa”.
2.2.2.4.2 Lỗi cấu hình bảo mật (Security misconfiguration)
Các máy chủ web và máy chủ ứng dụng là xƣơng sống của một ứng dụng web. Chúng cung cấp một số dịch vụ là các ứng dụng web sử dụng bao gồm dịch vụ thƣ mục, lƣu trữ dữ liệu và hòm thƣ điện tử. Không quản lý cấu hình của những máy chủ này có thể dẫn đến một loạt các vi phạm an ninh [14]. Lỗi bảo mật có thể xảy ra các ứng dụng ngăn xếp, khung máy chủ web, mã tùy chỉnh và nền tảng. Những kẻ xâm nhập bên ngoài và ngƣời sử dụng với tài khoản riêng của họ có thể cố gắng để thỏa hiệp hệ thống. Những kẻ tấn công sử dụng các lỗ hổng chƣa đƣợc vá, không bảo vệ các tập tin và thƣ mục để có thể truy cập bất hợp pháp hoặc kiến thức của hệ thống.
đƣợc sử dụng làm cho các kết nối đƣợc mã hóa để ngăn chặn truy cập dễ dàng vào các hệ thông lƣu trữ dữ liệu. Các ứng dụng web phải có hỗ trợ mã hóa. Thông thƣờng, những kẻ tấn công không bẻ mật mã mà phá hoại những thứ khác: chẳng hạn tìm các khóa lấy các bản sao dữ liệu không đƣợc mã hóa, hoặc truy cập dữ liệu qua các kênh đoán hoặc thuật toán mã hóa bằng hàm băm mà không thêm ký tự ngẫu nhiên cũng là một lỗi phổ biến.