Không giống như kiểu tấn công DoS truyền thống phần 2 , kiểu tấn công vàobăng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùngmột lúc tiến đến hệ thống đích khiế
Trang 1Chương 9: Từ chối dịch vụ (Dos)
III.2 Lợi dụng TCP thực hiện phương pháp SYN flood
truyền thống:
Hình 9.III.2-1: Tấn công DoS truyền thốngNhư đã đề cập về vấn đề thiết lập kết nối trong phần 1, bất cứ 1 gói tin SYN, máychủ cũng phải để 1 phần tài nguyên của hệ thống như bộ nhớ đệm để nhận vàtruyền dữ liệu cho đường truyền đó Tuy nhiên, tài nguyên của hệ thống là có hạn
và hacker sẽ tìm mọi cách để hệ thống tràn qua giới hạn đó ( Đây còn được gọi làhalf-open connection vì máy khách mở kết nối giữa chừng)
Theo hình 9.III.2-1: Nếu máy chủ sau khi gửi trả một gói tin SYN/ACK để thôngbáo chấp nhận kết nối cho máy yêu cầu nhưng nếu địa chỉ IP của máy yêu cầu này
là giả mạo thì gói tin không thể đến được đích, nên máy chủ vẫn phải dành tàinguyên cho yêu cầu đó Sau một thời gian không nhận được phản hồi từ máykhách, máy chủ lại tiếp tục gửi một gói tin SYN/ACK để xác nhận lần nữa và cứnhư vậy, kết nối vẫn tiếp tục mở
Nếu như hacker gửi nhiều gói tin SYN đến máy chủ đến khi máy chủ không thểtiếp nhận thêm 1 kết nối nào nữa thì lúc này hệ thống đã bị phá vỡ
Trang 2Chương 9: Từ chối dịch vụ (Dos)
Kết luận:
Chỉ với một đường truyền băng thông nhỏ, hacker đã có thể phá vỡ một hệ thống.Thêm vào đó, địa chỉ IP của hacker có thể được sửa đổi nên việc xác định thủphạm là một vấn đề hết sức khó khăn
III.3 Tấn công vào băng thông
III.3.1 Kiểu tấn công thứ 1
Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớnhơn băng thông của máy đích Kiểu tấn công này không bị hạn chế bởi tốc độtruyền mạng
Ví dụ 9.III.3.1-1: Hacker có một đường truyền tốc độ cao T1 ( 1.544- Mbps ) haylớn hơn có thể dễ dàng phá vỡ một hệ thống có đường truyền 56Kbps
III.3.2 Kiểu tấn công thứ 2
Kiểu tấn công này được sử dụng khi đường truyền mạng của hacker là quá thấp sovới đường truyền của máy đích
Không giống như kiểu tấn công DoS truyền thống ( phần 2 ), kiểu tấn công vàobăng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùngmột lúc tiến đến hệ thống đích khiến cho đường truyền của hệ thống đích khôngcòn khả năng đáp ứng, máy chủ không còn khả năng nhận một gói tin nào nữa
Trang 3Chương 9: Từ chối dịch vụ (Dos)
Hình 9.III.3.2-1: Kiểu tấn công DoS vào băng thôngTheo hình 9.III.3.2-1, tất cả các gói tin đi vào 1 mạng máy tính qua 1 "Big-Pipe" (ống dẫn lớn ), sau đó được router chia ra những "Small Pipe" ( ống dẫn nhỏ ) chonhiều máy tính con tùy theo địa chỉ IP của gói tin
Nhưng nếu toàn bộ "Big-Pipe" bị làm ngập bằng những gói tin chỉ hướng đến 1máy nhất định trong mạng máy tính con này, router đành phải chấp nhận loại bỏphần lớn các packet để chỉ còn lại số lượng vừa đủ đi qua "Small Pipe" của máytính đó Kiểu tấn công này sẽ loại máy đích ra khỏi Internet
Đây là phương pháp tấn công kiểu từ chối dịch vụ nhưng không là DoS mà gọi làDDoS ( kiểu từ chối dịch vụ phân tán ), nghĩa là cùng một lúc nhiều máy sẽ đượcphát động để gửi gói tin đến máy đích ( mặc dù đường truyền của mỗi máy khôngcao nhưng nhiều đường truyền lại hợp thành một ống dẫn “ Big Pipe”), làm chomáy đích không còn khả năng tiếp nhận gói tin và bị loại khỏi mạng Internet, như
Trang 4Chương 9: Từ chối dịch vụ (Dos)
computer con tùy
Hình 9.III.3.2-2: Tấn công DDoS
DRDoS (Distributed Reflection Denial of Service) - Thế hệ tiếp theo của
DDoS:
Đây cũng chính là nguyên nhân khiến cho trang grc.com bị phá vỡ
Hình sau sẽ minh họa kiểu tấn công DRDoS này
Trang 5Chương 9: Từ chối dịch vụ (Dos)
Hình 9.III.3.2-3 Tấn công kiểu DRDoS
Bằng cách giả địa chỉ IP của máy đích, hacker sẽ cùng lúc gửi nhiều gói tinđến các hệ thống máy mạnh trên mạng, các hệ thống này khi nhận gói tin SYNgiả này, chấp nhận kết nối và gửi trả một gói tin SYN/ACK để thông báo Vìđịa chỉ IP của gói tin SYN bị hacker sửa đổi thành địa chỉ IP máy đích nênnhững gói tin SYN/ACK sẽ được gửi về cho máy đích Cùng một lúc nhậnđược nhiều gói tin, đường truyền của máy đích không đủ khả năng đáp ứng, hệthống máy đích từ chối nhận bất kì gói tin nào và lúc này hệ thống máy đích
đã bị sụp đổ
Trang 6Chương 9: Từ chối dịch vụ (Dos)
III.4 Kiểu tấn công vào tài nguyên hệ thống
Đây là kiểu tấn công nhằm vào tài nguyên hệ thống hơn là tài nguyên mạng nhưCPU, bộ nhớ, file hệ thống, tiến trình… Hacker là một người dùng hợp lệ của hệthống, và được một lượng tài nguyên giới hạn trên hệ thống Tuy nhiên, hacker sẽlạm dụng quyền truy cập này để yêu cầu thêm tài nguyên Như vậy, hệ thống haynhững người dùng hợp lệ sẽ bị từ chối sử dụng tài nguyên chia sẻ
Kiểu tấn công sẽ khiến cho hệ thống không thể sử dụng được vì tài nguyên đã bị
sử dụng hết, không còn tiến trình để thực thi nữa
IV BIỆN PHÁP PHÒNG CHỐNG
Kiểu tấn công từ chối dịch vụ là kiểu tấn công gây nhiều khó khăn trong vấn đề bảo
vệ cũng như điều tra tìm ra thủ phạm nhất, bởi vì hầu hết hacker đã thay đổi địa chỉ
IP của máy mình nên rất khó xác định ai là thủ phạm
Để phòng chống khả năng khuyếch đại đường truyền, cần:
• Huỷ khả năng broadcast tại router biên
• Tăng kích thước hàng đợi kết nối
-> kết quả: có thể phòng tránh khả năng tràn hàng đợi qua nhiều kết nối, nhưngcách này sử dụng nhiều tài nguyên
• Giảm thời gian thiết lập kết nối
• Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS:
Hầu hết những hệ điều hành hiện nay đều hỗ trợ khả năng phát hiện và phòng chốngkiểu tấn công lụt SYN
Trang 7Chương 9: Từ chối dịch vụ (Dos)
Tuy nhiên cũng đã có những phần mềm được có khả năng tránh kiểu tấn công này
Ví dụ như với Linux kernels 2.0.30 và về sau cài đặt một tùy chọn gọi là SYN Cookie,
kernel có nhiệm vụ truy tìm và lưu vết những khả năng có thể xảy ra kĩ thuật SYN.Sau đó, kernel sẽ sử dụng một giao thức mã hoá như SYN cookie cho phép ngườidùng hợp lệ của hệ thống tiếp tục kết nối đến hệ thống
Với WindowNT 4.0 trở về sau, sử dụng kĩ thuật backlog, mỗi khi hàng đợi kết nốikhông đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, vì thế hàngđợi sẽ không bị phá vỡ
• Ứng dụng chỉ cho phép mỗi một máy con chỉ được thiết lập số kết nối tối đa theoqui định tránh trường hợp hacker gửi cùng lúc nhiều yêu câu gây tắc nghẽn
Nhận xét:
Kiểu tấn công từ chối dịch vụ tuy chỉ khiến cho hệ thống bị phá vỡ trong vài phútnhưng hậu quả thì khá to lớn (ảnh hưởng trên phạm vi tiền và uy tín) Đây là kĩ thuậtthường được hacker sử dụng trong trường hợp không thể chiếm quyền quản trị trên
hệ thống hoặc thông tin, hoặc muốn phá hủy uy tín của cơ quan đó.Thêm vào đó việcgiả mạo địa chỉ khiến cho hacker càng dễ dàng thực hiện viêc tấn công mà không sợ
bị phát hiện Thông thường kĩ thuật này được thực hiện kèm theo sự hỗ trợ của vàicông cụ như ping of death, teardrop…Những công cụ này được liệt kê thêm trongchương 8 tiếp theo
Trang 8Chương 10: Một số kĩ thuật tấn công khác
Chương 10 MỘT SỐ KĨ THUẬT TẤN CÔNG KHÁC
Nội dung :
III Tấn công dựa vào kí tự rỗng
IV Ngôn ngữ trình chủ
Trang 9Chương 10: Một số kĩ thuật tấn công khác
CHƯƠNG 10: MỘT SỐ KĨ THUẬT TẤN CÔNG KHÁC
DE
I MÃ HÓA URL (URL Encoding)
I.1 Khái niệm
Theo RFC 1738 định nghĩa URL và RFC 2369 cho URIs, những kí tự được giớihạn sử dụng trên URL hoặc URI là một tập các kí tự US-ASCII Theo RFC 1738,
2369 những kí tự chữ số, kí tự đặc biệt như “ $-_.+!*’() ” và một số kí tự dànhriêng là không bị mã hoá trên URL hay URIs Còn những kí tự đặc biệt khác thìđược mã hóa như khoảng trắng, < > ”…Sau khi trình chủ nhận được dữ liệu này,trình chủ sẽ tự động giải mã để thao tác như bình thường
Vậy hacker có thể lợi dụng được gì trong URL mã hóa này
Những nhà phát triển ứng dụng có thể sẽ thiết kế ứng dụng để kiểm tra dữ liệunhập vào của người dùng có hợp lệ hay không, những kí tự đặc biệc như < >trong thẻ script thường được dùng trong những kĩ thuật tấn công như XSS sẽ bịlọai bỏ Vậy để hợp thức hóa nội dung dữ liệu cần nhập, hacker thay vì nhập trựctiếp kí tự đặc biệt vào ô nhập thì họ có thể nhập những kí tự đã được mã hoá theochuẩn RFC 1738, RFC 2369 Như vậy bằng cách đó, hacker có thể dễ dàng vượtqua kiểm soát này
Trang 10Chương 10: Một số kĩ thuật tấn công khác
Ví dụ 10.I.1-1:
http://www.myserver.c0m/script.php?mydata=%3cscript%20src=%22htt p%3a%2f%2fwww.yourserver.com%2fbadscript.js%22%3e%3c%2fscript%3eBiến mydata sẽ mang nội dung:
II.1 Khái niệm
Nhiều ứng dụng sử dụng tập tin hệ thống của trình chủ trong “lớp trình bày” đểhiển thị thông tin lưu trử tạm thời Những tập tin này bao gồm những tập tin hìnhảnh , tập tin HTML, hay những ứng dụng CGI Thư mục WWW-ROOT là mộtthư mục gốc ảo bên trong trình chủ, nơi mà được truy xuất bởi trình duyệt Ứngdụng lưu trữ thông tin bên trong hoặc bên ngòai WWW-ROOT
Nếu ứng dụng không kiểm tra những kí tự đặc biệt, thường được sử dụng trongđường dẫn như “/” thì có thể rằng ứng dụng đã có một lỗ hổng cho kiểu tấn công
Trang 11Chương 10: Một số kĩ thuật tấn công khác
vượt đường dẫn Hacker có thể yêu cầu trình chủ trả về kết quả là nội dung nhữngtập tin vật lí như /etc/password…
Tóm lại:
Kiểu tấn công này cũng dựa vào sự lỏng lẻo trong quá trình kiểm tra dữ liệu trênURL, cookie, HTTP Header yêu cầu Lợi dụng quyền truy xuất một tập tin củaứng dụng, nhờ đó hacker có thể xem được file lưu trữ trên hệ thống
Trang 12Chương 10: Một số kĩ thuật tấn công khác
III.1 Khái niệm
Nhiều ứng dụng Web thường sử dụng ngôn ngữ lập trình như C, Java để tạomodul xử lý những công việc như thao tác trên những dữ liệu nhập vào từ ngườidùng Lợi dụng kí tự kết thúc chuỗi mà hacker sẽ thêm vào một chuỗi nhập đểđánh lừa ứng dụng
Ví dụ 10.III.1-1:
Giả sử hacker đưa vào một chuỗi “AA\0BB” thì qua chương trình lập trình bằngngôn ngữ C, chuỗi này có thể bị cắt ngắn thành AAAA vì C xem \0 là dấu hiệukết thúc chuỗi Hacker có thể lợi dụng điều này để vượt qua các khâu kiểm tra nộidung chuỗi
III.2 Một số biện pháp phòng chống
Cách duy nhất để phòng chống trường hợp này đó là chỉ chấp nhận những dữ liệuhợp lệ Những kí tự như “\” phải bị lọai bỏ trước khi ứng dụng sử dụng chúng
IV NGÔN NGỮ PHÍA TRÌNH CHỦ
IV.1 Khái niệm
SSI là đoạn mã được nhúng vào trong trang Web để yêu cầu trình chủ cung cấpthông tin ở một điểm nào đó trong trang
Ví dụ 10.IV.1-1:
Trang 13Chương 10: Một số kĩ thuật tấn công khác
<! #include file="test.asp" >
Dòng lệnh trên nhúng nội dung file “test.asp” vào trong trang Web
Tuy nhiên, SSI không phải được hỗ trợ trong hầu hết các trình chủ, Apache và IIS
là 2 trình chủ hỗ trợ SSI Trang Web có sử dụng SSI thường được lưu dưới dạng.shtml hoặc stm (là phần mở rộng của html hay htm) để báo hiệu cho trình chủbiết trang này có sử dụng SSI để tiết kiệm thời gian xử lí cho trình chủ (khôngmất thời gian tìm kiếm)
Quá trình thực hiện xử lí một trang Web yêu cầu:
Nếu không có bất kì chỉ thị nào khác, trình chủ chỉ gửi nội dung trang Web chotrình duyệt nhưng với một SSI, thì công việc tuần tự theo những bước như sau:
• Trình chủ nhận dữ liệu và phân tích dữ liệu (tìm kiếm và phân loại những câulệnh đặc biệt) để chỉ thị thực hiện
• Dưa trên những câu lệnh mà trình chủ tìm thấy, trình chủ thực thi những câulệnh đó để trả kết quả cho trình duyệt
• Trả kết quả về cho trình duyệt
Có 3 khả năng thực hiện:
• Nhận thông tin từ một file và chèn vào trong trang
• Gán giá trị cho một số biến
• Gọi chương trình CGI
Nội dung câu lệnh SSI xem trong phần phụ lục
Trang 14Chương 10: Một số kĩ thuật tấn công khác
Trang 15Chương 11: Tổng kết quá trình tấn công của Hacker
Chương 11 TỔNG KẾT QUÁ TRÌNH TẤN CÔNG
CỦA HACKER
Nội dung:
I Thu thập thông tin ở mức hạ tầng của mục tiêu
II Khảo sát ứng dụng Web
III Tấn công
Trang 16Chương 11: Tổng kết quá trình tấn công của Hacker
• Bước 1: FootPrinting (thu thập thông tin):
Đây là cách mà hacker làm khi muốn lấy một lượng thông tin tối đa về máychủ/doanh nghiệp/người dùng, bao gồm chi tiết về địa chỉ IP, Whois, DNS v.v - là những thông tin chính thức có liên quan đến mục tiêu
Công cụ hỗ trợ: UseNet , search engines (công cụ tìm kiếm) , Edgar Any Unixclient, http://www.networksolutions.com/whois, nslookup Is -d , Sam spade,http://www.arin.net/whois, dig
• Bước 2: Scanning (Quét thăm dò):
Phần lớn thông tin quan trọng từ server có được từ bước này , bao gồm quét cổng,xác định hệ điều hành, v.v để biết các port trên server, nghe đường dữ liệu
Các công cụ: fping, icmpenum Ws_ping ProPack, nmap, SuperScan, fscan nmap,queso, siphon
• Bước 3: Enumeration (liệt kê tìm lỗ hổng):
Trang 17Chương 11: Tổng kết quá trình tấn công của Hacker
Bước thứ ba là tìm kiếm những tài nguyên được bảo vệ kém, hoạch tàikhoản người dùng mà có thể sử dụng để xâm nhập, bao gồm các mật khẩumặc định, các script và dịch vụ mặc định Rất nhiều người quản trị mạngkhông biết đến hoặc không sửa đổi lại các giá trị này
Các công cụ phụ trợ: null sessions, DumpACL, sid2user, OnSite Adminshowmount, NAT Legion banner grabbing với telnet, netcat, rpcinfo
Bây giờ 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ấncông vào lỗi tràn bộ đệm, lấy và giải mã file password, hay brute force (kiểm tratất cả các trường hợp) password
Các công cụ: tcpdump, L0phtcrack readsmb, NAT, legion, tftp, pwdump2 (NT)ttdb, bind, IIS, HTR/ISM.DLL
• Bước 5: Escalating privilege (Leo thang đặc quyền):
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 passwordcủa admin, hoặc sử dụng lỗ hổng để leo thang đặc quyền
John và Riper là hai chương trình crack password rất hay được sử dụng
Công cụ: L0phtcrack, Ic_messages, getadmin, sechole
• Bước 6: Pilfering (Dùng khi các file chứa pass bị sơ hở):
Trang 18Chương 11: Tổng kết quá trình tấn công của Hacker
Thêm một lần nữa các máy tìm kiếm lại đựơc sử dụng để tìm các phươngpháp truy cập vào mạng Những file text chứa password hay các cơ chế không antoàn khác có thể là đích cho hacker
Thông tin lấy từ bước trên đủ để ta định vị server và điều khiển server Nếu bướcnày không thành công, đến bước <9>
Công cụ hỗ trợ: rhost, LSA Secrets user data, configuration files, Registry
• Bước 7: 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 filelog của hệ điều hành làm cho người quản lý không nhận ra hệ thống đã bị xâmnhập hoặc có biết cũng không tìm ra kẻ xâm nhập là ai
Xóa log Công cụ: Zap, Event log GUI, rootkits, file streaming
• Bước 8: Creating Backdoors (Tạo cửa sau chuẩn bị cho lần xâm nhập tiếp theođược dễ dàng hơn):
Hacker để lại "Back Doors", tức là một cơ chế cho phép hacker truy nhập trở lạibằng con đường bí mật không phải tốn nhiều công sức, bằng việc cài đặt Trojanhay tạo user mới (đối với tổ chức có nhiều user)
Công cụ ở đây là các loại Trojan, keylog, creat rogue user accounts, schedulebatch jobs, infect startup files, plant remote control services, install monitoringmechanisms, replace apps with Trojan
Trang 19Chương 11: Tổng kết quá trình tấn công của Hacker
Công cụ: members of wheel, administrators cron, At rc, Startup folder, registrykeys, netcat, remote.exe, VNC, BO2K, keystroke loggers, add acct to secadminmail aliases login, fpnwclnt.dll
II KHẢO SÁT ỨNG DỤNG WEB
Phương pháp khảo sát khá phổ biến, đó là Xem mã nguồn và lợi dụng các lỗi cho
phép xem mã nguồn.
Một số ngôn ngữ web thông dụng hiện nay có nhiều lỗi này như Active Server Pages(ASP), Common Gateway Interface (CGI), ColdFusion Server (CFM), HypertextPreprocessor (PHP)
Tìm các site bị lỗi này bằng cách dùng www.google.com, search từ khóa liên quan
Sử dụng allinurl: trước đoạn string đặc biệt cần kiếm, thì những trang Web tìm kiếm
được chắc chắn sẽ có chuỗi cần tìm
Ví dụ 11.II-1: "allinurl:/advadmin" (không có ngoặc kép) thì chỉ liệt kê ra nhữngtrang có URL có dạng : http://tentrangweb.com/advadmin
Tìm các file trên http://www.google.com thì thêm chữ type file: trước tên file cần tìm
trên các chuyên khu web
Ví dụ 11.II-2:
+ Muốn tìm file mdb (đây là file chứa mật khẩu của các trang Web, dùng Access đểmở) thì vào http://www.google.com và đánh type file:mdb
Trang 20Chương 11: Tổng kết quá trình tấn công của Hacker
+ Tìm file SAM (đây là file chứa Password của Windows NT, dùng L0phtCrack đểCrack) thì vào http://www.google.com và đánh type file:SAM
• Tấn công vượt qua các cơ chế kiểm soát (authentication, authorization)
Bao gồm các phương pháp như đoán mật khẩu, thay đổi thông tin cookies, các kĩthuật directory traversal, leo thang đặc quyền, các phương pháp tấn công dựa vàoSQL, SQL injection
• Tìm hiểu sâu về các chức năng của ứng dụng web
Tìm hiểu cách thực hiện của các phần trong ứng dụng, đặc biệt như các orderinput, confirmation, order tracking Ở đây ta có thể áp dụng các phương pháp nhưSQL Injection, input validation
• Tìm hiểu luồng di chuyển của thông tin
Các thông tin tương tác giữa client và server, các thông tin tương tác với database.Hiện nay việc viết mã để thực hiện việc giao tiếp thông tin thường phải đảm bảođược tính hiệu quả (nhanh), và bảo mật (có thể sẽ chậm hơn) Thường thì tínhhiệu quả được ưu tiên hơn do đó có thể sẽ phát sinh lỗi trong quá trình đó và giúphacker có thể lợi dụng các lỗi như SQL input để đoạt quyền điều khiển hệ thống
III TẤN CÔNG
Sau khi đã thu thập và khảo sát kỹ càng đối tượng, hacker bắt đầu thực hiện tấn côngnhằm xâm nhập vào hệ thống lấy thông tin, đưa thông tin xấu vào, dành quyền kiểmsoát,… Còn nếu không thành công trong việc xâm nhập, thì Dos là cách thức cuốicùng mà hacker thường lựa chọn để làm cho hệ thống không thể hoạt đông được
Trang 21Chương 11: Tổng kết quá trình tấn công của Hacker
Nhận xét:
Việc thu thập thông tin là vô cùng quan trọng cho việc tấn công vào một hệ thốngmáy đích Cho dù hacker tấn công theo phương diện phần cứng hay qua ứng dụng thìviệc thu thập vẫn là cần thiết Vấn đề là việc thực hiện sẽ theo từng bước như thế nào
Có thể trong những bước đã nêu hacker không cần phải đi qua theo thứ tự hay quahết, nhưng việc nắm rõ thông tin của máy đích 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 nội dung thông tin mà hacker thu thập được mà hacker sẽ quyết định tấncông theo kĩ thuật nào Do đó, việc bảo mật cho một hệ thống cần đòi hỏi sự kết hợpkhô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 Nhiệm vụ này sẽ được đề cập rõhơn trong chương 12
Trang 22Chương 12: Tổng kết các biện pháp phòng chống
Chương 12 TỔNG KẾT CÁC BIỆN PHÁP PHÒNG CHỐNG
Nội dung:
Để phòng chống hacker cần vai trò của
Trang 23sự tấn công của hacker, luận văn sẽ trình bày theo 3 vai trò: vai trò người quản trịmạng, vai trò người lập trình ứng dụng và vai trò của người dùng.
I VỚI NHỮNG NHÀ QUẢN TRỊ MẠNG
• Người quản trị hệ thống cần xác định rõ những đối tượng nào là quan trọng nhấttrong hệ thống cần bảo vệ; xác định rõ mức độ ưu tiên đối với những đối tượngđó
Ví dụ các đối tượng cần bảo vệ trên một hệ thống có thể là: Các máy chủ dịch vụ,các router, các điểm truy nhập hệ thống, các chương trình ứng dụng, hệ quản trịCSDL, các dịch vụ cung cấp
• Cấu hình cho những ứng dụng:
Thận trọng trong việc cấu hình trình chủ và một số ứng dụng Trình chủ nên haykhông cho phép thực thi những câu lệnh SSI Ngoài ra phải thiết lập quyền choứng dụng chỉ chạy dưới một số quyền hạn nhất định như trong quản trị cơ sở dữliệu ( không nên chạy quyền Admin) tránh trường hợp hacker có thể lợi dụngchạy những câu lệnh điều khiển hệ thống
Trang 24Chương 12: Tổng kết các biện pháp phòng chống
• Xác định nguy cơ đối với hệ thống chính là xác định các lỗ hổng bảo mật của cácdịch vụ, ứng dụng trên hệ thống đó Việc xác định đúng đắn các nguy cơ này giúpngười quản trị có thể tránh được những cuộc tấn công mạng, hoặc có biện phápbảo vệ đúng đắn bằng cách thường xuyên cập nhật tin tức trên các nhóm tin vềbảo mật và từ nhà cung cấp phần mềm để phát hiện những lỗi của phần mềm sửdụng Khi phát hiện lỗi cần cập nhập những phần mềm mới nhất để tránh trườnghợp hacker lợi dụng những lỗ hổng có trong những ứng dụng chưa được sửa chữatrong phiên bản cũ
• Nắm được hoạt động của các phần mềm sử dụng, ý nghĩa của các file cấu hìnhquan trọng (như etc/password), áp dụng các biện pháp bảo vệ cấu hình như sửdụng phương thức mã hóa hashing code (MD5)
• Sử dụng một vài công cụ có thể phát hiện ra các hoạt động truy nhập không hợp
lệ vào một hệ thống như logfile
• Kiểm soát chặt chẽ các quyền của các tài khoản trên hệ thống; không sử dụngquyền root trong các trường hợp không cần thiết Đối với các tài khoản không sửdụng trên hệ thống cần đổi mật khẩu hoặc hủy bỏ
• Quản lý mật khẩu một cách chặt chẽ
o Buộc người sử dụng thay đổi mật khẩu trong một thời gian nhất định Hầu hếtcác hệ thống hiện nay đều hỗ trợ cơ chế này; nếu không thay đổi mật khẩu, tàikhoản đó không còn giá trị trên hệ thống
o Trong trường hợp người sử dụng bị mất mật khẩu, để cấp lại mật khẩu mớicần có các thủ tục khác để xác thực người sử dụng
Trang 25Chương 12: Tổng kết các biện pháp phòng chống
o Cần giám sát và theo dõi chặt chẽ các chương trình đổi mật khẩu; đây thường
là mục tiêu để tấn công
• Đảm bảo dữ liệu được cung cấp từ người dùng là hợp lệ:
Tất cả những dữ liệu được đưa vào ứng dụng phải đảm bảo được kiểm tra kĩ, loại
bỏ hoặc từ chối những kí tự đặc biệt như < > ‘ /…
Tuy nhiên, không nên dùng ngôn ngữ trình khách (như JavaScript, VBScript…)
để kiểm tra dữ liệu nhập hợp lệ vì hacker vẫn có thể lợi dụng để tấn công nhưtrong kĩ thuật mã hoá URL hay vượt đường dẫn…Cách tốt nhất vẫn là kiểm trangay trên ứng dụng
Nếu không thể từ chối cũng như lọai bỏ những kí tự, ứng dụng cần kiểm tra dữliệu xuất để đảm bảo rằng dữ liệu xuất đến trình duyệt là an toàn
Ví dụ 12.II-1:
Với SQL Injection, ứng dụng cần xuất một trang báo lỗi do chính ứng dụng quiđịnh để phòng tránh trường hợp hacker lợi dụng nội dung báo lỗi cú pháp SQL đểlấy thông tin
Ngoài ra, ứng dụng cần kết hợp với HTTP Header, đặc biệt là thành phần Referer
để đảm bảo trang yêu cầu không xuất phát từ máy hacker như trong kĩ thuậtBuffer Overflow, thao tác trên biến ẩn form,…
• Chứng thực người dùng:
Trang 26Chương 12: Tổng kết các biện pháp phòng chống
Nhiều ứng dụng hiện nay quản lí một phiên làm việc của người dùng bằngsessionID nhưng sự yếu kém trong cách quản lí một phiên làm việc khiến chohacker có thể dễ dàng kiểm soát được một phiên làm việc của người dùng nhưtrong kĩ thuật “quản lí phiên làm việc” Vì thế, đối với một phiên làm việc, ứngdụng cần hủy ngay sau khi trình duyệt đóng kết nối
• Mã hóa dữ liệu quan trọng:
Những thông tin quan trong như tên/mật khẩu, credit card,… cần được mã hóa đểtránh hacker có thể lấy được nội dung và sử dụng chúng như trong kĩ thuật XSS,SQL Injection Ngoài ra, trong quá trình truyền, kết hợp phương pháp SSL đểtránh trường hợp mất mát thông tin trên đường truyền
Hiện nay trong lĩnh vực mã hóa dữ liệu, có rất nhiều phương pháp mã hóa như mãhóa khóa bí mật, mã hóa khóa công khai,…nên tùy vào mức độ sử dụng cũng nhưtầm quan trọng mà ứng dụng có thể chọn một trong những phương pháp mã hóa
để đảm bảo dữ liệu được bảo mật
Tuy nhiên, hiện nay nhiều nhà ứng dụng lại mã hóa dữ liệu kết hợp với vài thôngtin như ngày giờ, địa chỉ IP…khiến cho hacker có thể dễ dàng dự đoán, hoặc nộidung dữ liệu mã hóa quá ngắn khiến cho hacker có thể sử dụng nhưng công cụsẵn có để vét cạn những khả năng có thể xảy ra như trong kĩ thuật tấn côngsessionID Hoặc phương pháp mã hóa đã quá cũ khiến cho hacker có thể dễ dàngdùng những công cụ giải mã như “John and Ripper”
Do đó, cần chọn thuật toán mã hóa cùng với khóa để mã hóa sao cho dữ liệukhông dễ dự đoán và bị vét cạn
Trang 27sẽ tự động hủy yêu cầu.
• Thiết lập quyền:
Với những ứng dụng, hệ thống chỉ nên cung cấp những quyền hạn nhất định saocho ứng dụng đủ thực hiện các chức năng của mình Không nên đưa quyền caonhất, như root vì hacker có thể lợi dụng quyền root này để có thể thực thi nhữngcâu lệnh của hệ thống, như trong kĩ thuật tấn công SQL Injection, BufferOverflow…
• Đưa ra những lời cảnh báo cho người sử dụng Web rủi ro có thể xảy ra, đặc biệtnên chú ý khi cho phép trình duyệt thực thi ngôn ngữ trình khách trên máy củamình, vì khả năng lợi dụng ngôn ngữ này là rât lớn như trong kĩ thuật XSS,sessionID
• Sau khi sử dụng xong ứng dụng cần thoát ra khỏi hệ thống theo qui định ( nhưSigh-out của Yahoo) để những nội dung quan trọng lưu trữ trong cookie bị hủy