1. Giới thiệu chung: Đặc quyền: là một tính năng bảo mật của hầu hết các chương trình và hệ điều hành. Người dùng có càng nhiều đặc quyền thì càng có nhiều hacker có thể sửa đổi hoặc tương tác với một hệ thống hay ứng dụng. Sự leo thang đặc quyền: có thể hiểu đơn giản là một phương thức tấn công mà với cách này các User có quyền hạn thấp hơn sẽ tấn công vào một điểm dễ bị tổn thương nhất của hệ thống để trở thành một người quản trị hoặc có thể trở thành các User có quyền hạn cao hơn. Cách để leo thang đặc quyền mà ta có thể nghĩ ngay đến đó là việc chiếm quyền thông qua crack password của người quản trị, tấn công tràn bộ đệm của máy đó và ăn cắp password. Leo thang đặc quyền : là người dùng nhận được nhũng đặc quyền mà họ không được phân phát hay hưởng. Một người sử dụng có quyền hạn thấp hơn có thể sử dụng quyền hạn của người dùng khác cao hơn mình. Những đặc quyền này cho phép người sử dụng nó thực hiện những hành động mà chỉ người có quyền mới được làm như : thay đổi mật khẩu, xem thông tin cá nhân của người dùng hay cài các phần mềm yêu cầu quyền hạn nào đó… Leo thang đặc quyền theo chiều dọc : là khả năng nâng cấp hoặc được truy cập vào một tình trạng tài khoản cao hơn hoặc cấp phép trong các ứng dụng truy cập, các chức năng của trang web nào đó. 2.2 Khai thác lỗ hổng bảo mật khác: Lỗ hổng ứng dụng khác như SQL Injection có thể cho phép truy cập vào dữ liệu mà chỉ nhằm mục đích sử dụng đặc quyền cao hơn hoặc có thể giúp thay đổi đặc quyền ưu đãi bậc cao 2.3 Chức năng quản lý không an toàn: Chức năng quản lý đôi khi có thể không được xác thực hoặc được ủy quyền đúng Ví dụ: ứng dụng chấp nhận một yêu cầu hành chính Post
1 Mục lục Trang Giới thiệu chung: .4 Các phương pháp để khai thác lỗ hổng leo thang đặc quyền: .5 2.1 Sửa đổi thông số: .5 2.2 Khai thác lỗ hổng bảo mật khác: .6 2.3 Chức quản lý khơng an tồn: Cơ chế thực hiện: .6 SQL Injection: 4.1 SQL Injection gì? 4.2 Các dạng công SQL Injection: 4.3 Các loại SQL Injection: .9 4.4 Lỗ hổng: .9 4.5 Các ứng dụng dễ bị tổn thương: 10 Công cụ hỗ trợ: .11 Cách phòng chống: 13 6.1 Cách phòng chống SQL Injection: 13 6.1.1 Validation đầu vào: .13 6.1.2 Chức đầu vào kiểm tra: 14 6.1.3 Xác nhận nguồn đầu vào: 14 6.1.4 Quyền truy cập: 15 6.1.5 Cấu hình sở liệu báo cáo lỗi: 15 6.2 Cách phòng chống chung: 15 Triển khai demo: 16 Giới thiệu chung: - Đặc quyền: tính bảo mật hầu hết chương trình hệ điều hành Người dùng có nhiều đặc quyền có nhiều hacker sửa đổi tương tác với hệ thống hay ứng dụng - Sự leo thang đặc quyền: hiểu đơn giản phương thức cơng mà với cách User có quyền hạn thấp công vào điểm dễ bị tổn thương hệ thống để trở thành người quản trị trở thành User có quyền hạn cao Cách để leo thang đặc quyền mà ta nghĩ đến việc chiếm quyền thông qua crack password người quản trị, cơng tràn đệm máy ăn cắp password - Leo thang đặc quyền : người dùng nhận nhũng đặc quyền mà họ không phân phát hay hưởng Một người sử dụng có quyền hạn thấp sử dụng quyền hạn người dùng khác cao Những đặc quyền cho phép người sử dụng thực hành động mà người có quyền làm : thay đổi mật khẩu, xem thông tin cá nhân người dùng hay cài phần mềm yêu cầu quyền hạn đó… - Leo thang đặc quyền theo chiều dọc : khả nâng cấp truy cập vào tình trạng tài khoản cao cấp phép ứng dụng truy cập, chức trang web Hình 1.1 Tấn công leo thang đặc quyền theo chiều dọc - Ví dụ: Một kẻ cơng bỏ qua quyền truy cập vào thông tin bảo vệ hay nhạy cảm thông qua đường từ xa Bằng cách cẩn thận crafting truy vấn mà tận dụng lợi lỗ hổng ứng dụng web triển khai trang web nhắm mục tiêu, kẻ cơng chèn hướng dẫn trực tiếp cho ứng dụng sở liệu trang web cho phép truy cập vào hồ sơ bảo vệ bề đổ toàn nội dung sở liệu (SQL Injection) Những kẻ cơng có phong phú khai thác để thử, kẻ công thường đơn giản tận dụng lợi ứng dụng web thiếu xác nhậsưn loại liệu mà người dùng gửi: tình vậy, ứng dụng web qua điều kẻ cơng xâm nhập vào hình thức trình web với sở liệu sở liệu thực thi nhận được, với hậu tai hại thường bao gồm tiết lộ đầy đủ sở liệu, thay đổi liệu tham nhũng Các phương pháp để khai thác lỗ hổng leo thang đặc quyền: 2.1 Sửa đổi thông số: Các ứng dụng thường sử dụng cookie phiên / thông số ẩn để lưu trữ thông tin truy cập vai trị kiểm sốt Nếu thơng số giá trị dự đốn, họ dễ dàng giả mạo để đạt đặc quyền cao Ví dụ: Ứng dụng sử dụng 'admin' thuộc tính tập tin cookie để xác định xem người dùng admin hay không 5 Cookie: JSESSIONI0000d8eyYq3L0z2fgq10m4v-rt4: -1; quản trị = 1; 2.2 Khai thác lỗ hổng bảo mật khác: Lỗ hổng ứng dụng khác SQL Injection cho phép truy cập vào liệu mà nhằm mục đích sử dụng đặc quyền cao giúp thay đổi đặc quyền ưu đãi bậc cao 2.3 Chức quản lý khơng an tồn: Chức quản lý đơi khơng xác thực ủy quyền Ví dụ: ứng dụng chấp nhận yêu cầu hành Post (ví dụ: trang http://www.example.com/admin/utils/updatedetails.asp ) từ người sử dụng bình thường Cơ chế thực hiện: Trong công leo thang đặc quyền theo chiều dọc, kẻ công di chuyển lên bậc thang đặc quyền, nói, cách cấp đặc quyền thường dành riêng cho người dùng truy cập cao Trong hầu hết công leo thang đặc quyền, hacker đăng nhập với tài khoản người dùng cấp thấp Sau đó, tìm kiếm lỗ hổng khai thác hệ thống sử dụng để nâng cao đặc quyền Nếu hacker khai thác thành cơng lỗ hổng vậy, ơng cho phép hoạt động mạng, tạo người sử dụng hệ thống tập tin truy cập thay đổi thiết lập hệ thống cơng dẫn đến hành vi trộm cắp liệu nhạy cảm chiếm quyền điều khiển tồn mạng 7 Hình 3.1 Hình ảnh chế cơng leo thang đặc quyền SQL Injection: 4.1 SQL Injection gì? Hình 4.1.1 SQL Injection SQL Injection kỹ thuật (như chế công web khác) để công liệu ứng dụng điều khiển Cuộc cơng bỏ qua tường lửa ảnh hưởng đến hệ thống vá lỗi đầy đủ Những kẻ cơng có lợi nhân vật lọc khơng cách trốn nhúng vào câu lệnh SQL vào phân tích liệu từ biến người dùng nhập vào Những kẻ công đưa liệu tùy ý, thường xuyên truy vấn sở liệu, thành chuỗi cuối thực sở liệu thông qua ứng dụng web (ví dụ hình thức đăng nhập) Hình 4.1.2 Kỹ thuật cơng SQL Injection Thơng qua SQL Injection cơng truy cập trái phép vào sở liệu tạo, đọc, cập nhật, thay đổi, xóa liệu lưu trữ sở liệu back-end Hiện tất sở liệu SQL Oracle, MySQL, PostgreSQL, MSSQL Server, MS Access khả dễ bị công SQL injection Trong hình thức phổ biến nó, công SQL injection cho phép truy cập thông tin nhạy cảm số an sinh xã hội, số thẻ tín dụng liệu tài khác 4.2 Các dạng công SQL Injection: - Dạng công vượt qua kiểm tra đăng nhập - Dạng công sử dụng câu lệnh SELECT - Dạng công sử dụng câu lệnh INSERT 9 - Dạng công sử dụng stored-procedures 10 4.3 Các loại SQL Injection: - Lặp lại không cần dựa SQL Injection - Các câu hỏi Piggy lưng / Trữ tiêm - Union Query - Bất hợp pháp / Queries logic không - Suy luận - Thủ tục lưu trữ tiêm 4.4 Lỗ hổng: Trong an ninh máy tính, lỗ hổng điểm yếu cho phép kẻ công để giảm đảm bảo thơng tin hệ thống hình thức dựa web cho phép số quyền truy cập vào sở liệu backend cho phép nhập liệu phản ứng, loại công bỏ qua tường lửa phịng thủ điểm cuối Bất kỳ hình thức web, chí hình thức đăng nhập đơn giản hay hộp tìm kiếm (nơi người dùng nhập liệu), cung cấp quyền truy cập vào sở liệu back-end SQL injection Hình 4.4.1 Ví dụ minh họa “Lỗ hổng” Lý phổ biến mà ứng dụng dễ bị công SQL injection lọc không thiếu xác nhận cho người dùng nhập vào hình thức đầu vào phổ biến để thu thập liệu từ người dùng Vì vậy, thực tế khơng có tính khả thi để đóng tất điểm vào để SQL injection Để ngăn chặn công nhà 11 phát triển phải áp dụng thích hợp lọc / xác nhận tất hình thức 4.5 - Các ứng dụng dễ bị tổn thương: Hầu tất sở liệu SQL khả dễ bị tổn thương MS SQL Server, DB2, Oracle, PostgreSQL, MySQL, MS Access, Sybase, Informix, vv - Truy cập thông qua ứng dụng sử dụng: ASP, JSP, PHP Perl CGI script truy cập vào sở liệu XML, XSL XSQL JavaScript Cơ sở liệu ứng dụng web cụ thể … 12 Công cụ hỗ trợ: Backtrack Hình 5.1 Backtrack - Backtrack: phân phối Linux tập trung vào bảo mật dựa Ubuntu Linux nhằm pháp lý kỹ thuật số thử nghiệm thâm nhập sử dụng Trong tháng năm 2013, nhóm nghiên cứu Tấn An xây dựng lại Backtrack việc phân phối Debian phát hành tên Kali Linux - Backtrack: hệ điều hành tích hợp nhiều tools giúp kiểm tra khai thác lỗ hổng bảo mật - Backtrack: cung cấp người dùng dễ dàng truy cập đến sưu tập toàn diện lớn công cụ an ninh liên quan đến nhau, từ máy quét cổng để kiểm toán an ninh Hỗ trợ cho Live CD Live USB chức cho phép người dùng khởi động Backtrack trực tiếp từ phương tiện truyền thông di động mà không cần cài đặt, dù lắp đặt cố định vào đĩa cứng mạng lựa chọn - Backtrack bao gồm nhiều công cụ bảo mật tiếng: Nmap 13 Gerix Wifi Cracker Ettercap Ophcrack Aircrack-ng … - Backtrack xếp công cụ thành 12 loại: Thu thập thông tin Đánh giá tổn thương Công cụ khai thác Leo thang đặc quyền Duy trì truy cập Kỹ thuật đảo ngược Công cụ RFID Căng thẳng thử nghiệm Pháp y Công cụ báo cáo Dịch vụ Hỗn hợp VD: Nmap Hình 5.2 Nmap - Là phần mềm mã nguồn mở dung để qt đường mạng dị nhiều thơng tin hữu ích máy chủ 14 - Hỗ trợ tìm lỗ hổng bảo mật - Hỗ trợ tính tốn thời gian trễ , thời gian chờ gói tin, phát máy chủ download liệu * Ưu điểm: - Hỗ trợ nhiều kỹ thuật tiên tiến, vượt qua nhiều lọc hệ thống IP, tường lửa - Miễn phí - Có thể qt đường dây mạng lớn - Dễ sử dụng - Đa ngôn ngữ - Hỗ trợ hầu hết hệ điều hành Cách phòng chống: 6.1 Cách phòng chống SQL Injection: Nguyên nhân gốc rễ hầu hết SQL injection kiểm tra đầu vào không hợp lệ 6.1.1 Validation đầu vào: - Đơn giản kiểm tra đầu vào ngăn chặn nhiều vụ công - Luôn xác nhận đầu vào người sử dụng cách kiểm tra loại, kích cỡ, chiều dài, định dạng, phạm vi - Kiểm tra nội dung biến chuỗi chấp nhận giá trị dự kiến - Từ chối mục chứa liệu nhị phân, chuỗi escape vv Điều giúp ngăn ngừa tiêm kịch bảo vệ chống lại số đệm tràn ngập khai thác - Khi bạn làm việc với tài liệu XML, xác nhận tất liệu so với sơ đồ nó nhập vào 15 6.1.2 Chức đầu vào kiểm tra: - Một số nhân vật chuỗi ký tự như; , -, Lựa chọn, chèn xp_ sử dụng để thực công SQL injection - Hủy bỏ ký tự chuỗi ký tự từ người dùng nhập vào làm giảm nguy công tiêm - Chuỗi truy vấn Scan cho chữ không mong muốn "chèn", "cập nhật", "xóa", "thả" vv kiểm tra xem đại diện cho tuyên bố đầu vào người dùng hợp lệ - Viết chức mà xử lý tất điều Danh sách nhân vật sử dụng để thực cơng SQL Injection: Hình ảnh danh sách nhân vật sử dụng để thực công SQL Injecton 6.1.3 Xác nhận nguồn đầu vào: Có nhiều cách để cơng sở liệu, nhà phát triển nên kiểm tra xác nhận tất nguồn đầu vào không cho phép xác định không tin cậy người sử dụng / trang web 16 6.1.4 Quyền truy cập: - Tạo "thấp đặc quyền" tài khoản để sử dụng ứng dụng - Không cấp đặc quyền instancelevel vào tài khoản sở liệu - Không cấp databaseowner ưu đãi schemaowner vào tài khoản sở liệu - Hãy biết chế cho phép sở liệu bạn 6.1.5 Cấu hình sở liệu báo cáo lỗi: - Lỗi mặc định số ứng dụng máy chủ báo cáo thường xun cho thơng tin có giá trị cho kẻ công (tên bảng, tên trường, v…v ) - Nhà phát triển nên cấu hình hệ thống cách xác, thơng tin khơng tiếp xúc với người sử dụng trái phép 6.2 Cách phòng chống chung: - Giữ cho phần mềm chống virus cập nhật cài đặt vá lỗi sửa chữa phần mềm họ trở nên có sẵn Càng an tồn hệ thống bạn, có khả hacker tìm lỗ khai thác - Sử dụng phòng ngừa thực thi liệu (DEP) cách khác để tránh công Hầu hết hệ điều hành phổ biến có DEP xây dựng lý - Đặt vai trị thích hợp người dùng đặc quyền cho tài nguyên ứng dụng (các trang web, sở liệu, vv,…) - Kiểm tra đặc quyền người dùng cho yêu cầu người sử dụng cách thích hợp - Quét ứng dụng web bạn cho lỗ hổng biết đến giảm thiểu khai thác cơng - Xác nhận liệu trình tạo trang web bạn sử dụng 17 - Sử dụng phương pháp xác thực mạnh có thể, sử dụng chúng cách thơng minh (ví dụ, dài mạnh mẽ mật phức tạp) Triển khai demo: Demo trực tiếp máy TÀI LIỆU THAM KHẢO: - https://technet.microsoft.com/en-us/library/ ms161953(v=sql.105).aspx - https://www.icann.org/news/blog/what-isprivilege-escalation - http://www.w3resource.com/sql/sql-injection/ sql-injection.php - https://www.icann.org/news/blog/what-isprivilege-escalation - https://en.wikipedia.org/wiki/BackTrack