Tải bản đầy đủ (.docx) (45 trang)

TÌM HIỂU MỘT SỐ KỸ THUẬT TẤN CÔNG WEBSITE VÀ GIẢI PHÁP PHÒNG CHỐNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (951.87 KB, 45 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
NGUYỄN SƠN NGA
TÌM HIỂU MỘT SỐ KỸ THUẬT TẤN CÔNG
WEBSITE VÀ GIẢI PHÁP PHÒNG CHỐNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
HƯNG YÊN - 2014
NG
UYỄN
SƠN
NGA
TIM
HIỂU
MỘT SỐ
KỸ
THUẬT
TẤN
CÔNG
WEBSIT
E

VÀ GIẢI
PHÁP
PHÒNG
CHỐNG

2014
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
NGUYỄN SƠN NGA


TÌM HIỂU MỘT SỐ KỸ THUẬT TẤN CÔNG
WEBSITE VÀ GIẢI PHÁP PHÒNG CHỐNG
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
PHẠM QUỐC HÙNG
HƯNG YÊN - 2014
2
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
MỤC LỤC
3
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
DANH SÁCH HÌNH VẼ
4
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Từ đầy đủ Giải thích
DOS Denial Of Service Tấn công từ chối dịch vụ
DDOS Distributed Denial Of
Service
Tấn công từ chối dịch vụ phân tán
IRC Interet Replay Chat Liên lạc cấp tốc qua mạng
5
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Ngày nay, khi mà Internet được phổ biến rộng rãi thì các tổ chức, cá nhân đều
có nhu cầu giới thiệu, quảng bá thông tin về đơn vị qua các trang văn bản siêu liên
kết trên Internet cũng như thực hiện các phiên giao dịch trực tuyến. Vấn đề nảy sinh

là khi phạm vi ứng dụng của Website ngày càng mở rộng thì khả năng xuất hiện lỗi
và bị tấn công ngày càng cao, các website trở thành đối tượng cho nhiều hacker với
nhiều mục đích khác nhau. Đôi khi cũng chỉ đơn giản là để thể hiện tài năng của
mình với người khác.
Cùng với sự phát triển của thế giới mạng, các dịch vụ thương mại điện tử ngày
càng phát triển, số lượng các cuộc giao dịch của người dùng trên internet ngày càng
tăng. Vì thế các thông tin nhạy cảm của người dùng như tài khoản ngân hàng, tài
khoản email… trở thành mục tiêu tấn công của hacker.
Ngoài ra những vụ xâm nhập bất hợp pháp nhắm vào các công ty, tổ chức lớn
như: yahoo, IBM, trường đại học, các cơ quan quân sự, ngân hàng, … ngày càng
tăng lên về số lượng và mức độ nguy hiểm.
Tuy đã có nhiều cố gắng từ các nhà lập trình web những cũng không thể đảm
bảo ngăn chặn toàn bộ vì công nghệ web đang phát triển nhanh chóng nên dẫn đến
nhiều khuyết điểm mới phát sinh. Sự tấn công không nằm trong một vài khuôn khổ
mà năng động và tăng lên tùy vào những sai sót của nhà quản trị hệ thống cũng như
của những người lập trình ứng dụng.
Vì vậy, tôi đã chọn đề tài “Tìm hiểu một số kỹ thuật tấn công website và giải
pháp phòng chống” với mục đích tìm hiểu các phương pháp tấn công website của
hacker hiện nay để từ đó đưa ra các biện pháp hạn chế và có thể đề xuất một số giải
pháp để bảo mật website được an toàn hơn.
6
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
1.2 Mục tiêu của đề tài
Nghiên cứu để biết được một số kỹ thuật tấn công website của hacker, cách
thức tấn công và giải pháp phòng chống của các kỹ thuật đó.
Đồng thời nghiên cứu các công cụ phòng chống tấn công website.
Mô phỏng được kỹ thuật tấn công website DoS và DDoS và trong mô phỏng
DDoS có cả mô phỏng về giải pháp phòng của tấn công này.
1.3 Giới hạn và phạm vi của đề tài
Tìm hiểu kỹ thuật tấn công DoS – DDOS và mô phỏng.

1.4 Nội dung thực hiện
Nội dung thực hiện như sau:
Nghiên cứu về thực trạng an toàn an ninh mạng ở Việt Nam
Nghiên cứu về nguyên tắc hoạt động của website
Nghiên cứu các giai đoạn tấn công của hacker
Nghiên cứu một số kỹ thuật tấn công website (Session Hijacking, Cross-Site
Scripting, Local Attack, DoS-DdoS) và giải pháp phòng chống.
Mô phỏng kỹ thuật tấn công DoS, DdoS.
1.5 Phương pháp tiếp cận
Sử dụng các phương pháp nghiên cứu:
o Phương pháp đọc tài liệu;
o Phương pháp thực nghiệm.
7
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về thực trạng an toàn thông tin mạng ở Việt Nam
Máy chủ Việt Nam là “sân tập” của hacker quốc tế
Chỉ trong vòng chưa đầy 20 ngày của tháng 6, số lượng tấn công website Việt
Nam tăng lên khá lớn so với bình thường với hàng trăm các website tiếng Việt có
tên miền .vn và .com đã bị hacker dồn dập tấn công. Điển hình là trong đêm 6/6,
hơn 200 website tiếng Việt có tên miền .vn và .com đã bị một nhóm hacker có tên
CmTr đã tấn công và đã cài lại một file chứa mã độc vào website.
Theo thống kê của trang web Zone-H – chuyên thống kê các website bị tấn
công trên toàn cầu, chỉ trong 20 ngày đầu tháng 6, có khoảng 446 website ".vn" đã
bị hacker tấn công, trong đó có 16 trang chứa tên miền “.gov.vn”. Chỉ tính riêng
tuần đầu tiên của tháng 6 cũng đã có 407 website tên miền .vn bị hacker tấn công.
Còn theo ông Nguyễn Quang Huy, Trưởng Phòng Kỹ thuật Hệ thống Trung
tâm Ứng cứu khẩn cấp sự cố máy tính Việt Nam - VNCert, từ cuối tháng 5 đầu
tháng 6, chúng ta tiếp nhận rất nhiều cuộc tấn công và các trang web của doanh
nghiệp (DN) và nhiều cơ quan tổ chức Chính phủ. Có thông tin vài trăm website.

Có thông tin cho biết số lượng trang web bị tấn công lên tới 1.500. Hay như vụ
Diễn đàn hacker Việt Nam (www.hvaonline.net), ngày 12 và 13 cũng bị tấn công từ
chối dịch vụ (D-DOS) với cường độ rất lớn khiến mọi truy cập đến địa chỉ này đều
không thực hiện được.
Vấn đề đáng báo động ở đây là ngoài việc tấn công đơn thuần vào các diễn
đàn, trang thông tin điện tử có số lượng truy cập lớn, như rongbay.com, enbac.com,
kenh14… hacker còn tấn công cả những địa chỉ có tên miền gov.vn của các cơ quan
thuộc Chính phủ như website www.ntc.mofa.gov.vn của Bộ Ngoại giao Việt Nam,
Caugiay.hanoi.gov.vn - cổng thông tin điện tử quận Cầu Giấy, Hà Nội, và gần đây
nhất, ngày 20/6, nhóm hacker Hmei7 đã “hỏi thăm” website của Sở Thông tin –
Truyền thông Hà Nội ( ).
8
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Do mức độ các website bị tấn công dồn dập và với số lượng lớn như trên,
nhiều chuyên gia công nghệ cho rằng, nguyên nhân là do hacker đã chiếm được một
máy chủ của một nhà cung cấp dịch vụ hosting để từ đó tấn công giao diện hàng
loạt website trên đó. Theo đánh giá của ông Triệu Trần Đức, Tổng giám đốc CMC
Info Sec: Hiện nay, các website của Việt Nam đều mắc những lỗi giống nhau, chỉ
bằng 3 cách đơn giản thì 300 trang web đã có thể bị hack, trong đó, phổ biến nhất là
search trên Google. Thực tế, máy chủ của Việt Nam cứ dựng lên là trở thành “sân
tập” cho hacker thế giới.
Những cuộc tấn công này đều là những hành động đơn lẻ, mang tính chất tự
phát của những hacker bán chuyên nghiệp. Nguyên nhân chủ yếu là do đơn vị quản
lý của các website này chưa thực sự chú trọng đến việc đầu tư cho vấn đề bảo mật,
vẫn còn nhiều lỗ hổng để các hacker dễ dàng khai thác.
Không có những nhận định quá bi quan như CMC, ông Huy cho biết: Thực tế
không quá nhiều vụ tấn công như một số hãng bảo mật đã đưa ra. Có vụ chỉ 1 cuộc
tấn công đã nắm được quyền kiểm soát máy chủ cài vài chục trang web khác nhau.
Nếu thống kê số vụ tấn công thì ít hơn nhiều so với số lượng trang web.
Theo đánh giá của đại diện VnCert, những cuộc tấn công này đều là những

hành động đơn lẻ, mang tính tự phát nhiều với mức độ nguy hiểm chưa cao, không
thể hiện trình độ của hacker. Có thể hiểu là mức độ sơ khai. Qua kiểm tra, có nhiều
dấu hiệu hacker tấn công từ nước ngoài qua các địa chỉ IP xuất phát từ nhiều nước
như Trung Quốc, Hồng Kông, Hàn Quốc, Mỹ Có cả IP từ Việt Nam. Tuy nhiên,
hiện cũng chưa có thống kê cụ thể số vụ tấn công từ các quốc gia nhất định.
2.2 Khái niệm và nguyên tắc hoạt động của website
2.2.1 Khái niệm
Website là một ứng dụng sử dụng giao thức HTTP hoặc HTTPS để tương tác
với người dùng hay hệ thống khác. Người dùng sử dụng các loại trình duyệt web
như: Internet Explorer, Firefox, Google Chrome,… để truy cập website nhằm mục
đích trao đổi thông tin, gửi hoặc nhận mail, mua bán trực tuyến,…
9
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Hình 2- : Kiến trúc cơ bản của một website
Lớp ngoài cùng : có nhiệm vụ là hiển thị dữ liệu cho người dùng.
Lớp ứng dụng: là lớp xử lý các ứng dụng của website, các yêu cầu người dùng
và trả kết quả ra lớp ngoài cùng để hiển thị lên website. Lớp này thường viết bằng
các ngôn ngữ lập trình như: PHP, ASP.NET,…
Lớp dữ liệu: thường là các hệ quản trị cơ sở dữ liệu như: SQL Server, MySql,
… có nhiệm vụ quản lý tập tin và quyền sử dụng.
2.2.2 Nguyên tắc hoạt động
Hình 2- : Nguyên tắc hoạt động củamột ứng dụng website đơn giản
10
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Bước 1: Trình duyệt tạo một HTTP Request gửi tới ứng dụng web.
Bước 2: Controller chính của Struts là class ActionServlet sẽ bắt request này,
phân tích URL của nó, và dựa vào file struts-config.xml để gửi request này tới
Action class tương ứng.
Bước 3: Action class là một class của Struts Framework. ứng dụng của chúng
ta thường extends từ class này và viết code để xử lý những business tương ứng.

Chẳng hạn ta sẽ có một LoginAction để xử lý việc user login, logout.
Bước 4: Action class có thể truy xuất, cập nhật database nếu cần thiết.
Bước 5: Khi Action class thực hiện việc xử lý business xong, nó sẽ gửi yêu
cầu forward/redirect, cùng với dữ liệu (nếu có) về controller.
Bước 6: Controller chuyển control đến trang JSP tương ứng ở tầng view. Nếu
tran JSP này có sử dụng dữ liệu, controller sẽ cung cấp cho nó (đây chính là dữ liệu
mà action đã tạo ra và đưa cho controller.
Bước 7: Sau khi trang JSP đã chuẩn bị xong, Controller tạo một HTTP
Response gửi về cho trình duyệt, để trình duyệt hiển thị ra màn hình.
2.3 Các khái niệm liên quan
2.3.1 Địa chỉ IP
Địa chỉ IP (IP là viết tắt của từ tiếng Anh: Internet Protocol - giao thức
Internet) là một địa chỉ đơn nhất mà những thiết bị điện tử hiện nay đang sử dụng để
nhận diện và liên lạc với nhau trên mạng máy tính bằng cách sử dụng giao thức
Internet.
Mỗi địa chỉ IP là duy nhất trong cùng một cấp mạng.
Một cách đơn giản hơn: IP là một địa chỉ của một máy tính khi tham gia vào
mạng nhằm giúp cho các máy tính có thể chuyển thông tin cho nhau một cách chính
xác, tránh thất lạc. Có thể coi địa chỉ IP trong mạng máy tính giống như địa chỉ nhà
của bạn để nhân viên bưu điện có thể đưa thư đúng cho bạn chứ không phải một
người nào khác.
2.3.2 Hacker
Hacker là người có thể viết hay chỉnh sửa phần mềm, phần cứng máy tính bao
gồm lập trình, quản trị và bảo mật. Những người này hiểu rõ hoạt động của hệ
11
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
thống máy tính, mạng máy tính và dùng kiến thức của bản thân để làm thay đổi,
chỉnh sửa nó với nhiều mục đích tốt xấu khác nhau.
Hacker mũ trắng: là những chuyên gia lập trình chuyên tìm các lỗi của phần
mềm với mục đích sửa chữa, xây dựng hệ thống an toàn hơn.

Hacker mũ đen: là những hacker phá hoại và trục lợi cho mình.
Hacker mũ xanh/samurai: là những chuyên gia lập trình tài năng, được các
hãng như Microsoft mời về làm việc chuyên tìm lỗi cho phần mềm của họ.
Hacker mũ xám hay mũ nâu: là những người đôi khi làm công việc của
hacker mũ trắng nhưng vẫn làm công việc của hacker mũ đen.
2.3.3 Http header
Http header là trường phần đầu chứa các thông số hoạt động của một yêu cầu
HTTP giữa máy chủ và máy khách. Những thông tin khách gửi trình chủ gọi là
HTTP request (yêu cầu), những thông tin trình chủ gửi cho trình khách gọi là HTTP
response (trả lời).
Các trường tiêu đề xác định đặc điểm khác nhau của việc chuyển dữ liệu được
yêu cầu hoặc các dữ liệu được cung cấp trong thông điệp, HTTP header có thể có
nhiều dòng và thường bắt đầu với tên trường, chấm dứt với môt ký tự đại tràng, tiếp
theo là giá trị trường. Tên trường và các giá trị có thể bất kỳ ứng dụng cụ thể chuỗi,
những tập lõi các lĩnh vực được chuẩn hóa bởi Internet Engineering Task. Một số
tham số được sử dụng cả trong trình khách và trình chủ.
2.3.4 Session
Session là khoảng thời gian người sử dụng giao tiếp với 1 ứng dụng. Session
bắt đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người
sử dụng thoát khỏi ứng dụng. Mỗi session sẽ có một định danh (ID), 1 session khác
nhau sẽ có ID khác nhau. Trong ngữ cảnh ứng dụng web, website sẽ quyết định khi
nào session bắt đầu và kết thúc.
Trong 1 session, website có thể lưu trữ một số thông tin như đánh dấu bạn đã
login hay chưa, những bài viết nào bạn đã đọc qua, v.v
12
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
2.3.5 Cookies
Cookies là 1 đoạn dữ liệu được truyền đến browser từ server, đoạn dữ liệu này
sẽ được browser lưu trữ (trong memory hoặc trên đĩa) và sẽ gởi ngược lên lại server
mỗi khi browser tải 1 trang web từ server.

Những thông tin được lưu trữ trong cookies hoàn toàn phụ thuộc vào website
trên server. Mỗi website có thể lưu trữ những thông tin khác nhau trong cookies, ví
dụ thời điểm lần cuối bạn ghé thăm website, đánh dấu bạn đã login hay chưa, v.v
Cookies được tạo ra bởi website và gởi tới browser, do vậy 2 website khác
nhau (cho dù cùng host trên 1 server) sẽ có 2 cookies khác nhau gởi tới browser.
Ngoài ra, mỗi browser quản lý và lưu trữ cookies theo cách riêng của mình, cho nên
2 browser cùng truy cập vào 1 website sẽ nhận được 2 cookie khác nhau.
2.3.6 Http
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu
văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách
các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file
multimedia khác) được định dạng và truyền tải ra sao, và những hành động nào mà
các Web server (máy chủ Web) và các trình duyệt Web (browser) phải làm để đáp
ứng các lệnh rất đa dạng. Chẳng hạn, khi bạn gõ một địa chỉ Web URL vào trình
duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó
tìm đúng trang Web được yêu cầu và kéo về mở trên trình duyệt Web. Nói nôm na
hơn, HTTP là giao thức truyền tải các file từ một Web server vào một trình duyệt
Web để người dùng có thể xem một trang Web đang hiện diện trên Internet.HTTP là
một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho
Internet).
Vi-rút máy tính là một chương trình phần mềm nhỏ lây lan từ một máy tính
sang máy tính khác và can thiệp vào hoạt động của máy tính. Vi-rút máy tính có thể
phá hỏng hoặc xóa dữ liệu trên máy tính, sử dụng một chương trình email để phát
tán vi-rút đó tới các máy tính khác hoặc thậm chí là xóa mọi thứ trên đĩa cứng.
13
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
2.3.7 Virus
Vi-rút máy tính thường được phát tán bằng các tệp đính kèm trong thư email
hoặc bằng tin nhắn tức thời. Do vậy, bạn đừng bao giờ mở tệp đính kèm email trừ
khi bạn biết ai gửi thư đó hoặc bạn đang đợi thư email đó. Vi-rút có thể ngụy trang

