Đề tài Các phương thức tấn công và phòng thủ Web Server - Nguồn: Internet

55 11 0
Đề tài Các phương thức tấn công và phòng thủ Web Server - Nguồn: Internet

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

liệu mới, … Nếu ứng dụng sử dụng quyền sa (quyền quản trị hệ thống), nó có thể điều khiển toàn bộ hệ quản trị cơ sở dữ liệu và với quyền hạn rộng lớn như vậy nó có thể tạo ra các tài k[r]

(1)

phát triển mạng internet ngày phát triển đa dạng phong phú Các dịch vụ mạng thâm nhập vào hầu hết lĩnh vực đời sống xã hội Các thông tin Internet đa dạng nội dung hình thức, có nhiều thơng tin cần bảo mật cao tính kinh tế, tính xác tính tin cậy

Bên cạnh đó, hình thức phá hoại mạng trở nên tinh vi phức tạp Do hệ thống, nhiệm vụ bảo mật đặt cho người quản trị mạng quan trọng cần thiết Xuất phát từ thực tế đó, tìm hiểu cách cơng phổ biến phịng chống loại cơng

Chính vậy, thông qua việc nghiên cứu số phương pháp công cách bảo mật lọa công này,tơi mong muốn góp phần nhỏ vào việc nghiên cứu tìm hiểu vấn đề an ninh mạng giúp cho việc học tập nghiên cứu

Tôi xin chân thành cảm ơn hướng dẫn Thầy Đặng Ngọc Cường thầy trực tiếp hướng dẫn đồ án chuyên ngành cho tôi, giúp hồn thành đồ án 1 Lý chọn đề tài

Trong năm gần đây, Việt Nam ngày phát triển mặt công nghệ thông tin Đặc biệt ứng dụng web, người nghe làm việc ứng dụng web Website trở nên phổ biến trở thành phần quan trọng người doanh nghiệp, cơng ty Bên cạnh lý an tồn bảo mật cho ứng dụng web vấn đề nan giải người.Vì tìm hiểu ứng dụng web cách thức công bảo mật web

2 Mục tiêu

Giúp hiểu ứng dụng website, mối đe dọa vấn đề an tồn thơng tin làm việc ứng dụng web hàng ngày, hiểu rõ kỹ thuật công bảo mật web

3 Phạm vi

(2)

MỤC LỤC

CHƯƠNG

TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT THÔNG DỤNG

1.1 Mô tả Website cách hoạt động

1.2 Các dịch vụ ứng dụng web

CHƯƠNG

CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN

2.1 LOCAL ATTACK

2.1.1 Tìm hiểu Local Attack

2.1.2 Cách công Local Attack

2.1.3 Cách bảo mật cho Local Attack 10

2.1.4 Các công cụ hỗ trợ 14

2.2 Tấn công từ chối dịch vụ - (Denial Of Service) 15

2.2.1 DOS(Denial Of Service) 15

2.2.2 Ddos(Distributed Denial of Service) 18

2.2.3 Tấn công từ chối dịch vụ phản xạ nhiều vùng DRDoS (Distributed Reflection Denial of Service) 30

2.3 SQL Injection 32

2.3.1 Tấn công SQL injection 32

2.3.2.Cách Phòng Tránh SQL Injection 41

2.4 Cross Site Scripting (XSS) 46

2.4.1 Tấn cơng XSS 46

2.4.2 Phịng chống 49

(3)

3.1 Demo 50

3.2 Kết luận 51

3.2.1 Các vấn đề đạt 51

3.2.2 Hạn chế 52

3.2.3 Hướng phát triển đề tài 52

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 54

(4)

CHƯƠNG

TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT THƠNG DỤNG

1.1 Mơ tả Website cách hoạt động

Website “trang web” mạng Internet, nơi giới thiệu thơng tin, hình ảnh doanh nghiệp sản phẩm, dịch vụ doanh nghiệp (hay giới thiệu thơng tin gì) để khách hàng truy cập nơi đâu, lúc

Website tập hợp nhiều trang [web page] Khi doanh nghiệp xây dựng website nghĩa xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ Để tạo nên website cần phải có yếu tố bản:

Cần phải có tên miền (domain) Nơi lưu trữ website (hosting)

Nội dung trang thông tin [web page] Một số thuật ngữ bản:

Website động (Dynamic website) website có sở liệu, cung cấp cơng cụ quản lý website (Admin Tool) Đặc điểm website động tính linh hoạt cập nhật thơng tin thường xuyên, quản lý thành phần website dễ dàng Loại website thường viết ngơn ngữ lập trình PHP, Asp.net, JSP, Perl, , quản trị Cơ sở liệu SQL MySQL

Website tĩnh lập trình ngơn ngữ HTML theo trang brochure, khơng có sở liệu khơng có cơng cụ quản lý thơng tin website Thông thường website tĩnh thiết kế phần mềm FrontPage, Dreamwaver, Đặc điểm website tĩnh thay đổi nội dung, thay đổi nội dung thường liên quan đến thay đổi văn kèm thể nội dung

Hiện nay, hầu hết doanh nghiệp sử dụng website động, hệ công nghệ website người biết đến web 2.0

(5)

- Tên miền Việt Nam: tên miền có dạng vn; com.vn; net.vn; org.vn; gov.vn; - Lưu trữ website: Dữ liệu thông tin website phải lưu trữ máy tính (máy chủ - server) hoạt động kết nối với mạng Internet Một server lưu trữ nhiều website, server bị cố chẳng hạn tắt thời điểm khơng truy cập website lưu trữ server thời điểm bị cố - Tùy theo nhu cầu lưu trữ thơng tin mà doanh nghiệp th dung lượng thích hợp cho website [thuê dung lượng host]

- Dung lượng host: Là nơi để lưu sở trữ liệu website (hình ảnh, thơng tin …), đơn vị đo dung lượng thường Mb Gb

- Băng thông hay dung lượng đường truyền truyền: Là tổng số Mb liệu tải lên máy chủ tải từ máy chủ (download, upload) nơi đặt website, đơn vị đo thông thường Mb/Tháng

1.2 Các dịch vụ ứng dụng web

Với công nghệ nay, website không đơn giản trang tin cung cấp tin đơn giản Những ứng dụng viết web không gọi phần website nữa, chúng gọi phần mềm viết web

Có nhiều phần mềm chạy web Google word (xử lý văn bản), Google spreadsheets (xử lý bảng tính), Email ,…

Một số ưu điểm phần mềm hay ứng dụng chạy web:

 Mọi người có trình duyệt bạn cần trình duyệt để chạy phần mềm

 Phần mềm ln ln cập nhật chúng chạy server

 Luôn sẵn sàng 24/7

 Dễ dàng backup liệu thường xuyên

 Có thể truy cập lúc, nơi, miễn bạn có mạng

 Chi phí triển khai cực rẻ so với phần mềm chạy desktop

(6)

CHƯƠNG

CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN

2.1 LOCAL ATTACK

2.1.1 Tìm hiểu Local Attack

- Local attack kiểu hack phổ biến không khuyên dùng.Đối web server thông thường bạn đăng ký tài khoản server bạn cấp tài khoản server thư mục để quản lý site Ví dụ : tenserver/tentaikhoancuaban Và có tài khoản người dùng khác tương tự : tenserver/taikhoan1.Giả sử taikhoan1 bị hacker chiếm hacker dùng thủ thuật,các đoạn scrip,các đoạn mã lệnh để truy cập sang thư mục chứa site bạn tenserver/taikhoancuaban Và theo cách hacker cơng sang site người dùng khác lấy thơng tin admin,database,các thông tin bảo mật khác chèn đoạn mã độc vào trang index site bạn Dạng công gọi Local Attack

- Thông thường nhất, Local Attack sử dụng để đọc lấy thơng tin config từ victim, sau dựa vào thơng tin config mục đích hacker để phá hoại website 2.1.2 Cách công Local Attack

- Để thực công Local Attack, tùy theo cách thức hacker mà có cách Local khác Thơng thường hacker thường sử dụng đoạn lệnh để công vào database

2.1.2.1 Chuẩn bị

- Trước tiên phải có PHP/ASP/CGI backdoor server Backdoor có nhiều loại khác phổ biến phpRemoteView (thường gọi remview) R57Shell, CGITelnet,C99,…Tiến hành upload công cụ lên, thường shell R57,C99,…

- Upload cơng cụ lên host (Thường sử dụng shell R57,C99, mạnh dễ sử dụng)

(7)

