MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ BẢO MẬT WEBSITE
SQL injection
SQL injection là một kỹ thuật tấn công cho phép kẻ xấu thực hiện các lệnh SQL không hợp pháp, khai thác lỗ hổng bảo mật trong dữ liệu đầu vào của ứng dụng mà nhà phát triển không ngờ tới.
* Cách thức hoạt động của Sql injection
Lỗi SQL injection xảy ra do thiếu kiểm tra dữ liệu đầu vào, dẫn đến những tác động không mong muốn ngoài mục đích của câu truy vấn.
Selected_user = "SELECT * FROM users WHERE name = '" + userName + "';"
Mục đích chính của câu truy vấn này là tìm kiếm trong bảng users các dòng dữ liệu mà trường name có giá trị tương ứng với tham số userName đã được truyền vào.
Câu truy vấn này có vẻ đúng về mặt cấu trúc, nhưng khi phân tích một tình huống cụ thể, ta nhận thấy vấn đề tiềm ẩn Giả sử người gọi truy vấn truyền vào tham số userName với giá trị là: a' or 't'='t Điều này có thể dẫn đến lỗ hổng bảo mật, cho phép kẻ tấn công truy cập vào dữ liệu nhạy cảm.
Nhƣ vậy câu truy vấn của ta có đƣợc hiểu nhƣ sau:
SELECT * FROM users WHERE name = 'a' or 't'='t';
Câu truy vấn trên có nghĩa là mệnh đề WHERE luôn đúng vì „t‟=‟t‟ Do đó, thay vì chỉ trả về một dòng dữ liệu cụ thể, câu truy vấn này sẽ trả về toàn bộ dữ liệu từ bảng users.
Nguyên nhân chính dẫn đến việc truy vấn sai là do dữ liệu của tham số truyền vào Nếu toàn bộ dữ liệu này bị sử dụng với mục đích xấu, hậu quả sẽ rất khó lường.
* Các trường hợp thường bị tấn công Sql injection
Mọi thao tác của ứng dụng liên quan đến việc truy vấn cơ sở dữ liệu đều có nguy cơ bị tấn công qua phương thức Sql injection Các thao tác cơ bản như select, insert và update đều có thể trở thành mục tiêu của các cuộc tấn công Một số thao tác phổ biến dễ bị khai thác bao gồm:
Kiểm tra đăng nhập ứng dụng.
Thao tác lưu comment của user xuống DB.
Thao tác truy vấn thông tin user.
* Cách phòng tránh lỗi Sql injection
Để bảo vệ an toàn cho hệ thống, việc kiểm tra dữ liệu truyền vào câu truy vấn là rất quan trọng Các biện pháp phòng chống cần được thực hiện nhằm ngăn chặn việc tham số truyền vào gây ra sai lệch trong quá trình thực hiện truy vấn.
Giải pháp cho việc kiểm tra này là sử dụng "chuỗi escape", trong đó quá trình escape sẽ mã hóa các ký tự đặc biệt của chuỗi.
Để tránh việc các ký tự đặc biệt như „, &, |, … bị hiểu sai, mỗi ngôn ngữ lập trình đều cung cấp các hàm để escape chuỗi Trong PHP, chúng ta có thể sử dụng hàm mysqli_real_escape_string() hoặc addslashes() để thực hiện việc này.
Ví dụ về hàm addslashes(): kí tự nháy kép lúc này không còn đƣợc hiểu là kí tự điểu khiển nữa.
$str = addslashes('What does "yolo" mean?');
//$str = 'What does \"yolo\" mean?'
TẤN CÔNG XSS (CROSS -SITE SCRIPTING)
XSS, hay tấn công Cross-Site Scripting, là một kỹ thuật tấn công mà trong đó kẻ tấn công chèn mã độc dạng client-script, thường là JavaScript hoặc HTML, vào trang web Những đoạn mã này sẽ được thực thi khi người dùng truy cập và tải trang chứa mã độc, gây ra nguy hiểm cho thông tin và dữ liệu của họ.
Khác với SQL injection, nơi mã độc thực thi trên máy chủ, tấn công XSS (Cross-Site Scripting) xảy ra khi mã độc được thực thi trên máy khách Mặc dù mã độc được lưu trữ trên máy chủ, nhưng nó lại được thực thi tại máy khách, do đó kỹ thuật này được gọi là "cross-site".
* Cách thức hoạt động của XSS
XSS có thể được phân thành hai loại chính: Stored-XSS và Reflected-XSS Cả hai loại đều liên quan đến việc đưa mã độc vào máy client để thực thi, cụ thể là hiển thị nội dung được tạo ra trong quá trình hoạt động của trang web, nhưng chúng có sự khác biệt trong cách thức hoạt động.
Tấn công XSS lưu trữ lợi dụng lỗ hổng bảo mật của trang web để chèn mã độc trên server Khi người dùng truy cập trang, mã độc này sẽ được thực thi Các điểm dễ bị tấn công thường là những khu vực cho phép nhập dữ liệu từ người dùng, chẳng hạn như ô bình luận trên blog hoặc ô thông tin tài khoản công khai.
Giả sử trang web của chúng ta có ô nhập nội dung comment nhƣ sau:
Cài đặt và sử dụng Kali Linux
Kiểm tra bảo mật và các biện pháp phòng chống tấn công
Thay vì nhập comment như bình thường, kẻ tấn công sẽ chèn mã độc, ví dụ như đoạn script sau:
Khi đó, nếu một người dùng khác truy cập vào trang web này, đoạn script sẽ đƣợc kích hoạt, và kết quả của nó nhƣ sau:
Kỹ thuật tấn công XSS có thể cho phép kẻ tấn công chèn mã độc nguy hiểm hơn để khai thác thông tin người dùng Mặc dù mã độc này được lưu trữ trên server, nhưng nó được thực thi trên máy tính của client, do đó được gọi là stored-XSS.
Kỹ thuật tấn công này liên quan đến việc chèn mã độc vào liên kết của trang web Khi người dùng truy cập vào liên kết chứa mã độc, đoạn mã này sẽ tự động được thực thi.
Giả sử ta có link trang web sau: xyz.abc.vn/xss/reflected/index?qid=alert(„XSS‟);
Nếu nhƣ trang web này dùng giá trị của tham số qid để hiển thị, thì khi truy cập vào đường link này, ta sẽ bị lỗi XSS.
Để ngăn chặn kỹ thuật tấn công liên quan đến việc hiển thị nội dung nhập từ client, cần kiểm soát chặt chẽ các khu vực có khả năng hiển thị nội dung này.
Để phòng chống SQL injection, khi nhận dữ liệu, cần kiểm tra và mã hóa các ký tự đặc biệt cũng như ký tự điều khiển có thể gây hại cho chương trình Việc này giúp biến đổi các ký tự đặc biệt thành dạng an toàn hơn.
sẽ đƣợc đổi thành <script>
Để đảm bảo an toàn khi hiển thị thông tin trên thẻ HTML, cần thực hiện việc escape các ký tự đặc biệt thành HTML entity trước khi hiển thị Trong PHP, hàm htmlentities() có thể được sử dụng để thực hiện quá trình này.
DDOS
DoS stands for "Denial Of Service," which refers to a type of attack aimed at disrupting the services of servers and web servers.
Tấn công từ chối dịch vụ (DoS) nhằm mục đích làm gián đoạn kết nối giữa người dùng và máy chủ, dẫn đến cạn kiệt tài nguyên Phương pháp tấn công phổ biến nhất là kẻ tấn công liên tục gửi các yêu cầu lớn đến máy chủ, gây quá tải và làm giảm hiệu suất hoạt động của hệ thống.
Do lượng yêu cầu tăng cao, máy chủ không đủ tài nguyên để xử lý, dẫn đến tình trạng gián đoạn kết nối cho người dùng khác.
"Ddos" tên đầy đủ là "Distributed Denial Of Service" hay "Tấn công từ từ chối dịch vụ phân tán"
Tương tự như tấn công DoS, tấn công DDoS (Distributed Denial of Service) diễn ra khi kẻ tấn công sử dụng nhiều luồng truy cập từ nhiều địa chỉ IP khác nhau để gửi một lượng lớn yêu cầu đến máy chủ cùng lúc Điều này khiến máy chủ phải phân tán tài nguyên để xử lý các yêu cầu đồng thời, dẫn đến tình trạng quá tải mà kẻ tấn công mong muốn Phương thức tấn công này khó phát hiện và ngăn chặn hơn so với DoS Để dễ hình dung, có thể ví dụ như tình trạng kẹt xe đặc trưng ở Sài Gòn, khi nhiều phương tiện cùng lúc đổ về một điểm khiến giao thông bị tắc nghẽn.
Trên con đường đến công ty "máy chủ", bạn gặp phải một sự cố giao thông nghiêm trọng khi đoàn xe tải của nhà xe "Dos" nối đuôi dài chiếm hết lối đi, khiến việc lưu thông trở nên khó khăn Sự cố này dường như là hành động cố ý gây cản trở từ phía nhà xe.
"Dos" công ty của bạn đã đặt biển cấm đối với mọi xe của "Dos" bằng cách đó là Ban IP của Attacker.
DDoS Attacker có thể tấn công từ nhiều luồng và địa chỉ khác nhau, khiến việc xác định nguồn gốc của cuộc tấn công trở nên khó khăn Để thực hiện hành vi này, kẻ tấn công sử dụng nhiều IP đồng thời thông qua các phương pháp như sử dụng server ảo, thay đổi IP liên tục qua các proxy và Botnet.
BOTNET LÀ GÌ?
BotNet, viết tắt của "Bots Network", là mạng lưới các máy tính bị nhiễm mã độc (Bots/Zombie) và được điều khiển bởi một máy tính khác Độ nguy hiểm của mạng lưới Botnet tỉ lệ thuận với kích thước của nó, với một số mạng lưới có thể bao gồm hàng ngàn hoặc hàng trăm ngàn máy zombie Hiện tại, có hai hình thức cấu trúc mạng lưới Botnet phổ biến là mô hình client/server và mô hình peer-to-peer.
Mô hình bot/zombie hoạt động bằng cách kết nối với máy chủ hoặc cụm máy chủ qua tên hoặc kênh IRC để nhận lệnh từ Botmaster Đây là một phương thức phổ biến và dễ sử dụng trong việc quản lý các bot.
Các máy zombie thường bị kiểm soát mà người dùng không nhận ra, tạo điều kiện cho Botmaster phát tán mã độc và xây dựng mạng lưới Botnet mạnh mẽ Phương thức phổ biến để phát tán mã độc là ẩn chúng trong các phần mềm miễn phí quen thuộc và chia sẻ link tải trên internet.
Botmaster có khả năng điều khiển các máy zombie để thực hiện nhiều yêu cầu khác nhau cho các mục đích của kẻ tấn công, bao gồm cả tấn công DDoS Người dùng có thể sử dụng giao diện điều khiển đặc biệt để chỉ huy các máy bot tấn công vào máy chủ web, khiến cho các máy bot đang hoạt động trên toàn cầu đồng loạt truy cập vào trang mục tiêu.
Mô hình ngày có nhược điểm là các máy bị nhiễm mã độc kết nối tới một máy chủ duy nhất, điều này giúp dễ dàng xác định máy chủ trong quá trình phân tích mã độc Khi máy chủ bị phá hủy và ngừng hoạt động, toàn bộ hệ thống bot cũng sẽ ngừng hoạt động.
Peer-to-peer botnet model
Mô hình Bonet kết nối ngang hàng được phát triển để khắc phục những hạn chế của mô hình client/server truyền thống Thay vì phụ thuộc vào một máy chủ trung tâm, các máy bots trong mô hình này kết nối trực tiếp với nhau, cho phép chia sẻ thông tin một cách hiệu quả Mỗi máy bot được trang bị chức năng điều khiển, giúp chúng giao tiếp và phối hợp với nhau dễ dàng, từ đó làm tăng khả năng ẩn danh và cản trở nỗ lực phát hiện máy chủ.
Trong cấu trúc mạng này, cả máy chủ và máy bots chỉ có thể kết nối thông qua các nút lân cận để truyền dữ liệu Để duy trì sự ổn định, mỗi máy đều có danh sách các máy tin cậy để kết nối Mô hình này tiềm ẩn nhiều nguy hiểm hơn so với mô hình client/server, vì việc xác định nguồn gốc và ngăn chặn các mối đe dọa trở nên khó khăn hơn, do mỗi máy trong mạng đều có khả năng hoạt động như một máy điều khiển.
Mô hình này bộc lộ nhược điểm khi chức năng điều khiển của mỗi máy bot có thể khiến người tạo ra mất quyền kiểm soát Để giảm thiểu rủi ro này, các mã độc thường được mã hóa một cách tinh vi.
Phòng Chống Dos - Ddos - Botnet
Hiện tại, chưa có phương pháp phòng chống DDoS hoàn hảo nào để ngăn chặn hoàn toàn các cuộc tấn công này DDoS là một hình thức tấn công chủ động, do đó việc bảo vệ hệ thống khỏi những mối đe dọa này vẫn là một thách thức lớn.
Để bảo mật website hiệu quả, cần có kế hoạch cụ thể, và LP Tech sẽ giới thiệu một số biện pháp phòng chống DDoS và Botnet Một trong những cách phổ biến là định tuyến hố đen (black hole), nơi các truy cập bất thường sẽ được chuyển vào mà không phân biệt giữa truy cập bình thường hay ác ý, nhằm giảm thiểu thiệt hại cho máy chủ Dịch vụ này hiện được cung cấp bởi các nhà cung cấp dịch vụ internet (ISP), tuy nhiên, việc thiết lập cần nhiều thời gian và thiết bị.
Thiết lập số lượng truy cập tối đa cho máy chủ và website là một biện pháp quan trọng để duy trì sự ổn định trong kết nối, đặc biệt trong trường hợp bị tấn công Khi số lượng truy cập đạt giới hạn cho phép, các truy cập tiếp theo sẽ bị chặn lại và phải chờ Tuy nhiên, phương pháp này cũng tiềm ẩn rủi ro, đặc biệt đối với các website đang thực hiện SEO Việc hạn chế hoặc chặn truy cập có thể gây ảnh hưởng nghiêm trọng đến hiệu quả của dịch vụ SEO mà bạn đang chạy.
Ngăn chặn các IP đáng ngờ truy cập liên tục vào website của bạn là một biện pháp đơn giản nhưng hiệu quả để bảo vệ khỏi tấn công DoS Phương pháp này thường được áp dụng trên các trang web PHP thông qua việc cấu hình file htaccess Mặc dù phần mềm chặn IP cũng có thể giúp tăng cường bảo mật cho website trước các cuộc tấn công DDoS, nhưng nó chỉ có thể ngăn chặn những cuộc tấn công ở mức độ nhẹ.
Để bảo mật website hiệu quả, cần ngăn chặn các yêu cầu ở Layer đầu tiên, vì nếu để chúng vào đến server, tức là đã xâm nhập vào Layer-7.
Mô Hình OSI rồi, việc này sẽ giảm hiệu quả bảo mật website.
Sử dụng Firewall là một khái niệm quen thuộc trong bảo mật website, hoạt động như một rào chắn để lọc các kết nối không an toàn Tường lửa giúp ngăn chặn các truy cập đáng ngờ từ bots, từ đó hạn chế tiêu hao tài nguyên và duy trì chất lượng trải nghiệm người dùng.
Dịch vụ Cloudflare hoạt động như một DNS trung gian, giúp điều phối lưu lượng truy cập vào máy chủ hiệu quả Người dùng sẽ truy cập thông qua máy chủ DNS của Cloudflare thay vì trực tiếp, mang lại một lớp bảo mật cho website Tuy nhiên, với gói miễn phí, người dùng có thể gặp phải một số vấn đề như thời gian Down-Time và tốc độ truy cập bị ảnh hưởng.
Máy chủ Cloudflare không chỉ điều tiết lượng truy cập vào website của bạn và lọc các kết nối độc hại, mà còn tăng tốc độ tải trang bằng cách lưu cache và nén các tệp CSS, hình ảnh Để bảo vệ thông tin cá nhân và tránh bị kẻ gian lợi dụng, người dùng cần chú ý đến các vấn đề bảo mật website.
Không mở những tập tin không rõ nguồn gốc
Không nên sử dụng cái phần mềm lậu, path crack
Không mở nhử tập tin tự động tải xuống mà mình không mong muốn
Khi tải phần mềm nào đó hãy chú ý đến tên miền của trang web có phải là trang chủ của phần mềm mà mình muốn tải hay không
Thường xuyên cập nhật những bản vá lỗi của hệ điều đang dùng
Cập nhật phần mềm diệt antivirus
Không sử dụng các phần mềm diệt virus không rõ nguồn gốc vì rất có thể bản thân nó là virus/mã độc
PHISHING
Phishing, hay còn gọi là tấn công giả mạo, là một hình thức tấn công mạng trong đó kẻ tấn công giả danh một tổ chức uy tín nhằm lừa đảo người dùng cung cấp thông tin cá nhân.
Tin tặc thường giả mạo các ngân hàng, trang web giao dịch trực tuyến, ví điện tử và công ty thẻ tín dụng nhằm lừa đảo người dùng cung cấp thông tin nhạy cảm như tài khoản, mật khẩu đăng nhập, mật khẩu giao dịch và thông tin thẻ tín dụng quý giá khác.
Tin tặc thường sử dụng phương thức tấn công qua email và tin nhắn giả mạo Khi người dùng mở email và nhấn vào đường link lừa đảo, họ sẽ được yêu cầu đăng nhập Nếu người dùng không cẩn thận và "mắc câu", tin tặc sẽ ngay lập tức thu thập được thông tin cá nhân.
Phishing, một phương thức lừa đảo trực tuyến, lần đầu tiên xuất hiện vào năm 1987 Từ "Phishing" được hình thành từ sự kết hợp của hai thuật ngữ: "fishing for information" (câu thông tin) và "phreaking" (lừa đảo qua điện thoại mà không trả phí).
Do sự giống nhau giữa việc “câu cá” và “câu thông tin người dùng”, nên thuật ngữ Phishing ra đời.
* CÁC PHƯƠNG THỨC TẤN CÔNG PHISHING
Có nhiều kỹ thuật mà tin tặc sử dụng để thực hiện một vụ tấn công Phishing
Một trong những kỹ thuật tấn công Phishing phổ biến là giả mạo email, trong đó tin tặc gửi thư điện tử giả mạo từ các tổ chức uy tín để lừa người dùng Mục tiêu của chúng là khiến người dùng nhấp vào liên kết dẫn đến trang web giả mạo, từ đó “mắc câu” và đánh cắp thông tin cá nhân.
Email giả mạo thường có hình thức tương tự như email chính chủ, chỉ khác biệt ở một số chi tiết nhỏ, dẫn đến việc nhiều người dùng dễ bị nhầm lẫn và trở thành nạn nhân của các cuộc tấn công Để tăng tính xác thực của nội dung email, kẻ tấn công thường sử dụng nhiều yếu tố "ngụy trang".
Địa chỉ người gửi (VD: địa chỉ đúng là sales.congtyA@gmail.com thì địa chỉ giả mạo có thể là sale.congtyA@gmail.com)
Chèn Logo chính thức của tổ chức để tăng độ tin cậy
Thiết kế các cửa sổ pop-up giống y hệt bản gốc (cả về màu sắc, font chữ,…)
Sử dụng kĩ thuật giả mạo đường dẫn (link) để lừa người dùng (VD: text là vietcombank.com.vnnhưng khi click vào lại điều hướng tới vietconbank.com.vn)
Sử dụng hình ảnh thương hiệu của các tổ chức trong email giả mạo để tăng độ tin cậy.
Mánh khóe tinh vi của kẻ tấn công Phishing khiến nạn nhân dễ dàng tin tưởng và đăng nhập.
Trong tấn công Phishing, việc giả mạo website thực chất chỉ là tạo ra một Landing page giả mạo, không phải toàn bộ website Trang giả mạo thường là trang đăng nhập nhằm đánh cắp thông tin của nạn nhân Kỹ thuật giả mạo website có một số đặc điểm riêng biệt.
Thiết kế giống tới 99% so với website gốc
Be cautious of phishing websites that often differ from legitimate URLs by just one character, such as reddit.com versus redit.com, google.com versus gugle.com, or microsoft.com versus mircosoft.com Always verify the authenticity of a website before entering sensitive information.
Luôn có những thông điệp khuyến khích người dùng nhập thông tin cá nhân vào website (call-to-action)
VƢỢT QUA CÁC BỘ LỌC PHISHING
Hiện nay, các nhà cung cấp dịch vụ email như Google và Microsoft đã triển khai bộ lọc để bảo vệ người dùng khỏi email spam và phishing Tuy nhiên, những bộ lọc này chủ yếu dựa vào việc kiểm tra nội dung văn bản trong email Nhận thấy điều này, kẻ tấn công đã nâng cao chiến dịch phishing bằng cách sử dụng hình ảnh và video để truyền tải thông điệp lừa đảo, thay vì chỉ sử dụng văn bản như trước Do đó, người dùng cần phải hết sức cảnh giác với các nội dung này.
Để bảo vệ bản thân khỏi các cuộc tấn công lừa đảo Phishing trên Internet, bạn cần chú ý đến một số biện pháp phòng chống hiệu quả Trước hết, hãy luôn kiểm tra kỹ địa chỉ email và liên kết trước khi nhấp vào, vì nhiều hacker sử dụng các địa chỉ giả mạo Thứ hai, không cung cấp thông tin cá nhân hoặc nhạy cảm qua email hoặc trang web không rõ nguồn gốc Cuối cùng, hãy sử dụng phần mềm diệt virus và cập nhật thường xuyên để bảo vệ thiết bị của bạn khỏi các mối đe dọa.
Hãy cẩn trọng với các email yêu cầu bạn cung cấp thông tin nhạy cảm Dù lời mời có hấp dẫn đến đâu, bạn vẫn cần kiểm tra kỹ lưỡng Ví dụ, nếu bạn vừa mua sắm trực tuyến và nhận được email từ ngân hàng đề nghị hoàn tiền, yêu cầu bạn nhập thông tin thẻ đã sử dụng, hãy suy nghĩ kỹ trước khi hành động Có đáng tin cậy hay không?
Không click vào bất kỳ đường link nào được gửi qua email nếu bạn không chắc chắn 100% an toàn.
Không bao giờ gửi thông tin bí mật qua email.
Không nên trả lời các thư lừa đảo, vì những kẻ gian lận thường cung cấp số điện thoại để bạn liên lạc với họ cho mục đích kinh doanh.
12 dụng công nghệ Voice over Internet Protocol Với công nghệ này, các cuộc gọi của họ không bao giờ có thể đƣợc truy tìm.
Sử dụng Tường lửa và phần mềm diệt virus Hãy nhớ luôn cập nhật phiên bản mới nhất của các phần mềm này.
Hãy chuyển tiếp thư rác đến địa chỉ spam@uce.gov và gửi email tới reportphishing@antiphishing.org để hỗ trợ chống lại các cuộc tấn công lừa đảo Các tổ chức và doanh nghiệp cũng nên tham gia vào nỗ lực này để bảo vệ thông tin của mình.
Training cho nhân viên để tăng kiến thức sử dụng internet an toàn Thường xuyên tổ chức các buổi tập huấn, diễn tập các tình huống giả mạo
Sử dụng dịch vụ G-suite dành cho doanh nghiệp, không nên sử dụng dịch vụ Gmail miễn phí vì dễ bị giả mạo.
Triển khai bộ lọc SPAM để phòng tránh thƣ rác, lừa đảo
Luôn cập nhật các phần mềm, ứng dụng để tránh các lỗ hổng bảo mật có thể bị kẻ tấn công lợi dụng.
Chủ động bảo mật các thông tin nhạy cảm, quan trọng Xem thêm Giải pháp bảo mật thông tin cho doanh nghiệp
* CÁCH XÁC ĐỊNH MỘT EMAIL LỪA ĐẢO
Email giả mạo thường có vẻ ngoài giống như email chính thức, khiến người nhận khó phân biệt Dưới đây là một số cụm từ phổ biến mà bạn có thể gặp khi nhận được email hoặc tin nhắn lừa đảo.
Xác thực tài khoản của bạn là bước quan trọng để bảo vệ thông tin cá nhân Các trang web hợp pháp sẽ không yêu cầu bạn cung cấp mật khẩu, tên tài khoản hay bất kỳ thông tin cá nhân nào qua email Hãy luôn cẩn trọng và xác minh tính hợp lệ của yêu cầu trước khi chia sẻ thông tin.
COOKIE THEFT
Cookies cải thiện trải nghiệm lướt web của bạn, giúp nhanh chóng và thuận lợi hơn Tuy nhiên, chúng cũng có thể gây rủi ro về bảo mật khi làm lộ một số thông tin cá nhân Bằng cách quản lý cookies một cách hợp lý, bạn có thể vừa tận hưởng việc duyệt web nhanh chóng vừa bảo vệ an toàn cho các thông tin quan trọng của mình.
Bạn có bao giờ tự hỏi tại sao quảng cáo Google lại hiển thị đúng sản phẩm bạn đang tìm kiếm hoặc tại sao tên bạn luôn được đăng nhập sẵn trên các trang web? Đó chính là nhờ vào cơ chế hoạt động của cookies trên trình duyệt web của bạn.
Cookie là các tệp lưu trữ thông tin về hoạt động duyệt web của bạn, bao gồm tùy chọn trang web và thông tin hồ sơ Nhờ vào cookie, trình duyệt có thể cung cấp các thông tin phù hợp nhất cho bạn, từ quảng cáo đến thông tin đăng nhập khi lướt web.
Có thể nói cookies sẽ giúp cho trải nghiệm lướt web của bạn thuận lợi và nhanh chóng hơn.
Mặc dù cookies mang lại nhiều lợi ích, nhưng về mặt bảo mật, chúng có thể làm lộ thông tin cá nhân của bạn Nếu hacker chiếm đoạt được cookies, họ có thể nắm bắt thói quen và lịch sử duyệt web của bạn, từ đó dễ dàng thực hiện các cuộc tấn công.
Cookies thường được lưu trữ trên máy tính của bạn từ 30 đến 60 ngày, cho phép hacker có khả năng thu thập thông tin cá nhân trong khoảng thời gian này, trừ khi bạn xóa chúng hoặc chúng hết hạn.
Quản lý cookies đúng cách giúp bạn duyệt web nhanh chóng và bảo vệ thông tin cá nhân an toàn.
Bạn có thể quản lý cookies trên trình duyệt web của mình bằng cách xóa chúng định kỳ hoặc thiết lập tự động để bảo vệ thông tin cá nhân Đối với trình duyệt Google Chrome, bạn có thể thực hiện các bước đơn giản để đảm bảo an toàn cho dữ liệu của mình.
Hãy nhấp vào biểu tƣợng menu ở góc trên bên phải cửa sổ trình duyệt và chọn Cài đặt >> Hiển thị cài đặt nâng cao… >> Cài đặt nội dung.
Trong phần Cookies, chọn Chỉ lưu dữ liệu trên máy cho đến khi bạn thoát trình duyệt của mình.
Chọn Chặn dữ liệu trang Web và cookied của bên thứ ba.
Quản lý cookies trên trình duyệt Mozilla Firefox
Hãy nhấp vào biểu tƣợng menu ở góc trên bên phải cửa sổ trình duyệt và chọn Cài đặt.
ChọnPrivacy (thiết lập Bảo mật) ở menu bên trái.
Dưới mục History, chọn Use custom settings for history trong mục xổ xuống, sau đó nhấn chọn Never by Accept third-party cookies
Và đánh vào ô Keep until to I close Firefox
Khi xóa Cookies trên trình duyệt Web, bạn sẽ hủy bỏ cả tùy chọn “Ghi nhớ tôi” mà bạn đã chọn trước đó, cùng với các thiết lập lưu trữ đăng nhập đã được lưu khi đăng nhập bằng bảo mật.
2 lớp Có thể điều này khiến bạn cảm thấy rất phiền, nhƣng rõ ràng để đƣợc bảo mật thì cái giá này không hề mắc tẹo nào.
Để nâng cao tính bảo mật cho thông tin cá nhân, bạn nên sử dụng phần mềm bảo mật Kaspersky Internet Security 2017, với tính năng diệt virus và khả năng phát hiện, ngăn chặn kịp thời các trang web có dấu hiệu theo dõi dữ liệu cá nhân trên trình duyệt.
* Mã độc là gì? Tổng quan về mã độc
Mã độc, hay còn gọi là "Malicious software", là phần mềm được thiết kế để xâm nhập vào hệ thống một cách lén lút nhằm phá hoại, đánh cắp thông tin hoặc gây gián đoạn Nó có thể làm tổn hại đến tính bí mật, tính toàn vẹn và tính sẵn sàng của máy tính của nạn nhân.
Mã độc đƣợc phân thành nhiều loại tùy theo chức năng, cách thức lây nhiễm, phá hoại: virus, worm, trojan, rootkit…
Nhiều người thường nhầm lẫn giữa virus máy tính và mã độc, trong khi virus máy tính chỉ là một phần nhỏ trong khái niệm mã độc Thực tế, virus máy tính là một dạng mã độc đặc biệt, với khả năng tự lây lan, khác biệt so với các loại mã độc khác.
Mã độc ngày càng phức tạp với nhiều phương thức lây nhiễm và ẩn mình, đồng thời thực hiện các hành vi nguy hiểm Ranh giới giữa các loại mã độc đang trở nên mờ nhạt do chúng thường kết hợp với nhau để nâng cao hiệu quả tấn công.
Sau đây, tôi xin trình bày một số khái niệm về mã độc dựa trên 3 yếu tố chính: chức năng, đối tƣợng lây nhiễm, đặc trƣng của mã độc.
Xem thêm: một số công cụ kiểm tra mã độc website được chuyên gia tin dùng
* LOẠI MÃ ĐỘC PHỔ BIẾN
Virus boot, hay còn gọi là virus khởi động, là loại virus xâm nhập vào boot sector hoặc master boot record của ổ cứng Những khu vực này chứa dữ liệu quan trọng để khởi động hệ thống và nạp các phân vùng.
Virus boot được kích hoạt trước khi hệ điều hành khởi động, điều này khiến nó độc lập hoàn toàn với hệ điều hành Một trong những nhược điểm của B-virus là việc viết mã rất khó khăn do không thể tận dụng các dịch vụ và chức năng có sẵn của hệ điều hành Hơn nữa, kích thước của virus bị giới hạn bởi kích thước của các sector, với mỗi sector chỉ có 512 byte.
Ngày nay gần nhƣ không còn thấy sự xuất hiện của Boot Virus do đặc điểm lây lan chậm và không phù hợp với thời đại Internet.
Virus macro là loại virus đặc biệt tấn công các chương trình trong bộ Microsoft Office như Word, Excel và PowerPoint Tính năng macro trong Microsoft Office cho phép người dùng lưu lại các thao tác để thực hiện lại nhiều lần Tuy nhiên, hiện nay, virus macro gần như đã "tuyệt chủng".
Mặc định Macros bị vô hiệu hóa trong các file tải về của Microsoft Office
CÀI KALI LINUX
1.2.1 CÀI KALI LINUX TRÊN VMWARE WORKSTATION TỪ BẢN ẢO HÓA FULL
Trải nghiệm Kali Linux trở nên dễ dàng hơn bao giờ hết với bản ảo hóa chính hãng từ OffSec Services Limited, công ty hỗ trợ dự án mã nguồn mở Kali Linux Chỉ với một tiếng đồng hồ, bạn có thể thử nghiệm Kali Linux ngay trên hệ điều hành Windows.
Để bắt đầu, bạn cần tải phiên bản Kali Linux ảo hóa cho VMware về máy tính, được phát triển dựa trên Kali Linux 2020.2 Quá trình tải xuống có thể mất thời gian do kích thước file khoảng 2,1GB, vì vậy hãy đảm bảo bạn có kết nối internet ổn định hoặc sử dụng phần mềm hỗ trợ tải để tăng tốc độ tải.
Tảibảnảo hóa Kali Linux cho VMware 64bit
Tảibảnảo hóa Kali Linux cho VMware 32bit
Bước 2: Giải nén file vừa tải về, mình tải bản 64bit thì file tên là kali-linux-
Mở VMware và chọn "Open a virtual machine", sau đó duyệt đến thư mục chứa file đã giải nén để tìm file có đuôi vmx, trong trường hợp này là file Kali-Linux-.
2020.2-vmware-amd64.vmx > Open, chờ vài giây để phần mềm nạp file.
Bước 4: Nhấn vào Play virtual machine
25 Khởi chạy máy ảo Kali Linux 2020.2
Bước 5: Nhập username và mật khẩu là kali để đăng nhập máy ảo.
27 Một số công cụ bạn có thể tìm thấy trong Kali Linux bản ảo hóa mới nhất này:
Một số công cụ tích hợp sẵn trong Kali Linux 2020.2
Bạn đã khởi động giao diện đồ họa (GUI) của Kali Linux Nếu bạn vẫn chưa hài lòng với phương pháp này, hãy tiếp tục tìm hiểu cách cài đặt Kali Linux trên VMware thông qua file ISO.
1.2.2 CÀI ĐẶT KALI LINUX TRÊN MÁY ẢO VM WARE TỪ FILE ISO
Các bạn có thể download bản cài đặt của Kali Linux dưới dạng file ISO bằng link trực tiếp hoặc qua torrent tại:
Trang chủ Kali Linux: https://www.kali.org/downloads/
File ISO cài đặt của Kali Linux có dung lượng hơn 1GB cho kiến trúc x86, nặng hơn so với bản 32 bit của nhiều hệ điều hành và distro Linux khác Tuy nhiên, điểm nổi bật của Kali Linux là khả năng tương thích cao với nhiều máy có cấu hình trung bình khác nhau Hãy cùng khám phá điều này trong phần tiếp theo của bài viết.
Trong bài viết này, chúng tôi hướng dẫn cài đặt file Kali Linux phiên bản Light Bạn có thể tham khảo cách tạo USB cài Linux từ file ISO trên Windows tại đây Phần mềm VM Ware được biết đến là một trong những ứng dụng tạo máy ảo ổn định nhất trên hệ điều hành Windows, và chúng tôi sử dụng phiên bản Windows 11.x cho bài thử nghiệm này Hãy khởi động VM Ware, tạo một máy ảo mới theo cách thông thường, chọn chế độ Custom để tùy chỉnh theo ý muốn của bạn.
Các tùy chọn như bình thường, đến phần chọn hệ điều hành như hình dưới:
Guest operating system: các bạn chọn Linux - tấtnhiên rồi
Version: chọn Debian đời cao nhất hỗ trợ trên VM Ware, ở đây là 7.x
Lưu ý là nếu bạn cài Kali Linux 64 bit thì cũng phải chọn Debian 64 bit
Các bước còn lại thì đơn giản như bình thường, các bạn Next > Next >
Finish nhé Một vài thông số chúngtôi áp dụng trong bài ví dụ này:
Vì có nhiều bước nhỏ, lặt vặt nên tôi sẽ chia ra như dưới đây Mời các bạn theo dõi!
Bước 01: Khi bắt đầu cài đặt Kali Linux, bạn sẽ thấy hình ảnh như thế này:
Có một số tùy chọn như Live, yêu cầu máy tính phải có kết nối Internet Do chúng ta cài đặt từ file ISO đầy đủ, nên chúng ta sẽ chuyển sang bước tiếp theo.
31 phần Install (giao diện dòng lệnh) hoặc Graphical Install (giao diện đồ họa hỗ trợ).
Bước 02: Đầu tiên, bạn cần chọn Ngôn ngữ Trong danh sách có nhiều thứ tiếng khác nhau, nếu bạn muốn sử dụng tiếng Việt, hãy kéo xuống gần cuối danh sách để tìm mục Vietnamese - Tiếng Việt.
Bấm Continue để tiếp tục
Kali Linux thông báo rằng khi bạn chọn gói ngôn ngữ tiếng Việt trong quá trình cài đặt, một số thông báo và hội thoại vẫn sẽ hiển thị bằng tiếng Anh do chưa hoàn thiện Vui lòng bấm "Tiếp tục" để tiếp tục quá trình cài đặt.
Chọn vị trí địa lý, Việt Nam:
Để đảm bảo trải nghiệm gõ tốt nhất, bạn nên chọn chế độ gõ hoặc cấu hình bàn phím bằng tiếng Anh Việc giữ nguyên bộ gõ này là rất quan trọng, đặc biệt khi nhập tài khoản và mật khẩu, vì nếu sử dụng ngôn ngữ khác, hệ thống ngôn ngữ trên bàn phím có thể thay đổi, gây khó khăn cho bạn trong việc nhập liệu.
Bấm tiếp tục để bắt đầu quá trình cài đặt Kali Linux, trong đó hệ thống sẽ đọc và ghi các file từ file ISO Tại bước này, bạn cần đặt tên cho máy tính, tương tự như việc đặt tên PC Name trên Windows.
Bước tiếp theo là cấu hình domain Nếu bạn sử dụng máy đơn lẻ, có thể bỏ qua bước này và nhấn Tiếp tục, hệ thống sẽ tự động tạo một domain với tên gọi localhost để sử dụng.
Hệ thống sẽ tự động cấu hình mạng và hoàn tất phần thiết lập Tiếp theo, bạn cần đặt mật khẩu quản trị cho tài khoản root, được gọi là tài khoản chủ trong Kali Linux.
Mật khẩu root yêu cầu kết hợp ký tự đặc biệt, viết hoa, viết thường, số và chữ Ở đây tôi ví dụ là QTMabc123456
Kali Linux sẽ yêu cầu bạn phân vùng và định dạng ổ cứng để cài đặt Tôi đã chọn tùy chọn đầu tiên, sử dụng toàn bộ ổ cứng (Use entire disk).
Chọn tiếp phân vùng 40GB mà chúng ta đã thiết lập ở bước trên:
Step 11: For new users, it is recommended to keep the option of placing all system files in a single partition This approach simplifies file management by consolidating all files into one partition, making it easier for beginners to navigate.
Chọn phần Phân vùng xong và ghi các thay đổi vào đĩa - Finish partitioning and write changes to disk:
Nào thì lưu thay đổi Chọn Có - Yes tại bước này:
Quá trình đƣợc ghi là Cài đặt hệ thống này sẽ diễn ra trong khoảng 10 - 15 phút Ngồi chờ thôi:
KIỂM TRA BẢO MẬT VÀ CÁC BIỆN PHÁP PHÒNG CHỐNG
Phương pháp kiểm tra hộp đen giúp đánh giá lỗi bảo mật trên ứng dụng web bằng cách kiểm tra khả năng bảo mật từ bên ngoài Quá trình này bao gồm việc quan sát dữ liệu gửi đến và nhận từ ứng dụng mà không cần hiểu rõ hoạt động nội bộ của nó Việc xử lý dữ liệu từ bên ngoài có thể thực hiện thủ công hoặc thông qua công cụ tự động để gửi đến ứng dụng.
Kiểm tra bảo mật website thủ công là quy trình mà người kiểm tra xác định vị trí dữ liệu cần gửi đến ứng dụng bằng cách sử dụng các proxy chặn và tập dữ liệu phù hợp với các vị trí đã xác định trước Một số công cụ tiêu biểu cho quy trình này bao gồm các giải pháp kiểm tra bảo mật chuyên dụng.
1 Sử dụng công cụ WebScarab: là một framework đƣợc viết bằng Java phục vụ cho việc phân tích những ứng dụng web với hai giao thức hỗ trợ HTTP và HTTPS WebScarab có khả năng ghi lại hoặc thay đổi
46 tham số ứng dụng trước khi đi trình những yêu cầu, phản hồi giữa trình duyệt và ứng dụng web.
Dịch vụ Pentest website & mobile app
Phương pháp kiểm tra lỗi tự động là quá trình mà các công cụ tự động quét thư mục và tập tin của ứng dụng web, xác định các điểm cần đệ trình dữ liệu Sau khi xác định, công cụ sẽ tự động gửi các tập dữ liệu đã được định nghĩa sẵn và chờ phản hồi từ ứng dụng web để kiểm tra sự hiện diện của các lỗi bảo mật Một số công cụ tiêu biểu cho phương pháp này bao gồm các giải pháp tiên tiến trong ngành an ninh mạng.
Wa3f là một công cụ miễn phí giúp đánh giá tự động các lỗi bảo mật, thực hiện kiểm tra các lỗi bảo mật phổ biến nhất trong danh sách.
10 lỗi bảo mật do OWASP giới thiệu.
Acunetix là một công cụ thương mại mạnh mẽ chuyên kiểm tra lỗi bảo mật, hỗ trợ cả phương thức kiểm tra thủ công và tự động Tuy nhiên, chi phí sử dụng Acunetix khá cao, với giá bản quyền vượt quá 3000 USD.
Phương pháp kiểm tra hộp trắng giúp phát hiện lỗi bảo mật trên ứng dụng web bằng cách kiểm tra trực tiếp mã nguồn Quá trình này có thể thực hiện thủ công hoặc sử dụng công cụ tự động Công cụ sẽ quét toàn bộ mã nguồn và nhận diện các hàm, chỉ dẫn có khả năng gây ra lỗi dựa trên ngôn ngữ lập trình Một trong những công cụ hữu ích trong việc quét mã nguồn là AppCodeScan, được phát triển bởi Blueinfy Solutions Pvt Ltd.
Quá trình tìm kiếm lỗi bảo mật trong mã nguồn ứng dụng yêu cầu người kiểm tra áp dụng phương pháp rà soát hợp lý Do khối lượng tập tin và nội dung trong các ứng dụng web rất lớn, việc thiếu một phương pháp đánh giá thích hợp sẽ dẫn đến việc tiêu tốn nhiều thời gian để phát hiện lỗi.
Phương pháp kiểm tra fuzzing là một nhánh của kiểm tra hộp đen, với những đặc điểm riêng biệt Các công cụ fuzzing không quét cấu trúc thư mục và tệp tin của ứng dụng web, mà chỉ tập hợp các lỗi đã được công bố cho từng ứng dụng cụ thể Sau đó, chúng thực hiện đệ trình để kiểm tra xem ứng dụng đó có bị ảnh hưởng bởi các lỗi này hay không.
Fuzzer là công cụ kiểm tra các lỗi bảo mật trong ứng dụng, chẳng hạn như ứng dụng cổng thông tin điện tử Joomla Nó sẽ tổng hợp tất cả các lỗi bảo mật liên quan đến Joomla và thực hiện đệ trình khi người kiểm tra cung cấp thông tin.
Cách thức thu thập lỗi bảo mật
Một công cụ kiểm tra lỗi bảo mật sử dụng phương pháp kiểm tra fuzzing đƣợc tổ chức thành 2 phần:
Trong phần 1, chúng ta sẽ tổng hợp tất cả các định dạng URL gây ra lỗi cho một ứng dụng cụ thể, chẳng hạn như lỗi bảo mật trong ứng dụng Joomla được phát hiện qua URL: “index.php?option=com_content&view=article” URL này sẽ được lưu trữ trong cơ sở dữ liệu của chương trình cùng với tham số đệ trình gây ra lỗi tương ứng.
Phần 2 của bài viết tập trung vào việc thu thập tất cả các đặc điểm nhận diện liên quan đến URL gây ra lỗi trong quá trình fuzzing Những đặc điểm này sẽ được lưu trữ cùng với URL gặp lỗi trong cơ sở dữ liệu.
Kiểm tra lỗi bảo mật web bằng phương pháp fuzzing có ưu điểm là khả năng thực hiện kiểm tra nhanh chóng trên nhiều website, đặc biệt là những trang đã biết tên ứng dụng đang hoạt động.
Khi tập hợp danh sách các website sử dụng ứng dụng Joomla, việc sử dụng công cụ kiểm tra lỗi bảo mật sẽ diễn ra nhanh chóng Tuy nhiên, nhược điểm của phương pháp này là tính cố định của tổ chức kiểm tra cho từng lỗi bảo mật Để kiểm tra hiệu quả, lỗi bảo mật cần phải đúng định dạng và các dấu hiệu nhận biết phải được tập hợp đầy đủ; nếu không, những lỗi bảo mật có thể bị bỏ sót do thiếu dữ liệu nhận diện.
*** Một số công cụ quét lỗ hổng bảo mật tự động khác
Nikto là một trong những công cụ fuzzer lỗi bảo mật nhanh nhất và hiệu quả nhất hiện nay, với cơ sở dữ liệu cập nhật hàng trăm lỗi bảo mật mỗi ngày Công cụ này hoàn toàn miễn phí và có khả năng tùy biến cao, cho phép người dùng viết và nhúng các thành phần riêng Nikto cũng được bình chọn là một trong 10 công cụ quét lỗi bảo mật web tốt nhất bởi insecure.org.
50 kết với Nikto để thực thi Hơn nữa, Nikto cũng hỗ trợ nhiều định dạng của những chương trình quét lỗi bảo mật khác như: Nmap, Nessus.
AppScan: một công cụ thương mại tập hợp lớn các lỗi bảo mật cho từng ứng dụng web riêng biệt.
TẤN CÔNG VÀ BẢO MẬT CSDL
CÁC PHƯƠNG PHÁP TẤN CÔNG, KHAI THÁC TRÁI PHÉP CSDL
SQL Injection là kỹ thuật mà kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu đầu vào của ứng dụng web Bằng cách khai thác các thông báo lỗi từ hệ quản trị cơ sở dữ liệu, họ có thể tiêm vào và thực thi các câu lệnh SQL bất hợp pháp.
SQL injection cho phép kẻ tấn công thực hiện các thao tác trái phép trên cơ sở dữ liệu của ứng dụng, thậm chí có thể xâm nhập vào server nơi ứng dụng đang hoạt động.
Dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác không được kiểm tra hoặc kiểm tra không kỹ lƣỡng
Ứng dụng sử dụng các câu lệnh SQL động, trong đó dữ liệu đƣợc kết nối với mã SQL gốc để tạo câu lệnh SQL hoàn chỉnh
Tính nguy hiểm của tấn công SQL Injection
Tùy vào mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công:
Vượt qua các khâu xác thực người dùng
Chèn, xóa hoặc sửa đổi dữ liệu
Đánh cắp các thông tin trong CSDL
Chiếm quyền điều khiển hệ thống
2.1.2 Phân loại các kiểu tấn công SQL Injection
SQL Injection có thể chia nhỏ thành các dạng sau
In-band SQLi o Error-based SQLi o Union-based SQLi
Blind-boolean-based SQLi o Time-based-blind SQLi
Đây là dạng tấn công phổ biến nhất và cũng dễ để khai thác lỗ hổng SQL Injection nhất
Xảy ra khi hacker có thể tổ chức tấn công và thu thập kết quả trực tiếp trên cùng một kênh liên lạc
In-Band SQLi chia làm 2 loại chính: o Error-based SQLi o Union-based SQLi
SQL Injection is an attack technique that exploits error messages returned from a Database Server, which reveal information about the database structure.
Trong một vài trường hợp, chỉ một mình Error-based là đủ cho hacker có thể liệt kê đƣợc các thuộc tính của cơ sở dữ liệu
SQL Injection là một kỹ thuật tấn công lợi dụng toán tử UNION trong SQL, cho phép kết hợp kết quả của nhiều câu truy vấn SELECTION thành một kết quả duy nhất, được trả về như một phần của phản hồi HTTP.
Inferential SQL Injection khác với In-band SQLi ở chỗ nó yêu cầu nhiều thời gian hơn để tấn công, vì không có dữ liệu nào được trả về trực tiếp từ ứng dụng web Điều này khiến hacker không thể theo dõi kết quả ngay lập tức như trong trường hợp của tấn công In-band.
Kẻ tấn công sẽ cố gắng tái tạo cấu trúc cơ sở dữ liệu bằng cách gửi các payloads, dựa vào phản hồi từ ứng dụng web và hành vi của máy chủ cơ sở dữ liệu.
Có 2 dạng tấn công chính o Blind-boolean-based o Blind-time-based SQLi
SQL Injection là một kỹ thuật tấn công nhằm gửi các truy vấn đến cơ sở dữ liệu, buộc ứng dụng phản hồi với các kết quả khác nhau tùy thuộc vào việc câu truy vấn đúng hay sai.
Tuỳ thuộc kết quả trả về của câu truy vấn mà HTTP reponse có thể thay đổi, hoặc giữ nguyên
Kiểu tấn công này thường diễn ra chậm chạp, đặc biệt khi đối mặt với cơ sở dữ liệu lớn, vì người tấn công phải liệt kê từng dữ liệu hoặc dò từng ký tự một.
Kỹ thuật tấn công Time-based Blind SQL Injection (SQLi) liên quan đến việc gửi các truy vấn đến cơ sở dữ liệu và yêu cầu cơ sở dữ liệu phải chờ một khoảng thời gian nhất định, thường là tính bằng giây, trước khi trả lời.
Thời gian phản hồi, dù là ngay lập tức hay trễ theo khoảng thời gian đã được cài đặt, cho phép kẻ tấn công suy đoán kết quả của truy vấn là TRUE hoặc FALSE.
Kiểu tấn công này cũng tốn nhiều thời gian tương tự như Boolean-based SQLi
Out-of-band SQLi là một loại tấn công không phổ biến, chủ yếu do nó phụ thuộc vào các tính năng được kích hoạt trên máy chủ cơ sở dữ liệu mà ứng dụng web đang sử dụng.
Kiểu tấn công này xảy ra khi hacker không thể thực hiện tấn công trực tiếp và thu thập kết quả trên cùng một kênh (In-band SQLi), đặc biệt là khi phản hồi từ server không ổn định.
Kiểu tấn công này phụ thuộc vào khả năng server thực hiện các request DNS hoặc HTTP để chuyển dữ liệu cho kẻ tấn công.
For example, the xp_dirtree command in Microsoft SQL Server can be exploited to perform DNS requests to a server controlled by an attacker, while Oracle Database's UTL_HTTP package can be utilized to send HTTP requests from SQL and PL/SQL to a server owned by the attacker.
BẢO MẬT, AN TOÀN CSDL
Theo thống kê, khoảng 90% dữ liệu trong máy tính được lưu trữ dưới dạng cơ sở dữ liệu (CSDL) Tất cả thông tin quan trọng như ngân hàng, kho tàng, quản lý cơ sở vật chất, dân số, tài nguyên khoáng sản và sách trong thư viện đều nằm trong CSDL Trong khi đó, các dạng thông tin khác như thư tín (bao gồm các hệ thống Internet Mail, IBM Lotus Notes, Microsoft Exchange Server), văn bản (soạn thảo bằng Microsoft Word, Word Perfect) và thông tin đồ họa (soạn bằng PowerPoint, Corel Draw, AutoCAD) chỉ chiếm khoảng 10% tổng dữ liệu.
Thông tin được xem như tài sản quý giá, và cơ sở dữ liệu (CSDL) không chỉ lưu trữ thông tin liên quan đến bí mật nhà nước và lĩnh vực kinh tế như ngân hàng hay tốc độ tăng trưởng sản xuất, mà còn chứa đựng thông tin cá nhân như số điện thoại, sở thích và thói quen Tất cả những thông tin này đều cần được bảo vệ một cách nghiêm ngặt Nhu cầu bảo mật CSDL đã được phân tích chi tiết trong tài liệu [1].
Các hệ quản trị cơ sở dữ liệu nhỏ như Dbase và Foxpro thường không chú trọng đến bảo mật dữ liệu Tuy nhiên, Microsoft Access không chỉ cho phép phân quyền sử dụng mà còn tích hợp tính năng mã hóa và giải mã Đối với các hệ quản trị cơ sở dữ liệu lớn như Oracle, SQL Server và Informix, bảo mật được đảm bảo thông qua nhiều cơ chế khác nhau.
The security capabilities of network operating systems are essential for database management systems like Oracle, SQL Server, and Informix, which operate on client/server architectures These systems run on various network operating systems, including Novell Netware, Windows NT Server, and Unix variants such as Solaris and AIX.
Hệ quản trị cơ sở dữ liệu (CSDL) cung cấp khả năng phân quyền chi tiết cho các thao tác thiết kế và quản lý dữ liệu, cho phép người dùng tạo CSDL, tạo bảng và thay đổi cấu trúc CSDL Quyền truy cập được phân chia rõ ràng cho từng bảng, thậm chí tới từng trường dữ liệu, bao gồm quyền đọc, quyền ghi và quyền xoá, đảm bảo tính bảo mật và kiểm soát hiệu quả.
Microsoft SQL Server cung cấp khả năng bảo mật dữ liệu trên đường truyền bằng câu lệnh "Insert with encryption", mặc dù không có tham số để nạp khóa, nghĩa là hệ thống hoàn toàn đảm nhận việc mã hóa Trong khi đó, Microsoft Access cũng có chức năng Encrypt/Decrypt, nhưng cần nghiên cứu sâu hơn để hiểu cơ chế hoạt động của nó Để nâng cao tính năng bảo mật cho Oracle Database Server, Oracle đã phát triển Oracle Proxy Server.
Khả năng tạo View cũng đƣợc đánh giá nhƣ một tính năng bảo mật.
Xây dựng ứng dụng truyền tệp bảo mật và xác thực trong môi trường mạng không quá khó khăn, mặc dù các hệ thư tín như Lotus Notes và Microsoft Outlook đã tích hợp các tính năng bảo mật Việc thêm mã hóa vào các hệ thống này cũng khả thi, nhưng bảo mật thông tin trong tệp dữ liệu lại phức tạp hơn Đặc biệt, để bảo mật cơ sở dữ liệu (CSDL), cần giải quyết một số vấn đề cụ thể liên quan đến tính năng và yêu cầu của ứng dụng.
Thông tin trong cơ sở dữ liệu (CSDL) cần được chia sẻ chung, do đó việc sử dụng khóa riêng cho từng người dùng là không hợp lý Vấn đề đặt ra là lược đồ phân phối khóa cần được thiết kế sao cho vừa đảm bảo tính bảo mật, vừa cho phép nhiều người cùng khai thác dữ liệu Câu hỏi là liệu khóa nên thay đổi theo từng bản ghi hay nên áp dụng chung cho tất cả các bản ghi?
Thông tin trong cơ sở dữ liệu (CSDL) cần được cập nhật và sửa đổi thường xuyên, vì vậy việc giải quyết theo hướng mã tệp không khả thi Mặc dù CSDL trong Foxpro được lưu dưới dạng tệp DBF, trong Access là tệp MDB và trong SQL Server là tệp DAT, nhưng mã hóa toàn bộ tệp dữ liệu sẽ không đảm bảo khả năng truy nhập ngẫu nhiên Đặc biệt, khi CSDL có dung lượng lớn, thời gian mã hóa và giải mã sẽ kéo dài, không đáp ứng được yêu cầu thực tế.
Mã hóa dữ liệu cần phải đáp ứng yêu cầu khai thác dữ liệu, đảm bảo khả năng thực hiện các câu lệnh lọc dữ liệu như SELECT FROM WHERE Do đó, việc xử lý các tệp index và các trường khoá (key field) là vô cùng quan trọng và cần được thực hiện một cách đặc biệt.
Thông tin trong cơ sở dữ liệu (CSDL) được lưu trữ lâu dài, yêu cầu khi thay đổi khóa, các tệp phải được giải mã bằng khóa cũ và mã hóa bằng khóa mới Để bảo mật CSDL, có thể áp dụng các phương pháp đặc thù Đối với CSDL ngân hàng, các trường như "họ tên" và "số tài khoản" được giữ nguyên, trong khi trường "số tiền" được mã hóa Ánh xạ f(x) cần thỏa mãn tính chất f(x + y) = f(x) + f(y) và f(x × y) = x × f(y), đồng thời bảo toàn thứ tự: nếu x > y thì f(x) > f(y).
Hiện nay, phần lớn các cơ chế bảo mật chủ yếu tập trung vào những nhà phát triển hệ quản trị cơ sở dữ liệu lớn như Oracle và Microsoft.
Để giải quyết bài toán bảo mật cơ sở dữ liệu (CSDL), có thể xem xét việc tích hợp mật mã vào hệ quản trị CSDL, mặc dù cách thức thực hiện chưa được công bố rộng rãi Ngoài ra, các hãng sản xuất hệ quản trị CSDL có thể mở ra khả năng này cho người sử dụng, giúp nâng cao mức độ bảo mật cho dữ liệu.
Hình 1: Mô hình xác thực bằng Cisco Secure
Hình: Mô hình sử dụng tầng kiểm soát Proxy
Để tối ưu hóa khả năng an toàn của hệ điều hành mạng và hệ quản trị cơ sở dữ liệu, cần thực hiện các thao tác quản trị cần thiết sau khi cài đặt Việc chỉ cài đặt theo cách thông thường có thể không phát huy hết tác dụng của các biện pháp an ninh đã có sẵn Do đó, việc khai thác tối đa các khả năng bảo mật của hệ thống là vô cùng quan trọng.
Bảo mật dữ liệu của cơ sở dữ liệu trên đường truyền được thực hiện tương tự như các dịch vụ mạng khác như FTP, HTTP và email, thông qua việc sử dụng phần mềm bảo mật như IPSec hoặc SSL Đối với người dùng truy cập từ xa qua Remote Access Server, việc kiểm soát có thể được thực hiện bằng phần mềm, chẳng hạn như Cisco Secure cho thiết bị của hãng Cisco Quá trình xác thực có thể áp dụng theo các thủ tục TACACS+ hoặc RADIUS.