ở dạng tệp đính kèm chứa ảnh cười, thiệp chúc mừng hoặc tệp âm thanh và video.
Vi-rút máy tính cũng phát tán thông qua các bản tải xuống trên Internet. Chúng có
thể được ẩn trong phần mềm lậu hoặc trong các tệp hoặc chương trình khác mà bạn
có thể tải xuống.
2.3.8 Trojan
Trojan - một chương trình dạng vi rút, một kẻ làm nội gián trong máy tính của
bạn đã giúp cho tên tin tặc (hacker) điều khiển máy tính của bạn, Trojan giúp tên tin
tặc lấy những thông tin quý báu của bạn, thậm chí hắn có thể xóa hoặc định dạng lại
cả ổ cứng của bạn nữa. Trojan có thể nhiễm vào máy của bạn qua tập tin gắn kèm
thư điện tử mà bạn đã vô tình tải về và chạy thử, hoặc có lẫn trong những chương
trình trò chơi, nhưng chương trình mà bạn không rõ nguồn gốc
2.4 Các giai đoạn tấn công của hacker
2.4.1 Giai đoạn thu thập thông tin
- FootPrinting (In dấu ấn - thu thập thông tin): Là bước mà kẻ tấn công thâu
tóm càng nhiều thông tin càng tốt về đối tượng, người dùng, doanh nghiệp, các chi
nhánh của công ty, máy chủ… bao gồm các chi tiết: Domain Name, Địa chỉ IP,
Networking Prototcols…
Đây là một bước quan trọng: Cho hacker nhiều thông tin, đôi khi với những
thông tin này hacker đã có thể làm chủ hệ thống. Sử dụng công cụ Nslookup,
SmartWhois…
- Sanning (Quét thăm dò mạng): Phần lớn thông tin quan trọng từ server có
được từ bước này. Xác định hệ điều hành, xác định hệ thống có đang chạy không,
tìm hiểu các dịch vụ đang chạy hay đang lắng nghe, tìm hiểu các lỗ hổng, kiểm tra
các cổng, xác định các dịch vụ sử dụng giao thức TCP và UDP
- Enumeration (Điểm danh mạng - liệt kê tìm lỗ hổng): Đến đây, các hacker
bắt đầu kiểm soát server sơ bộ. Bước này là tìm kiếm những tài nguyên được bảo vệ
14
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
kém, hoặc tài khoản người dùng mà có thể sử dụng để xâm nhập, bao gồm các mật
khẩu mặc định, các script và dịch vụ mặc định. Sử dụng công cụ: DumpSec,

NbtScan, SuperScan…
2.4.2 Giai đoạn phân tích và hành động
- Gaining Access (Đột nhập hệ thống): Hacker sẽ tìm cách truy cập vào mạng
bằng những thông tin có được ở ba bước trên. Phương pháp được sử dụng ở đây có
thể là tấn công vào lỗi tràn bộ đệm, lấy và giải mã file password, hay brute force
(kiểm tra tất cả các trường hợp) password, đột nhập qua các cổng mở… Sử dụng
công cụ: Tcpdump, Remote Buffer Overflows, Brute-force password attacks…
- Privilege Escalation (Nâng quyền hệ thống): Trong trường hợp hacker xâm
nhập đựợc vào mạng với một tài khoản nào đó, thì họ sẽ tìm cách kiểm soát toàn bộ
hệ thống. Hacker sẽ tìm cách crack password của admin, hoặc sử dụng lỗ hổng để
leo thang đặc quyền. Kẻ xâm nhập có thể truy cập vào các files hay folder dữ liệu
mà tài khoản người sử dụng ban đầu không được cho phép truy cập. Khi hacker đạt
được mức độ quyền truy cập đủ cao, họ có thể cài đặt phần mềm như là Backdoors
và Trojan horses, cũng như cho phép truy cập sâu hơn và thăm dò. Mục đích chung
của hacker là chiếm được quyền truy cập ở mức độ quản trị. Khi đó xem như có
toàn quyền điều khiển hệ thống mạng. Có thể sử dụng Sniffer để bắt các gói tin, từ
đó phân tích tìm ra mật khẩu.
- Pilfering (Khai thác hệ thống): Thông tin lấy từ bước trên đủ để hacker định
vị server và điều khiển server. Sử dụng công cụ: Configuration files, Registry,
Telnet, Ftp…
2.4.3 Giai đoạn dừng và xóa dấu vết
- Creating Backdoors (Tạo cổng hậu): Để chuẩn bị cho lần xâm nhập tiếp theo
được dễ dàng hơn. Hacker để lại Backdoors, tức là một cơ chế cho phép hacker truy
nhập trở lại bằng con đường bí mật không phải tốn nhiều công sức khai phá, bằng
việc cài đặt Trojan hay tạo user mới. Ở đây là các loại Trojan, keylog, creat rogue
user accounts…
- Covering Tracks (Xoá dấu vết): Sau khi đã có những thông tin cần thiết,
hacker tìm cách xoá dấu vết, xoá các file LOG của hệ điều hành làm cho người
15
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống

quản lý không nhận ra hệ thống đã bị xâm nhập hoặc có biết cũng không tìm ra kẻ
xâm nhập là ai. Sử dụng công cụ: Clear logs, Zap, Event log GUI, rootkits
Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ tự hay
phải thực hiện hết, nhưng việc nắm rõ thông tin của máy mục tiêu luôn là điều kiện
tiên quyết để dẫn đến thành công trong việc tấn công. Tùy vào thông tin thu thập
được mà hacker sẽ quyết định tấn công theo kỹ thuật nào, xây dựng một kịch bản
tấn công phù hợp.
Dù tấn công dưới bất kỳ với mục đích gì thì hậu quả ảnh hưởng đều rất đáng
kể, thiệt hại to lớn về uy tín, kinh tế, gây thiệt hại cho người dùng mạng, bị đánh
cắp thông tin, có thể bị hacker lợi dụng để tấn công một tổ chức khác, tận dụng phát
tán lừa đảo…
Nếu không thành công trong việc xâm nhập bằng các kỹ thuật phổ biến, thì
DOS (Denial Of Service) là cách thức mà hacker thường lựa chọn để làm cho hệ
thống không thể hoạt động được.
Do đó, việc bảo mật cho một hệ thống cần đòi hỏi sự kết hợp không chỉ của
riêng nhà quản trị hệ thống mà còn của nhà thiết kế ứng dụng và sự hợp tác của cả
những khách hàng sử dụng ứng dụng.
2.5 Một số kỹ thuật tấn công website
2.5.1 Session Hijacking
a. Khái niệm
Session Hijacking là quá trình chiếm lấy một session đang hoạt động, nhằm
mục đích vượt qua quá trình chứng thực truy cập bất hợp lệ vào thông tin hoặc dịch
vụ của một hệ thống máy tính.
Khi một user thực hiện kết nối tới server qua quá trình xác thực, bằng cách
cung cấp ID người dùng và mật khẩu của mình. Sau khi người dùng xác thực, họ có
quyền truy cập đến máy chủ và hoạt động bình thường. Trong quá trình hoạt động,
người dùng không cần phải chứng thực lại. Kẻ tấn công lợi dụng điều này để cướp
session đang hoạt động của người dùng và làm cho người dùng không kết nối được
với hệ thống. Sau đó kẻ tấn công mạo danh người dùng bằng session vừa cướp
được, truy cập đến máy chủ mà không cần phải đăng nhập vào hệ thống.

16
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Khi cướp được session của người dùng, kẻ tấn công có thể vượt qua quá trình
chứng thực dùng, có thể ghi lại phiên làm việc và xem lại mọi thứ đã diễn ra. Đối
với cơ quan pháp lý, có thể dùng làm bằng chứng để truy tố, đối với kẻ tấn công, có
thể dùng thu thập thông tin như ID người dùng và mật khẩu. Điều này gây nhiều
nguy hại đến người dùng. [1]
b. Phân loại
- Ấn định phiên làm việc
Trong kiểu tấn công ấn định một phiên làm việc hacker ấn định sẵn session
ID cho nạn nhân trước khi họ đăng nhập vào hệ thống. Sau đó, hacker sẽ sử dụng
session ID này để bước vào phiên làm việc của nạn nhân đó.
Hình 2- : Quá trình tấn công người dung bằng kỹ thuật ấn định session
Bước 1: Thiết lập session ID.
Hệ thống quản lý session theo 2 hướng:
+ Hướng tự do: chấp nhận bất kỳ một session ID, nếu chưa tồn tại session thì
tạo mới một session ID.
+ Hướng giới hạn: chấp nhận session ID nào đã đăng ký trước đó. Ở hướng
giới hạn, hacker phải đăng ký một ID với ứng dụng.
Phụ thuộc vào quy trình quản lý phiên làm việc mà hacker lưu trữ thời gian
sống của phiên làm việc cho đến khi nạn nhân đăng nhập hệ thống. Thông thường
một phiên làm việc không tồn tại vô hạn định. Hệ thống sẽ tự động hủy bỏ phiên
làm việc nếu nó không thực hiện một thao tác nào (thời gian nhàn rỗi) hoặc hết hạn
định.
17
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Do đó, bước 1a là kẻ tấn công sẽ bảo trì phiên làm việc bằng cách gửi yêu cầu
đến server.
Bước 2: Gửi session ID đến trình duyệt nạn nhân
Hacker gửi session ID vừa tạo đến người dung và việc trao đổi ID session tùy