+ Mua host(cách hacker sử dụng nhiều lý lý tốn tiền mà up shell lên bị admin server phát bị del host, Với cách sau Local xong nên xóa shell

+ Hack trang bị lỗi upload shell lên (thường hacker sử dụng SQL Injection để hack trang web chiếm tài khoản admin trang web upload shell lên)hoặc khai thác lỗi inclusion

+ Search backdoor (Vào google.com search keyword: <?phpRemoteView?> , r57Shell .) Vói cách hầu hết shell hacker sử dụng chưa bị xóa, nên upload cho shell khác

2.1.2.2.Tiến hành Attack

- Sau chuản bị xong, tức upload shell lên server Chúng ta bắt đầu tìm website server mà bạn up shell lên, thông thường hacker thường sử dụng Reverse Ip domain mà hacker upload shell để xem website server

- Sau tìm danh sách website ,lần lượt check xem site bị lỗi local sang

- Các lệnh thường dùng shell để Local Attack Xem tên domain host

ls -la /etc/valiases

cd /etc/vdomainaliases;ls –lia

- Trường hợp đặc biệt xem user nằm host ta thêm && vào

cd /etc/vdomainaliases && ls –lia

- Muốn biết tên user dùng lệnh :

cat /etc/passwd/

Hoặc

less /etc/passwd

+ local sang victim, tức local sang site khác ví dụ shell : /home/abcd/public_html/

(8)

dir home/tên user cần local/public_html

- Muốn biết tên user cần local sang sử dụng Reverse Ip để lấy danh sách user server.Muốn biết user có tồn hay khơng mở trình duyệt web lên đánh đoạn : Ip server/~ tên user (Ví dụ : 203.166.222.121/~doanchuyennganh) Nếu trình duyệt lên trang index website tức user tồn

+Xem nội dung file

cat /home/tên user cần local/public_html/index.php

Hoặc

Chúng ta muốn xem config forum dùng

ln -s /home/tên user cần local/public_html/forum/includes/config.php doanchuyennganh.txt

Với doanchuyennganh.txt file tạo host để xem file người khác ! Nếu không sử dụng lệnh tức server disable chức

Thêm số lệnh shell linux :

- pwd: đưa ngồi hình thư mục hoạt động (ví dụ: /etc/ssh)

- cd: thay đổi thư mục (ví dụ: cd – cấp thư mục tại; cd vidu – vào thư mục /vidu)

- ls: đưa danh sách nội dung thư mục - mkdir: tạo thư mục (mkdir tên_thumuc) - touch: tạo file (touch ten_file)

- rmdir: bỏ thư mục (rmdir ten_thumuc)

- cp: copy file thư mục (cp file_nguồn file_đích)

- mv: di chuyển file thư mục; dùng để đặt lại tên file thư mục (mv vị_trí_cũ vị_trí_mới mv tên_cũ tên_mới)

- rm: loại bỏ file (rm tên_file)

- Để tìm kiếm file, bạn dùng: - find : dùng cho tên file - grep <>: để tìm nội dung file

(9)

- cat <>: hiển thị tất file

- Nếu muốn kết nối tới host từ xa, sử dụng lệnh ssh Cú pháp ssh <tên_host> Quản lý hệ thống:

- ps: hiển thị chương trình thời chạy (rất hữu ích: ps nhìn tồn tất chương trình)

- Trong danh sách đưa thực lệnh ps, bạn thấy có số PID (Process identification - nhân dạng tiến trình)

Con số hỏi đến muốn ngừng dịch vụ hay ứng dụng, dùng lệnh kill - top: hoạt động giống Task Manager Windows Nó đưa thơng tin tất tài nguyên hệ thống, tiến trình chạy, tốc độ load trung bình… Lệnh top -d <delay> thiết lập khoảng thời gian làm tươi lại hệ thống Bạn đặt giá trị nào, từ (tức 10 mili giây) tới 100 (tức 100 giây) chí lớn

- uptime: thể thời gian hệ thống tốc độ load trung bình khoảng thời gian đó, trước phút 15 phút

Thông thường tốc độ load trung bình tính tốn theo phần trăm tài nguyên hệ thống (vi xử lý, RAM, ổ cứng vào/ra, tốc độ load mạng) dùng thời điểm Nếu tốc độ tính tốn 0.37, tức có 37% tài nguyên sử dụng Giá trị lớn 2.35 nghĩa hệ thống phải đợi số liệu, tính tốn nhanh 235% mà khơng gặp phải vấn đề Nhưng phân phối khác chút

- free: hiển thị thông tin nhớ hệ thống

- ifconfig <tên_giao_diện>: để xem thông tin chi tiết giao diện mạng; thông thường giao diện mạng ethernet có tên eth() Bạn cài đặt thiết lập mạng địa IP cách dùng lệnh (xem man ifconfig) Nếu có điều chưa xác, bạn stop start (tức ngừng khởi_động) giao diện cách dùng lệnh ifconfig <tên_giao_diện> up/down

- passwd: cho phép bạn thay đổi mật (passwd người_dùng_sở_hữu_mật_khẩu tên người dùng khác bạn đăng nhập hệ thống với vai trò root)

- useradd: cho phép bạn thêm người dùng (xem man useradd)

(10)

các phím lên, xuống để cuộn xem lệnh nhập Bạn dùng lệnh đa dịng dịng Ví dụ như, muốn tạo ba thư mục dịng, cú pháp là: mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3

Một điều thú vị khác lệnh dạng pipe Bạn xuất lệnh thơng qua lệnh khác Ví dụ: man mkdir | tail đưa thông tin dịng cuối trang xem "thủ cơng" lệnh mkdir

Nếu lúc yêu cầu phải đăng nhập với tài khoản gốc (tức "siêu" admin hệ thống), bạn đăng nhập tạm thời cách dùng lệnh su Tham số -1 (su-1) dùng để thay đổi thư mục chủ cho lệnh dùng Chú ý bạn nhắc mật Để hay đóng : gõ exit logout

2.1.3 Cách bảo mật cho Local Attack

Để hạn chế Local Attack, nên Chmod filemanager ,di chuyển file config.php sửa đổi file htaccess thường xuyên backup liệu

-Chmod File Manager:

+ CHMOD thư mục Public_html thành 710 thay 750 mặc định việc giúp bạn bảo vệ cấu trúc Website

+ CHMOD tiếp thư mục (diendan (http://diendan.doanchuyennganh.com), CHMOD thư mục diendan (http://diendan.doanchuyennganh.com) thành 701, CHMOD tiếp thư mục thư mục diendan

(http://diendan.doanchuyennganh.com) thành 701 + CHMOD toàn file thành 404

Với CHMOD chắn run shell thông báo lỗi:

Not Acceptable An appropriate representation of the requested resource /test.php could not be found on this server

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request

(11)

- Ngoài , số site bạn truy cập subdomain mà khơng dạng doanchuyenganh.com/diendan (http://diendan.doanchuyennganh.com), có nhiều ý nghĩa, bảo mật khác

+ CHMOD thư mục 701 cố gắng đừng CHMOD 777, có số folder ko quan trọng, bạn CHMOD 755 để thị đầy đủ số nội dung Folder Chú ý này, số Server hỗ trợ CHMOD thư mục 101, Server bạn hỗ trợ sử dụng nó, biện pháp CHMOD an toàn, đến Owner ko thể xem cấu trúc Folder vào FTP Hiện có Server Eshockhost.net hỗ trợ

+ CHMOD File 604 đừng để 666 có việc cần 666 CHMOD tạm để sử dụng lúc đó, sau CHMOD lại Đối với Server hỗ trợ CHMOD file 404 CHMOD vậy, ví dụ Server Eshockhost.net - Thay đổi cấu trúc, tên file mặc định có chứa thơng tin quan trọng Nếu thay đổi cấu trúc CSDL bạn làm

-Chống local cách bật safe-mode (dành cho root):

Như biết, webshell - PHP, PHP Configuration có option để hạn chế tính (đặc biệt r57 - tự động by pass) nên công việc root account phải cập nhật phiên PHP config lại php.ini : [i]PHP safe mode phương pháp để giải vấn đề bảo mật cho nơi server chia sẻ hosting cho nhiều accounts (shared-server) Nó thiết kế cách sai lạc cấp PHP Hiện nay, nhiều người chọn phương pháp bật safe-mode để bảo mật, đặc biệt ISP

- Các hướng dẫn cấu hình Security and Safe Mode : Code:

safe_mode: mặc định : "0" sửa phân quyền : PHP_INI_SYSTEM safe_mode_gid: mặc định :"0"sửa phân quyền : PHP_INI_SYSTEM

safe_mode_include_dir: mặc định :NULL sửa phân quyền : PHP_INI_SYSTEM safe_mode_exec_dir: mặc định :""sửa PHP_INI_SYSTEM

(12)

PHP_INI_SYSTEM

open_basedir: mặc định :NULL sửa PHP_INI_SYSTEM disable_functions: mặc định :"" sửa php.ini

disable_classes : mặc định : ""sửa php.ini

- Sau cách đề đặc cấu hình server để bật chế độ safe mode : Trong file php.ini :

safe_mode = Off chuyển thành safe_mode = On

- disabled_functions nên chứa function sau : PHP Code:

readfile,system, exec, shell_exec, passthru, pcntl_exec, putenv, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, popen, pclose, set_time_limit, escapeshellcmd, escapeshellarg, dl, curl_exec, parse_ini_file, show_source,ini_alter, virtual, openlog

- Khi đó, ta ví dụ : PHP Code:

-rw-rw-r doanchuyennganh doanchuyennganh 33 Jul 19:20 script.php -rw-r r root root 1116 May 26 18:01 /etc/passwd

- Trong script.php : PHP Code:

<?php

readfile('/etc/passwd'); ?>

- Kết : PHP Code:

Warning: readfile() has been disabled for security reasons in /docroot/script.php on line

- Vài lợi điểm việc bật safe mode:

- Thường upload file, file vào /tmp/ với người có quyền khơng phải owner

(13)

<?php

// Kiểm tra safe mode

if( ini_get('safe_mode') ){ // Code theo bật safe_mode

}else{

// Code theo tắt safe_mode }

?>

-Bảo mật server apache :

Bây giờ, xin giải thích tầm quan trọng apache : Client (Hacker using local attack) -> Shared server Shared Server -> Apache

Apache -> PHP/Perl xử lý PHP/Perl (gửi kết quả) -> Apache

Apache (gửi kết quả) ->Client

Do quyền apache set phụ thuộc nhiều vào application PHP/CGI

Cài đặt apache : Code:

pw groupadd apache

pw useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin

Theo mặc định, process thuộc Apache chạy với chủ quyền người dùng nobody (ngoại trừ process phải chạy với chủ quyền root) GID thuộc nhóm nogroup Ðiều dẫn đến đe dọa bảo mật nghiêm trọng Trong trường hợp đột nhập thành cơng, tin tặc lấy quyền truy dụng đến process khác chạy UID/GID Bởi thế, giải pháp tối ưu cho Apache chạy UID/GID từ nhóm riêng biệt, chuyên đến software

(14)

(group) người dùng (user) riêng cho Apache có hai chi tiết cần ý là: -d /dev/null: không cho phép user Apache có thư mục $HOME user bình thường khác

-s /sbin/nologin: khơng cho user Apache dùng shell Có số trường hợp dùng -s /bin/true thay nologin trên, true lệnh khơng thực thi hồn tồn vơ hại

Lý khơng cho phép user Apache có thư mục $HOME khơng cấp "shell" account Apache bị cho phép, tin tặc khơng có hội tiếp cận với system mức độ cần thiết cho thủ thuật "leo thang đặc quyền" Trên môi trường *nix nói chung, "shell" giao diện người dùng hệ thống, khơng có shell khơng có hội tiếp cận Nếu phần thiết lập cung cấp user Apache $HOME cho phép dùng shell khơng mang giá trị quan điểm "bảo mật"

Vào http://httpd.apache.org/ cài đặt phiền (hiện 2.2) Khi ta nên set quyền php shell riêng, khơng có quyền nhẩy sang user khác

- Chmod /usr/bin sau :

-rwxr r-x root nobody wget cho -rwxr-x - root compiler gcc

- Chặn biên dịch gcc, tránh để user dùng exploit sẵn biên dịch get root Trong /bin/:

-rwxr-xr-x root root cp

- Tương tự với rm, mv, tar, chmod, chown, chgrp -rwsr-x - root wheel su

-rwxr-x - root root ln 2.1.4 Các công cụ hỗ trợ

(15)

Hình Hình ảnh dạng shell 2.2 Tấn cơng từ chối dịch vụ - (Denial Of Service)

2.2.1 DOS(Denial Of Service)

2.2.1.1 Giới thiệu khái quát DoS:

- DoS (Denial of Service) mơ tả hành động ngăn cản người dùng hợp pháp dịch vụ truy cập sử dụng dịch vụ Nó bao gồm việc làm tràn ngập mạng, làm kết nối với dịch vụ… mà mục đích cuối làm cho server đáp ứng yêu cầu sử dụng dịch vụ từ client DoS làm ngưng hoạt động máy tính, mạng nội bộ, chí hệ thống mạng lớn Thực chất DoS kẻ công chiếm dụng lượng lớn tài nguyên mạng băng thông, nhớ… làm khả xử lý yêu cầu dịch vụ đến từ client khác

2.2.1.2 Các cách thức công:

+ Phá hoại dựa tính giới hạn phục hồi tài nguyên mạng - Thông qua kết nối:

Tấn công kiểu SYN flood:

FPRIVATE "TYPE=PICT;ALT="

(16)

tin ACK từ phía yêu cầu thiết lập kết nối) liên tục gửi gói tin SYN ACK để thiết lập kết nối Một cách khác giả mạo địa IP nguồn gói tin yêu cầu thiết lập kết nối SYN trường hợp trên, máy tính đích rơi vào trạng thái chờ gói tin SYN ACK khơng thể đến đích địa IP nguồn khơng có thật Cách thức hacker áp dụng để công hệ thống mạng có băng thơng lớn hệ thống hacker

- Lợi dụng nguồn tài nguyên nạn nhân để cơng:

Tấn cơng kiểu Land Attack: tương tự SYN flood hacker sử dụng IP mục tiêu cần cơng để dùng làm địa IP nguồn gói tin, đẩy mục tiêu vào vịng lặp vơ tận cố gắng thiết lập kết nối với Tấn cơng kiểu UDP flood: hacker gửi gói tin UDP echo với địa IP nguồn cổng loopback mục tiêu cần cơng máy tính mạng với mục tiêu qua cổng UDP echo (port 7) để thiết lập việc gửi nhận gói tin echo máy tính (hoặc mục tiêu với mục tiêu có cấu hình cổng loopback) khiến cho máy tính sử dụng hết băng thông chúng cản trở hoạt động chia sẻ tài nguyên mạng máy tính khác mạng -Sử dụng băng thơng:

Tấn công kiểu DDoS (Distributed Denial of Service): cách thức công nguy hiểm Hacker xâm nhập vào hệ thống máy tính, cài đặt chương trình điều kiển từ xa kích hoạt đồng thời chương trình vào thời điểm để đồng loạt công vào mục tiêu Cách thức huy động tới hàng trăm chí hàng ngàn máy tính tham gia cơng lúc (tùy vào chuẩn bị trước hacher) ngốn hết băng thơng mục tiêu nháy mắt -Sử dụng nguồn tài nguyên khác:

Kẻ công lợi dụng nguồn tài nguyên mà nạn nhân cần đến để công Những kẻ cơng thay đổi liệu tự chép liệu mà nạn nhân cần lên nhiều lần làm CPU bị tải trình xử lý liệu bị đình trệ

(17)

ICMP reply cho máy tính mà hacker muốn cơng Kết máy tính xử lý kịp thời lượng lớn thông tin dễ bị treo

- Tấn cơng kiểu Tear Drop: mạng chuyển mạch gói, liệu chia nhỏ làm nhiều gói tin, mối gói tin có giá trị offset riêng truyền theo nhiều đường để tới đích Tại đích, nhờ vào giá trị offset gói tin mà liệu lại kết hợp lại ban đầu Lợi dụng điều này, hacker tạo nhiều gói tin có giá trị offset trùng lặp gửi đến mục tiêu muốn công Kết máy tính đích khơng thể xếp gói tin bị treo dùng hết lực xử lý hệ thống

+.Phá hoại chỉnh sửa thơng tin cấu hình

Lợi dụng việc cấu hình thiếu an tồn (ví dụ việc không xác thực thông tin việc gửi nhận tin update router) mà kẻ công thay đổi từ xa trực tiếp thông tin quan trọng khiến cho người dùng hợp pháp khơng thể sử dụng dịch vụ Ví dụ: hacker xâm nhập vào DNS để thay đơi thơng tin, dẫn đến trình biên dịch domain name sang IP DNS bị sai lệch Kết yêu cầu client đến domain biến thành domain khác

+.Phá hoại chỉnh sửa vật lý phần cứng

Lợi dụng quyền hạn thân kẻ cơng thiết bị hệ thống mạng để tiếp cận phá hoại (các router, switch…)

2.2.1.3 Các cách phòng chống

- DoS làm tiêu tốn nhiều thời gian tiền bạc, vậy, cần phải có biện pháp để phịng chống:

- Mơ hình hệ thống phải xây dựng hợp lý, tránh phụ thuộc lẫn mức dễ dẫn đến phận gặp cố làm hệ thống bị trục trặc

- Thiết lập password bảo vệ thiết bị hay nguồn tài nguyên quan trọng - Thiết lập mức xác thực người dùng nguồn tin mạng (các thông tin cập nhật định tuyến router nên thiết lập chế độ xác thực) - Xây dựng hệ thống lọc thông tin router, firewall… hệ thống bảo vệ chống lại SYN flood

(18)

- Xây dựng hệ thống định mức, giới hạn cho người sử dụng để ngăn ngừa trường hợp người dùng có ác ý muốn lợi dụng tài ngun server để cơng server hay mạng, server khác

- Liên tục cập nhật, nghiên cứu, kiểm tra để phát lỗ hổng bảo mật có biện pháp khắc phục kịp thời

- Sử dụng biện pháp kiểm tra hoạt động hệ thống cách liên tục để phát hành động bất bình thường

- Xây dựng hệ thống dự phòng

2.2.2 Ddos(Distributed Denial of Service)

- Distributed Denial Of Service (DDoS) kỹ thuật công làm ISP lo âu, giới hacker thống khơng cơng nhận DdoS kỹ thuật cơng thống Thế Black hat có nhiều ưu triển khai công kỹ thuật DdoS Việc phòng ngừa ngăn chặn DdoS thực mức độ khắc phục hậu truy tìm thủ phạm

2.2.2.1 Các giai đoạn công kiểu DdoS:

Bao gồm giai đoạn: i Giai đoạn chuẩn bị:

- Chuẩn bị công cụ quan trọng công, công cụ thông thường hoạt động theo mơ hình client-server Hacker viết phần mềm hay down load cách dễ dàng, theo thống kê tạm thời có khoảng 10 cơng cụ DDoS cung cấp miễn phí mạng (các cơng cụ phân tích chi tiết vào phần sau)

- Kế tiếp, dùng kỹ thuật hack khác để nắm trọn quyền số host mạng tiến hành cài đặt software cần thiết host này, việc cấu hình thử nghiệm tồn attack-netword (bao gồm mạng lưới máy bị lợi dụng với software thiết lập đó, máy hacker số máy khác thiết lập điểm phát động công) thực giai đoạn ii Giai đoạn xác định mục tiêu thời điểm:

(19)

- Yếu tố thời điểm định mức độ thiệt hại tốc độ đáp ứng mục tiêu công

iii Phát động cơng xóa dấu vết:

- Đúng thời điểm định, hacker phát động cơng từ máy mình, lệnh cơng qua nhiều cấp mói đến host thực cơng Tồn attack-network (có thể lên đến hàng ngàn máy), vắt cạn lực server mục tiêu liên tục, ngăn chặn không cho hoạt động thiết kế

- Sau khoảng thời gian cơng thích hợp, hacker tiến hành xóa dấu vết truy ngược đến mình, việc địi hỏi trình độ khác cao không tuyệt đối cần thiết

2.2.2.2 Kiến trúc tổng quan DDoS attack-network

Nhìn chung DDoS attack-network có hai mơ hình chính: Mơ hình Agent – Handler

Mơ hình IRC – Based

Hình Sơ đồ phân loại kiểu cơng DDoS

i Mơ hình Agent – Handler:

Theo mơ hình này, attack-network gồm thành phần: Agent, Client Handler  Client : software sở để hacker điều khiển hoạt động attack-network  Handler : thành phần software trung gian Agent Client

 Agent : thành phần software thực công mục tiêu, nhận điều khiển từ Client thông qua Handler

DDoS attack-network

Agent -Handler IRC - Based

Client – Handler Communication

Secret/private channel

Public channel

TCP UD P

ICMP TCP UD P

ICMP

(20)

Hình Kiến trúc attack-network kiểu Agent – Handler

- Attacker từ Client giao tiếp với cc1 Handler để xác định số lượng Agent online, điều chỉnh thời điểm công cập nhật Agent Tùy theo cách attacker cấu hình attack-network, Agent chịu quản lý hay nhiều Handler - Thông thường Attacker đặt Handler software Router hay server có lượng traffic lưu thơng nhiều Việc nhằm làm cho giao tiếp Client, handler Agent khó bị phát Các gia tiếp thông thường xảy protocol TCP, UDP hay ICMP Chủ nhân thực Agent thông thường không hay biết họ bị lợi dụng vào công kiểu DDoS, họ không đủ kiến thức chương trình Backdoor Agent sử dụng tài ngun hệ thống làm cho thấy ảnh hưởng đến hiệu hệ thống

ii Mơ hình IRC – Based:

- Internet Relay Chat (IRC) hệ thống online chat multiuser, IRC cho phép User tạo kết nối đến multipoint đến nhiều user khác chat thời gian thực Kiến trúc củ IRC network bao gồm nhiều IRC server khắp internet, giao tiếp với nhiều kênh (channel) IRC network cho phép user tạo ba loại channel: public, private serect

 Public channel: Cho phép user channel thấy IRC name nhận

Attacker Attacker

Handler Handler Handler Handler

Agent Agent Agent Agent Agent

(21)

 Private channel: thiết kế để giao tiếp với đối tượng cho phép Không cho phép user không channel thấy IRC name message channel Tuy nhiên, user channel dùng số lệnh channel locator biết tồn private channel

 Secrect channel : tương tự private channel xác định channel locator

Hình Kiến trúc attack-network kiểu IRC-Base

- IRC – Based net work tương tự Agent – Handler network mơ hình sử dụng kênh giao tiếp IRC làm phương tiện giao tiếp Client Agent (không sử dụng Handler) Sử dụng mơ hình này, attacker cịn có thêm số lợi khác như:

Các giao tiếp dạng chat message làm cho việc phát chúng vơ khó khăn

IRC traffic di chuyển mạng với số lượng lớn mà không bị nghi ngờ

Khơng cần phải trì danh sách Agent, hacker cần logon vào IRC server nhận report trạng thái Agent channel gửi

Sau cùng: IRC môi trường file sharing tạo điều kiện phát tán Agent code lên nhiều máy khác

Attacker Attacker

Agent Agent Agent Agent Agent

Victim

(22)

2.2.2.3 Phân loại công kiểu DDOS

- Nhìn chung, có nhiều biến thể kỹ thuật công DDoS nhìn góc độ chun mơn chia biến thề thành hai loại dựa mụch đích cơng: Làm cạn kiệt băng thơng làm cạn kiệt tài nguyên hệ thống

Hình Phân loại kiểu công DDoS

i Những kiểu công làm cạn kiệt băng thông mạng (BandWith Depletion Attack)

- BandWith Depletion Attack thiết kế nhằm làm tràng ngập mạng mục tiêu với traffic không cần thiết, với mục địch làm giảm tối thiểu khả traffic hợp lệ đến hệ thống cung cấp dịch vụ mục tiêu

- Có hai loại BandWith Depletion Attack:

+ Flood attack: Điều khiển Agent gởi lượng lớn traffic đến hệ thống dịch vụ mục tiêu, làm dịch vụ bị hết khả băng thông

+ Amplification attack: Điều khiển agent hay Client tự gửi message đến địa IP broadcast, làm cho tất máy subnet gửi message đến hệ thống dịch vụ mục tiêu Phương pháp làm gia tăng traffic không cần thiết, làm suy

(23)

Flood attack:

Trong phương pháp này, Agent gửi lượng lớn IP traffic làm hệ thống dịch vụ mục tiêu bị chậm lại, hệ thống bị treo hay đạt đến trạng thái hoạt động bão hòa Làm cho User thực hệ thống không sử dụng dịch vụ

Ta chia Flood Attack thành hai loại:

+ UDP Flood Attack: tính chất connectionless UDP, hệ thống nhận UDP message đơn giản nhận vào tất packet cần phải xử lý Một lượng lớn UDP packet gởi đến hệ thống dịch vụ mục tiêu đẩy toàn hệ thống đến ngưỡng tới hạn

+ Các UDP packet gửi đến nhiều port tùy ý hay port Thông thường gửi đến nhiều port làm cho hệ thống mục tiêu phải căng để xử lý phân hướng cho packet Nếu port bị cơng khơng sẵn sàng hệ thống mục tiêu gửi ICMP packet loại “destination port unreachable” Thông thường Agent software dùng địa IP giả để che giấu hành tung, message trả khơng có port xử lý dẫn đến đại Ip khác UDP Flood attack làm ảnh hưởng đến kết nối xung quanh mục tiêu hội tụ packet diễn mạnh

+ ICMP Flood Attack: thiết kế nhằm mục đích quản lý mạng định vị thiết bị mạng Khi Agent gởi lượng lớn ICMP_ECHO_REPLY đến hệ thống mục tiêu hệ thống phải reply lượng tương ứng Packet để trả lời, dẫn đến nghẽn đường truyền Tương tự trường hợp trên, địa IP cá Agent bị giả mạo

+Amplification Attack:

- Amplification Attack nhắm đến việc sử dụng chức hỗ trợ địa IP broadcast router nhằm khuyếch đại hồi chuyển công Chức cho phép bên gửi định địa IP broadcast cho tồn subnet bên nhận thay nhiều địa Router có nhiệm vụ gửi đến tất địa IP subnet packet broadcast mà nhận

(24)

Hình Sơ đồ cơng kiểu Amplification Attack

Có thể chia amplification attack thành hai loại, Smuft va Fraggle attack:

+ Smuft attack: kiểu công attacker gởi packet đến network amplifier (router hay thiết bị mạng khác hỗ trợ broadcast), với địa nạn nhân Thông thường packet dùng ICMP ECHO REQUEST, packet yêu cầu yêu cầu bên nhận phải trả lời ICMP ECHO REPLY packet Network amplifier gửi đến ICMP ECHO REQUEST packet đến tất hệ thống thuộc địa broadcast tất hệ thống REPLY packet địa IP mục tiêu công Smuft Attack

+ Fraggle Attack: tương tự Smuft attack thay dùng ICMP ECHO REQUEST packet dùng UDP ECHO packet gởi đếm mục tiêu Thật biến thể khác Fraggle attack gửi đến UDP ECHO packet đến chargen port (port 19/UNIX) mục tiêu, với địa bên gửi echo port (port 7/UNIX) mục tiêu, tạo nên vịng lặp vơ hạn Attacker phát động công ECHO

Attacker/Agent

VICTIM

Amplifier

(25)

chỉ gửi REPLY đến port echo nạn nhân, sau từ nạn nhân ECHO REPLY lại gửi trở địa broadcast, trình tiếp diễn Đây nguyên nhân Flaggle Attack nguy hiểm Smuft Attack nhiều

ii Những kiểu công làm cạn kiệt tài nguyên: (Resource Deleption Attack) - Theo định nghĩa: Resource Deleption Attack kiểu cơng Attacker gởi packet dùng protocol sai chức thiết kế, hay gửi packet với dụng ý làm tắt nghẽn tài nguyên mạng làm cho tài nguyên không phục vụ user thông thường khác

ii.a/ Protocol Exploit Attack:

+ TCP SYS Attack: Transfer Control Protocol hỗ trợ truyền nhận với độ tin cậy cao nên sử dụng phương thức bắt tay bên gởi bên nhận trước truyền liệu Bước đầu tiên, bên gửi gởi SYN REQUEST packet (Synchronize) Bên nhận nhận SYN REQUEST trả lời SYN/ACK REPLY packet Bước cuối cùng, bên gửi truyên packet cuối ACK bắt đầu truyền liệu

Hình Kiểu công TCP SYS Attack

- Nếu bên server trả lời yêu cầu SYN SYN/ACK REPLY không nhận ACK packet cuối sau khoảng thời gian quy định resend lại SYN/ACK REPLY hết thời gian timeout Toàn tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp nhận ACK packet cuối bị “phong tỏa” hết thời gian timeout

- Nắm điểm yếu này, attacker gởi SYN packet đến nạn nhân với địa bên gởi giả mạo, kết nạn nhân gởi SYN/ACK REPLY đến địa không nhận ACK packet cuối cùng, hết thời gian timeout nạn

TCP Client

Client Port 1024-65535

TCP

Server

Service Port 1-1023

SYS

ACK

SYN/ACK

(26)

nhân nhận điều giải phóng tài nguyên hệ thống Tuy nhiên, lượng SYN packet giả mạo đến với số lượng nhiều dồn dập, hệ thống nạn nhân bị hết tài nguyên

Hình Attacker giả mạo Ip

+ PUSH = ACK Attack: Trong TCP protocol, packet chứa buffer, buffer đầy packet chuyển đến nơi cần thiết Tuy nhiên, bên gởi yêu cầu hệ thống unload buffer trước buffer đầy cách gởi packet với PUSH ACK mang giá trị Những packet làm cho hệ thống nạn nhân unload tất liệu TCP buffer gửi ACK packet trở thực xong điều này, trình diễn liên tục với nhiều Agent, hệ thống xử lý lượng lớn packet gửi đến bị treo

ii.b/ Malformed Packet Attack:

- Malformed Packet Attack cách công dùng Agent để gởi packet có cấu trúc khơng chuẩn nhằm làm cho hệ thống nạn nhân bị treo

Có hai loại Malformed Packet Attack:

+ IP address attack: dùng packet có địa gởi nhận giống làm cho hệ điều hành nạn nhân không xử lý bị treo

+ IP packet options attack ngẫu nhiên hóa vùng OPTION IP packet thiết lập tất bit QoS lên 1, điều làm cho hệ thống nạn nhân phải tốn thời gian phân tích, sử dụng số lượng lớn Agent làm hệ thống nạn nhân hết khả xử lý

SYN

ACK SYN/ACK

Client Server

SYN

SYN/ACK

SYN/ACK Server

(27)

ii.c/ Một số đặc tính cơng cụ DdoS attack:

Hình Một số đặc tính cơng cụ DdoS attack

- Có nhiều điểm chung mặt software cơng cụ DDoS attack Có thể kể số điểm chung như: cách cài Agent software, phương pháp giao tiếp attacker, handler Agent, điểm chung loại hệ điều hành hỗ trợ công cụ Sơ đồ mô tả so sánh tương quan công cụ công DDoS

* Cách thức cài đặt DDoS Agent:

- Attacker dùng phương pháp active passive để cài đặt agent software lên máy khác nhằm thiết lập attack-network kiểu Agent-Handler hay IRC-based - Cách cài đặt Active:

+ Scaning: dùng công cụ Nmap, Nessus để tìm sơ hở hệ thống online nhằm cài đặt Agentsoftware Chú ý, Nmap trả thông tin hệ thống định địa IP, Nessus tìm kiếm từ địa IP điểm yếu biết trước

+ Backdoor: sau tìm thấy danh sách hệ thống lợi dụng, attacker tiến hành xâm nhập cài Agentsoftware lên hệ thống Có nhiều thơng tin sẵn có cách thức xâm nhập mạng, site tổ chức Common

DDoS software Tool

Agent Setup Network Attack

Comminication

OS supported

Instalation Hide with rootkit

Active Passive Yes No

Backdoor Bugged website

Corrupted File

Protocol Encruption Agent Activation Methods

Unix Solaris Linux

Actively Poll

Live&wait

TCP UDP ICMP

Trojan Buffer Overlfow

(28)

Vulnerabilities and Exposures (CVE), liệt kê phân loại 4.000 loại lỗi tất hệ thống có Thơng tin ln sẵn sàng cho giới quản trị mạng lẫn hacker

+ Trojan: chương trình thực chức thơng thường đó, lại có số chức tiềm ẩn phục vụ cho mục đích riêng người viết mà người dùng khơng thể biết Có thể dùng trojan Agent software

+ buffer Overflow: tận dụng lỗi buffer overflow, attacker làm cho chu trình thực thi chương trình thơng thường bị chuyển sang chu trình thực thi chương trình hacker (nằm vùng liệu ghi đè) Có thể dùng cách để cơng vào chương trình có điểm yếu buffer overflow để chạy chương trình Agent software

- Cách cài đặt passive:

+ Bug Website: attacker lợi dụng số lỗi web brower để cài Agent software vào máy user truy cập Attaker tạo website mang nội dung tiềm ẩn code lệnh để đặt bẫy user Khi user truy cập nội dung website, website download cài đặt Agent software cách bí mật Microsoft Internet Explorer web browser thường mục tiêu cách cài đặt này, với lỗi ActiveX cho phép IE brower tự động download cài đặt code máy user duyệt web

+ Corrupted file: phương pháp khác nhúng code vào file thông thường Khi user đọc hay thực thi file này, máy họ bị nhiễm Agent software Một kỹ thuật phổ biến đặt tên file dài, default hệ điều hành hiển thị phần đầu tên file nên attacker gửi kèm theo email cho nạn nhân file sau: iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, thấy phần “Iloveyou.txt” hiển thị nên user mở file để đọc file thực thi Agent code cài vào máy nạn nhân Ngồi cịn nhiều cách khác ngụy trang file, ghép file…

(29)

Agent mức độ quan trọng Agent không cao có số Agent khơng ảnh hưởng nhiều đến attack-network

* Giao tiếp Attack-Network:

- Protocol: giao tiếp attack-network thực protocol TCP, UDP, ICMP

- Mã hóa giao tiếp: vài cơng cụ DDoS hỗ trợ mã hóa giao tiếp tồn attack-network Tùy theo protocol sử dụng để giao tiếp có phương pháp mã hóa thích hợp Nếu attack-network dạng IRC-based private secrect channel hỗ trợ mã hóa giao tiếp

- Cách kích hoạt Agent: có hai phương pháp chủ yếu để kích hoạt Agent Cách thứ Agent thường xuyên quét thăm dó Handler hay IRC channel để nhận thị (active Agent) Cách thứ hai Agent đơn giản “nằm vùng” chờ thị từ Handler hay IRC Channel

ii.d Một số công cụ DDoS:

Dựa tảng chung phần trên, có nhiều công cụ viết ra, thông thường công cụ mã nguồn mở nên mức độ phức tạp ngày cao có nhiều biến thể lạ

* Công cụ DDoS dạng Agent – Handler:

- TrinOO: công cụ DDoS phát tán rộng rãi

TrinOO có kiến trúc Agent – Handler, cơng cụ DDoS kiểu Bandwidth Depletion Attack, sử dụng kỹ thuật UDP flood Các version TrinOO không hỗ trợ giả mạo địa IP TrinOO Agent cài đặt lợi dụng lỗi remote buffer overrun Hoạt động hệ điều hành Solaris 2.5.1 Red Hat Linux 6.0 Attack – network giao tiếp dùng TCP (attacker client handler) UDP (Handler Agent) Mã hóa giao tiếp dùng phương pháp mã hóa đối xứng Client, handler Agent

(30)

dùng ICMP ECHO REPLY packet (TFN2K hỗ trợ thêm TCP/UDP với tính chọn protocol tùy ý), khơng mã hóa giao tiếp (TFN2K hỗ trợ mã hóa)

- Stacheldraht: biến thể TFN có thêm khả updat Agent tự động Giao tiếp telnet mã hóa đối xứng Attacker Handler

- Shaft: biến thể TrinOO, giao tiếp Handler – Agent UDP, Attacker – Hendle Internet Tấn công dùng kỹ thuật UDP, ICMP TCP flood Có thể cơng phối hợp nhiều kiểu lúc Có thống kê chi tiết cho phép attacker biết tình trạng tổn thất nạn nhân, mức độ quy mô công để điều chỉnh số lượng Agent

* Công cụ DDoS dạng IRC – Based:

Công cụ DDoS dạng IRC-based phát triển sau công cụ dạng Agent – Handler Tuy nhiên, công cụ DDoS dạng IRC phức tạp nhiều, tích hợp nhiều đặc tính cơng cụ DDoS dạng Agent – Handler

- Trinity: điển hình cơng cụ dạng Trinity có hầu hết kỹ thuật công bao gồm: UDP, TCP SYS, TCP ACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCP ESTABLISHED packet flood Nó có sẵn khả ngẫu nhiên hóa địa bên gởi Trinity hỗ trợ TCP flood packet với khả ngẫu nhân tập CONTROL FLAG Trinity nói số công cụ DDoS nguy hiểm

- Ngồi nhắc thêm số cơng cụ DDoS khác Knight, thiết kế chạy Windows, sử dụng kỹ thuật cài đặt troijan back Orifice Knight dùng kỹ thuật công SYV, UDP Flood Urgent Pointer Flooder

- Sau Kaiten, biến thể Knight, hỗ trợ nhiều kỹ thuật công như: UDP, TCP flood, SYN, PUSH + ACK attack Kaiten thừa hưởng khả ngẫu nhiên hóa địa giả mạo Trinity

2.2.3 Tấn công từ chối dịch vụ phản xạ nhiều vùng DRDoS (Distributed Reflection Denial of Service)

(31)

- Mục tiêu DDDoS chiếm đoạt tồn băng thơng máy chủ, tức làm tắc ngẽn hoàn toàn đường kết nối từ máy chủ vào xương sống Internet tiêu hao tài nguyên máy chủ Trong suốt trình máy chủ bị công DrDoS, không máy khách ch thể kết nối vào máy chủ Tất dịch vụ chạy TCP/IP DNS, HTTP, FTP, POP3, bị vơ hiệu hóa

- Về bản, DrDoS phối hợp hai kiểu DoS DDoS Nó có kiểu cơng SYN với máy tính đơn, vừa có kết hợp nhiều máy tính để chiếm dụng băng thông kiểu DDoS Kẻ công thực cách giả mạo địa server mục tiêu gửi yêu cầu SYN đến server lớn Yahoo,Micorosoft…,để server gửi gói tin SYN/ACK đến server mục tiêu Các server lớn, đường truyền mạnh vơ tình đóng vai trị zoombies cho kẻ cơng DdoS

Hình 10 Sơ đồ mơ tả kiểu công DRDOS

(32)

2.3 SQL Injection

2.3.1 Tấn công SQL injection 2.3.1.1 SQL Injection gì?

- Khi triển khai ứng dụng web Internet, nhiều người nghĩ việc đảm bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả bị công từ tin tặc đơn tập trung vào vấn đề chọn hệ điều hành, hệ quản trị sở liệu, webserver chạy ứng dụng, mà quên ằng thân ứng dụng chạy tiềm ẩn lỗ hổng bảo mật lớn Một số lỗ hổng SQL injection Tại Việt Nam, qua thời kì quản trị website lơ việc quét virus, cập nhật vá lỗi từ phần mềm hệ thống, việc chăm sóc lỗi ứng dụng lại quan tâm Đó lí thời gian vừa qua, khơng website Việt Nam bị cơng đa số lỗi SQL injection Vậy SQL injection ?

- SQL injection kĩ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu nhập ứng dụng web thông báo lỗi hệ quản trị sở liệu để "tiêm vào" (inject) thi hành câu lệnh SQL bất hợp pháp (không người phát triển ứng dụng lường trước) Hậu tai hại cho phép kẻ cơng thực thao tác xóa, hiệu chỉnh, … có tồn quyền sở liệu ứng dụng, chí server mà ứng dụng chạy Lỗi thường xảy ứng dụng web có liệu quản lí hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase

2.3.1.2 Các Dạng Tấn Công SQL Injection

- Có bốn dạng thơng thường bao gồm: vượt qua kiểm tra lúc đăng nhập (authorization bypass), sử dụng câu lện SELECT, sử dụng câu lệnh INSERT, sử dụng stored-procedures

(33)

Hình 11 Một tools tìm site lỗi Online

- Để biết website dính lỗi SQL Injection ta thêm dấu “ ’ ” vào sau địa Ví dụ : http://www.doanchuyenganh.com/product.php?id=123’

(34)

i Dạng công vượt qua kiểm tra đăng nhập

- Với dạng cơng này, tin tặc dễ dàng vượt qua trang đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Xét ví dụ điển hình, thơng thường phép người dùng truy cập vào trang web bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin tên đăng nhập mật Sau người dùng nhập thông tin vào, hệ thống kiểm tra tên đăng nhập mật có hợp lệ hay khơng để định cho phép hay từ chối thực tiếp Trong trường hợp này, người ta dùng hai trang, trang HTML để hiển thị form nhập liệu trang ASP dùng để xử lí thơng tin nhập từ phía người dùng Ví dụ: login.htm

<form action="ExecLogin.asp" method="post">

Username: <input type="text" name="fUSRNAME"><br>

Password: <input type="password" name="fPASSWORD"><br> <input type="submit">

</form> execlogin.asp <%

Dim vUsrName, vPassword, objRS, strSQL vUsrName = Request.Form("fUSRNAME") vPassword = Request.Form("fPASSWORD") strSQL = "SELECT * FROM T_USERS " & _ "WHERE USR_NAME=' " & vUsrName & _ " ' and USR_PASSWORD=' " & vPassword & " ' " Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= "

If (objRS.EOF) Then

Response.Write "Invalid login." Else

(35)

%>

- Thoạt nhìn, đoạn mã trang execlogin.asp dường không chứa lỗ hổng an toàn Người dùng khơng thể đăng nhập mà khơng có tên đăng nhập mật hợp lệ Tuy nhiên, đoạn mã thực khơng an tồn tiền đề cho lỗi SQL injection Đặc biệt, chỗ sơ hở nằm chỗ liệu nhập vào từ người dùng dùng để xây dựng trực tiếp câu lệnh SQL Chính điều cho phép kẻ cơng điều khiển câu truy vấn thực Ví dụ, người dùng nhập chuỗi sau vào ô nhập liệu username/password trang login.htm là: ' OR ' '

= ' ' Lúc này, câu truy vấn gọi thực là:

SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''=''

- Câu truy vấn hợp lệ trả tất ghi T_USERS đoạn mã xử lí người dùng đăng nhập bất hợp pháp người dùng đăng nhập hợp lệ

ii Dạng công sử dụng câu lệnh SELECT

- Dạng công phức tạp Để thực kiểu công này, kẻ cơng phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dị tìm điểm yếu khởi đầu cho việc cơng Xét ví dụ thường gặp website tin tức Thông thường, có trang nhận ID tin cần hiển thị sau truy vấn nội dung tin có ID

Ví dụ: http://www.doanchuyennganh.com/product.asp?ID=123 Mã nguồn cho chức thường viết đơn giản theo dạng

<%

Dim vNewsID, objRS, strSQL vNewsID = Request("ID")

strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open strSQL, "DSN= " Set objRS = Nothing

(36)

- Trong tình thơng thường, đoạn mã hiển thị nội dung tin có ID trùng với ID định khơng thấy có lỗi Tuy nhiên, giống ví dụ đăng nhập trước, đoạn mã để lộ sơ hở cho lỗi SQL injection khác Kẻ cơng thay ID hợp lệ cách gán ID cho giá trị khác, từ đó, khởi đầu cho cơng bất hợp pháp, ví dụ như:

OR 1=1 (nghĩa là, http://www.doanchuyennganh.com/product.asp?ID=0 or 1=1)

- Câu truy vấn SQL lúc trả tất article từ bảng liệu thực câu lệnh:

SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1

- Một trường hợp khác, ví dụ trang tìm kiếm Trang cho phép người dùng nhập vào thông tin tìm kiếm Họ, Tên, … Đoạn mã thường gặp là:

<%

Dim vAuthorName, objRS, strSQL

vAuthorName = Request("fAUTHOR_NAME")

strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' " & _ vAuthorName & " ' "

Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= "

Set objRS = Nothing %>

- Tương tự trên, tin tặc lợi dụng sơ hở câu truy vấn SQL để nhập vào trường tên tác giả chuỗi giá trị:

' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '='

- Lúc này, câu truy vấn đầu khơng thành cơng, chương trình thực thêm lệnh sau từ khóa UNION

- Tất nhiên ví dụ nói trên, dường khơng có nguy hiểm, thử tưởng tượng kẻ cơng xóa tồn sở liệu cách chèn vào đoạn lệnh nguy hiểm lệnh DROP TABLE

(37)

- Chắc bạn thắc mắc biết ứng dụng web bị lỗi dạng Rất đơn giản, nhập vào chuỗi (*) trên, hệ thống báo lỗi cú pháp dạng: Invalid object name “OtherTable”; ta biết hệ thống thực câu SELECT sau từ khóa UNION, trả lỗi mà ta cố tình tạo câu lệnh SELECT

- Cũng có thắc mắc làm biết tên bảng liệu mà thực thao tác phá hoại ứng dụng web bị lỗi SQL injection Cũng đơn giản, SQL Server, có hai đối tượng sysobjects syscolumns cho phép liệt kê tất tên bảng cột có hệ thống Ta cần chỉnh lại câu lệnh SELECT, ví dụ như:

' UNION SELECT name FROM sysobjects WHERE xtype = 'U' liệt kê

tên tất bảng liệu

iii Dạng công sử dụng câu lệnh INSERT

- Thông thường ứng dụng web cho phép người dùng đăng kí tài khoản để tham gia Chức thiếu sau đăng kí thành cơng, người dùng xem hiệu chỉnh thơng tin SQL injection dùng hệ thống khơng kiểm tra tính hợp lệ thơng tin nhập vào

Ví dụ, câu lệnh INSERT có cú pháp dạng:

INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three')

Nếu đoạn mã xây dựng câu lệnh SQL có dạng :

<%

strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " _ & strValueTwo & " ', ' " & strValueThree & " ') "

Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN= "

Set objRS = Nothing %>

(38)

TableName) + ' ', 'abc', 'def') Khi đó, lúc thực lệnh xem thơng tin, xem bạn

đã yêu cầu thực thêm lệnh là: SELECT TOP FieldName FROM TableName

iiii Dạng công sử dụng stored-procedures

- Việc công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống 'sa'

- Ví dụ: ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmd.exe dir C: ' - Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server - Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe Nếu cài SQL

Server chế độ mặc định SQL Server chạy SYSTEM, tương đương mức truy cập Windows Có thể dùng master xp_cmdshell để thi hành lệnh từ xa:

; exec master xp_cmdshell 'ping 10.10.1.2'

Thử dùng dấu nháy đôi (") dấu nháy đơn (') không làm việc

Dưới số extended stored procedure mà hacker thường hay sử dụng để thực thi câu lệnh xem nội dung thông tin máy nạn nhân:

Xp_availablemedia: Hiển thị ổ đĩa hành máy Xp_dirtree: Hiển thị tất thư mục kể thư mục Xp_loginconfig: Lấy thông tin chế độ bảo mật server

Xp_makecab: Cho phép người sử dụng tạo tập tin lưu trữ Server (hay tập tin mà server truy xuất

Xp_ntsec_enumdomain: liệt kê domain mà server truy vấn Xp_terminate_process: chấm dứt tiến trình với tham số PID iiiii Tấn cơng SQL Injection nâng cao

• Chuỗi kí tự khơng có dấu nháy đơn:

(39)

function escape( input )

input = replace(input, "'", "''") escape = input

end function

INSERT into User VALUES(666, char(0x63) +char(0x68) +char(0x72) char(0x69) +char(0x73) ,char(0x63) +char(0x68) +char(0x72) +char(0x69) +char(0x73),0xffff)

Ví dụ a.1 :

Rõ ràng là, ngăn chặn tất kiểu công Tuy nhiên muốn tạo chuỗi giá trị mà khơng dùng dấu nháy, dùng hàm “char()” ví dụ sau:

Ví dụ a.2:

Ví dụ a.2 câu truy vấn khơng có dấu nháy đơn insert chuỗi vào bảng, tương đương với:

INSERT into User VALUES( 666,’chris’,’chris’,255)

Hacker chọn username , password sốđể tránh dấu nháy ví dụ sau: Ví dụ a.3:

INSERT into User VALUES( 667,123,123,0xffff)

SQL server tự động chuyển từ số sang chuỗi • Tấn công tầng:

- Mặc dù ứng dụng thay dấu nháy đơn khả bị chèn đoạn mã SQL

Ví dụ b.1: Để đăng kí account ứng dụng, nhập username sau:

Username: admin'— Password: passofadmin

- Ứng dụng thay dấu nháy, kết câu insert sau:

INSERT into User VALUES(123, 'admin'' ', 'password',0xffff) (nhưng

(40)

username = escape( Request.form("username") ); oldpassword = escape( Request.form("oldpassword") ); newpassword = escape( Request.form("newpassword") ); var rso = Server.CreateObject("ADODB.Recordset");

var sql = "select * from users where username = '" + username + "' and password = '" + oldpassword + "'";

rso.open( sql, cn ); if (rso.EOF)

{…

- Giả sử ứng dụng cho phép người dùng thay đổi mật Các đoạn mã ASP thiết kế đảm bảo người sử dụng phải nhập mật cũ trước nhập mật Đoạn mã sau:

- Câu truy vấn thiết lập mật sau:

sql = "update users set password = '" + newpassword + "' where username= '" + rso("username") + "'"

rso(“username”) giá trị username có câu truy vấn login admin’ Câu truy vấn lúc sau:

update users set password = 'password' where username = 'admin' '

- Nhờ hacker thay đổi mật admin giá trị Đây trường hợp cịn tồn hầu hết ứng dụng lớn ngày có sử dụng chế loại bỏ liệu Giải pháp tốt loại bỏ giá trị lỗi chỉnh sửa lại Nhưng có vấn đề có số ô nhập liệu (như ô nhập tên) cho phép kí tự Ví dụ: O’Brien

- Cách tốt để giải vấn đề không cho phép nhập dấu nháy đơn Nếu điều khơng thể thựchiện , loại bỏ thay Trong trường hợp này, cách tốt đảm bảo tất liệu đưa vào câu truy vấn SQL (kể giá trị sở liệu) phải kiểm soát cách chặt chẽ

(41)

Ví dụ b.2:

Giả sử username password bị giớihạn tối đa 16 kí tự.Nhập:

Username: aaaaaaaaaaaaaaa’ Password :‘; shutdown

Ứng dụng thay dấu nháy đơn hai dấu nháy đơn chiều dài chuỗi bị giới hạn 16 kí tự nên dấu nháy đơn vừa thêm bị xoá Câu lệnh SQL sau:

Select * from users where username=’aaaaaaaaaaaaaaa’’ and password=’’’; shutdown—‘

kết username câu lệnh có giá trị là:

aaaaaaaaaaaaaaa’ and password=’ iiiii.3 Tránh kiểm soát:

- SQL server có giao thức kiểm sốt chặt chẽ họ hàm sp_traceXXX, cho phép ghi nhân nhiều kiện xảy sở liệu Đặc biệt kiện T-SQL, ghi nhận lại tất câu lệnh SQL thực Server Nếu chế độ kiểm sốt bật tất câu truy vấn SQL hacker bị ghi nhận nhờ mà người quản trị kiểm sốt xảy nhanh chóng tìm giải pháp Nhưng có cách để chống lại điều này, cách thêm dòng “sp_password” vào câu lệnh T-SQL, gặp chuỗi việc kiểm tra ghi nhậnnhư sau:

‘sp_password’ was found in the text of this event

The text has benn replaced with this comment for security reasons

ngay “sp_password” xuất phần thích Vì để dấu tất câu truy vấn công, cần đơn giản thêm sp_password vào sau ‘ ’ sau:

2.3.2.Cách Phòng Tránh SQL Injection

(42)

liệu mới, … Nếu ứng dụng sử dụng quyền sa (quyền quản trị hệ thống), điều khiển toàn hệ quản trị sở liệu với quyền hạn rộng lớn tạo tài khoản người dùng bất hợp pháp để điều khiển hệ thống bạn

• Trong hầu hết trình duyệt, kí tự nên mã hoá địa URL trước sử dụng

• Việc cơng theo SQL Injection dựa vào câu thơng báo lỗi việc phịng chống hay khơng cho hiển thị thông điệp lỗi cho người dùng cách thay lỗi thông báo trang người phát triển thiết kế lỗi xảy ứng dụng

• Kiểm tra kĩ giá trị nhập vào người dùng, thay kí tự ‘ ; v v Hãy loại bỏ kí tự meta “',",/,\,;“ kí tự extend NULL, CR, LF, string nhận từ:

o liệu nhập người dùng đệ trình o tham số từ URL

o giá trị từ cookie

• Đối với giá trị numeric, chuyển sang integer trước thực câu truy vấnSQL, dùng ISNUMERIC để chắn số integer

• Dùng thuật toán để mã hoá liệu i Kiểm tra liệu

- Kiểm tra tính đắn liệu vấn đề phức tạp thường chưa quan tâm mức ứng dụng Khuynh hướng việc kiểm tra tính đắn liệu cần thêm số chức vào ứng dụng, mà phải kiểm tra cách tổng quát nhanh chóng để đạt mục đích

- Những tóm tắt sau bàn việc kiểm tra tính đắn liệu, với ví dụ mẫu để minh hoạ cho vấn đề

Có ba giải pháp tiếp cận vấn đề này:

1) Cố gắng kiểm tra chỉnh sửa để làm cho liệu hợp lệ 2) Loại bỏ liệu bất hợp lệ

(43)

function validate_string( input )

known_bad = array("select","insert", "update", "delete", "drop"," ", "'" )

validate_string = true

for i = lbound( known_bad ) to ubound( known_bad )

if ( instr( 1, input, known_bad(i), vbtextcompare ) <> ) then validate_string = false

exit function end if

next end function

- Thứ nhất, người lập trình khơng cần thiết phải biết tất liệu bất hợp lệ, dạng liệu bất hợplệ đa dạng

- Thứ hai, vấn đề trường hợp bị công tầng (second-oder SQL injection) việc lấy liệu từ hệ thống

• Giải pháp 2: bị vô hiệu trường hợp giải pháp :

- Dữ liệu bất hợp lệ luôn thay đổi với việc phát triển kiểu cơng

• Giải pháp 3: tốt hai giải pháp kia, gặp số hạn chế cài đặt - Cách bảo mật tốt kết hợp giải pháp Một ví dụ cho cần thiết kết hợp 2-3 dấu nối họ tên “Quentin Bassington-Bassington” phải cho phép dấu gạch ngang định nghĩa liệu hợp lệ, chuỗi kí tự “ “ chuỗi kí tự đặc biệt SQL server

- Ví dụ có lọc để :

+ Lọc bỏ liệu bất hợp lệ ‘ ‘,’select’ ‘union’

+ Một hàm kiểm soát để loại bỏ dấu nháy đơn đối phó sau uni’on se’lect @@version-‘-

(44)

function escape( input )

input = replace(input, "'", "''") escape = input

end function

function validatepassword( input ) good_password_chars =

"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123 456789"

validatepassword = true for i = to len( input )

c = mid( input, i, )

if ( InStr( good_password_chars, c ) = ) then validatepassword = false

exit function end if

next

end function

• Cách 2: Thay dấu nháy đơn:

• Cách 3: Chỉ chấp nhận liệu hợp lệ

ii Khoá chặt SQL Server (SQL Server Lockdown)

Đây danh sách công việc cần làm để bảo vệ SQL server: • Xác định phương pháp kết nối đến server:

o Dùng tiện ích Network Utility để kiểm tra có thư viện mạng dùng hoat động

(45)

o Đảm bảo tất tài khoản có mật hợp lệ, … • Kiểm tra đối tượng tồn

o Nhiều extended stored procedure xố bỏ cách an tồn

Nếu điều thực hiện, nên xem xét việc loại bỏ tập tin dll chứa mã extended stored procedure

o Xoá bỏ tất sở liệu mẫu “northwind” “pubs”

o Xóa stored procedure khơng dùng như: master xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask

• Kiểm tra tài khoản truy xuất đến đối tượng

o Đối với tài khoản ứng dụng dùng để truy xuất sở liệu cấp quyền hạn cần thiết tối thiểu để truy xuất đến đối tượng cần dùng Kiểm tra lớp sửa chữa server

o Có số cách công “buffer overflow”, “format string” thường ý đến lớp bảo vệ

• Kiểm tra phiên làm việc server

• Thay đổi "Startup chạy SQL Server" mức người dùng quyền hạn thấp SQL Server Security

- Nhận xét:

+ Qua phần tìm hiểu SQL Injection,càng thấy việc kiểm tra liệu trước xử lý cần thiết

+ Ứng dụng việckiểm tra tính đắn liệu, cần mã hóa liệu bên sở liệu không cho xuất trang Web lỗi, báo nội dung lỗi cú pháp SQL để hacker thu thập thông tin sở liệu

- Song song công việc người quản trị mạng

iii Thiết lập cấu hình an tồn cho hệ quản trị sở liệu

- Cần có chế kiểm soát chặt chẽ giới hạn quyền xử lí liệu đến tài khoản người dùng mà ứng dụng web sử dụng Các ứng dụng thông thường nên tránh dùng đến quyền dbo hay sa Quyền bị hạn chế, thiệt hại

(46)

lỗi Các thông báo lỗi thông thường tiết lộ chi tiết kĩ thuật cho phép kẻ công biết điểm yếu hệ thống

2.4 Cross Site Scripting (XSS) 2.4.1 Tấn công XSS

- Cross-Site Scripting (XSS) kĩ thuật công phổ biến hiên nay, đồng thời vấn đề bảo mật quan trọng nhà phát triển web người sử dụng web Bất kì website cho phép người sử dụng đăng thơng tin mà khơng có kiểm tra chặt chẽ đoạn mã nguy hiểm tiềm ẩn lỗi XSS

- Cross-Site Scripting hay cịn gọi tắt XSS (thay gọi tắt CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet HTML) kĩ thuật công cách chèn vào website động (ASP, PHP, CGI, JSP .) thẻ HTML hay đoạn mã script nguy hiểm gây nguy hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm đựơc chèn vào hầu hết viết Client-Site Script JavaScript, JScript, DHTML thẻ HTML.Kĩ thuật công XSS nhanh chóng trở thành lỗi phổ biến Web Applications mối đe doạ chúng người sử dụng ngày lớn Người chiến thắng thi eWeek OpenHack 2002 người tìm XSS Phải mối nguy hiểm từ XSS ngày người ý

2.4.1.1 Hoạt động XSS:

- Về XSS SQL Injection hay Source Injection, yêu cầu (request) gửi từ máy client tới server nhằm chèn vào thơng tin vượt q tầm kiểm sốt server Nó request gửi từ form liệu URL

http://www.example.com/search.cgi?query=<script>alert('XSS was found !');</script>

(47)

- Nhưng kĩ thuật cơng khác làm thay đổi liệu nguồn web server (mã nguồn, cấu trúc, sở liệu) XSS gây tổn hại website phía client mà nạn nhân trực tiếp người khách duyệt site Tất nhiên đơi hacker sử dụng kĩ thuật đề deface website công vào bề mặt website Thật vậy, XSS Client-Side Script, đoạn mã chạy trình duyệt phía client XSS không làm ảnh hưởng đến hệ thống website nằm server Mục tiêu công XSS không khác người sử dụng khác website, họ vơ tình vào trang có chứa đoạn mã nguy hiểm hacker để lại họ bị chuyển tới website khác, đặt lại homepage, hay nặng mật khẩu, cookie chí máy tính bạn bị cài loại virus, backdoor, worm

2.4.1.2 Cách công

i Scan lỗ hỗng XSS cua ứng dụng web

- Cách 1: Sử dụng nhiều chương trình dị qt lỗi ứng dụng web, ví dụ chương trình Web Vulnerability Scanner để dị qt lỗi XSS

- Cách 2: Thực bước:

• Bước 1: Mở website cần kiểm tra

• Bước 2: Xác định chỗ (phần) cần kiểm tra XSS Site có phần:

Search, error message, web form Chủ yếu lỗi XSS nằm phần này, nói chung XSS xảy chỗ mà người dùng nhập liệu vào sau nhận Ví dụ nhập vào chuỗi ‘XSS’

• Bước 3: Xác minh khả site có bị lỗi XSS hay khơng cách xem thơng tin trả Ví dụ thấy này: ‘Khơng tìm thấy XSS…’ , ‘Tài khoản XSS khơng xác’, ‘Đăng nhập với XSS khơng thành cơng’… khả chỗ bị dính XSS cao

• Bước 4: Khi xác định chỗ có khả bị dính lỗi XSS chèn đoạn code vào để thử tiếp, ví dụ sau:

(48)

khơng xuất popup buộc lịng bạn phải VIEW SOURCES (mổ bụng) để xem Khi view sources nhớ kiếm dòng < script>alert('XSS)< /script> , có hết chạy , XSS

Gọi http://doannguyennganh.com/index.php site bị dính lỗi XSS ta tìm nơi bị lỗi : http://doannguyennganh.com/index.php?page=<script </ script> , nghĩa ta chèn code ADDRESS

• Bước 5: Lên kế hoạch kịch công ii Tấn cơng

- Thật có nhiều kỹ thuật cơng dựa lỗi XSS này, chủ yếu sau biết cách tìm lỗ hổng người có mưu mơ cho cách cơng Ở xin giới thiệu đến bạn kỹ thuật mà thực thành cơng trang moodle khoa công nghệ thông tin KHTN Kỹ thuật ăn cắp password - Sau xác minh điều chắn trang moodle bị lỗi XSS chỗ đăng nhập

- Tôi viết ứng dụng nhỏ up lên host free, ứng dụng có nhiệm vụ nhận thơng tin mssv password gửi ghi xuống file txt Cịn nhận mời bạn xem tiếp Sau đó:

• Bước 1: Tơi tạo mail giả dạng nói là: Diễn đàn tuyển dụng Intel, mời bạn quan tâm tham gia.Rồi tạo đường link giả:

http://doannguyennganhgia.com/index.php tơi reference tới trang giả tui Trong tích tắc trang gắn đoạn script độc có nhiệm vụ lấy username password sau đăng nhập gắn vào trang thật(Vì trang thật bị lỗi XSS nên cho phép gắn mã độc lên, gắn có nghĩa view source code trang lên, thấy có đoạn script nằm đâu đó), sau redirect sang trang thật để khỏi bị nghi ngờ

(49)

nhiên chạy script mà cài, MSSV password lấy để gửi cho trang server mà dựng

• Bước 4: Ứng dụng server ta nhận mssv password, ghi file txt • Bước 5: Kết thúc q trình cơng, có danh sách tài khoản sinh viên

2.4.2 Phòng chống

- Như đề cập trên, công XSS thực gửi trang web cho trình duyệt web nạn nhân có kèm theo mã script độc kẻ cơng Vì người phát triển web bảo vệ website khỏi bị lợi dụng thông qua công XSS này, đảm bảo trang phát sinh động không chứa tag script cách lọc xác nhận hợp lý liệu đầu vào từ phía người dùng mã hóa(endcoding) lọc giá trị xuất cho người dùng

2.4.2.1 Lọc

- Luôn lọc liệu nhập từ phía người dùng cách lọc kí tự meta (kí tự đặc biệt) định nghĩa đặc tả HTML Mỗi trường nhập liệu bao gồm cả tham số liên kết kiểm tra để phát thẻ script

2.4.2.2 Mã hóa

- Lỗi XSS tránh máy chủ Web đảm bảo trang phát sinh mã hóa (encoding) thích hợp để ngăn chạy chạy script không mong muốn

- Mã hóa phía máy chủ tiến trình mà tất nội dung phát sinh động qua hàm mã hóa nơi mà thẻ script thay thể mã

(50)

CHƯƠNG

DEMO, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

3.1 Demo

- Trước tiên ta sử dụng thủ thuật tìm kiếm nhỏ google để tìm kiếm site bị lỗi SQL Injecton Ở dùng từ khóa: inurl:keywords

Ví dụ: inurl:sanpham.php?id=3

- Sử dụng từ khóa google.com tơi chọn website thiết kế sơ sài

http://nhanquynhphat.com/sanpham.php?id=3 ; tơi đốn bị dính lỗi SQL Injetion tiến hành khai thác lỗi

- Tôi tiến hành kiểm tra lỗi thấy website bị lỗi SQL Injection, tiếp tục lấy thông tin website version MySQL để việc khai thác trở nên rõ ràng Ở website sử dụng version MySQL >=5 nên tơi dễ dàng khai thác lỗi thơng qua information_shema.tables mà khơng cần phải đốn table

Hình 13 Thơng tin table lấy

- Bỏ qua table không liên quan ta lấy table sau: khuyenmai, lienhe,

loaispcon, online, sanpham, tbl_gioithieu, tbl_lienhe, tbl_lienket, tbl_tintuc, thanhtoan, tintuc, user

(51)

Hình 14 Dữ liệu ta khai thác dạng mã hóa

- Theo hình 14 liệu lấy dạng mã hóa Việc khai thác SQL Injection đến bước tìm đường dẫn đăng nhập quản trị mật nằm dạng mã hóa ta cần phải tiến hành giải mã

3.2 Kết luận

3.2.1 Các vấn đề đạt

- Theo yêu cầu đặt ban đầu thời điểm tại, đồ án đạt nội dung sau:

• Tìm hiểu kĩ thuật công ứng dụng Web bao gồm kĩ thuật o Chèn mã lệnh thực thi trình khách Cross-site Scripting o Chèn câu truy vấn SQL Tấn công SQL Injection nâng cao o Tấn công Local Acttack

o Từ chối dịch vụ

• Các biện pháp bảo mật từ kết hợp nhà quản trị mạng, nhà thiết kế ứng dụng Web người dùng

(52)

o Có thể phịng chống lỗi cơng thơng dụng nay, vấn đề tìm hiểu

3.2.2 Hạn chế

Trong q trình làm đồ án có nhiều tài liệu tơi tìm kiếm có mục đích giống song lại có phương pháp khác hồn tồn.Tơi cố gắng tìm hiểu thêm chúng khơng khỏi có nhiều sai sót

3.2.3 Hướng phát triển đề tài

Trong phạm vi đồ án chuyên ngành, đạt yêu cầu đặt

Bản thân cá nhân em xin đề xuất hướng phát triển đồ án mở rộng cố gắng phát triển thêm nội dung sau:

• Tìm hiểu thêm kĩ thuật cơng để đưa phương pháp bảo mật ứng dụng Web mức độ sâu

• Tìm hiểu vấn đề bảo mật sâu hơn, không dừng mức độ ứng dụng Web mà phát triển vần đề bảo mật hệ thống mạng dịch vụ

(53)

TÀI LIỆU THAM KHẢO A Tài liệu Tiếng Việt:

[1] Tấn công từ chối dịch vụ Dos,Ddos,DRDos Tác giả Ng.Ng.Thanh Nghị-HVA [2] Bài giảng An Ninh Mạng.Tác giả GV.Nguyễn Anh Tuấn-Trung tâm TH-NN Trí Đức

[3] Lỗi bảo mật ứng dụng web cách khắc phục.Tác giả Đặng Hải Sơn-Trung tâm ứng cứu khẩn cấp máy tính Việt Nam

[4] Tấn cơng kiểu SQL Injection-Tác hại phịng tránh Tác giả Lê Đình Duy-Khoa CNTT-Trường ĐH Khoa Học Tự Nhiên TP.HCM

[5] Web Application Attack & Defense Tác giả Võ Đỗ Thắng-Trung tâm An ninh mạng Athena

[6] XSS Tác giả Mask-NBTA B Tài liệu Tiếng Anh:

[7] SQL Injection-Are you web Applications vulnerable Author Kevin Spett

[8] An Introduction to SQL Injection Attacks For Oracle Developers.Author Stephen Kost

[9] How to Attack and fix Local File Disclosure Author Sangteamtham C Tài liệu internet:

[10]http://thuvienkhoahoc.com/wiki/K%C4%A9_thu%E1%BA%ADt_t%E1%BA%A 5n_c%C3%B4ng_CROSS-SITE_SCRIPTING »

[11]http://vi.wikipedia.org/w/index.php?title=Th%E1%BB%83_lo%E1%BA%A1i:T %E1%BA%A5n_c%C3%B4ng_t%E1%BB%AB_ch%E1%BB%91i_d%E1%BB%8B ch_v%E1%BB%A5&action=edit&redlink=1

[12]http://www.hvaonline.net/hvaonline/posts/list/6720.hva;jsessionid=38F900726E07 641F712734A3B2A6F2EC

[13]http://www.ddcntt.vn/forum/showthread.php?t=14

(54)

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

(55)

NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN

http://www.doanchuyennganh.com/product.asp?ID=123 i http://doannguyennganh.com/index.php : http://doannguyennganh.com/index.php? http://doannguyennganhgia.com/index.php http://nhanquynhphat.com/sanpham.php?id=3

Ngày đăng: 03/04/2021, 18:35

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan