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 bất hợp pháp thông qua việc khai thác lỗ hổng bảo mật trong dữ liệu đầu vào của ứng dụng.
* 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 có trường name trù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 tình huống với tham số userName có giá trị: a' or 't'='t, ta nhận thấy có nguy cơ bảo mật Việc này có thể dẫn đến lỗ hổng SQL Injection, cho phép kẻ tấn công truy cập trái phép vào cơ sở dữ liệu.
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‟, dẫn đến việc truy vấn trả về toàn bộ dữ liệu của bảng users thay vì chỉ một dòng dữ liệu cụ thể.
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ị lạm dụng cho 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 thực hiện truy vấn tới cơ sở dữ liệu đều có nguy cơ bị tấn công SQL injection Các thao tác cơ bản như select, insert và update đều có thể bị khai thác Một số thao tác phổ biến dễ bị tấn công 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ệ hệ thống khỏi các cuộc tấn công, cần chú ý đến tham số truyền vào câu truy vấn Việc kiểm tra và xác thực dữ liệu đầu vào là rất quan trọng nhằm ngăn chặn sai lệch trong quá trình thực hiện truy vấn.
Giải pháp cho việc kiểm tra chuỗi 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, như ký tự.
Để đảm bảo rằng các ký tự đặc biệt không 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 mà kẻ tấn công chèn mã độc 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 các rủi ro bảo mật nghiêm trọng.
Khác với SQL injection, nơi mã độc được thực thi trên server, XSS (Cross-Site Scripting) là một dạng tấn công mà mã độc được thực thi trên máy client Kỹ thuật này được gọi là "cross-site" vì mã độc được chứa trên server nhưng lại thực thi ở client.
* 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 gửi mã độc đến máy khách để thực thi, đặc biệt 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ó những khác biệt nhất định 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 để cài đặt mã độc trên server, khiến mã độc được thực thi mỗi khi người dùng tải trang Các điểm dễ bị tấn công thường là những nơi chứa dữ liệu nhập từ người dùng, như ô bình luận trên blog hoặc các trường 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 để 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ó lại đượ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 gắn mã độc trực tiếp vào liên kết của trang web Khi người dùng truy cập vào đường link chứa mã độc, mã độc sẽ được thực thi ngay lập tức.
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 này, việc kiểm soát chặt chẽ các khu vực có khả năng hiển thị nội dung nhập vào từ client là rất quan trọng.
Để phòng chống SQL injection, 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 mỗi khi nhận dữ liệu Những ký tự này sẽ được biến đổi để đảm bảo an toàn cho hệ thống.
sẽ đƣợc đổi thành <script>
Để đảm bảo an toàn thông tin khi hiển thị 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ên server 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 a server or web server.
Tấn công DDoS nhằm làm tắc nghẽn và 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 thức tấn công phổ biến nhất là kẻ tấn công gửi liên tục các yêu cầu lớn đến máy chủ.
Do lượng yêu cầu tăng cao, máy chủ không còn đủ tài nguyên để xử lý các yêu cầu từ người dùng khác, dẫn đến tình trạng gián đoạn kết nối.
"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, nhưng lần này, kẻ tấn công sử dụng nhiều luồng và địa chỉ IP khác nhau để gửi nhiều lượt truy cập vào một máy chủ cùng lúc Điều này khiến máy chủ không thể phân tán tài nguyên hiệu quả để xử lý tất cả các yêu cầu, 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ể so sánh với tình trạng kẹt xe đặc sản của Sài Gòn.
Trên con đường đến công ty "máy chủ", bỗng nhiên xuất hiện một đoàn xe tải dài của nhà xe "Dos" chiếm trọn lối đi, gây cản trở giao thông nghiêm trọng Sự cố này rõ ràng là hành động cố ý gây rối 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ó khả năng tấn công từ nhiều nguồn khác nhau, sử dụng nhiều địa chỉ IP và phương tiện khác nhau, khiến việc xác định nguồn gốc tấn công trở nên khó khăn Để thực hiện hành vi này, các attacker có thể áp dụng nhiều phương pháp, chẳng hạn như sử dụng máy chủ ảo, thay đổi IP liên tục thông 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 và bị đ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 có thể liên kết 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: mô hình client/server và mô hình peer-to-peer.
Mô hình bot/zombie 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, mang lại sự phổ biến và dễ sử dụng.
Máy zombie thường bị chi phối một cách ngầm bởi người sử dụng mà không nhận ra, thông qua Botmaster, người điều khiển có thể phát tán mã độc để xây dựng một mạng lưới Botnet mạnh mẽ Phương thức phát tán phổ biến nhất là ẩn mã độc vào các phần mềm miễn phí quen thuộc và phát tán link tải trên internet.
Botmaster có khả năng điều khiển 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ể điều khiển các máy bot tấn công vào máy chủ web thông qua giao diện điều khiển đặc biệt, cho phép các máy bot trực tuyến 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 tạo điều kiện cho việc xác định máy chủ trong quá trình phân tích mã độc Nếu 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 là một hệ thống kết nối ngang hàng được thiết kế để 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 và chia sẻ thông tin trực tiếp với nhau Mỗi máy bots được trang bị chức năng điều khiển, cho phép chúng giao tiếp, chia sẻ dữ liệu và điều khiển lẫn nhau, từ đó làm giảm khả năng phát hiện và truy tìm máy chủ.
Trong cấu trúc này, máy chủ và máy bots chỉ có thể kết nối qua các nút lân cận để truyền dữ liệu, với mỗi máy đều có danh sách các máy tin cậy để duy trì sự ổn định Mô hình này tiềm ẩn nhiều nguy cơ hơn so với mô hình client/server, vì rất khó để xác định nguồn gốc và ngăn chặn hoàn toàn, do mỗi máy trong mạng lưới đều có khả năng trở thành 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 từng máy bot khiến người tạo ra có nguy cơ 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ó biện pháp phòng chống DDoS triệt để và rõ ràng nào Đây là một loại tấn công chủ động, do đó việc bảo vệ hệ thống khỏi các cuộc tấn công này vẫn là một thách thức lớn.
Để bảo mật website hiệu quả, cần có một kế hoạch cụ thể, trong đó việc phòng chống DDoS và Botnet là rất quan trọng Một trong những phương pháp phổ biến là sử dụng định tuyến hố đen (black hole), giúp quản trị viên chuyển hướng các truy cập bất thường vào một khu vực an toàn, nhằm giảm thiểu thiệt hại cho máy chủ Các nhà cung cấp dịch vụ internet (ISP) hiện nay đã cung cấp dịch vụ này, tuy nhiên, việc thiết lập cần nhiều thời gian và thiết bị.
Việc tự thiết lập số lượng truy cập cho máy chủ và website cùng một lúc giúp ổn định kết nối cho người dùng trong trường hợp xảy ra tấn công Khi đạt giới hạn truy cập cho phép, mọi truy cập sau đó sẽ bị chặn và phải chờ Tuy nhiên, biện pháp này tiềm ẩn rủi ro, đặc biệt với các website đang thực hiện SEO, vì việc chặn hay giới hạ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.
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 hiệu quả để phòng ngừa 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ù việc sử dụng phần mềm để chặn IP cũng góp phần bảo mật website khỏi các cuộc tấn công DDoS, nhưng chỉ có thể bảo vệ chống lại các cuộc tấn công nhẹ.
Để bảo mật website hiệu quả trước các cuộc tấn công lớn, việc ngăn chặn các yêu cầu (Request) ở Layer đầu tiên là rất quan trọng Nếu các yêu cầu này vượt qua được lớp bảo vệ ban đầu và vào đến server, tức là đã xâm nhập vào Layer-7, thì nguy cơ mất an toàn sẽ gia tăng đáng kể.
Mô Hình OSI rồi, việc này sẽ giảm hiệu quả bảo mật website
Sử dụng tường lửa là một phương pháp quan trọng 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 ra vào hệ thống Tường lửa giúp nhận diện và chặn các truy cập nghi ngờ từ bots tấn công, từ đó hạn chế tiêu hao nguồn tài nguyên và duy trì chất lượng trải nghiệm người dùng.
Dịch vụ Cloudflare cung cấp DNS trung gian, giúp điều phối lưu lượng truy cập vào máy chủ một cá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, điều này mang lại lợi ích bảo mật cho website Tuy nhiên, khi sử dụng 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 không ổn định.
Máy chủ Cloudflare giúp điều tiết lượng truy cập vào website và lọc các kết nối độc hại, đồng thời 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 trở thành nạn nhân của mã độc hay mạng BotNet, 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 là một loại tấn công mạng trong đó kẻ tấn công giả mạo 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 trang web ngân hàng, giao dịch trực tuyến, ví điện tử và công ty thẻ tín dụng để lừa đảo người dùng, nhằm thu thậ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, thẻ tín dụng và các thông tin quý giá khác.
Tin tặc thường sử dụng email và tin nhắn để thực hiện phương thức tấn công giả mạo Khi người dùng mở email và nhấp vào đường link giả, họ sẽ bị yêu cầu đăng nhập Nếu người dùng không cảnh giác và "mắc câu", tin tặc sẽ nhanh chóng thu thập được thông tin cá nhân.
Phishing, một hình thức lừa đảo trực tuyến, lần đầu tiên được biết đến vào năm 1987 Từ "phishing" là sự kết hợp giữa "fishing for information" (câu thông tin) và "phreaking" (lừa đảo điện thoại 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 cơ bản của tấn công Phishing là giả mạo email, trong đó tin tặc gửi email giả mạo từ các tổ chức uy tín nhằm lừa người dùng nhấp vào liên kết dẫn đến website giả.
Email giả mạo thường có hình thức rất giống với email chính chủ, chỉ khác một vài chi tiết nhỏ, dễ khiến người dùng nhầm lẫn và trở thành nạn nhân Kẻ tấn công thường cố gắng "ngụy trang" nội dung email bằng nhiều yếu tố để tạo sự tin tưởng.
Đị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 chủ yếu là tạo ra một Landing page giả, 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 này có một số đặc điểm đặc trưng.
Thiết kế giống tới 99% so với website gốc
Be cautious of deceptive URLs that differ by just one character, such as reddit.com (genuine) versus redit.com (fraudulent), or google.com compared to gugle.com Similarly, watch out for variations like microsoft.com and mircosoft.com, as well as suspicious sites like verify-microsoft.com.
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 đã áp dụng bộ lọc spam/phishing để bảo vệ người dùng, nhưng chúng chủ yếu dựa vào việc kiểm tra văn bản trong email Nhận thức được điều này, kẻ tấn công đã cải tiến chiến dịch phishing bằng cách sử dụng hình ảnh hoặc 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 những 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 quan trọng 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, đồng thời không cung cấp thông tin cá nhân qua email hoặc trang web không đáng tin cậ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 Cuối cùng, hãy nâng cao nhận thức về các hình thức lừa đảo mới và cảnh giác trước các yêu cầu thông tin nhạy cảm từ những nguồn không rõ ràng.
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 thực hiện một giao dịch 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 thận trọng và xác minh tính xác thực của thông tin đó trước khi hành độ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ọ nhằm mục đích kinh doanh Hãy luôn cẩn trọng và xác minh thông tin trước khi hành động.
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 spam@uce.gov và gửi email đến reportphishing@antiphishing.org để hỗ trợ chống lại các cuộc tấn công lừa đảo Điều này đặc biệt quan trọng đối với các tổ chức và doanh nghiệp trong việc bảo vệ thông tin và an ninh mạng.
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ẻ giống như email chính thức, khiến người nhận dễ bị lừa Dưới đây là một số cụm từ thường gặp trong các email hay tin nhắn lừa đảo mà bạn cần cảnh giác.
Việc "Xác thực tài khoản của bạn" là rất quan trọng, nhưng hãy nhớ rằng các website hợp pháp sẽ không bao giờ yêu cầu bạn gửi mật khẩu, tên tài khoản hay bất kỳ thông tin cá nhân nào qua email.
COOKIE THEFT
Cookies cải thiện trải nghiệm lướt web của bạn bằng cách tăng tốc độ và tính thuận tiện Tuy nhiên, về mặt bảo mật, cookies có thể tiết lộ một số thông tin cá nhân Nếu bạn biết cách quản lý cookies hiệu quả, bạn có thể tận hưởng việc duyệt web nhanh chóng mà vẫn bảo vệ an toàn cho thông tin quan trọng của mình.
Cookies trên trình duyệt web giúp lưu trữ thông tin người dùng, cho phép các quảng cáo Google hiển thị sản phẩm phù hợp với nhu cầu của bạn và tự động đăng nhập tên bạn trên các trang web mà bạn đã truy cập.
Cookie lưu trữ thông tin duyệt web, bao gồm tùy chọn trang web và thông tin hồ sơ cá nhân Nhờ vào cookie, trình duyệt có thể cung cấp thông tin phù hợp nhất cho người dùng, 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
Cookies có thể gây rủi ro về bảo mật, vì nếu bị hacker chiếm đoạt, chúng có thể tiết lộ thói quen và lịch sử duyệt web của bạn, từ đó tạo điều kiện cho các cuộc tấn công.
Cookies thường được lưu trữ trên máy tính của người dùng từ 30 đến 60 ngày, cho phép hacker có thể thu thập thông tin trong khoảng thời gian này nếu chúng không được xóa.
Quản lý cookies hiệu quả giúp bạn duyệt web nhanh chóng và bảo vệ an toàn cho thông tin quan trọng của mình.
Bạn có thể quản lý cookies trực tiếp trên trình duyệt web của mình, bao gồm việc xóa cookies định kỳ hoặc thiết lập chế độ 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 để giữ cho dữ liệu của mình luôn an toàn.
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ọn Privacy (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ẽ xóa luôn cả tùy chọn "Ghi nhớ tôi" và các thiết lập lưu trữ đăng nhập đã được lưu khi đăng nhập 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 bảo mật thông tin cá nhân, bạn nên sử dụng phần mềm bảo mật như Kaspersky Internet Security 2017, tích hợp tính năng diệt virus và phát hiện các trang web theo dõi thông tin 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 bí mật nhằm mục đích phá hoại, đánh cắp thông tin hoặc làm gián đoạn hoạt động, gây 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 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 Thực tế, virus máy tính chỉ là một phần nhỏ trong khái niệm mã độc Virus máy tính là một dạng mã độc, nhưng điểm khác biệt là nó có khả năng tự lây lan.
Các loại mã độc ngày càng trở nên phức tạp, từ phương thức lây nhiễm đến cách ẩn mình và thực hiện các hành vi nguy hiểm Ranh giới giữa các loại mã độc ngày càng mờ nhạt do chúng cần kết hợp với nhau để tối ưu hóa 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 ổ đĩ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ó hoạt động độc lập với hệ điều hành Một nhược điểm của virus B là việc viết mã trở nên 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, đồng thời kích thước của virus cũng bị giới hạn bởi kích thước của các sector, 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 tấn công vào 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 lặp đi lặp lại 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, đơn vị duy trì và tài trợ cho dự án mã nguồn mở Kali Linux Chỉ với một tiếng đồng hồ, bạn có thể bắt đầu sử dụng Kali Linux trên hệ điều hành Windows.
Để bắt đầu, bạn cần tải về Kali Linux ảo hóa cho VMware, phiên bản dựa trên Kali Linux 2020.2 Quá trình tải xuống có thể mất thời gian do file nặng khoảng 2,1GB, vì vậy hãy đảm bảo có kết nối internet ổn định hoặc sử dụng phần mềm hỗ trợ download để tăng tốc độ tải.
Tải bản ảo hóa Kali Linux cho VMware 64bit
Tải bả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-
Bước 3: Mở VMware và chọn "Open a virtual machine", sau đó duyệt đến thư mục chứa file vừa giải nén Tìm file có đuôi vmx, trong ví dụ 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 thành công giao diện GUI của Kali Linux Nếu bạn muốn tìm hiểu thêm, hãy xem hướng dẫn cài đặt Kali Linux trên VMware bằng 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, lớn hơn so với các hệ điều hành và distro Linux khác Tuy nhiên, Kali Linux nổi bật với khả năng tương thích cao với nhiều cấu hình máy 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 này, chúng tôi tiến hành cài đặt file Kali Linux phiên bản Light 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 là một trong những ứng dụng tạo máy ảo ổn định nhất trên Windows, và trong bài viết này, chúng tôi sẽ thử nghiệm trên phiên bản Windows 11.x Để bắt đầu, hãy khởi động VM Ware và tạo một máy ảo mới bằng cách 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ất nhiê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úng tô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ó nhiều tùy chọn cài đặt, trong đó Live là phương pháp cài đặt trực tuyến yêu cầu máy tính phải có kết nối Internet Do chúng ta đang cài đặt từ file ISO đầy đủ, nên chúng ta sẽ chuyển sang phương pháp này.
31 phần Install (giao diện dòng lệnh) hoặc Graphical Install (giao diện đồ họa hỗ trợ)
Để bắt đầu, bạn cần chọn Ngôn ngữ Trong danh sách, có rất 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 và tìm mục "Vietnamese - Tiếng Việt".
Bấm Continue để tiếp tục
Khi cài đặt Kali Linux và chọn gói ngôn ngữ tiếng Việt, bạn sẽ nhận được thông báo lịch sự cho biết rằng một số thông báo và hội thoại vẫn hiển thị bằng tiếng Anh do chưa hoàn thiện Hãy 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:
Chọn chế độ gõ hoặc cấu hình bàn phím, tôi khuyên bạn nên giữ bộ gõ là tiếng Anh để tránh rắc rối khi nhập tài khoản và mật khẩu, vì hệ thống ngôn ngữ trên bàn phím có thể thay đổi Nếu bạn không quen với các ngôn ngữ khác, sẽ rất khó để thao tác.
Bấm tiếp tục để bắt đầu quá trình cài đặt, hệ thống sẽ đọc và ghi các file từ file ISO để tạo ra hệ điều hành Kali Linux Trong bước này, bạn sẽ cần đặt tên cho máy tính tương tự như việc đặt tên PC Name trên Windows.
Tiếp theo, bạn cần 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, 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, hay còn 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 advisable to keep the option to place all system files in a single partition This approach of having all files in one partition is recommended for those who are unfamiliar with system configurations.
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á khả năng bảo mật của ứng dụng web từ bên ngoài, thông qua 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ộ Quy trình này có thể được thực hiện bằng cách thủ công hoặc sử dụng các công cụ tự động để gửi dữ liệu đến ứng dụng.
Kiểm tra bảo mật website thủ công là quá 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 cần đệ trình tương ứng Một số công cụ tiêu biểu cho quá trình này bao gồm các phần mềm hỗ trợ kiểm tra bảo mật.
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 sử dụng các công cụ để quét thƣ mục và tập tin của ứng dụng web, nhằm 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 đệ trình các tập dữ liệu đã được định nghĩa và chờ phản hồi từ ứng dụng web để kiểm tra sự tồn tại 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
Wa3f: là một công cụ đánh giá các lỗi bảo mật tự động và miễn phí
Thực hiện kiểm tra tất cả 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ả kiểm tra thủ công lẫn tự động Mặc dù có nhiều tính năng ưu việt, giá của Acunetix khá cao, lên tới hơn 3000 USD cho một bản quyền.
Phương pháp kiểm tra hộp trắng là quy trình kiểm tra trực tiếp mã nguồn của ứng dụng web nhằm phát hiện các lỗ hổng bảo mật.
Quá trình quan sát và kiểm tra mã nguồn có thể được thực hiện thủ công hoặc bằng công cụ Khi sử dụng công cụ, nó sẽ quét toàn bộ mã nguồn của ứng dụng, dựa trên các hàm và chỉ dẫn có khả năng gây ra lỗi trong ngôn ngữ lập trình web Một trong những công cụ có thể được sử dụng để quét mã nguồn là
AppCodeScan do Blueinfy Solutions Pvt Ltd phát triển
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 kiểm tra hợp lý Với khối lượng tập tin và nội dung lớn trong các ứng dụng web, việc không có phương pháp rà soát hiệu quả 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ỗi bảo mật 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à tập trung vào việc thu thập và kiểm tra các lỗi đã được công bố cho từng ứng dụng cụ thể, nhằm xác định xem ứng dụng đó có bị ảnh hưởng hay không.
Fuzzer kiểm tra các lỗi bảo mật liên quan đến ứng dụng cổng thông tin điện tử Joomla, tập hợp tất cả các lỗ hổng 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:
Phần 1: Tập hợp tất cả các định dạng URL gây ra lỗi cho ứng dụng cụ thể, như lỗi bảo mật trong Joomla với 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.
Trong phần 2, chúng tôi sẽ tổng hợp tất cả các đặc điểm nhận diện tương ứng với 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ây ra lỗi trong cơ sở dữ liệu.
Kiểm tra lỗi bảo mật web thông qua phương pháp fuzzing mang lại lợi ích lớn nhờ khả năng kiểm tra nhanh chóng một số lượng lớn website, đặc biệt khi đã biết tên ứng dụng đang chạy.
Khi tập hợp danh sách các website sử dụng ứng dụng Joomla, việc kiểm tra lỗi bảo mật liên quan sẽ trở nên nhanh chóng hơn Tuy nhiên, nhược điểm của phương pháp này là tính cố định trong tổ chức kiểm tra từng lỗi bảo mật Để kiểm tra một lỗi cụ thể, yêu cầu phải có định dạng chính xác và dấu hiệu nhận biết đầy đủ; nếu không, có thể bỏ sót các lỗi dù ứng dụng vẫn tồn tại vấn đề bảo mật.
*** 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 hàng đầu, nổi bật với cơ sở dữ liệu cập nhật hàng trăm lỗi mỗi ngày Công cụ này hoàn toàn miễn phí và cho phép tùy biến cao, giúp người dùng dễ dàng viết và nhúng các thành phần Đặc biệt, Nikto đượ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à một kỹ thuật tấn công mà kẻ xấu 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 Họ sử dụng các thông báo lỗi từ hệ quản trị cơ sở dữ liệu để tiêm và thực thi các câu lệnh SQL trái phép.
SQL injection cho phép kẻ tấn công thao tác trên cơ sở dữ liệu của ứng dụng và thậm chí cả máy chủ mà ứ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 a technique that exploits error messages returned from a Database Server, revealing 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.
Khác với In-band SQL Injection, Inferential SQL Injection yêu cầu nhiều thời gian hơn cho quá trình 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, khiến hacker không thể theo dõi kết quả ngay lập tức như trong các cuộc tấn công In-band.
Kẻ tấn công sẽ tìm cách 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 cho phép kẻ tấn công gửi các truy vấn tới cơ sở dữ liệu, khiến ứng dụng trả về kết quả khác nhau dựa trên việc câu truy vấn đó là đú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 là đối với các cơ sở dữ liệu lớn, vì người tấn công cần phải liệt kê từng dữ liệu hoặc tìm kiếm 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, yêu cầu hệ thống phải chờ một khoảng thời gian nhất định (thường là vài giây) trước khi trả về phản hồi.
Thời gian phản hồi, cho dù là ngay lập tức hay trễ theo khoảng thời gian đã được thiết lập, cho phép kẻ tấn công suy đoán xem kết quả của truy vấn là TRUE hay FALSE.
Kiểu tấn công này cũng tốn nhiều thời gian tương tự như Boolean-based
Tấn công SQLi kiểu out-of-band không phổ biến do 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 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 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 instance, 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 liên quan đến 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 được tổ chức dưới dạng CSDL Các dạng thông tin khác như thư tín, bao gồm tất cả các hệ thống Internet Mail và IBM Lotus cũng góp phần vào khối lượng dữ liệu này.
Notes, Microsoft Exchange Server, ), văn bản (đƣợc soạn thảo bằng Microsoft
Word, Word Perfect, ), các thông tin đồ hoạ khác (đƣợc soạn bằng Power
Point, Corel Draw, AutoCad, ) và các dạng khác chỉ chiếm 10%
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 bí mật nhà nước hay dữ liệu kinh tế, mà còn chứa đựng thông tin cá nhân như số điện thoại và sở thích 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 hay 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 dữ liệu được đảm bảo thông qua nhiều cơ chế khác nhau.
The security capabilities of network operating systems are exemplified by database management systems such as Oracle, SQL Server, and Informix, which operate on client/server architectures and are compatible with network operating systems like Novell Netware, Windows NT Server, and Unix variants including 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 Người dùng có thể được cấp quyền tạo CSDL, tạo bảng, cũng như thay đổi cấu trúc của CSDL Ngoài ra, hệ thống còn cho phép phân quyền khai thác dữ liệu với các quyền đọc, ghi và xoá, và các quyền này có thể được chỉ định cụ thể cho từng bảng hoặc thậm chí từng trường dữ liệu.
Khả năng bảo mật của hệ quản trị cơ sở dữ liệu (CSDL) rất quan trọng, với Microsoft SQL Server cho phép bảo mật dữ liệu trên đường truyền thông qua câu lệnh “Insert with encryption”, mặc dù không có tham số để nạp khoá, khiến quá trình mã hóa hoàn toàn phụ thuộc vào hệ thống Trong khi đó, Microsoft Access cũng cung cấp chức năng Encrypt/Decrypt, nhưng cần nghiên cứu sâu hơn để hiểu rõ cơ chế hoạt động Để 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 một ứng dụng truyền tệp an toàn và xác thực trong môi trường mạng là khả thi, mặc dù các hệ thống thư tín như Lotus Notes và Microsoft Outlook đã tích hợp tính năng bảo mật Việc bổ sung mã hóa cho các hệ thống này không quá phức tạp, tuy nhiên, bảo vệ thông tin trong cơ sở dữ liệu (CSDL) lại đòi hỏi giải quyết những thách thức riêng biệt.
Thông tin trong cơ sở dữ liệu (CSDL) cần được sử dụng chung, do đó việc sử dụng khóa riêng cho từng người dùng là không phù hợp 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í mật, vừa cho phép nhiều người cùng khai thác dữ liệu một cách hiệu quả Câu hỏi là liệu khóa nên thay đổi theo từng bản ghi hay giữ 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, do đó không thể xử lý chỉ bằng mã tệp Mặc dù CSDL trong Foxpro lưu dưới dạng tệp DBF, trong Access là tệp MDB, và trong SQL Server là tệp DAT, việc 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 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ã hoá dữ liệu cần đáp ứng yêu cầu khai thác dữ liệu, đảm bảo thực hiện các câu lệnh lọc như SELECT FROM WHERE Do đó, các tệp index và trường khoá (key field) cần được xử lý 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, không chỉ là các tệp dữ liệu có thể xóa nhanh chóng, do đó khi thay đổi khóa, các tệp phải được giải mã bằng khóa cũ và mã hóa lại 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, hầu hết các cơ chế bảo mật chủ yếu được phát triển bởi các nhà sản xuất phần mềm lớn như Oracle và Microsoft, nhằm bảo vệ hệ quản trị cơ sở dữ liệu.
Bảo mật cơ sở dữ liệu (CSDL) không chỉ phụ thuộc vào các nhà khai thác mà còn vào khả năng tích hợp mật mã từ các hãng sản xuất hệ quản trị CSDL Mặc dù cách thực hiện chưa được công bố rộng rãi, vẫn có thể giải quyết vấn đề bảo mật CSDL thông qua một số phương pháp khác nhau.
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 an toàn cho hệ điều hành mạng và hệ quản trị cơ sở dữ liệu, cần khai thác triệt để các khả năng bảo mật sẵn có Sau khi cài đặt thông thường, các tính năng an ninh có thể chưa được phát huy hiệu quả Do đó, việc thực hiện các thao tác quản trị cần thiết là rất quan trọng để tối đa hóa hiệu quả của hệ thống.
Bảo mật dữ liệu của cơ sở dữ liệu (CSDL) 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 các 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 Quy trình xác thực có thể được thực hiện thông qua TACACS+ hoặc RADIUS.