vào ứng dụng mà có thể có các cách tấn công thông dụng gồm:
Tấn công session ID trên tham số URL.
Tấn công session ID bằng biến ẩn form
Tấn công session ID trong cookies
Bước 3: Đột nhập vào phiên làm việc của nạn nhân
Sau khi nạn nhân đăng nhập vào hệ thống qua session ID đã được chỉ định sẵn
và chưa thoát khỏi ứng dụng, hacker lúc này bắt đầu dùng session ID đó để bước
vào phiên làm việc của nạn nhân.
- Đánh cắp phiên làm việc
Khác với kiểu tấn công ấn định phiên làm việc, hacker đánh cắp một session
ID của người dùng khi họ đang trong phiên làm việc của mình. Để có thể đánh cắp
session ID của người dùng, hacker có thể dùng những phương pháp sau:
Tấn công kiểu dự đoán phiên làm việc
Hacker phải là người dùng hợp lệ của hệ thống, sau vài lần đăng nhập vào
hệ thống, hacker xem xét các giá trị session ID nhận được, tìm ra quy luật phát sinh
và từ đó có thể đoán được giá trị của một phiên làm việc của người dùng kế tiếp.
Tấn công kiểu vét cạn phiên làm việc
Hacker có thể tự tạo một chương trình gửi nhiều yêu cầu trong một khoảng
thời gian đến trình chủ. Mỗi một yêu cầu kèm theo một session ID để tìm các
session ID đang tồn tại. Hacker dựa vào thói quen của những nhà phát triển ứng
dụng web để lấy thời gian hay địa chỉ IP của người dùng để tạo session ID để hạn
chế vùng vét cạn.
Tấn công kiểu dùng đoạn mã để đánh cắp phiên làm việc
Bằng cách chèn vào một đoạn mã thực thi trên chính trình duyệt của nạn
nhân, hacker có thể lừa người dùng theo vết một liên kết để từ đó thực hiện đánh
cắp cookie của người dùng. Cách này được thực hiện thông qua lỗi Cross-Site
18
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
Scripting. Sau khi có được phiên làm việc của người dùng, hacker vào phiên làm
việc của họ.

c. Cách phòng chống
Việc phòng chống kiểu tấn công chiếm hữu phiên làm việc không thuộc trách
nhiệm của trình chủ web server, vì trình chủ chỉ cung cấp API quản lý phiên làm
việc cho ứng dụng. Vì thế, chỉ ứng dụng mới cần có những biện pháp phòng chống
lại kiểu tấn công này.
Chống việc đăng nhập với một session ID có sẵn, ứng dụng phải hủy bỏ
session ID được cung cấp bởi trình duyệt của người dùng khi đăng nhập và luôn tạo
một session ID mới khi người dùng đăng nhập thành công sẽ khiến cho những
hacker không phải là người dùng hợp lệ của hệ thống.
Giới hạn phạm vi ứng dụng của session ID như kết hợp session ID với đại chỉ
của trình duyệt, kết hợp session ID với chứng thực được mã hóa SSL của người
dùng, xóa bỏ session khi người dùng thoát khỏi hệ thống hay hết hiệu lực, thiết lập
thời gian hết hiệu lực cho session để tránh trường hợp hacker có thể duy trì session
và sử dụng nó lâu dài.
Người sử dụng phải dùng chế độ thoát khỏi hệ thống để xóa bỏ session hiện
thời và có thể những session ID còn lưu lại trên hệ thống khi họ quên thoát ra ngoài
những lần trước.
Không được chủ quan với thuật toán tạo session của ứng dụng là bảo mật,
không ai có thể đoán được. Với session ID quá ngắn, hacker có thể dùng kỹ thuật để
vét cạn. Nhưng không vì thế mà cho rằng ứng dụng sẽ bảo mật với session ID dài
và phức tạp vì kích thước session ID sẽ là một vẫn đề nếu thuật toán không tốt.
2.5.2 Cross-Site Scripting (XSS)
a. Khái niệm
Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để
tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công
bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ) những thẻ HTML
hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng
khác. Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng
19
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống

