Đồ án Ứng dụng web và cách thức tấn công và bảo mật web

ĐỒ ÁN:  
Ứng dụng web và cách thức  
tấn công và bảo mật web  
LỜI MỞ ĐẦU  
Cùng với sự phát triển của công nghệ thông tin, công nghệ mạng máy tính và sự  
phát triển của mạng internet ngày càng phát triển đa dạng và phong phú. Các dịch vụ  
trên mạng đã thâm nhập vào hầu hết các lĩnh vực trong đời sống xã hội. Các thông tin  
trên Internet cũng đa dạng về nội dung và hình thức, trong đó có rất nhiều thông tin  
cần được bảo mật cao hơn bởi tính kinh tế, tính chính xác và tính tin cậy của nó.  
Bên cạnh đó, các hình thức phá hoại mạng cũng trở nên tinh vi và phức tạp hơn. Do  
đó đối với mỗi hệ thống, nhiệm vụ bảo mật được đặt ra cho người quản trị mạng là hết  
sức quan trọng và cần thiết. Xuất phát từ những thực tế đó, chúng ta sẽ tìm hiểu về các  
cách tấn công phổ biến nhất hiện nay và các phòng chống các loại tấn công này.  
Chính vì vậy, thông qua việc nghiên cứu một số phương pháp tấn công và cách bảo  
mật các lọa tấn công này, mình mong muốn góp một phần nhỏ vào việc nghiên cứu và  
tìm hiểu về các vấn đề an ninh mạng giúp cho việc học tập và nghiên cứu.  
1. Lý do chọn đề tài  
Trong những năm gần đây, Việt Nam ngày càng phát triển và nhất là về mặt công  
nghệ thông tin. Đặc biệt là về ứng dụng web, hầu như mọi người ai cũng từng nghe và  
làm việc trên ứng dụng web. Website trở nên phổ biến và trở thành một phần quan  
trọng của mọi người và nhất là các doanh nghiệp, công ty. Bên cạnh đó lý do an toàn  
bảo mật cho ứng dụng web luôn là vấn đề nan giải của mọi người.Vì vậy chúng ta sẽ  
đi tìm hiểu ứng dụng web và cách thức tấn công và bảo mật web.  
2. Mục tiêu  
Giúp chúng ta có thể hiểu hơn về các ứng dụng website, các mối đe dọa về vấn đề  
an toàn thông tin khi chúng ta làm việc trên ứng dụng web hàng ngày, hiểu rõ hơn về  
các kỹ thuật tấn công và bảo mật web.  
3. Phạm vi  
Tìm hiểu các kỹ thuật tấn công phổ biến nhất hiện nay như SQL Injection, Denial  
Of Service, Local Attack,…Cách bảo mật, phòng thủ các loại tấn công phổ biến trên  
một cách tổng quan nhất  
MỤC LỤC  
CHƯƠNG 1.................................................................................................................5  
TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT  
THÔNG DỤNG...........................................................................................................5  
1.1. Mô tả Website và cách hoạt động ......................................................................5  
1.2. Các dịch vụ và ứng dụng trên nền web...............................................................6  
CHƯƠNG 2.................................................................................................................7  
CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN..................7  
2.1. LOCAL ATTACK.............................................................................................7  
2.1.1. Tìm hiểu về Local Attack ............................................................................7  
2.1.2. Cách tấn công Local Attack.........................................................................7  
2.1.3. Cách bảo mật cho Local Attack .................................................................11  
2.1.4. Các công cụ hỗ trợ.....................................................................................16  
2.2. Tấn công từ chối dịch vụ - (Denial Of Service)................................................16  
2.2.1. DOS(Denial Of Service)............................................................................16  
2.2.2. Ddos(Distributed Denial of Service)..........................................................19  
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) ..............................................................................32  
2.3. SQL Injection ..................................................................................................34  
2.3.1. Tấn công SQL injection.............................................................................34  
2.3.2.Cách Phòng Tránh SQL Injection...............................................................43  
2.4. Cross Site Scripting (XSS)...............................................................................47  
2.4.1. Tấn công XSS ...........................................................................................47  
2.4.2. Phòng chống..............................................................................................50  
CHƯƠNG 3...............................................................................................................51  
DEMO, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI .......................................51  
3.1. Demo...............................................................................................................51  
3.2. Kết luận...........................................................................................................53  
3.2.1. Các vấn đề đạt được...................................................................................53  
3.2.2. Hạn chế .....................................................................................................53  
3.2.3. Hướng phát triển đề tài ..............................................................................53  
NHẬN XÉT HƯỚNG DẪN ......................................................................................55  
NHẬN XÉT PHẢN BIỆN .........................................................................................56  
CHƯƠNG 1  
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 và cách hoạt động  
Website là một “trang web” trên mạng Internet, đây là nơi giới thiệu những  
thông tin, hình ảnh về doanh nghiệp và sản phẩm, dịch vụ của doanh nghiệp (hay giới  
thiệu bất cứ thông tin gì) để khách hàng có thể truy cập ở bất kỳ nơi đâu, bất cứ lúc  
nào.  
Website là tập hợp nhiều trang [web page]. Khi doanh nghiệp xây dựng website  
nghĩa là đang xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ....Để tạo nên  
một website cần phải có 3 yếu tố cơ bản:  
Cần phải có tên miền (domain).  
Nơi lưu trữ website (hosting).  
Nội dung các trang thông tin [web page].  
Một số thuật ngữ cơ bản:  
Website động (Dynamic website) là website có cơ sở dữ liệu, được cung cấp  
công cụ quản lý website (Admin Tool). Đặc điểm của website động là tính linh hoạt và  
có thể cập nhật thông tin thường xuyên, quản lý các thành phần trên website dễ dàng.  
Loại website này thường được viết bằng các ngôn ngữ lập trình như PHP, Asp.net,  
JSP, Perl,..., quản trị Cơ sở dữ liệu bằng SQL hoặc MySQL...  
Website tĩnh do lập trình bằng ngôn ngữ HTML theo từng trang như brochure,  
không có cơ sở dữ liệu và không có công cụ quản lý thông tin trên website. Thông  
thường website tĩnh được thiết kế bằng các phần mềm như FrontPage, Dreamwaver,...  
Đặc điểm của website tĩnh là ít thay đổi nội dung, sự thay đổi nội dung này thường  
liên quan đến sự thay đổi các văn bản đi kèm thể hiện nội dung trên đó.  
Hiện nay, hầu hết các doanh nghiệp đều sử dụng website động, thế hệ công  
nghệ website được mọi người biết đến là web 2.0.  
- Tên miền (domain): Tên miền chính là địa chỉ website, trên internet chỉ tồn tại duy  
nhất một địa chỉ (tức là tồn tại duy nhất một tên miền). Có 2 loại tên miền:  
- Tên miền Quốc tế: là tên miền có dạng .com; .net; .org; .biz; .name ...  
- Tên miền Việt Nam: là 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 của website phải được lưu trữ trên một máy tính  
(máy chủ - server) luôn hoạt động và kết nối với mạng Internet. Một server có thể lưu  
trữ nhiều website, nếu server này bị sự cố chẳng hạn tắt trong một thời điểm nào đó thì  
không ai có thể truy cập được những website lưu trữ trên server tại thời điểm bị sự cố.  
- Tùy theo nhu cầu lưu trữ thông tin mà doanh nghiệp có thể thuê dung lượng thích  
hợp cho website [thuê dung lượng host].  
- Dung lượng host: Là nơi để lưu cơ sở trữ dữ liệu của website (hình ảnh, thông tin  
…), đơn vị đo dung lượng thường là Mb hoặc Gb.  
- Băng thông hay dung lượng đường truyền truyền: Là tổng số Mb dữ liệu tải lên máy  
chủ hoặc tải về từ máy chủ (download, upload) nơi đặt website, đơn vị đo thông  
thường là Mb/Tháng.  
1.2. Các dịch vụ và ứng dụng trên nền web  
Với công nghệ hiện nay, website không chỉ đơn giản là một trang tin cung cấp  
các tin bài đơn giản. Những ứng dụng viết trên nền web không chỉ được gọi là một  
phần của website nữa, giờ đây chúng được gọi là phần mềm viết trên nền web.  
Có rất nhiều phần mềm chạy trên nền web như Google word (xử lý văn bản), Google  
spreadsheets (xử lý bảng tính), Email ,…  
Một số ưu điểm của phần mềm hay ứng dụng chạy trên nền web:  
Mọi người đều có trình duyệt và bạn chỉ cần trình duyệt để chạy phần mềm.  
Phần mềm luôn luôn được cập nhật vì chúng chạy trên server  
Luôn sẵn sàng 24/7  
Dễ dàng backup dữ liệu thường xuyên  
Có thể truy cập mọi lúc, mọi nơi, miễn là bạn có mạng  
Chi phí triển khai cực rẻ so với phần mềm chạy trên desktop  
Hãy hình dung bạn có một phần mềm quản lý bán hàng hay quản lý công việc ở  
công ty. Không phải lúc nào bạn cũng ở công ty, với phần mềm viết trên nền web, bạn  
có thể vào kiểm tra, điều hành ở bất cứ đâu, thậm chí bạn chỉ cần một chiếc điện thoại  
chạy được trình duyệt như IPhone mà không cần đến một chiếc máy tính.  
CHƯƠNG 2  
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 về Local Attack  
- Local attack là một trong những kiểu hack rất phổ biến và không được khuyên  
dùng.Đối một web server thông thường khi bạn đăng ký một tài khoản trên server nào  
đó bạn sẽ được cấp một tài khoản trên server đó và một thư mục để quản lý site của  
mình. Ví dụ : tenserver/tentaikhoancuaban. Và như vậy cũng có một tài khoản của  
người dùng khác tương tự như : tenserver/taikhoan1.Giả sử taikhoan1 bị hacker chiếm  
được thì hacker có thể dùng các 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 của bạn là tenserver/taikhoancuaban. Và cũng theo cách này  
hacker có thể tấn công sang các site của người dùng khác và có thể lấy thông tin  
admin,database,các thông tin bảo mật khác hoặc chèn các đoạn mã độc vào trang index  
của site bạn. Dạng tấn công trên gọi là Local Attack  
- Thông thường nhất, Local Attack được sử dụng để đọc lấy thông tin config từ  
victim, sau đó dựa vào thông tin ở config và mục đích của hacker để phá hoại website  
2.1.2. Cách tấn công Local Attack  
- Để thực hiện tấn công Local Attack, tùy theo cách thức của hacker mà có những  
cách Local khác nhau. Thông thường thì các hacker thường sử dụng các đoạn lệnh để  
tấn công vào database.  
2.1.2.1. Chuẩn bị  
- Trước tiên phải có một con PHP/ASP/CGI backdoor trên server. Backdoor thì có  
rất nhiều loại khác nhau nhưng phổ biến nhất là phpRemoteView (thường được gọi là  
remview) R57Shell, CGITelnet,C99,…Tiến hành upload các công cụ ở trên lên,  
thường là các con shell như R57,C99,…  
- Upload một trong những công cụ đó lên host (Thường thì chúng ta sử dụng các con  
shell R57,C99,.. vì nó mạnh và dễ sử dụng)  
- Để có host chúng ta có nhiều cách:  
+ Mua một cái host(cách này hacker ít sử dụng vì nhiều lý do nhưng lý do cơ bản vẫn  
là tốn tiền mà khi up shell lên nếu bị admin của server phát hiện sẽ bị del host,..Với  
cách này thì sau khi Local xong thì nên xóa các con shell ngay lập tức.  
+ Hack một trang bị lỗi và upload shell lên (thường thì hacker sử dụng SQL Injection  
để hack một trang web và chiếm tài khoản admin của trang web đó và upload các con  
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 này thì hầu hết các con shell là của các hacker đã sử dụng và chưa bị xóa,  
nếu được thì chúng ta nên upload cho chúng ta một con shell khác  
2.1.2.2.Tiến hành Attack  
- Sau khi chúng ta chuản bị xong, tức là đã upload được con shell lên 1 server nào  
đó. Chúng ta bắt đầu tìm các website cùng server mà bạn đã up shell lên, thông thường  
các hacker thường sử dụng Reverse Ip domain mà hacker đã upload shell để xem các  
website cùng server  
- Sau khi tìm được danh sách website ,lần lượt check xem site nào bị lỗi và có thể  
local sang được  
- Các lệnh thường dùng trong shell để Local Attack  
Xem tên domain trên cùng 1 host  
ls -la /etc/valiases  
cd /etc/vdomainaliases;ls –lia  
- Trường hợp đặc biệt khi không thể xem user nằm cùng host thì ta thêm && vào  
cd /etc/vdomainaliases && ls –lia  
- Muốn biết tên user thì dùng lệnh :  
cat /etc/passwd/  
Hoặc  
less /etc/passwd  
+ local sang victim, tức là local sang site khác  
ví dụ hiện tại con shell chúng ta đang ở :  
/home/abcd/public_html/  
thì chúng ta sẽ local sang như sau :  
dir home/tên user cần local/public_html  
- Muốn biết tên user cần local sang thì chúng ta sử dụng Reverse Ip để lấy danh sách  
user trên cùng một server.Muốn biết user đó có tồn tại hay không chúng ta mở trình  
duyệt web lên và đánh đoạn : Ip của server/~ tên user (Ví dụ :  
203.166.222.121/~doanchuyennganh). Nếu trình duyệt hiện lên trang index của  
website thì tức là user đó tồn tại  
+Xem nội dung của file  
cat /home/tên user cần local/public_html/index.php  
Hoặc  
Chúng ta muốn xem config của 1 forum thì dùng  
ln -s /home/tên user cần local/public_html/forum/includes/config.php  
doanchuyennganh.txt  
Với doanchuyennganh.txt ở đây là file chúng ta tạo ra trên host của chúng ta để xem  
file của người khác ! Nếu không sử dụng được các lệnh trên tức là server đã disable  
chức năng đó.  
Thêm 1 số lệnh shell trong linux :  
- pwd: đưa ra ngoài màn hình thư mục đang hoạt động (ví dụ: /etc/ssh).  
- cd: thay đổi thư mục (ví dụ: cd .. – ra một cấp thư mục hiện tại; cd vidu – vào thư  
mục /vidu).  
- ls: đưa ra danh sách nội dung thư mục.  
- mkdir: tạo thư mục mới (mkdir tên_thumuc).  
- touch: tạo file mới (touch ten_file).  
- rmdir: bỏ một thư mục (rmdir ten_thumuc).  
- cp: copy file hoặc thư mục (cp file_nguồn file_đích).  
- mv: di chuyển file hoặc thư mục; cũng được dùng để đặt lại tên file hoặc thư mục  
(mv vị_trí_cũ vị_trí_mới hoặc mv tên_cũ tên_mới).  
- rm: loại bỏ file (rm tên_file).  
- Để tìm kiếm file, bạn có thể dùng: - find : dùng cho các tên file. - grep <>: để tìm nội  
dung trong file.  
Để xem một file, bạn có thể dùng:  
- more : hiển thị file theo từng trang.  
- cat <>: hiển thị tất cả file.  
- Nếu muốn kết nối tới một host từ xa, sử dụng lệnh ssh. Cú pháp là ssh <tên_host>.  
Quản lý hệ thống:  
- ps: hiển thị các chương trình hiện thời đang chạy (rất hữu ích: ps là cái nhìn toàn bộ  
về tất cả các chương trình).  
- Trong danh sách đưa ra khi thực hiện lệnh ps, bạn sẽ thấy có số PID (Process  
identification - nhân dạng tiến trình).  
Con số này sẽ được hỏi đến khi muốn ngừng một dịch vụ hay ứng dụng, dùng lệnh kill  
- top: hoạt động khá giống như Task Manager trong Windows. Nó đưa ra thông tin về  
tất cả tài nguyên hệ thống, các tiến trình đang 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 có thể đặt bất kỳ giá  
trị nào, từ .1 (tức 10 mili giây) tới 100 (tức 100 giây) hoặc thậm chí lớn hơn.  
- uptime: thể hiện thời gian của hệ thống và tốc độ load trung bình trong khoảng thời  
gian đó, trước đây là 5 phút và 15 phút.  
Thông thường tốc độ load trung bình được tính toá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) được dùng tại một thời  
điểm. Nếu tốc độ được tính toán là 0.37, tức có 37% tài nguyên được sử dụng. Giá trị  
lớn hơn như 2.35 nghĩa là hệ thống phải đợi một số dữ liệu, khi đó nó sẽ tính toán  
nhanh hơn 235% mà không gặp phải vấn đề gì. Nhưng giữa các phân phối có thể khác  
nhau một chút.  
- free: hiển thị thông tin trên bộ nhớ hệ thống.  
- ifconfig <tên_giao_diện>: để xem thông tin chi tiết về các giao diện mạng; thông  
thường giao diện mạng ethernet có tên là eth(). Bạn có thể cài đặt các thiết lập mạng  
như địa chỉ IP hoặc bằng cách dùng lệnh này (xem man ifconfig). Nếu có điều gì đó  
chưa chính xác, bạn có thể stop hoặc start (tức ngừng hoặc khởi_động) giao diện bằng  
cách dùng lệnh ifconfig <tên_giao_diện> up/down.  
- passwd: cho phép bạn thay đổi mật khẩu (passwd người_dùng_sở_hữu_mật_khẩu  
hoặc tên người dùng khác nếu 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 mới (xem man useradd).  
Dù ở phân phối nào, bạn cũng có thể dùng phím TAB để tự động hoàn chỉnh một lệnh  
hoặc tên file. Điều này rất hữu ích khi bạn quen với các lệnh. Bạn cũng có thể sử dụng  
các phím lên, xuống để cuộn xem các lệnh đã nhập. Bạn có thể dùng lệnh đa dòng trên  
một dòng. Ví dụ như, nếu muốn tạo ba thư mục chỉ trên một dòng, cú pháp có thể là:  
mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3.  
Một điều thú vị khác nữa là các lệnh dạng pipe. Bạn có thể xuất một lệnh thông  
qua lệnh khác. Ví dụ: man mkdir | tail sẽ đưa ra thông tin các dòng cuối cùng trong  
trang xem "thủ công" của lệnh mkdir.  
Nếu lúc nào đó được yêu cầu phải đăng nhập với tài khoản gốc (tức "siêu"  
admin của hệ thống), bạn có thể đăng nhập tạm thời bằng cách dùng lệnh su. Tham số  
-1 (su-1) dùng để thay đổi thư mục chủ và cho các lệnh đã hoặc đang dùng. Chú ý là  
bạn cũng sẽ được nhắc một mật khẩu. Để thoát hay đóng : gõ exit hoặc logout.  
2.1.3. Cách bảo mật cho Local Attack  
Để hạn chế Local Attack, chúng ta nên Chmod filemanager ,di chuyển file  
config.php và sửa đổi file htaccess và nhất là thường xuyên backup dữ liệu.  
-Chmod File Manager:  
+ CHMOD thư mục Public_html thành 710 thay vì 750 mặc định việc này sẽ giúp bạn  
bảo vệ được cấu trúc Website của mình.  
+ CHMOD tiếp các thư mục con (diendan (http://diendan.doanchuyennganh.com),  
CHMOD tiếp các thư mục con trong thư mục diendan  
+ CHMOD toàn bộ file thành 404  
Với CHMOD chắc chắn khi run shell sẽ hiện ra 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.  
Attacker sẽ không view được.  
- Ngoài ra , một số site thì bạn truy cập bằng subdomain của nó mà không là dạng  
nhiều ý nghĩa, nhưng trong bảo mật thì nó sẽ rất khác.  
+ CHMOD thư mục là 701 và cố gắng đừng bao giờ CHMOD 777, có một số folder  
ko quan trọng, bạn có thể CHMOD 755 để có thể hiện thị đúng và đầy đủ một số nội  
dung trong Folder đó. Chú ý thế này, một số Server hỗ trợ CHMOD thư mục được  
101, nếu Server của bạn hỗ trợ cái này thì hãy sử dụng nó, vì biện pháp CHMOD này  
rất an toàn, đến ngay cả Owner cũng ko thể xem được cấu trúc Folder ngay cả khi vào  
FTP. Hiện chỉ có Server của Eshockhost.net là hỗ trợ cái này.  
+ CHMOD File là 604 và đừng bao giờ để là 666 nếu có việc cần 666 thì chúng ta  
CHMOD tạm để sử dụng lúc đó, sau đó hãy CHMOD lại ngay. Đối với các Server hỗ  
trợ CHMOD file 404 chúng ta hãy CHMOD như vậy, ví dụ Server Eshockhost.net  
- Thay đổi cấu trúc, tên file mặc định có chứa các thông tin quan trọng . Nếu có thể  
hãy thay đổi cả cấu trúc CSDL nếu bạn làm được .  
-Chống local bằng cách bật safe-mode (dành cho root):  
Như chúng ta đã biết, đối với các webshell - PHP, trong PHP Configuration có  
những option để hạn chế tính năng của nó (đặc biệt là r57 - tự động by pass) nên công  
việc đầu tiên của các root account là phải cập nhật các phiên bản PHP mới nhất và  
config lại php.ini : [i]PHP safe mode là phương pháp để giải quyết vấn đề bảo mật cho  
nhưng nơi server chia sẻ hosting cho nhiều accounts (shared-server). Nó là do thiết kế  
1 cách sai lạc của từng 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 là các ISP  
- Các hướng dẫn về cấu hình Security and Safe Mode :  
Code:  
safe_mode: mặc định : "0" sửa dưới phân quyền : PHP_INI_SYSTEM  
safe_mode_gid: mặc định :"0"sửa dưới phân quyền : PHP_INI_SYSTEM  
safe_mode_include_dir: mặc định :NULL sửa dưới phân quyền : PHP_INI_SYSTEM  
safe_mode_exec_dir: mặc định :""sửa dưới PHP_INI_SYSTEM  
safe_mode_allowed_env_vars: mặc định :"PHP_"sửa dưới PHP_INI_SYSTEM  
safe_mode_protected_env_vars: mặc định :"LD_LIBRARY_PATH"sửa dưới  
PHP_INI_SYSTEM  
open_basedir: mặc định :NULL sửa dưới PHP_INI_SYSTEM  
disable_functions: mặc định :"" sửa dưới php.ini  
disable_classes : mặc định : ""sửa dưới php.ini  
- Sau đây là cách đề đặc chính 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 những 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-- 1 doanchuyennganh doanchuyennganh 33 Jul 1 19:20 script.php  
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd  
- Trong script.php là :  
PHP Code:  
<?php  
readfile('/etc/passwd');  
?>  
- Kết quả :  
PHP Code:  
Warning: readfile() has been disabled for security reasons in /docroot/script.php on  
line 2  
- Vài lợi điểm của việc bật safe mode:  
- Thường khi upload file, file sẽ vào /tmp/ với những người có quyền không phải là  
owner.  
- Bật safe-mode sẽ có những bất lợi với người lập trình code PHP, do đó, họ thường  
có: PHP Code:  
<?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 của 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 chính ở apache set .. chứ 0 hề phụ thuộc nhiều vào các application như  
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, các process thuộc Apache chạy với chủ quyền của người dùng  
nobody (ngoại trừ process chính phải chạy với chủ quyền root) và GID thuộc nhóm  
nogroup. Ðiều này có thể dẫn đến những đ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 có thể lấy được quyền truy dụng đến những process  
khác chạy cùng UID/GID. Bởi thế, giải pháp tối ưu là cho Apache chạy bằng  
UID/GID từ nhóm riêng biệt, chuyên chú đến software ấy thôi.  
Ðối với những ai quen dùng *nix hẳn không lạ gì với khái niệm UID/GID thuộc  
chế độ "file permission". Tuy nhiên, chi tiết này nên mở rộng một tí cho những bạn  
đọc chưa quen thuộc với UID/GID. Phần tạo nhóm (group) và người dùng (user) riêng  
cho Apache ở trên có hai chi tiết cần chú ý là:  
-d /dev/null: không cho phép user Apache có thư mục $HOME nhưng những user bình  
thường khác  
-s /sbin/nologin: không cho user Apache dùng bất cứ một shell nào cả. Có một số  
trường hợp dùng -s /bin/true thay vì nologin ở trên, true là một lệnh không thực thi gì  
cả và hoàn toàn vô hại.  
Lý do không cho phép user Apache có thư mục $HOME và không được cấp  
một "shell" nào cả vì nếu account Apache này bị được cho phép, tin tặc cũng không có  
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" là giao diện giữa người dùng và hệ thống,  
không có shell thì không có cơ hội tiếp cận. Nếu phần thiết lập trên cung cấp user  
Apache một $HOME và cho phép dùng một shell nào đó thì đã không mang giá trị gì  
trên quan điểm "bảo mật".  
Khi đó ta nên set quyền của php shell riêng, nó không có quyền được nhẩy sang  
các user khác .  
- Chmod trong /usr/bin như 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 như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ợ  
-Công cụ hỗ trợ Local Attack phổ biến và hay dùng nhất là các con shell.Các loại shell  
thường sử dụng là R57,C99,..  
Hình 1. Hình ảnh của 1 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 về DoS:  
- DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng  
hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó. Nó bao gồm cả việc  
làm tràn ngập mạng, làm mất kết nối với dịch vụ… mà mục đích cuối cùng là làm cho  
server không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các client. DoS có thể  
làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống  
mạng rất lớn. Thực chất của DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài  
nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch  
vụ đến từ các client khác.  
2.2.1.2. Các cách thức tấn công:  
+ Phá hoại dựa trên tính giới hạn hoặc không thể phục hồi của 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="  
Lợi dụng các thức hoạt động của kết nối TCP/IP, hacker bắt đầu quá trình thiết lập một  
kết nối TPC/IP với mục tiêu muốn tấn công nhưng sẽ phá vỡ kết nối ngay sau khi quá  
trình SYN và SYN ACK hoàn tất, khiến cho mục tiêu rơi vào trạng thái chờ (đợi gói  
tin ACK từ phía yêu cầu thiết lập kết nối) và 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 là giả mạo địa chỉ IP nguồn của gói tin yêu cầu thiết lập kết  
nối SYN và cũng như trường hợp trên, máy tính đích cũng rơi vào trạng thái chờ vì các  
gói tin SYN ACK không thể đi đến đích do địa chỉ IP nguồn là không có thật. Cách  
thức này có thể được các hacker áp dụng để tấn công một hệ thống mạng có băng  
thông lớn hơn hệ thống của hacker.  
- Lợi dụng nguồn tài nguyên của chính nạn nhân để tấn công:  
Tấn công kiểu Land Attack: cũng tương tự như SYN flood nhưng hacker sử dụng  
chính IP của mục tiêu cần tấn công để dùng làm địa chỉ IP nguồn trong gói tin, đẩy  
mục tiêu vào một vòng lặp vô tận khi cố gắng thiết lập kết nối với chính nó.  
Tấn công kiểu UDP flood: hacker gửi gói tin UDP echo với địa chỉ IP nguồn là cổng  
loopback của chính mục tiêu cần tấn công hoặc của một máy tính trong cùng mạng với  
mục tiêu qua cổng UDP echo (port 7) để thiết lập việc gửi và nhận các gói tin echo  
trên 2 máy tính (hoặc giữa mục tiêu với chính nó nếu mục tiêu có cấu hình cổng  
loopback) khiến cho 2 máy tính này dần dần sử dụng hết băng thông của chúng và cản  
trở hoạt động chia sẻ tài nguyên mạng của các máy tính khác trong mạng.  
-Sử dụng băng thông:  
Tấn công kiểu DDoS (Distributed Denial of Service): đây là cách thức tấn công rất  
nguy hiểm. Hacker xâm nhập vào các hệ thống máy tính, cài đặt các chương trình điều  
kiển từ xa và sẽ kích hoạt đồng thời các chương trình này vào cùng một thời điểm để  
đồng loạt tấn công vào một mục tiêu. Cách thức này có thể huy động tới hàng trăm  
thậm chí hàng ngàn máy tính cùng tham gia tấn công một lúc (tùy vào sự chuẩn bị  
trước đó của hacher) và có thể ngốn hết băng thông của mục tiêu trong nháy mắt.  
-Sử dụng các nguồn tài nguyên khác:  
Kẻ tấn công lợi dụng các nguồn tài nguyên mà nạn nhân cần đến để tấn công. Những  
kẻ tấn công có thể thay đổi dữ liệu và tự sao chép dữ liệu mà nạn nhân cần lên nhiều  
lần làm CPU bị quá tải và các quá trình xử lý dữ liệu bị đình trệ.  
- Tấn công kiểu Smurf Attack: kiểu tấn công này cần một hệ thống rất quan trọng, đó  
là mạng khuyếch đại. Hacker dùng địa chỉ của máy tính cần tấn công gửi broadcast gói  
tin ICMP echo cho toàn bộ mạng. Các máy tính trong mạng sẽ đồng loạt gửi gói tin  
ICMP reply cho máy tính mà hacker muốn tấn công. Kết quả là máy tính này sẽ không  
thể xử lý kịp thời một lượng lớn thông tin như vậy và rất dễ bị treo.  
- Tấn công kiểu Tear Drop: trong mạng chuyển mạch gói, dữ liệu được chia nhỏ làm  
nhiều gói tin, mối gói tin có một giá trị offset riêng và có thể truyền đi theo nhiều  
đường để tới đích. Tại đích, nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được  
kết hợp lại như ban đầu. Lợi dụng điều này, hacker có thể tạo ra nhiều gói tin có giá trị  
offset trùng lặp nhau gửi đến mục tiêu muốn tấn công. Kết quả là máy tính đích không  
thể sắp xếp được những gói tin này và có thể bị treo do đã dùng hết năng lực xử lý của  
hệ thống.  
+.Phá hoại hoặc chỉnh sửa thông tin cấu hình.  
Lợi dụng việc cấu hình thiếu an toàn (ví dụ như việc không xác thực thông tin trong  
việc gửi và nhận bản tin update của các router) mà kẻ tấn công sẽ thay đổi từ xa hoặc  
trực tiếp các thông tin quan trọng khiến cho những người dùng hợp pháp không thể sử  
dụng dịch vụ. Ví dụ: hacker có thể xâm nhập vào DNS để thay đôi thông tin, dẫn đến  
quá trình biên dịch domain name sang IP của DNS bị sai lệch. Kết quả là các yêu cầu  
của client đến một domain nào đó sẽ biến thành một domain khác.  
+.Phá hoại hoặc chỉnh sửa vật lý phần cứng.  
Lợi dụng quyền hạn của chính bản thân kẻ tấn công đối với các thiết bị trong 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 có thể làm tiêu tốn rất nhiều thời gian cũng như tiền bạc, vì vậy, cần phải có  
những biện pháp để phòng chống:  
- Mô hình hệ thống phải được xây dựng hợp lý, tránh phụ thuộc lẫn nhau quá mức dễ  
dẫn đến một bộ phận gặp sự cố sẽ làm cả hệ thống bị trục trặc.  
- Thiết lập password bảo vệ các thiết bị hay các nguồn tài nguyên quan trọng.  
- Thiết lập các mức xác thực đối với người dùng cũng như các nguồn tin trên mạng  
(các thông tin cập nhật định tuyến giữa các router cũng nên thiết lập ở chế độ xác thực)  
- Xây dựng hệ thống lọc thông tin trên router, firewall… và hệ thống bảo vệ chống lại  
SYN flood.  
- Chỉ chấp nhận các dịch vụ cần thiết, tạm thời dừng các dịch vụ chưa có yêu cầu cung  
cấp hoặc không sử dụng.  
- 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 các tài nguyên trên server để tấn công chính server  
hay mạng, server khác.  
- Liên tục cập nhật, nghiên cứu, kiểm tra để phát hiện các lỗ hổng bảo mật và có biện  
pháp khắc phục kịp thời.  
- Sử dụng các biện pháp kiểm tra hoạt động của hệ thống một cách liên tục để phát  
hiện ngay những 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) là kỹ thuật tấn công làm các ISP lo âu, giới  
hacker chính thống thì không công nhận DdoS là kỹ thuật tấn công chính thống. Thế  
nhưng Black hat đang có rất nhiều ưu thế khi triển khai tấn công bằng kỹ thuật DdoS.  
Việc phòng ngừa và ngăn chặn DdoS vẫn còn đang thực hiện ở mức độ khắc phục hậu  
quả và truy tìm thủ phạm  
2.2.2.1. Các giai đoạn của một cuộc tấn công kiểu DdoS:  
Bao gồm 3 giai đoạn:  
i. Giai đoạn chuẩn bị:  
- Chuẩn bị công cụ quan trọng của cuộc tấn công, công cụ này thông thường hoạt  
động theo mô hình client-server. Hacker có thể viết phần mềm này hay down load một  
cách dễ dàng, theo thống kê tạm thời có khoảng hơn 10 công cụ DDoS được cung cấp  
miễn phí trên mạng (các công cụ này sẽ phân tích chi tiết vào phần sau)  
- Kế tiếp, dùng các kỹ thuật hack khác để nắm trọn quyền một số host trên mạng.  
tiến hành cài đặt các software cần thiết trên các host này, việc cấu hình và thử nghiệm  
toàn bộ attack-netword (bao gồm mạng lưới các máy đã bị lợi dụng cùng với các  
software đã được thiết lập trên đó, máy của hacker hoặc một số máy khác đã được  
thiết lập như điểm phát động tấn công) cũng sẽ được thực hiện trong giai đoạn này.  
ii. Giai đoạn xác định mục tiêu và thời điểm:  
- Sau khi xác định mục tiêu lấn cuối, hacker sẽ có hoạt động điều chỉnh attack-  
netword chuyển hướng tấn công về phía mục tiêu.  
- Yếu tố thời điểm sẽ quyết định mức độ thiệt hại và tốc độ đáp ứng của mục tiêu đối  
với cuộc tấn công.  
iii. Phát động tấn công và xóa dấu vết:  
- Đúng thời điểm đã định, hacker phát động tấn công từ máy của mình, lệnh tấn công  
này có thể đi qua nhiều cấp mói đến host thực sự tấn công. Toàn bộ attack-network (có  
thể lên đến hàng ngàn máy), sẽ vắt cạn năng lực của server mục tiêu liên tục, ngăn  
chặn không cho nó hoạt động như thiết kế.  
- Sau một khoảng thời gian tấn công thích hợp, hacker tiến hành xóa mọi dấu vết có  
thể truy ngược đến mình, việc này đòi hỏi trình độ khác cao và không tuyệt đối cần  
thiết.  
2.2.2.2. Kiến trúc tổng quan của 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  
DDoS attack-network  
Agent -Handler  
IRC - Based  
Client – Handler  
Client – Handler  
Secret/private  
Public channel  
ICMP  
TCP  
TCP  
ICMP  
UD  
UD  
Hình 2. Sơ đồ chính phân loại các kiểu tấn công DDoS  
i. Mô hình Agent – Handler:  
Theo mô hình này, attack-network gồm 3 thành phần: Agent, Client và Handler  
Client : là software cơ sở để hacker điều khiển mọi hoạt động của attack-network  
Handler : là một thành phần software trung gian giữa Agent và Client  
Agent : là thành phần software thực hiện sự tấn công mục tiêu, nhận điều khiển từ  
Client thông qua các Handler  
Attacker  
Attacker  
Handler  
Handler  
Handler  
Handler  
Agent  
Agent  
Agent  
Agent  
Agent  
Victim  
Hình 3. Kiến trúc attack-network kiểu Agent – Handler  
- Attacker sẽ từ Client giao tiếp với cc1 Handler để xác định số lượng Agent đang  
online, điều chỉnh thời điểm tấn công và cập nhật các Agent. Tùy theo cách attacker  
cấu hình attack-network, các Agent sẽ chịu sự quản lý của một hay nhiều Handler.  
- Thông thường Attacker sẽ đặt Handler software trên một Router hay một server có  
lượng traffic lưu thông nhiều. Việc này nhằm làm cho các giao tiếp giữa Client,  
handler và Agent khó bị phát hiện. Các gia tiếp này thông thường xảy ra trên các  
protocol TCP, UDP hay ICMP. Chủ nhân thực sự của các Agent thông thường không  
hề hay biết họ bị lợi dụng vào cuộc tấn công kiểu DDoS, do họ không đủ kiến thức  
hoặc các chương trình Backdoor Agent chỉ sử dụng rất ít tài nguyên hệ thống làm cho  
hầu như không thể thấy ảnh hưởng gì đến hiệu năng của hệ thống.  
ii. Mô hình IRC – Based:  
- Internet Relay Chat (IRC) là một hệ thống online chat multiuser, IRC cho phép  
User tạo một kết nối đến multipoint đến nhiều user khác và chat thời gian thực. Kiến  
trúc củ IRC network bao gồm nhiều IRC server trên khắp internet, giao tiếp với nhau  
trên nhiều kênh (channel). IRC network cho phép user tạo ba loại channel: public,  
private và serect.  
Public channel: Cho phép user của channel đó thấy IRC name và nhận được  
message của mọi user khác trên cùng channel  
Private channel: được thiết kế để giao tiếp với các đối tượng cho phép. Không cho  
phép các user không cùng channel thấy IRC name và message trên channel. Tuy nhiên,  
nếu user ngoài channel dùng một số lệnh channel locator thì có thể biết được sự tồn tại  
của private channel đó.  
Secrect channel : tương tự private channel nhưng không thể xác định bằng channel  
locator.  
Attacker  
Attacker  
IRC NETWORK  
Agent  
Agent  
Agent  
Agent  
Agent  
Victim  
Hình 4. Kiến trúc attack-network của kiểu IRC-Base  
- IRC – Based net work cũng tương tự như Agent – Handler network nhưng mô hình  
này sử dụng các kênh giao tiếp IRC làm phương tiện giao tiếp giữa Client và Agent  
(không sử dụng Handler). Sử dụng mô hình này, attacker còn có thêm một số lợi thế  
khác như:  
Các giao tiếp dưới dạng chat message làm cho việc phát hiện chúng là vô cùng khó  
khăn  
IRC traffic có thể di chuyển trên mạng với số lượng lớn mà không bị nghi ngờ  
Không cần phải duy trì danh sách các Agent, hacker chỉ cần logon vào IRC server là  
đã có thể nhận được report về trạng thái các Agent do các channel gửi về.  
Sau cùng: IRC cũng là một môi trường file sharing tạo điều kiện phát tán các Agent  
code lên nhiều máy khác.  
2.2.2.3. Phân loại tấn công kiểu DDOS  
- Nhìn chung, có rất nhiều biến thể của kỹ thuật tấn công DDoS nhưng nếu nhìn dưới  
góc độ chuyên môn thì có thể chia các biến thề này thành hai loại dựa trên mụch đích  
tấn công: Làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống  
DDoS  
Bandwith  
Resource Deleption  
Protoc  
ol  
Amplification  
Malformed  
Paclket  
Flood Attack  
Exploit  
TCP SYS  
Smuft  
Flaggle  
PUSH  
+ACK  
IP @  
IP Packet  
Options  
UDP  
ICMP  
Random  
Port  
Static  
Port  
Spoof  
Sourc  
Direct  
Loop  
Spoof  
Spoof  
Spoof  
Spoof  
source  
source  
source  
source  
Hình 5. Phân loại các kiểu tấn công DDoS  
i. Những kiểu tấn công làm cạn kiệt băng thông của mạng (BandWith Depletion  
Attack)  
- BandWith Depletion Attack được thiết kế nhằm làm tràng ngập mạng mục tiêu với  
những traffic không cần thiết, với mục địch làm giảm tối thiểu khả năng của các traffic  
hợp lệ đến được hệ thống cung cấp dịch vụ của mục tiêu.  
- Có hai loại BandWith Depletion Attack:  
+ Flood attack: Điều khiển các Agent gởi một lượng lớn traffic đến hệ thống dịch vụ  
của mục tiêu, làm dịch vụ này bị hết khả năng về băng thông.  
+ Amplification attack: Điều khiển các agent hay Client tự gửi message đến một địa  
chỉ IP broadcast, làm cho tất cả các máy trong subnet này gửi message đến hệ thống  
dịch vụ của mục tiêu. Phương pháp này làm gia tăng traffic không cần thiết, làm suy  
giảm băng thông của mục tiêu.  
Flood attack:  
Trong phương pháp này, các Agent sẽ gửi một lượng lớn IP traffic làm hệ thống dịch  
vụ của 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 các User thực sự của hệ thống không sử dụng được dịch vụ.  
Ta có thể chia Flood Attack thành hai loại:  
+ UDP Flood Attack: do tính chất connectionless của UDP, hệ thống nhận UDP  
message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử lý. Một lượng lớn  
các UDP packet được gởi đến hệ thống dịch vụ của mục tiêu sẽ đẩy toàn bộ hệ thống  
đến ngưỡng tới hạn.  
+ Các UDP packet này có thể được gửi đến nhiều port tùy ý hay chỉ duy nhất một port.  
Thông thường là sẽ gửi đến nhiều port làm cho hệ thống mục tiêu phải căng ra để xử  
lý phân hướng cho các packet này. Nếu port bị tấn công không sẵn sàng thì hệ thống  
mục tiêu sẽ gửi ra một ICMP packet loại “destination port unreachable”. Thông  
thường các Agent software sẽ dùng địa chỉ IP giả để che giấu hành tung, cho nên các  
message trả về do không có port xử lý sẽ dẫn đến một đại chỉ Ip khác. UDP Flood  
attack cũng có thể làm ảnh hưởng đến các kết nối xung quanh mục tiêu do sự hội tụ  
của packet diễn ra rất mạnh.  
+ ICMP Flood Attack: được thiết kế nhằm mục đích quản lý mạng cũng như định vị  
thiết bị mạng. Khi các Agent gởi một lượng lớn ICMP_ECHO_REPLY đến hệ thống  
mục tiêu thì hệ thống này phải reply một lượng tương ứng Packet để trả lời, sẽ dẫn đến  
nghẽn đường truyền. Tương tự trường hợp trên, địa chỉ IP của cá Agent có thể bị giả  
mạo.  
+Amplification Attack:  
- Amplification Attack nhắm đến việc sử dụng các chức năng hỗ trợ địa chỉ IP  
broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn công. Chức năng  
này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toàn subnet bên nhận thay  
vì nhiều địa chỉ. Router sẽ có nhiệm vụ gửi đến tất cả địa chỉ IP trong subnet đó packet  
broadcast mà nó nhận được.  
- Attacker có thể gửi broadcast message trực tiếp hay thông qua một số Agent nhằm  
làm gia tăng cường độ của cuộc tấn công. Nếu attacker trực tiếp gửi message, thì có  
thể lợi dụng các hệ thống bên trong broadcast network như một Agent.  
Attacker/Agent  
VICTIM  
Amplifier  
Amplifier Network System  
Hình 6. Sơ đồ tấn công kiểu Amplification Attack  
Có thể chia amplification attack thành hai loại, Smuft va Fraggle attack:  
+ Smuft attack: trong kiểu tấn công này attacker gởi packet đến network amplifier  
(router hay thiết bị mạng khác hỗ trợ broadcast), với địa chỉ của nạn nhân. Thông  
thường những packet được dùng là ICMP ECHO REQUEST, các packet này yêu cầu  
yêu cầu bên nhận phải trả lời bằng một ICMP ECHO REPLY packet. Network  
amplifier sẽ gửi đến ICMP ECHO REQUEST packet đến tất cả các hệ thống thuộc địa  
chỉ broadcast và tất cả các hệ thống này sẽ REPLY packet về địa chỉ IP của mục tiêu  
tấn công Smuft Attack.  
+ Fraggle Attack: tương tự như Smuft attack nhưng thay vì dùng ICMP ECHO  
REQUEST packet thì sẽ dùng UDP ECHO packet gởi đếm mục tiêu. Thật ra còn một  
biến thể khác của Fraggle attack sẽ gửi đến UDP ECHO packet đến chargen port (port  
19/UNIX) của mục tiêu, với địa chỉ bên gửi là echo port (port 7/UNIX) của mục tiêu,  
tạo nên một vòng lặp vô hạn. Attacker phát động cuộc tấn công bằng một ECHO  
REQUEST với địa chỉ bên nhận là một địa chỉ broadcast, toàn bộ hệ thống thuộc địa  
chỉ này lập tức gửi REPLY đến port echo của nạn nhân, sau đó từ nạn nhân một  
ECHO REPLY lại gửi trở về địa chỉ broadcast, quá trình cứ thế tiếp diễn. Đây chính là  
nguyên nhân Flaggle Attack nguy hiểm hơn Smuft Attack rất nhiều.  
ii. Những kiểu tấn công làm cạn kiệt tài nguyên: (Resource Deleption Attack)  
- Theo định nghĩa: Resource Deleption Attack là kiểu tấn công trong đó Attacker gởi  
những packet dùng các protocol sai chức năng thiết kế, hay gửi những packet với dụng  
ý làm tắt nghẽn tài nguyên mạng làm cho các tài nguyên này không phục vụ user  
thông thường khác đượ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 giữa bên gởi và bên nhận trước khi truyền dữ liệu.  
Bước đầu tiên, bên gửi gởi một SYN REQUEST packet (Synchronize). Bên nhận nếu  
nhận được SYN REQUEST sẽ trả lời bằng SYN/ACK REPLY packet. Bước cuối  
cùng, bên gửi sẽ truyên packet cuối cùng ACK và bắt đầu truyền dữ liệu.  
SYS  
TCP  
TCP  
SYN/ACK  
Client  
Server  
ACK  
80  
Hình 7. Kiểu tấn công TCP SYS Attack  
- Nếu bên server đã trả lời một yêu cầu SYN bằng một SYN/ACK REPLY nhưng  
không nhận được ACK packet cuối cùng sau một khoảng thời gian quy định thì nó sẽ  
resend lại SYN/ACK REPLY cho đến hết thời gian timeout. Toàn bộ tài nguyên hệ  
thống “dự trữ” để xử lý phiên giao tiếp nếu nhận được ACK packet cuối cùng sẽ bị  
“phong tỏa” cho đến hết thời gian timeout.  
- Nắm được điểm yếu này, attacker gởi một SYN packet đến nạn nhân với địa chỉ  
bên gởi là giả mạo, kết quả là nạn nhân gởi SYN/ACK REPLY đến một địa chỉ khá và  
sẽ không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn  
nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống. Tuy nhiên,  
nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn  
nhân có thể bị hết tài nguyên.  
Client  
Server  
Attacker/Agent Server  
SYN  
SYN  
SYN/ACK  
SYN/ACK  
SYN/ACK  
ACK  
Hình 8. Attacker giả mạo Ip  
+ PUSH = ACK Attack: Trong TCP protocol, các packet được chứa trong buffer, khi  
buffer đầy thì các packet này sẽ được chuyển đến nơi cần thiết. Tuy nhiên, bên gởi có  
thể yêu cầu hệ thống unload buffer trước khi buffer đầy bằng cách gởi một packet với  
PUSH và ACK mang giá trị là 1. Những packet này làm cho hệ thống của nạn nhân  
unload tất cả dữ liệu trong TCP buffer ngay lập tức và gửi một ACK packet trở về khi  
thực hiện xong điều này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống  
sẽ không thể xử lý được lượng lớn packet gửi đến và sẽ bị treo.  
ii.b/ Malformed Packet Attack:  
- Malformed Packet Attack là cách tấn công dùng các Agent để gởi các packet có  
cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bị treo.  
Có hai loại Malformed Packet Attack:  
+ IP address attack: dùng packet có địa chỉ gởi và nhận giống nhau làm cho hệ điều  
hành của nạn nhân không xử lý nổi và bị treo.  
+ IP packet options attack ngẫu nhiên hóa vùng OPTION trong IP packet và thiết lập  
tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạn nhân phải tốn thời gian  
phân tích, nếu sử dụng số lượng lớn Agent có thể làm hệ thống nạn nhân hết khả năng  
xử lý.  
ii.c/ Một số đặc tính của công cụ DdoS attack:  
DDoS software Tool  
Attack  
Network  
Agent Setup  
OS supported  
Windows  
Instalation  
Hide with rootkit  
Protocol  
Encruption Agent  
Activation  
Unix Solaris  
Linux  
Methods  
Active  
Passive  
Yes  
No  
Actively  
Poll  
Live&wait  
ICMP  
TCP UDP  
YES  
No  
Bugged Corrupted  
Agent  
IRC  
Client  
Agent  
None  
Backdoor Trojan Buffer Overlfow  
Hình 9. Một số đặc tính của công cụ DdoS attack  
- Có rất nhiều điểm chung về mặt software của các công cụ DDoS attack. Có thể kể  
ra một số điểm chung như: cách cài Agent software, phương pháp giao tiếp giữa các  
attacker, handler và Agent, điểm chung về loại hệ điều hành hỗ trợ các công cụ này.  
Sơ đồ trên mô tả sự so sánh tương quan giữa các công cụ tấn công DDoS này.  
* Cách thức cài đặt DDoS Agent:  
- Attacker có thể dùng phương pháp active và passive để cài đặt agent software lên  
các 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ác công cụ như Nmap, Nessus để tìm những sơ hở trên các hệ thống  
đang online nhằm cài đặt Agentsoftware. Chú ý, Nmap sẽ trả về những thông tin về  
một hệ thống đã được chỉ định bằng địa chỉ IP, Nessus tìm kiếm từ những địa chỉ IP  
bất kỳ về một điểm yếu biết trước nào đó.  
+ Backdoor: sau khi tìm thấy được danh sách các hệ thống có thể lợi dụng, attacker sẽ  
tiến hành xâm nhập và cài Agentsoftware lên các hệ thống này. Có rất nhiều thông tin  
sẵn có về cách thức xâm nhập trên mạng, như site của tổ chức Common  
Vulnerabilities and Exposures (CVE), ở đây liệt kê và phân loại trên 4.000 loại lỗi của  
tất cả các hệ thống hiện có. Thông tin này luôn sẵn sàng cho cả giới quản trị mạng lẫn  
hacker.  
+ Trojan: là một chương trình thực hiện một chức năng thông thường nào đó, nhưng  
lại có một số chức năng tiềm ẩn phục vụ cho mục đích riêng của người viết mà người  
dùng không thể biết được. Có thể dùng trojan như một Agent software.  
+ buffer Overflow: tận dụng lỗi buffer overflow, attacker có thể 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 của  
hacker (nằm trong vùng dữ liệu ghi đè). Có thể dùng cách này để tấn công vào một  
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 có thể lợi dụng một số lỗi của web brower để cài Agent  
software vào máy của user truy cập. Attaker sẽ tạo một website mang nội dung tiềm ẩn  
những code và lệnh để đặt bẫy user. Khi user truy cập nội dung của website, thì  
website download và cài đặt Agent software một cách bí mật. Microsoft Internet  
Explorer web browser thường là mục tiêu của cách cài đặt này, với các lỗi của  
ActiveX có thể cho phép IE brower tự động download và cài đặt code trên máy của  
user duyệt web.  
+ Corrupted file: một phương pháp khác là nhúng code vào trong các file thông  
thường. Khi user đọc hay thực thi các file này, máy của họ lập tức bị nhiễm Agent  
software. Một trong những kỹ thuật phổ biến là đặt tên file rất dài, do default của các  
hệ điều hành chỉ hiển thị phần đầu của tên file nên attacker có thể gửi kèm theo email  
cho nạn nhân file như sau: iloveyou.txt_hiiiiiii_NO_this_is_DDoS.exe, do chỉ thấy  
phần “Iloveyou.txt” hiển thị nên user sẽ mở file này để đọc và lập tức file này được  
thực thi và Agent code được cài vào máy nạn nhân. Ngoài ra còn nhiều cách khác như  
ngụy trang file, ghép file…  
- Rootkit: là những chương trình dùng để xóa dấu vết về sự hiện diện của Agent hay  
Handler trên máy của nạn nhân. Rootkit thường được dùng trên Hander software đã  
được cài, đóng vai trò xung yếu cho sự hoạt động của attack-network hay trên các môi  
trường mà khả năng bị phát hiện của Handler là rất cao. Rootkit rất ít khi dùng trên các  
Agent do mức độ quan trọng của Agent không cao và nếu có mất một số Agent cũng  
không ảnh hưởng nhiều đến attack-network.  

Tải về để xem bản đầy đủ

pdf 57 trang yennguyen 26/03/2025 100
Bạn đang xem 30 trang mẫu của tài liệu "Đồ án Ứng dụng web và cách thức tấn công và bảo mật web", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfdo_an_ung_dung_web_va_cach_thuc_tan_cong_va_bao_mat_web.pdf