bai bao cao TTMMT & TT
Trang 1Phụ lục
CHƯƠNG I: TỒNG QUAN TẤN CÔNG HỆ THỐNG MẠNG 2
I Mục đích của tấn công: 2
II Bảo mật và các lỗ hổng bảo mật hệ thống 3
III Kẻ tấn công và một số hình thức tấn công mạng: 5
IV Phân loại kiểu tấn công và giải pháp khắc phục: 7
1 Tấn công hệ điều hành (Operating System Attacks): 7
2 Tấn công ứng dụng (Application level Attacks) 8
3 Tấn công nhờ chèn mã độc (Shrink Wrap Code Attacks) 9
4 Tấn công nhờ lỗi cấu hình (Misconfiguration Attacks) 9
V Các bước tấn công hệ thống mạng 10
1 Thăm dò hệ thống (reconnaissance) 10
2 Quét lỗ hỏng (scanning) 14
3 Dành quyền truy cập (gainning access) 18
4 Duy trì truy cập (maintaining access) 19
5 Xóa dấu vết (covering tracks and hiding) 20
CHƯƠNG II: MỘT SỐ KỸ THUẬT TẤN CÔNG 21
I Tấn công Man-in-the-Middle 21
II Foot Print 22
III Scanner 22
IV Bẻ khóa ( Password Cracker) 23
V Trojans 24
VI Sniffer 25
VII SQL Injection 25
Trang 2IX Social Engineering 27
X Tràn bộ đệm (Over Buffer) 27 CHƯƠNG III: DEMO SQL Injection 28
Trang 3CHƯƠNG I: TỒNG QUAN TẤN CÔNG HỆ THỐNG MẠNG
Truy cập bất hợp pháp vào website, cơ sở dữ liệu để lấy cắpthông tin cá nhân, thông tin thẻ tín dụng
đã định trước
Trang 4II Bảo mật và các lỗ hổng bảo mật hệ thống
1 Bảo mật:
Bảo mật: là một trong những lĩnh vực mà hiện nay giớicông nghệ thông tin khá quan tâm Một khi internet ra đời và pháttriển, nhu cầu trao đổi thông tin trở nên cần thiết Mục tiêucủa việc nối mạng là làm cho mọi người có thể sử dụng chung tàinguyên từ những vị trí địa lý khác nhau Cũng chính vì vậy màcác tài nguyên cũng rất dễ dàng bị phân tán, dẫn đến một điềuhiển nhiên là chúng sẽ bị xâm phạm, gây mất mát dữ liệu cũngnhư các thông tin có giá trị Giao thiệp càng rộng thì càng dễ bịtấn công, đó là một quy luật Từ đó, vấn đề bảo vệ thông tin cũngđồng thời xuất hiện Bảo mật ra đời
Tất nhiên, mục tiêu của bảo mật không chỉ nằm gói gọntrong lĩnh vực bảo vệ thông tin mà còn nhiều phạm trù khác nhưkiểm duyệt web, bảo mật internet, bảo mật http, bảo mật trên các
hệ thống thanh toán điện tử và giao dịch trực tuyến…
Mọi nguy cơ trên mạng đều là mối nguy hiểm tiểm tàng
Từ một lổ hổng bảo mật nhỏ của hệ thống, nhưng nếu biết khaithác và lợi dụng với tầng suất cao và kỹ thuật hack điêu luyện thìcũng có thể trở thành tai họa
Theo thống kê của tổ chức bảo mật nổi
tiếng CERT (Computer Emegancy Response Team) thì số vụ tấn
công ngày càng tăng Cụ thể năm 1989 có khoản 200 vụ, đến năm
1991 có 400 vụ, đến năm 1994 thì con số này tăng lên đến mức
1330 vụ, và sẽ còn tăng mạnh trong thời gian tới
Như vậy, số vụ tấn công ngày càng tăng lên với mức độchóng mặt Điều này cũng dễ hiểu, vì một thực thể luôn tồn tạihai mặt đối lập nhau Sự phát triển mạnh mẽ của công nghệ thôngtin và kỹ thuật sẽ làm cho nạn tấn công, ăn cắp, phá hoại trêninternet bùng phát mạnh mẽ
Trang 5Internet là một nơi cực kỳ hỗn loạn Mọi thông tin mà thựchiện truyền dẫn đều có thể bị xâm phạm Thậm chí là công khai.
Có thể hình dung internet là một phòng họp, những gì được traođổi trong phòng họp đều được người khác nghe thấy Với internetthì những người này không thấy mặt nhau, và việc nghe thấythông tin này có thể hợp pháp hoặc là không hợp pháp
Như vậy, internet là một nơi mất an toàn Mà không chỉ làinternet các loại mạng khác, như mạng LAN, đến một hệ thốngmáy tính cũng có thể bị xâm phạm Thậm chí, mạng điện thoại,mạng di động cũng không nằm ngoài cuộc Vì thế, phạm vi củabảo mật rất lớn, nó không còn gói gọn trong một máy tính, một
cơ quan mà là toàn cầu
2 Các lỗ hổng bảo mật hệ thống: Là các điểm yếu có thể tạo ra sự
ngưng trệ của dịch vụ, thêm quyền đối với người sử dụng hoặccho phép các truy nhập không hợp pháp vào hệ thống Các lỗhổng tồn tại trong các dịch vụ như Sendmail, Web, FTP… vàtrong hệ điều hành mạng như trong Windows, Unix, Linux hoặctrong các ứng dụng Các loại lỗ hỏng bảo mật trên một hệ thốngđược chia như sau:
Lỗ hỏng loại A: các lỗ hổng này cho phép người sử dụng ởngoài có thể truy nhập vào hệ thống bất hợp pháp Lỗ hổng rất nguyhiểm, có thể làm phá hủy toàn bộ hệ thống
Lỗ lỏng loại B: cho phép người sử dụng có thêm các quyềntrên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ Mức độnguy hiểm trung bình, những lỗ hổng này thường có trong các ứngdụng trên hệ thống, có thể dẫn đến hoặc lộ thông tin yêu cầu bảo
Trang 6Lỗ hỏng loại C: cho phép thực hiện các phương thức tấn côngtheo kiểu từ chối dịch vụ Dos (Dinal of Servcies) Mức nguy hiểmthấp, chỉ ảnh hưởng chất lượng dịch vụ, có thể làm ngưng trệ, giánđoạn hệ thống, không phá hỏng dữ liệu hoặc chiếm quyền truy nhập.
III Kẻ tấn công và một số hình thức tấn công mạng:
- Kẻ tấn công: thường gọi bằng một cái tên nôm na là hacker.
Trước đây người ta chia hacker ra làm hai loại, nhưng ngàynay có thể chia thành ba loại:
Hacker mũ đen
Đây là tên trộm chính hiệu Mục tiêu của chúng làđột nhập vào máy hệ thống máy tính của đối tượng để lấycấp thông tin, nhằm mục đích bất chính
Hacker mũ trắng
Họ là những nhà bảo mật và bảo vệ hệ thống Họcũng xâm nhập vào hệ thống, tìm ra những kẽ hở, những lổhổng chết người, và sau đó tìm cách vá lại chúng Tấtnhiên, hacker mũ trắng cũng có khả năng xâm nhập, vàcũng có thể trở thành hacker mũ đen
Hacker mũ xám
Lọai này được sự kết hợp giữa hai loại trên Thôngthường họ là những người còn trẻ, muốn thể hiện mình.Trong một thời điểm, họ đột nhập vào hệ thống để pháphách Nhưng trong thời điểm khác họ có thể gửi đến nhàquản trị những thông tin về lổ hổng bảo mật và đề xuấtcách vá lỗi
Trang 7Ranh giới phân biệt các hacker rất mong manh Một
kẻ tấn công là hacker mũ trắng trong thời điểm này, nhưng
ở thời điểm khác họ lại là một tên trộm chuyên nghiệp
Xét trên một phương diện khác phân loại hacker ra thànhcác loại như sau:
Hacker là lập trình viên giỏi
Trên phương diện tích cực, người hacker lập trìnhgiỏi là người hiểu biết rất sâu về các ngôn ngữ lập trình và
có khả năng lập trình rất nhanh và hiệu quả Những ngườihacker thuộc phân loại này là những chuyên gia được đánhgiá cao và có khả năng phát triển chương trình mà khôngcần đến các quy trình truyền thống hoặc trong các tìnhhuống mà việc sử dụng các quy trình này không cho phép.Thực tế là có những dự án phát triển phần mềm đặc thù rấtcần đến sự tự do sáng tạo của hacker, đi ngược những quytrình thông thường Tuy vậy, mặt trái của sự tự do sáng tạonày là yếu tố khả năng bảo trì lâu dài, văn bản lập trình và
sự hoàn tất Với tính cách luôn ưa thích "thách thức và thửthách", người hacker tài năng thường cảm thấy buồn chánkhi họ đã giải quyết được tất cả những vấn đề khó khănnhất của dự án, và không còn hứng thú hoàn tất nhữngphần chi tiết Thái độ này sẽ là rào cản trong môi trườngcộng tác, gây khó khăn cho những lập trình viên khác trongvấn đề hoàn tất dự án Trong một số trường hợp, nếu ngườihacker không mô tả bằng văn bản kỹ lưỡng các đoạn mãlập trình, sẽ gây khó khăn cho công ty tìm người thay thếnếu người này rời vị trí
Hacker là chuyên gia mạng và hệ thống
Về lĩnh vực mạng và hệ thống, hacker là người cókiến thức chuyên sâu về các giao thức và hệ thống mạng
Có khả năng hoàn thiện và tối ưu hóa hệ thống mạng Mặt
Trang 8mạng và lợi dụng những điểm yếu này để đột nhập vào hệthống mạng Đa số những hacker mũ đen hiện nay có kiếnthức sơ đẳng về mạng và sử dụng những công cụ sẵn có đểđột nhập, họ thường được gọi là "script kiddies" Chỉ cómột số ít hacker có khả năng tự phát triển các công cụ khaithác lỗ hổng.
Hacker là chuyên gia phần cứng
Một loại hacker khác là những người yêu thích và cókiến thức sâu về phần cứng, họ có khả năng sửa đổi một hệthống phần cứng để tạo ra những hệ thống có chức năngđặc biệt hơn, hoặc mở rộng các chức năng được thiết kếban đầu Các ví dụ về hacker ở phân loại này bao gồm:
Sửa đổi phần cứng máy tính để tăng tốc
Sửa đổi hệ thống Iphone để sử dụng hệ thốngmạng khác ngoài AT&T
- Một số hình thức tấn công mạng:
Kẻ phá hoại có thể tấn công mạng theo một trong các hìnhthức sau đây:
Dựa vào những lỗ hổng bảo mật trên mạng: những
lổ hổng này có thể là các điểm yếu của dịch vụ mà hệ thống
đó cung cấp; Ví dụ những kẻ tấn công lợi dụng các điểm yếutrong các dịch vụ mail, FTP, web… để xâm nhập và phá hoại
Sử dụng các công cụ để phá hoại: ví dụ sử dụng cácchương trình phá khóa mật khẩu để truy nhập vào hệ thống bấthợp pháp; lan truyền virus trên hệ thống; cài đặt các đoạn mãbất hợp pháp vào một số chương trình
Trang 9Nhưng kẻ tấn công mạng cũng có thể kết hợp cả 2 hìnhthức trên với nhau để đạt được mục đích.
IV Phân loại kiểu tấn công và giải pháp khắc phục:
1 Tấn công hệ điều hành (Operating System Attacks):
Tấn công hệ điều hành còn gọi là ứng dụng hệ thống.Thật ra hệ thốngnào cũng có điểm yếu Kể cả mã nguồn mở Linux hay Windows (nhưWindows 2000 trước kia thì khi cài đặt chúng ta sẽ thấy mặc định Microsoftcài hầu hết các service và mở 1 số port nguy hiểm) Thường thì việc mặc địnhcài đặt 1 hệ thống có 1 số lượng lớn các dịch vụ cùng chạy và các cổng kếtnối Điều này sẽ làm kẻ tấn công có nhiều cơ hội tấn công hơn Áp dụng ,tìm
ra các bản vá lỗi dường như khó khăn trong 1 hệ thống mạng phức tạp nhưngày nay Kẻ tấn công luôn tìm kiếm các hệ điều hành, nghiên cứu các lệnhkhai thác lổ hỏng để truy cập, xâm nhập hệ thống (Như các bạn thấy hiện nayWindows Vista cập nhật liên tục các gói security để bảo mật)
Ví dụ:
Mã lỗi CVE-2002-0724
Tên lỗi Microsoft Operating System SMB Protocol
Implementation in the Network
Lỗ hổng Người dùng từ xa truy xuất vào cổng 139 và/hoặc 445
của máy nạn nhân để thực thi đoạn mã bất kỳ
Giải pháp Vá lỗi theo link http://securitytracker.com/id/1005119
Link liệt kê lỗ hổng: http://securitytracker.com/topics/topics.html#os
Trang 102 Tấn công ứng dụng (Application level Attacks)
Tấn công dựa trên những phần mềm ứng dụng Chúng ta sẽ có demo vềtấn công dựa trên application sau
• Giải pháp = Cập nhật firefox
Link liệt kê lỗ hổng: http://www.exploit-db.com/
Giải pháp
• Cập nhật bản vá lỗi ứng dụng thường xuyên
3 Tấn công nhờ chèn mã độc (Shrink Wrap Code Attacks)
Nếu bạn là dân lập trình không chuyên thì bạn thường làm gì trước tiênkhi được giao một dự án việt code Nếu là mình thì việc đầu tiên là gặp anhgoogle.com hỏi ảnh xem có ai viết chưa Nếu có người viết rùi thì lấy về vànhét vô project cho chạy thế là xong
Nhưng nếu làm như vậy thì ta sẽ gặp vấn đề về sau: Ví dụ nếu đoạn mã
mà ta lấy về có một mã độc Chẳng hạn khi chạy thì del một sô file hệ thốngnào đó (dĩ nhiên muốn làm việc này cũng không phải dễ)
Trang 11Đó chúng ta hình dung shrink wrap Code attacks là một dạng giống nhưvậy.
Ví dụ: Các phần mềm miễn phí/có phí từ các hãng không nổi tiếng
có thể chứa đoạn mã độc để khai thác thác thông tin của máy nạn nhân rồi gởikết quả về máy tấn công
4 Tấn công nhờ lỗi cấu hình (Misconfiguration Attacks)
Tấn công dựa vào các lỗi cấu hình hệ thống Nói chung khi sử dụngWindows thì các admin thường cứ Next > Next > Next Một ví dụ: Khi cácbạn cài MySQL trên server thì Nếu các bạn cứ Next > Next > Next> Màkhông đổi pass cho user: root thì mặc định pass sẽ là null (rỗng)
Ví dụ: Khi cài MySQL, nếu cứ bấm Next -> Next -> Next-> Mà
không đổi pass cho user root Thì mặc định pass sẽ là null (rỗng)
Giải pháp: Khi triển khai phần mềm phải chú ý các tùy chọn liên quan
đến tính bảo mật của hệ thống
Trang 12V Các bước tấn công hệ thống mạng
1 Thăm dò hệ thống (reconnaissance)
Để dễ hiểu, bạn hãy tưởng tượng xem một kẻ cướp làm gì trước khi thực hiện vụ cướp?
Đến thăm nơi dự định sẽ đến cướp
Làm quen với một nhân viên
Nghiên cứu hệ thống báo động, quy trình bảo vệ, vị trí các camera anninh…
Lập kế hoạch thực hiện
Điều tương tự cũng xảy ra khi tấn công một hệ thống mạng máy
tính.Sau đây trình bày các kỹ thuật cụ thể trong pha thăm dò:
1.1 Social Engineering
Social Engineering là hành động làm cho con người tiết lộthông tin bí mật Thuật ngữ này liên quan đến việc áp dụng cácthủ đoạn gian trá để thu thập thông tin, trong nhiều trường hợp kẻtấn công không cần gặp trực tiếp nạn nhân
Social Engineering khai thác điểm yếu chính trong hệthống an ninh, đó chính là con người Social Engineering cũng lợidụng những người có thiện chí giúp đỡ người khác, làm họ để lộnhững thông tin (có thể không bí mật) nhưng thường có lợi cho
kẻ tấn công
Nói chung, có 2 dạng Social Engineering chính:
Trang 13Dạng thứ nhất thông qua con người để xâm nhập vào phầnyếu nhất của hệ thống bảo mật; dạng thứ 2 là tấn công trực tiếpvào hạ tầng của hệ thống để tìm kiếm những điểm yếu nhất vềmặt công nghệ Việc chọn dạng nào để tấn công tùy thuộc vàokiến thức công nghệ và kỹ năng xã hội của kẻ tấn công, chẳnghạn như, lừa đảo qua điện thoại, nghe trộm, …
Social Engineering không cần quá nhiều kỹ năng về côngnghệ để thành công trong việc thu thập các thông tin bí mật, đó là
lý do tại sao nó trở nên nguy hiểm Chẳng hạn việc tìm ra số điệnthoại của người quản lý, thông tin về văn phòng, …là quá dễdàng
Tại sao hacker sử dụng Social Engineering? Điều này quá
rõ ràng: hacker có thể tiêu tốn rất nhiều thời gian và công sức đểxâm nhập vào hệ thống (về mặt kỹ thuật), nhưng lại quá dễ dàng
để thuyết phục một nhân viên để lộ ra các thông tin bí mật Vàhơn nữa, không có hệ thống máy tính nào trên thế giới lại độc lậphoàn toàn với các thao tác của con người
Các kỹ thuật Social Engineering bao gồm:
Yêu cầu được trợ giúp
Lợi dụng cái “tôi” hay quyền lực
Lợi dụng sự đánh giá thấp giá trị của thông tin
Lợi dụng sự lười biếng và ngu muội
Trang 14Vậy phải làm gì để phòng ngừa Social Engineering ? Có 2giải pháp đồng thời, đó là chính sách và đào tạo.
1.2 Footprintting
Footprinting là việc dùng các công cụ và kỹ thuật để lấythông tin cơ bản đầu tiên về một tổ chức, một trang web hoặc mộtứng dụng nào đó muốn tấn công Footprinting một hệ thống một
tổ chức sẽ cho phép hacker thấy rõ tình hình an ninh ( độ bảomật) của tổ chức đó như : tên miền, các khối mạng, các dịch vụ
và ứng dụng mạng, kiến trúc hệ thống, intrusion detectionsystems, IP addresses, số điện thoại, contact addresses, cơ chếxác thực và system enumeration
Foot Printing giúp xác định những thông tin quan trọng của
hệ thống của nạn nhân, từ đó hacker có cơ sở để thực hiện các tấncông Nếu không sử dụng kỹ thuật này thì hacker khó có thể đạtđược thành công trong việc tấn công, nhất là đối với những hệthống lớn hay có độ bảo mật cao
Các bước thực hiện footprinting:
Bước 1: Xác định và giới hạn phạm vi hoạt động :
Bước này harker phải xác định rõ mục tiêu mà harck muốntấn công là gì (một trang web, một server hay là một ứng dụngnào đó trên internet )
Lúc đầu, harker đọc kỹ và ghi lại những thông tin mà trangcác web cung cấp cho harker về mục tiêu cần tấn công (như số
Trang 15ĐT, mail của webmaster, địa chỉ ) Những mục đáng quan tâmbao gồm :
Các vị trí của công ty hay công ty sở hữu trang web đó
Các bộ phận liên quan
Các kết nối hoặc tin tức có được
Các cơ chế bảo mật đã thiết đặt ( cấu hình firewall chẳnghạn )
Các số điện thoại, tên liên lạc và Email
Những search engine tìm kiếm là chìa khoá cho harker tìm đượcnhững thông ti về lỗi bảo mật của hệ thống đích Sau là một vàisearch engine nổi tiếng:
Trang 16Number (www.arin.net) hay các tool hỗ trợ sẽ được giới thiệu dướiđây.
Một số thông tin cần thiết :
Organizational : Tất cả các thông tin có liên quan đến một tổchức
Domain: Tất cả các thông tin có liên quan đến domain
Network: Tất cả các thông tin có liên quan đến mạng hoặc IP
Point of contact: Tất cả thông tin từ những mối liên hệ đếnnạn nhân như bạn bè, gia đình, …
Bước 4: Trinh sát mạng:
Sau khi thực hiện qua ba bước trên, harker bắt đầu “tìm đường”đến với mục tiêu Để thực hiện công việc này, ta sẽ sử dụng các tools
Trang 17hỗ trợ như trace route- một công cụ khá mạnh và có trong hầu hếtphiên bản của Unix & WinNT Trace route là một công cụ chẩnđoán do Van Jacobson viết để cho phép xem tuyến đường mà mộtgói tin IP sẽ theo từ server này sang server khác Ngoài ra, harkercòn có thể thực hiện một kỹ thuật phức tạp hơn gọi là "tiến trình quétgiao thức firewall".
Trang 18 Network Scanning: là một phương thức để xác địnhtrong mạng có bao nhiêu máy tính hoạt động để tấncông hay kiểm tra độ bảo mật của mạng đó.
Vulnerability Scanning: là một quá trình nhằm xácđịnh các lỗ hổng của các máy tính trên mạng mộtcách tự động
2.3 Mục tiêu scanning:
Phát hiện ra các hệ thống đang hoạt động trên mạng
Dò ra những cổng dịch vụ nào đang chạy
Dò ra hệ điều hành nào đang chạy trên hệ thốngđích
Dò ra các dịch vụ nào đang chạy trên hệ thống đích
ICMP scanningREVERSocial Engineering IDENT scanningIDLE scan
LIST scan
Trang 19RPC scanWINDOW scanPing SweepStrobe scanningTCP Xmas Tree
2.5 Một số phương pháp quét phổ biến:
a) TCP connect:
Đây là phương pháp quét dựa vào kết nối TCP Kếtnối TCP được gọi thông qua hàm connect( ) của hệ thốngvào một cổng của một ứng dụng nào đó trên server Nếucổng này mở thì kết nối thành công, ngược lại thì cổng đókhông sử dụng
b) SYN Stealth / Half Open Scan:
Phương pháp này sử dụng cách mở kết nối một nửacủa TCP chứ không như cách ở trên, có nghĩa là nó sẽkhông tạo một kết nối TCP đầy đủ mà chỉ một nửa mà thôi.Lúc đầu, một gói TCP/SYN được gửi tới server trên mộtcổng nào đó yêu cầu mở một kết nối TCP và chờ câu trảlời Tiếp theo, nếu server trả lời về gói TCP /SYN ACK thìport này đã trong trạng thái ACTIVE /LISTENING, ngaysau khi nhận được gói SYN ACK ta sẽ gửi gói tinRST(Reset) để ngắt kết nối Nếu server gửi gói tin RST thìcổng đó không trong trạng thái ACTIVE hay LISTENING
Trang 20c) FTP Bounce Scan:
Cách Scan này lợi dụng lỗ hổng Bounce Attack trênFTP server Lỗ hổng cho phép người ta có thể dùng FTPnày để yêu cầu kết nối với một server thứ 2 khác Do đóhacker có thể dùng nó để scan port và sau đó gửi kết quảtrả về Cách tấn công có ưu điểm là hacker có thể quét
trong nội bộ mạng LAN và vượt qua mặt Firewall và rấtkhó xác định được hacker ở đâu
Hình 1:FTP Bounce Scan
d) UDP Scanning: UDP RAW ICMP Port Unreachable
Scanning
Cách scanning này cũng giống như TCP nhưng thay
vì gửi gói tin TCP thì sẽ gửi gói tin UDP Tuy nhiên, dogiao thức này quá đơn giản và rất khó thực hiện nên khónhận được kết quả
e) ICMP Scanning
ICMP scanning là sử dụng công cụ ping để dò ra cáchost hoạt động trên mạng
Trang 21ICMP scanning có thể chạy song song nên có thểquét song song nhiểu cổng hay nhiều host một lúc.
f) TCP FIN Scanning:
Kỹ thuật gửi một gói tin FIN cho cổng đích Dựatrên RFC 793, hệ đích sẽ gửi trả một RTS cho tất cả cáccổng đã đóng Kỹ thuật này thường chỉ làm việc trên cácngăn xếp TCP/IP gốc Unix
Phần lớn thông tin thu thập được qua kỹ thuậtEnumeration thoạt nhìn có vẻ như vô hại Tuy nhiên,những thông tin rò rĩ từ lỗ thủng theo sau nó có thể gây taihại Nói chung, sau khi Enumeration một tên người dùnghoặc một phần dùng chung hợp lệ, vấn đề còn lại là thờigian trước khi hacker đoán được mật hiệu tương ứng hoặc