các Client-Site Script như javascript, JScript, DHTML và cũng có thể là cả các thẻ
HTML. [2]
b. Hoạt động của XSS
Về cơ bản XSS cũng là các yêu cầu (request) được gửi từ các máy client tới
server nhằm chèn vào đó các thông tin vượt quá tầm kiểm soát của server. Nó có thể
là một request được gửi từ các form dữ liệu hoặc cũng có thể đó chỉ là các URL như
là was
found !');</scrip>.
Và rất có thể trình duyệt của bạn sẽ hiện lên một thông báo "XSS was
found!".
Các đoạn mã trong thẻ không hề bị giới hạn bởi chúng hoàn toàn có thể thay thế
bằng một file nguồn trên một server khác thông qua thuộc tính src của thẻ. Cũng
chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm của các lỗi XSS.
Nhưng nếu như các kĩ thuật tấn công khác có thể làm thay đổi được dữ liệu
nguồn của web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại
đối với website ở phía client mà nạn nhân trực tiếp là những người khách duyệt site
đó. Tất nhiên đôi khi các hacker cũng sử dụng kĩ thuật này đề deface các website
nhưng đó vẫn chỉ tấn công vào bề mặt của website. Thật vậy, XSS là những Client-
Side Script, những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS
không làm ảnh hưởng đến hệ thống website nằm trên server.
Mục tiêu tấn công của XSS không ai khác chính là những người sử dụng khác
của website, khi họ vô tình vào các trang có chứa các đoạn mã nguy hiểm do các
hacker để lại họ có thể bị chuyển tới các website khác, đặt lại homepage, hay nặng
hơn là mất mật khẩu, mất cookie thậm chí máy tính bạn có thể sẽ bị cài các loại
virus, backdoor, worm
c. Cách phát hiện
- Cách 1: Sử dụng nhiều chương trình dò quét lỗi của ứng dụng website, ví dụ như
chương trình Web Vulnerability Scanner để dò quét lỗi XSS.
- Cách 2: Thực hiện 5 bước:
20

Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
o Bước 1: Mở website cần kiểm tra
o Bước 2: Xác định các chỗ (phần) cần kiểm tra XSS. Một Site bất kỳ bao giờ cũng
có các phần: Search, erro message, web form. Chủ yếu lỗi XSS nằm ở phần này, nói
chung XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau
đó nhận được một cái gì đó. Ví dụ chúng ta nhập vào chuỗi ‘XSS’.
o Bước 3: Xác minh khả năng site có bị lỗi XSS hay không bằng cách xem các thông
tin trả về.
o Bước 4: Khi đã xác định chỗ có khả năng bị dính lỗi XSS thì chúng ta sẽ chèn
những đoạn code của chúng ta vaò để thử tiếp.
o Bước 5: Lên kế hoạch kịch bản tấn công.
d. Quá trình thực hiện
- Bước 1: Hacker biết được người dùng đang chạy một ứng dụng web có lỗ hổng
XSS.
- Bước 2: Người dung nhận được một liên kết thông qua email hay trên chính trang
web (như banner, link,…). Thông thường, hacker khiến người dùng chú ý bằng
những câu kích thích sự tò mò của người dùng như “Kiểm tra tài khoản của bạn”,
“Quà tặng hấp dẫn”,…
- Bước 3: Chuyển đổi nội dung thông tin (cookies, tên, mật khẩu, …) về may chủ đã
chuẩn bị trước của hacker.
- Bước 4: Hacker đã tạo một đoạn mã hay chương trình hoặc một trang web để ghi
nhận những thông tin đánh cắp vào một tập tin.
- Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để thâm nhập vào tài
khoản của người dùng.
e. Cách phòng chống
Như đã đề cập ở trên, một tấn công XSS chỉ thực hiện được khi gửi một trang
web cho trình duyệt web của nạn nhân có kèm theo mã script độc của kẻ tấn công.
Vì vậy những người phát triển web có thể bảo vệ website của mình khỏi bị lợi dụng
thông qua những tấn công XSS này, đảm bảo những trang phát sinh động không
chứa các tag của script bằng cách lọc và xác nhận hợp lý các dữ liệu đầu vào từ phía

người dùng hoặc mã hóa(endcoding) và lọc các giá trị xuất cho người dùng.
21
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
• Lọc
Luôn luôn lọc các dữ liệu nhập từ phía người dùng bằng cách lọc các kí tự
meta (kí tự đặc biệt) được định nghĩa trong đặc tả của HTML. Mỗi trường nhập liệu
bao gồm cả tham số liên kết sẽ được kiểm tra để phát hiện các thẻ script.
• Mã hóa
Lỗi XSS có thể tránh được khi máy chủ Web đảm bảo những trang phát sinh
được mã hóa (encoding) thích hợp để ngăn chạy chạy các script không mong muốn.
Mã hóa phía máy chủ là một tiến trình mà tất cả nội dung phát sinh động sẽ đi qua
một hàm mã hóa nơi mà các thẻ script sẽ được thay thể bởi mã của nó. Nói chung,
việc mã hóa(encoding) được khuyến khích sử dụng vì nó không yêu cầu bạn phải
đưa ra quyết định những kí tự nào là hợp lệ hoặc không hợp lệ.Tuy nhiên việc mã
hóa tất cả dữ liệu không đáng tin cậy có thể tốn tài nguyên và ảnh hưởng đến khả
năng thực thi của một số máy chủ.
2.5.3 Tấn công cục bộ (Local Attack)
a. Khái niệm
Là tấn công từ nội bộ ở bên trong, một khái niệm xuất hiện từ khi các máy chủ
mạnh lên trong thời gian gần đây, như vào thập niên trước, các máy chủ chạy Web
(web server) có cấu hình chỉ ở mức trung bình vả chỉ có thể đảm nhiệm việc gồng
gánh một hoặc hai, ba trang web cùng tồn tại. Theo thời gian, cấu hình các máy chủ
ngày càng mạnh hơn, tốc độ xử lý và các công nghệ phân luồng, đa nhân, xử lý
song song. Đồng bộ với sự phát triển của phần cứng là phần mềm hệ thống và web
server, software ngày càng được viết chuyên biệt để xử lý đa tác vụ. Chính nhờ sự
phát triển đó, một máy chủ ngày nay có thể đặt nhiều website trên đó. Và cũng
chính nhờ vậy, mà 1 công nghệ khai thác lỗi mới ra đời. Nó mang tên local attack
(tấn công từ nội bộ).
Nếu 1 server đặt các website: A, B, C, D. Muốn tấn công A, check A không
thấy lỗi khai thác  chuyển ngay sang B  tìm cách khai thác B, nếu không được

 chuyển sang C  khai thác được C  up web shell hoặc shell code lên  nắm
quyền điều khiển server (hoặc quyền nào đó giúp có thể đọc các thong tin cần thiết
22
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
để tấn công A (user/password, database, username/password e-mail…)  attack A.
[2]
b. Các bước thực hiện tấn công cục bộ
Hình 2- : Các bước thực hiện tấn công cục bộ
- Xác định website cần tấn công.
- Xác định các website đặt cùng server với mục tiêu.
- Tìm cách khai thác một trong những website đặt chung server với mục tiêu.
- Khai thác được một trong các website đó. Tìm cách upload webshell hoặc thực thi
đoạn mã đã đưa lên.
- Khi đăng đoạn mã thành công thì kiểm tra quyền của người dùng hiện tại.
- Khi đã có đủ quyền để tấn công thì tiến hành đọc file config, tìm user/password,
deface mục tiêu có thể.
- Kết thúc.
c. Phương pháp tấn công cục bộ
• Chuẩn bị
Trước tiền phải có một con backdoor trên máy chủ. Backdoor thì có rất nhiều
loại khác nhau nhưng phổ biến nhất là phpRemoteView (thường gọi là remview),
R57Shell, CGITelnet, C99, … Tiến hành tải lên một trong những công cụ này lên
host (thường là các con shell như C57, C99, …).
Để có host chúng ta có nhiều cách:
23
Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
- Thuê một cái host (cách này hacker ít sử dụng).
- Hacker một website bị lỗi mà có cùng máy chủ với mục tiêu, sau đó upload shell
lên.
Các công cụ mà hacker thường sử dụng để xác định các site cùng máy chủ:

o Phần mềm Reverse IP
o />o
o
• Tiến hành khai thác mục tiêu
- Tìm danh sách người dùng trên máy chủ.
- Tìm thư mục chứa website tấn công.
- Tìm tập tin cấu hình website (file config) trong thư mục trên.
- Lấy các thông tin trên tập tin cấu hình của website như: tên cơ sở dữ liệu, tài khoản
đăng nhập.
Xâm nhập vào cơ sở dữ liệu lấy tài khoản quyền quản trị, thay đổi giao diện
website, xóa cơ sở dữ liệu, …
d. Phòng chống tấn công cục bộ
- Từ phía quản trị server
Trước hết, các nhà quản trị server nên tự trang bị cho mình những công cụ bảo
vệ server như firewall và chương trình antivirus được cập nhập bản mới nhất.
Antivirus giúp phát hiện và diệt những shell hay chương trình độc hại ngay khi nó
được upload lên server, firewall đóng vai trò như 1 vệ sĩ gác cửa ngăn chặn và cảnh
báo 1 số các sự kiện: mở cổng, truy cập khả nghi đến server…
Việc cập nhập phiên bản kernel cũng như các phiên bản ứng dụng mới cho
server phải được thường xuyên thực hiện. Cũng nên kiểm tra, cập nhập web server
và database server lên phiên bản mới nhất. Điều này không chỉ giúp cho server sử
dụng các tính năng mới nhất mà còn tránh được các lỗ hổng gây lỗi của phiên bản
cũ.
Tổ chức phân quyền đúng đắn cho server. Mỗi hosting sẽ được cấp 1 tài khoản
người dùng riêng trên server và được giới hạn quyền tối thiểu. Web server và
database server chạy dưới quyền các user riêng biệt.
Cài đặt và sử dụng Mod_security .
Cài đặt và sử dụng suPHP.
Sử dụng tính năng PHP safe_mode.
24

Tìm hiểu một số kỹ thuật tấn công website và giải pháp phòng chống
- Từ phía quản trị website
Chmod chặt chẽ cho các thư mục và file. Với thư mục nên chmod 701, với file
nên chmod 600.
Sử dụng tính năng PHP safe_mode
2.6 Tấn công từ chối dịch vụ (DOS) - Tấn công từ chối dịch vụ phân tán
(DDOS)
2.6.1 Định nghĩa tấn công từ chối dịch vụ DOS
Tấn công DoS là kiểu tấn công vô cùng nguy hiểm, để hiểu được nó ta cần
phải nắm rõ định nghĩa của tấn công DoS và các dạng tấn công DoS.
- Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống
không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người
dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống.
- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng
cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ người
dùng bình thường đó là tấn công Denial of Service (DoS).
Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ
thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp.
Mặc dù một số dạng tấn công DoS có thể được khuếch đại bởi nhiều trung
gian, nhưng xuất phát của DoS vẫn là bắt nguồn từ một máy tính đơn lẻ. Tuy nhiên
DoS đã được phát triển xa hơn ngoài cuộc tấn công một tầng (lũ SYN) và hai tầng
(Smurf). Tấn công DDoS ra đời là bước tiếp theo của DoS, khắc phục được nhiều
thiếu xót mà DoS chưa đáp ứng được. Đây là phương pháp tấn công hiện đại có sự
kết hợp của nhiều tầng tính toán phân tán. Khác biệt đáng chú ý trong phương pháp
tấn công này là nó bao gồm hai giai đoạn khác nhau. Giai đoạn đầu tiên, thủ phạm
bố trí các máy tính phân tán trên Internet và cài đặt các phần mềm chuyên dụng trên
các máy chủ để hỗ trợ tấn công. Giai đoạn thứ hai, máy tính bị xâm nhập (được gọi
là Zombie) sẽ cung cấp thông tin qua kẻ trung gian (được gọi là Master) để bắt đầu
cuộc tấn công.
Hàng trăm, có thể hàng ngàn, các zombie có thể được chọn đồng thời tham gia

vào các cuộc tấn công của Hacker. Với việc sử dụng phần mềm điều khiển, các
25

×