1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu một số phương pháp tấn công website và đề xuất một số giải pháp hạn chế

71 1,4K 2

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 642,76 KB

Nội dung

Kể từ tháng 9 năm 2012, những kẻ xâm nhập trái phép đã gây ra những vụ phá hoại chính cho các site ngân hàng trực tuyến của Bank of America, Citigroup, Wells Fargp, U.S.Bancrop, PNC, Cap

Trang 1

1

LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy Trần Tuấn Vinh, khoa Công nghệ Thông tin, trường Đại học Sư phạm Hà Nội 2 Trong suốt thời gian thực hiện khóa luận, mặc dù rất bận rộn trong công việc nhưng thầy vẫn giành nhiều thời gian và tâm huyết trong việc hướng dẫn em Thầy cung cấp cho em rất nhiều hiểu biết về một lĩnh vực mới khi em mới bắt đầu bước vào thực hiện khóa luận

Em cũng xin chân thành cảm ơn các thầy, cô giáo trong khoa Công nghệ Thông tin, cũng như các thầy cô trong trường đã giảng dạy và giúp đỡ em trong

4 năm học vừa qua Chính các thầy cô đã xây dựng cho chúng em những kiến thức nền tảng và kiến thức chuyên môn để em có thể hoàn thành khóa luận tốt nghiệp và chuẩn bị cho những công việc của mình sau này

Em gửi lời cảm ơn đến tất cả bạn bè, những người đã luôn bên em, động viên và khuyến khích em trong quá trình thực hiện khóa luận tốt nghiệp

Và cuối cùng, em xin bày tỏ lòng biết ơn sâu sắc đến gia đình đã nuôi nấng và luôn là chỗ dựa vững chắc cho em

Hà Nội, ngày 05 tháng 05 năm 2013

Sinh viên thực hiện

Nguyễn Thị Thanh Vân

Trang 2

LỜI CAM ĐOAN Tôi xin cam đoan kết quả đạt được trong khóa luận là kết quả tìm hiểu của bản thân Trong toàn bộ nội dung của khóa luận, những điều được trình bày hoặc

là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp

Tôi xin chịu trách nhiệm về khóa luận của mình!

Hà Nội, tháng 05 năm 2013

Sinh viên

Nguyễn Thị Thanh Vân

Trang 3

3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

CÁC KÝ HIỆU VIẾT TẮT 6

MỞ ĐẦU 6

CHƯƠNG 1: TỔNG QUAN VỀ WEBSITE 10

1.1 Tổng quan 10

1.2 Các dịch vụ và ứng dụng trên nền web 12

CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG 13

2.1 Tình hình an ninh mạng thế giới 13

2.2 Tình hình bảo mật ở Việt Nam 15

CHƯƠNG 3: CÁC PHƯƠNG PHÁP TẤN CÔNG VÀ MỘT SỐ GIẢI PHÁP BẢO MẬT 18

3.1 Giới thiệu chung về các phương pháp tấn công website 18

3.2 Broken Authentication and Session Management 20

3.2.1 Giới thiệu 20

3.2.2 Hoạt động 21

3.2.3 Cách phát hiện lỗi 22

3.2.4 Phòng chống 22

3.3 Insecure Direct Object References 22

3.3.1 Giới thiệu 22

3.3.2 Hoạt động 23

3.3.3 Cách phát hiện lỗi 24

3.3.4 Phòng chống 24

3.4 Cross Site Request Forgery 25

3.5 Security Misconfiguration 25

3.6 Insecure Cryptographic Storage 25

Trang 4

3.7 Failure to Restrict URL Access 26

3.8 Insufficient Transport Layer Protection 27

3.8.1 Giới thiệu 27

3.8.2 Hoạt động 27

3.8.3 Phòng chống 28

3.9 Unvalidated Redirects and Forwards 28

3.9.1 Giới thiệu 28

3.9.2 Hoạt động 29

3.9.3 Phòng chống 30

3.10 Local Attack 30

3.10.1 Tìm hiểu về Local Attack 30

3.10.2 Các bước thực hiện trong Local Attack 31

3.10.4 Các kỹ thuật Local Attack 32

3.10.5 Cách phòng chống 35

3.10.6 Các công cụ hỗ trợ 36

3.11 Tấn công từ chối dịch vụ (Denial of Sever) 37

3.11.1 DOS 37

3.11.2 DDOS (Distributed Denial of Service) 43

3.12 SQL Injection 47

3.12.1 Định nghĩa 47

3.12.2 Các dạng tấn công SQL Injection 47

3.12.3 Tránh sự kiểm soát 52

3.12.4 Các phòng tránh SQL Injeciton 52

3.13 Cross Site Scripting (XSS) 53

3.13.1 Tấn công XSS 53

3.13.2 Hoạt động của XSS 53

3.13.3 Cách tấn công 53

Trang 5

5

3.13.4 Phân loại 54

3.14 Phishing 58

3.14.1 Giới thiệu về Phishing 58

3.14.2 Những yếu tố để một cuộc tấn công Phishing thành công 58

3.14.3 Những phương thức hoạt động của Phishing 59

3.14.4 Quá trình hoạt động 61

3.14.5 Các kiểu lừa đảo 62

3.14.6 Phòng chống 63

3.15 AutoComplete 64

3.16 Xây dựng chương trình ứng dụng 66

3.16.1 Đặc tả, yêu cầu 66

3.16.2 Chức năng hệ thống 68

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69

TÀI LIỆU THAM KHẢO 71

Trang 6

CÁC KÝ HIỆU VIẾT TẮT

IMCP Internet Control Message Protocol Giao thức xử lý các thông báo

trạng thái cho IP

HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn

bản

văn bản SMTP Simple Mail Transfer Protocol Giao thức truyền tải thư tín đơn

và đích

Trang 7

để đảm bảo an toàn thông tin cho ứng dụng web, thông tin của người sử dụng Xuất phát từ thực tế đó, khóa luận này em sẽ tìm hiểu về các cách tấn công Website và cách phòng chống các loại tấn công này

Thông qua việc tìm hiểu, em 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

Mục đích và nhiệm vụ nghiên cứu

- Tìm hiểu các vấn đề liên quan đến hoạt động của một ứng dụng web

- Tìm hiểu các kỹ thuật tấn công website như: Cross Site Scripting, SQL Injection, Broken Authentication and Session Management, Insecure Direct Object References, Insecure Cryptographic Storage, Failfure to Restrict URL Access, Insufficient Transport Layer Protection, Unvalidates Redirects and Forwards, Phishing, Local Attack, Autocomplete, DOS

- Xây dựng website tìm kiếm và phát hiện các kỹ thuật tấn công website như Reflected Cross Site Scripting, Stored Cross Site Scripting, SQL Injection, Broken Authentication using SQL Injection, Autocomplete enabled on sentisive input fields, Direct Object References, Unvalidated Redirects

Trang 8

- Kết quả thực hiện: nắm rõ bản chất và cách thức tấn công website, áp dụng vào thực tế để hạn chế thấp nhất khả năng bị tấn công website

Đối tượng và phạm vi nghiên cứu

- Cơ sở lý thuyết liên quan của hoạt động website

- Các kỹ thuật tấn công website

- Các giải pháp phòng ngừa ở mức quản trị và người lập trình ứng dụng

- Ngôn ngữ PHP, My SQL

Ý nghĩa khoa học và thực tiễn của đề tài

- Về mặt lý thuyết, đề tài thể hiện rõ các phương pháp tấn công cơ bản mà

kẻ tấn công thường sử dụng để tấn công website từ trước đến nay và có thể sử dụng tiếp trong thời gian dài trong tương lai

- Về mặt thực tiễn, với các kĩ thuật tấn công được tìm hiểu, nghiên cứu trong bản báo cáo này, nếu áp dụng tốt các biện pháp phòng ngừa trong khóa luận nêu ra sẽ góp phần nâng cao khả năng bảo vệ website trước những nguy cơ tấn công của kẻ xấu

Phương pháp nghiên cứu

- Tổng hợp tìm hiểu và nghiên cứu từ các tư liệu liên quan

- Phân tích, đánh giá các kỹ thuật tấn công Đưa ra các giải pháp phòng chống ở các mức

- Thiết kế bảng cơ sở dữ liệu, xây dựng Web demo để tìm kiếm và phát hiện các lỗi bảo mật, từ đó ngăn ngừa kẻ tấn công lợi dụng các lỗi bảo mật để tấn công website

Cấu trúc khóa luận

Trang 9

9

Khóa luận tốt nghiệp được chia làm 3 chương:

Chương 1: Tổng quan về website

Chương 2: Khảo sát hiện trạng

Chương 3: Các phương pháp tấn công website và cách phòng chống

Trang 10

Website là một tập hợp các trang web (web pages) bao gồm văn bản, hình ảnh, video, flash,… thường chỉ nằm trong một tên miền (domain name) hoặc tên miền phụ (subdomain) Website được lưu trữ (web hosting) trên webserver có thể truy cập thông tin

Website đóng vai trò là một văn phòng hay một cửa hàng trên mạng internet – nơi giới thiệu thông tin về doanh nghiệp, sản phẩm hoặc dịch vụ do doanh nghiệp cung cấp… Có thể coi website chính là bộ mặt của doanh nghiệp, là nơi

để đón tiếp và giao dịch với các khách hàng, đối tác trên internet

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, không có cơ

sở dữ liệu và không có các công cụ quản lý thông tin website Thông thường website tĩnh được thiết kế bằng các phần mềm như FrontPage, Dreamwaver…

Trang 11

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ó hai loại tên miền:

 Tên miền Quốc tế: do Trung tâm quản lý tên miền quốc tế cấp: thường có đuôi com, net, biz, info,…Tên miền loại này dễ mua, giá rẻ nhưng cũng dễ bị kẻ tấn công ăn cắp tên miền

 Tên miền của các quốc gia: do Trung tâm quản lý tên miền của mỗi quốc gia quản lý Tên miền Việt Nam có đuôi vn, com.vn, edu.vn, gov.vn,…

do VNNIC quản lý Muốn sử dụng tên miền này cần làm hồ sơ đăng ký

và thanh toán phí khá cao gồm phí đăng kí đóng 1 lần và phí duy trì hàng năm Tuy nhiên tên miền này được cho là thể hiện sự nghiêm túc và chuyên nghiệp cho doanh nghiệp và không bị ăn cắp tên miền

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 luôn hoạt động và kết nối với mạng Internet Một máy chủ có thể lưu trữ nhiều website, nếu máy chủ 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ó khả năng truy cập được những website lưu trữ trên máy chủ 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

Trang 12

Dung lượng host: là nơi để lưu trữ cơ sở dữ liệu của website (hình ảnh, thông tin,…), đơn vị dung lượng là MB hoặc GB

Băng thông hay dung lượng đường 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ủ 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 documents, 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 máy chủ

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

 Dễ dàng sao lưu 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 mà không phải cần đến một chiếc máy tính

Trang 13

Với sự xuất hiện của hàng loạt các cuộc tấn công trực tuyến trong thời gian qua, báo hiệu thời kì khó khăn cho các ngân hàng trực tuyến trên toàn thế giới Năm 2012, một cuộc tấn công nhằm vào các ngân hàng Mỹ, khiến cho các website của các ngân hàng này ngừng trệ hoặc dừng hẳn Theo Prolexic, một công ty về hạn chế các cuộc tấn công từ chối dịch vụ phân tán (DDOS), đã đưa

ra ý kiến về các cuộc tấn công này Cụ thể là một loại virus mới có tên Itsoknoproblembro, có khả năng gây lây nhiễm cho các máy chủ tại các trung tâm dữ liệu, các nhà cung cấp dịch vụ đám mây, biến các máy chủ đó thành các

“bRobots” mà hầu như không chương trình chống virus nào hiện nay dò tìm ra được chúng Bằng việc lây nhiễm cho các trung tâm dữ liệu thay vì các máy tính đơn lẻ, những kẻ tấn công đã giành lấy sức mạnh tính toán để dựng lên vô số các cuộc tấn công từ chối dịch vụ

Từ những nỗ lực của mình, Mỹ đã tìm ra những kẻ đứng sau những cuộc tấn công này là từ Iran nhằm trả thù vì những hình phạt kinh tế và các cuộc tấn công trực tuyến của Mỹ

Trang 14

Ông Lewis đã nói lưu lượng mạng làm nghẽn băng thông các site ngân hàng Mỹ nhiều gấp nhiều lần so với lưu lượng mà Nga đã nhằm vào Estonia trong cuộc tấn công trực tuyến dài cả tháng vào năm 2007, gần như đánh sập hệ thống mạng tại quốc gia Baltic này

Hình thức tấn công này làm tăng sự lo ngại về làn sóng các cuộc tấn công trực tuyến vào các ngân hàng Mỹ trong các tuần gần đây Các nhà nghiên cứu an ninh nói rằng thay vì việc khai thác các máy tính riêng lẻ, những kẻ tấn công đã chiếm quyền điều khiển các mạng máy tính tại các trung tâm dữ liệu “Phạm vi, mức độ và hiệu quả của các cuộc tấn công đó là chưa từng có từ trước đến nay”, Carl Herberger, phó chủ tịch các giải pháp an ninh tại Radware, một hãng an ninh từng nghiên cứu các cuộc tấn công vào các ngân hàng và các nhà cung cấp dịch vụ đám mây

Kể từ tháng 9 năm 2012, những kẻ xâm nhập trái phép đã gây ra những vụ phá hoại chính cho các site ngân hàng trực tuyến của Bank of America, Citigroup, Wells Fargp, U.S.Bancrop, PNC, Captital One,…

Họ đã sử dụng các trung tâm dữ liệu cho công việc kinh doanh của các công ty hiện nay, nhưng kẻ tấn công có thể tận dụng các hệ thống hàng trăm, hàng ngàn máy chủ từ những hệ thống này cho các cuộc tấn công của mình

John Kindervag, một nhà phân tích tại Forrester Research nói: “Các tin tặc tấn công bằng việc tạo ra các mạng máy tính cá nhân hoặc bằng việc ăn cắp toàn

bộ các tài nguyên từ các hệ thống đám mây quản lý kém”

Các nhà nghiên cứu tại Radware đã nghiên cứu các cuộc tấn công vào vài ngân hàng và đã thấy rằng cuộc tấn công này tới từ các trung tâm dữ liệu thế giới Họ đã phát hiện nhiều dịch vụ đám mây và dịch vụ thuê đặt chỗ web

Trang 15

15

(hosting) khác nhau bị lây nhiễm bởi một dạng phần mềm độc hại đặc biệt phức tạp, gọi là Itsoknoproblembro, đã được thiết kế để tránh bị dò tìm ra từ những chương trình diệt virus Các botnet, hoặc các mạng máy tính cá nhân bị lây nhiễm với Itsoknoproblembro: họ gọi chúng là các bRobots

Ông Herberger đã từ chối nêu tên các nhà cung cấp dịch vụ đám mây nào đã khai thác, nhưng ông đã nói rằng mỗi cuộc tấn công vào một ngân hàng mới đã cung cấp bằng chứng ngày càng nhiều hơn các trung tâm dữ liệu đã bị lây nhiễm

và khai thác

2.2 Tình hình bảo mật ở Việt Nam

Theo khảo sát mới nhất của Chi hội an toàn thông tin phía Nam (VNISA), tình hình an toàn thông tin năm 2012 vẫn ghi nhận xu hướng gia tăng của các cuộc tấn công, nhất là tấn công có chủ đích đối với các tổ chức, doanh nghiệp trong nước Và mặc dù ý thức bảo mật của các đơn vị có phần tiến triển nhưng vẫn còn chưa đủ

Năm 2012, ghi nhận của Microsoft cho biết, có hơn 2.500 website của Việt Nam bị tin tặc tấn công, so với 300 website của năm 2011

Khảo sát của Chi hội an toàn thông tin phía Nam công bố: tấn công theo hình thức quấy phá, dò tìm và tấn công DOS đang gia tăng mạnh và gây thiệt hại tài chính nhất

Ông Trịnh Ngọc Minh – Phó chủ tịch an toàn thông tin VNISA phía Nam nhận định, tình hình an ninh mạng trong năm 2012 diễn biến theo xu hướng không có những vụ tấn công nổi cộm nhưng tấn công nhỏ lẻ dưới nhiều hình thức vẫn tăng

Trang 16

Bên cạnh đó sự bùng nổ của mã độc (malware) đang là điều đáng ngai nhất Theo thống kê của PandaLab, có 80 ngàn mã độc mới xuất hiện mỗi ngày Buôn bán mã độc trở thành một thị trưởng ngầm nguy hiểm Vòng đời của mã độc từ khi được phát triển đến khi thành thương phẩm và hết tác dụng khoảng 2 năm Sau một năm được rao bán, giá một mã độc có thể hạ từ 1.000 USD xuống còn 25 USD Với mức giá này, bất cứ doanh nghiệp ở quy mô nào cũng có thể bị

đe dọa

VNISA cho biết, trong các hình thức tấn công bằng mã độc đã phát hiện,

có 30% tấn công do Trojan hay Rootkit, 30% là do virut và worm Tỷ lệ các hình thức tấn công này trong năm 2012 đều tăng so với năm 2011

Ở Việt Nam, với sự đầu tư cho an toàn thông tin chưa nhiều, sẽ có nguy cơ chịu không ít rủi ro Đặc biệt, trong năm 2012, không chỉ các website của doanh nghiệp, Chính phủ, mà cả những website của các công ty bảo mật hàng đầu của Việt Nam cũng bị tấn công

Tình trạng tấn công các website của doanh nghiệp bằng hình thức sử dụng nhiều máy tính truy cập gây tắc nghẽn hệ thống – DDOS hay thay đổi toàn bộ nội dung website Các kiểu tấn công này làm tê liệt mọi giao dịch, thông tin tương tác với khách hàng, ảnh hưởng lớn đến hoạt động kinh doanh và uy tín của chủ website Đây là hiện tượng báo động mà Doanh nghiệp cần lưu ý và có giải pháp phòng vệ

Đầu tháng 7 năm 2012, trang web của Trung tâm Đào tạo lập trình viên Aprotrain Aptech (AA) bị nhiều phụ huynh và học sinh phàn nàn vì truy cập khó khăn và hầu như không được vào trang web Bộ phận kỹ thuật kiểm tra hồ sơ nhật ký thấy số lượng kết nối vào máy chủ tăng bất thường (chỉ trong thời gian

Trang 17

Theo thống kê của Công Ty An ninh mạng Bkav, trung bình một tháng có đến 2.000 trang web của Việt Nam bị tấn công như trang web của Liên đoàn Bóng Đá Việt Nam, báo điện tử Vietnamnet, Unikey…

Trang 18

CHƯƠNG 3:

CÁC PHƯƠNG PHÁP TẤN CÔNG VÀ MỘT SỐ GIẢI PHÁP BẢO MẬT

3.1 Giới thiệu chung về các phương pháp tấn công website

Diện mạo những mối nguy về ứng dụng internet thay đổi một cách liên tục Nguyên nhân chính về sự phát triển này là sự tiến bộ của kẻ tấn công, sự ra đời của những công nghệ mới và sự thiết lập của những hệ thống ngày càng phức tạp Để theo kịp tiến độ này buộc người dùng web phải cập nhật thông tin hằng ngày Các cuộc tấn công được thực hiện một cách tự động với nguyên nhân đa số

là các lỗ hổng bảo mật Đặc trưng của các cuộc tấn công là lưu lượng truy cập dữ liệu thay đổi nhanh chóng rồi tiếp theo là khoảng thời gian hoạt động nhẹ hơn Con số thống kê dưới đây từ kết quả kiểm tra các ứng dụng web trong suốt từ năm 2007 đến năm 2011 cho thấy phần trăm các ứng dụng được tìm thấy bị ảnh hưởng bởi những nhóm lỗ hổng bảo mật thông dụng:

 Broken Authentication (62%): nhóm lỗ hổng này gồm nhiều khuyết điểm khác nhau trong cơ chế đăng nhập của ứng dụng có thể cho phép kẻ tấn công đoán biết những mật khẩu kém, thực hiện tấn công brute-force (kiểu tấn công dùng cho tất cả các loại mã hóa) hoặc vượt qua phần đăng nhập

 Broken Access Control (71%): lỗ hổng này liên quan đến những trường hợp ứng dụng mắc lỗi bảo vệ quyền truy cập vào dữ liệu và tính năng của

nó, nghiêm trọng hơn là cho phép kẻ tấn công thấy dữ liệu nhạy cảm của người dùng khác được lưu trữ trên máy chủ

 SQL Injection (32%): lỗ hổng này cho phép kẻ tấn công gửi mã độc để can thiệp vào phần tương tác của ứng dụng với cơ sở dữ liệu Kẻ tấn công

có thể lấy dữ liệu tùy ý từ ứng dụng, can thiệp vào phần logic của nó, hoặc thực thi lệnh trên máy chủ cơ sở dữ liệu

Trang 19

 Cross Site Scripting

những người dùng khác c

truy cập vào dữ liệu của họ, thực hiện các h

thực, hoặc thực hiện các tấn công khác với

ữ liệu của họ, thực hiện các hành động không đ

ực, hoặc thực hiện các tấn công khác với họ

eakage (78%): lỗ hổng này liên quan đến các tr

àm lộ thông tin nhạy cảm giúp cho kẻ tấn công có thể phát

ển một đợt tấn công vào ứng dụng thông qua việc xử lý lỗi không triệt

ành vi khác

Request Forgery (92%): người dùng của ứng dụng có thể bị

ực thi những hành động không được định hướng trên

ức độ quyền hạn của họ Lỗ hổng cho phép m

ợc ghé thăm bởi nạn nhân nhằm tương tác v

ực hiện những hành động mà người dùng không có định h

Hình 1: Các lỗi bảo mật thông dụng nhất

ỗi bảo mật này đã được sửa chữa và có nhi

à ngăn chặn Do đó, đến năm 2012 đã xuất hiện th

ẻ tấn công nhằm vào

à có thể tăng quyền ộng không được chứng

ến các trường hợp

ộ thông tin nhạy cảm giúp cho kẻ tấn công có thể phát

ứng dụng thông qua việc xử lý lỗi không triệt

Trang 20

Hội đồng các chuyên gia bảo mật đã xếp hạng những kĩ thuật tấn công trên web trong năm 2012 và các chuyên gia cũng đã liệt kê danh sách 10 kĩ thuật tấn công web hàng đầu sau quá trình đánh giá và ghi nhận Dưới đây là 10 kĩ thuật tấn công web được các chuyên gia về bảo mật bầu chọn:

- SQL Injection

- Cross Site Scripting

- Broken Authentication and Session Management

- Cross Site Resquest Forquery (CSRF)

- Security Misconfiguration

- Insecure Direct Object References

- Insecure Cryptographic Storage

- Failfure to Restrict URL Access

- Insufficient Transport Layer Protection

- Unvalidated Redirects and Forwards

3.2 Broken Authentication and Session Management

3.2.1 Giới thiệu

Broken Authentication and Session Management bao gồm tất cả các khía cạnh xử lý xác thực và quản lý phiên làm việc Xác thực là một khía cạnh quan trọng của quá trình này nhưng ngay cả các cơ chế xác thực vững chắc cũng có thể bị suy yếu do chức năng quản lý có khe hở, bao gồm thay đổi mật khẩu, ghi nhớ mật khẩu, thay đổi tài khoản và nhiều chức năng khác Vì các cuộc tấn công

có thể xảy ra với nhiều ứng dụng web nên chức năng quản lý tài khoản phải yêu cầu xác thực lại ngay cả khi người sử dụng có phiên làm việc hợp lệ

Các ứng dụng web thường phải thiết lập phiên để theo dõi luồng các yêu cầu từ người dùng, giao thức HTTP không hỗ trợ khả năng này vì vậy các ứng

Trang 21

21

dụng web phải tự tạo ra nó Thông thường môi trường ứng dụng web cung cấp khả năng phiên nhưng nhiều nhà phát triển thích tự họ tạo ra một thẻ phiên riêng cho họ Tuy nhiên, chức năng ứng dụng liên quan đến quản lý xác thực và quản

lý phiên làm việc thường thực hiện một cách chính xác, điều này cho phép kẻ tấn công lấy được mật khẩu, khóa, thẻ phiên hoặc khai thác lỗi để thực hiện các giả mạo danh tính người dùng

Ví dụ: Thời gian chờ của ứng dụng không được chỉnh hợp lý Người dùng sử dụng một máy công cộng để truy cập vào trang web Thay vì chọn đăng xuất người dùng chỉ đóng trình duyệt đó, vài giờ sau vẫn có thể sử dụng phiên làm việc đó

- Điểm yếu bảo mật: người phát triển thường xuyên tự xây dựng những mô hình chứng thực và quản lý các phiên làm việc nhưng xây dựng đúng cách thì không dễ Kết quả là thường xuyên có lỗi trong nhiều phần như đăng xuất, quản lý mật khẩu, thời gian chờ, ghi nhớ người dùng, câu hỏi bí mật, cập nhật tài khoản,…Tìm những lỗi này rất khó khăn vì lập trình có thể độc lập, không giống nhau

- Ảnh hưởng kỹ thuật: Lỗi như trên có thể cho phép một vài hoặc toàn bộ tài khoản bị tấn công Khi thành công, kẻ tấn công có thể làm nhiều thứ dưới quyền nạn nhân Những tài khoản đặc quyền thường là mục tiêu chính

Trang 22

3.2.3 Cách phát hiện lỗi

- Thông tin có thể bị đoán ra hoặc thay thế vì những điểm yếu trong các chương trình quản lý hay không?

- Thứ tự phiên làm việc có hiển thị trong URL hay không?

- Thứ tự phiên làm việc có thể bị giả mạo bằng các phương pháp định hình phiên làm việc hay không?

- Thứ tự phiên làm việc có thay đổi sau khi người dùng đăng nhập lại hay không?

 Nỗ lực nhiều để tránh bị ăn cắp phiên làm việc

3.3 Insecure Direct Object References

3.3.1 Giới thiệu

Kĩ thuật này xảy ra khi người phát triển để lộ một tham chiếu đến những đối tượng trong hệ thống như các tệp tin, thư mục hay chìa khóa dữ liệu Nếu chúng ta không có một hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này để truy cập dữ liệu một cách trái phép

Ví dụ: Ứng dụng sử dụng dữ liệu chưa được kiểm tra trong một truy vấn SQL truy cập đến thông tin tài khoản:

String query = “select * from accts where account = ?”;

Trang 23

23

preparedStatement pstmt = connection.prepareStatement (query,…);

pstmt.setString (1, request.getparameter(“acct”));

ResultSet results = pstmt.executeQuery ();

Kẻ tấn công có thể dễ dàng thay đổi tham số ‘acct’ trong trình duyệt để có thể xem bất cứ thông tin tài khoản nào Nếu không kiểm định kẻ tấn công có thể lợi dụng để ăn cắp tài khoản của bất kì ai thay vì chỉ được truy cập vào một tài khoản nhất định

- Điểm yếu bảo mật: Ứng dụng thường xuyên sử dụng trực tiếp tên hoặc khóa của một đối tượng khi xây dựng các trang web Các ứng dụng thường không kiểm tra xem người dùng này thật sự có quyền truy cập hay không Đây chính là mấu chốt dẫn đến các lỗi đối tượng tham chiếu Người kiểm tra có thể dễ dàng thay đổi các giá trị tham số để phát hiện ra lỗi này, phân tích mã nguồn có thể giúp nhanh chóng phát hiện quyền truy cập có được xem xét cẩn thận hay không

- Ảnh hưởng kĩ thuật: Lỗi như trên có thể giúp kẻ tấn công nắm toàn bộ những dữ liệu có thể được liên kết bởi các tham biến Trừ khi không gian truy cập rời rạc, kẻ tấn công có thể truy cập tất cả các loại dữ liệu như thế

Trang 24

3.3.3 Cách phát hiện lỗi

Cách tốt nhất để biết xem một ứng dụng có bị lỗi này hay không là kiểm tra nếu tất cả các đối tượng tham chiếu có được bảo vệ hợp lý không Để đạt được điều này cần xem xét:

- Đối với các liên kết trực tiếp tới dữ liệu cần bảo vệ, ứng dụng cần phải kiểm tra xem người dùng đang yêu cầu có được cho phép truy cập đến

dữ liệu đó hay không

- Nếu liên kết là một tham biến gián tiếp, việc chuyển biến đến dữ liệu trực tiếp phải được giới hạn bởi những giá trị cho phép đối với người dùng hiện tại

Kiểm tra mã nguồn của ứng dụng có thể nhanh chóng phát hiện nếu một trong hai phương pháp trên không được thiết kế cẩn thận Chạy kiểm tra cũng có thể hiệu quả trong việc phát hiện những đối tượng không an toàn Những công

cụ tự động thường không thể tìm ra lỗi này vì rất khó để xác định cái nào cần bảo vệ và như thế nào là thiếu an toàn hoặc an toàn

Trang 25

25

- Kiểm tra truy cập Đối với mỗi tham chiếu trực tiếp từ một nguồn không xác thực phải được kiểm tra điều khiển để chắc chắn rằng người dùng được quyền truy cập đến đối tượng yêu cầu

3.4 Cross Site Request Forgery

Kiểu tấn công giả mạo yêu cầu ép buộc trình duyệt web của một người dùng đăng nhập gửi những yêu cầu giao thức web (HTTP) tới một trang web bị lỗi, bao gồm cookie của phiên truy cập và những thông tin tự động khác như thông tin đăng nhập Cách thức này cho phép kẻ tấn công buộc trình duyệt web tạo ra những yêu cầu cho ứng dụng lỗi mà ứng dụng này không thể biết đây là những yêu cầu giả mạo của kẻ tấn công

3.5 Security Misconfiguration

Một cơ chế an ninh tốt cần phải định nghĩa những hiệu chỉnh về an ninh

và triển khai nó cho các ứng dụng, khuôn mẫu, máy chủ ứng dụng, máy chủ web, máy chủ dữ liệu và các ứng dụng nền tảng Tất cả những thiết lập nên được định nghĩa, thực hiện và bảo trì bởi vì rất nhiều thứ không được triển khai với thiết lập an toàn mặc định Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng

Ví dụ:

Giao diện điều khiển máy chủ của quản trị viên được tự động cài đặt và không được gỡ bỏ Tài khoản mặc định chưa được thay đổi Kẻ tấn công phát hiện đăng nhập với tài khoản mặc định và chiếm quyền hệ thống

3.6 Insecure Cryptographic Storage

Nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng, SSN và những mã xác thực thông tin bằng các phương pháp mã hóa hay băm Kẻ

Trang 26

tấn công có thể ăn cắp hay thay đổi những dữ liệu nhạy cảm và tiến hành hành vi trộm cắp, gian lận thẻ tín dụng,…

3.7 Failure to Restrict URL Access

Nhiều ứng dụng web kiểm tra quyền thực thi địa chỉ truy cập (URL) trước khi dựng các liên kết và nút nhấn được bảo vệ Tuy nhiên ứng dụng cũng phải thực hiện kiểm tra tương tự mỗi khi những trang thông tin được truy cập trực tiếp nếu không kẻ tấn công có thể giả mạo URL để truy cập vào nhưng trang thông tin ẩn này

Ví dụ: Kẻ tấn công đơn giản nhắm mục tiêu vào các URL Cả 2 URL sau đây đều yêu cầu chứng thực Quyền quản trị cũng cần phải được cung cấp để truy cập vào trang “admin_getappInfo”:

http://example.com/app/getappInfo

http://example.com/app/admin_getappInfo

Nếu kẻ tấn công không được chứng thực mà vẫn có thể truy cập vào trang thì đó gọi là truy cập trái phép đã được cho phép Nếu một người sử dụng chứng thực nhưng lại không phải trong ban quản trị, vẫn truy cập được vào trang

Trang 27

Các ứng dụng thường xuyên mắc sai lầm trong việc kiểm tra định danh,

mã hóa và bảo vệ sự tuyệt mật và tính toàn vẹn của những thông tin nhạy cảm trên mạng lưới liên kết Nó thường được bảo vệ bởi những thuật toán yếu, sử dụng chứng nhận đã hết hiệu lực hoặc không sử dụng đúng cách

Ví dụ: Một trang web không sử dụng SSL cho tất cả các yêu cầu xác thực

Kẻ tấn công chỉ đơn giản là theo dõi lưu lượng mạng và quan sát cookie phiên làm việc session của một nạn nhân đã chứng thực Sau đó, kẻ tấn công sử dụng lại cookie này và chiếm phiên làm việc session của người sử dụng

3.8.2 Hoạt động

- Tác nhân đe dọa: những ai có thể theo dõi lưu lượng mạng của người sử dụng chương trình Nếu là ứng dụng trên internet, đó là những người biết người sử dụng truy cập như thế nào

- Hướng tấn công: giám sát lưu lượng mạng của người sử dụng có thể khó khăn nhưng đôi khi lại dễ dàng Khó khăn chủ yếu nằm trong việc theo dõi những lưu lượng thích hợp trong khi người dùng truy cập vào trang web không an toàn

- Điểm yếu bảo mật: Các ứng dụng thường không bảo vệ lưu lượng mạng Phần lớn các ứng dụng chỉ sử dụng SSL/TLS trong quá trình xác thực và

do đó không bảo vệ dữ liệu và định danh phiên làm việc Chứng chỉ hết hạn hoặc được cài đặt không đúng cũng có thể được dùng Phát hiện sai sót chỉ cần quan sát lưu lượng mạng của trang web Đối với những lỗi

Trang 28

phức tạp hơn cần phải kiểm tra việc thiết kế các ứng dụng và cấu hình các máy chủ

- Ảnh hưởng kĩ thuật: dữ liệu và tài khoản người dùng có thể bị đánh cắp Nếu tài khoản của quản trị bị xâm nhập, toàn bộ website có thể bị lộ thông tin

3.8.3 Phòng chống

Cung cấp việc bảo vệ các lớp vận chuyển một cách thích hợp có thể ảnh hưởng đến thiết kế trang web Dễ dàng nhất để yêu cầu Secure Socket Layer (SSL) cho toàn bộ trang web Vì lý do hiệu suất, một số trang web chỉ sử dụng SSL cho các trang riêng Một số khác chỉ sử dụng SSL cho các trang quan trọng nhưng điều này có thể để lộ mã của phiên làm việc và những dữ liệu nhạy cảm khác

Yêu cầu SSL cho tất cả các trang nhạy cảm Những yêu cầu không qua SSL đến những trang này nên được chuyển hướng đến các trang SSL

Sử dụng thuộc tính bảo vệ cho các cookie nhạy cảm

Đảm bảo chứng chỉ SSL hợp lệ, chưa quá hạn, không bị thu hồi và phù hợp với tên miền trang web

Các kết nối ở đầu cuối cũng nên sử dụng SSL hoặc các công nghệ mã hóa khác

3.9 Unvalidated Redirects and Forwards

3.9.1 Giới thiệu

Ứng dụng web thường xuyên đưa người dùng đến những liên kết qua các website khác và sử dụng những thông tin thiếu tin cậy để xác định đích đến Nếu

Trang 29

29

không được kiểm tra một cách cẩn thận, kẻ tấn công có thể lợi dụng để chuyển nạn nhân đến các trang web lừa đảo, phần mềm độc hại hoặc chuyển tiếp để truy cập các trang trái phép

Ví dụ:

Ứng dụng này có một trang gọi là "redirect.jsp" mà có một tham số duy nhất có tên là"url" Kẻ tấn công tạo một URL độc hại để hướng người dùng đến một trang web độc hại để thực hiện lừa đảo và cài đặt các phần mềm độc hại

http://www.example.com/redirect.jsp?url=evil.com

3.9.2 Hoạt động

- Tác nhân đe dọa: Hãy xem xét bất cứ ai có thể lừa người dùng của bạn gửi yêu cầu đến trang web của bạn Bất kỳ trang web hoặc nguồn cấp dữ liệu HTML khác mà người dùng của bạn sử dụng có thể làm điều này

- Hướng tấn công: Kẻ tấn công tạo ra những đường dẫn liên kết thiếu chứng thực và lừa nạn nhân nhấp chuột vào Khả năng nạn nhân sẽ nhấp chuột vào rất cao vì đó là đường dẫn đến một trang web hợp lệ Kẻ tấn công nhắm vào chuyển tiếp để vượt qua bước kiểm tra bảo mật

- Điểm yếu bảo mật: Các ứng dụng thường xuyên chuyển hướng người dùng đến các trang khác, hoặc sử dụng chuyển tiếp nội bộ một cách tương

tự Đôi khi các trang đích được quy định trong một tham số thiếu thẩm tra, cho phép kẻ tấn công lựa chọn trang đích Phát hiện chuyển hướng thiểu thẩm tra phải tìm kiếm chuyển hướng mà có thể thiết lập toàn bộ URL Chuyển tiếp thiếu chứng thực thì khó hơn, vì chúng hướng vào các trang nội bộ

- Ảnh hưởng kĩ thuật: Những chuyển hướng như vậy có thể cố gắng để cài đặt phần mềm độc hại hoặc lừa nạn nhân khai báo mật khẩu hoặc các

Trang 30

thông tin nhạy cảm khác Chuyển tiếp không an toàn có thể cho phép vượt qua các bước kiểm tra truy cập

3.9.3 Phòng chống

An toàn sử dụng các chuyển hướng và chuyển tiếp có thể được thực hiện trong một số cách sau đây:

- Đơn giản chỉ cần tránh sử dụng chuyển hướng và chuyển tiếp

- Nếu sử dụng, tránh sử dụng tham số của người dùng cho việc xác định điểm đến

- Nếu sử dụng tham số cho điểm đến không thể tránh khỏi đảm bảo giá trị của tham số là hợp lệ và đúng quyền người dùng

3.10 Local Attack

3.10.1 Tìm hiểu về Local Attack

Local Attack là kỹ thuật tấn công website bằng hình thức tấn công từ nội

bộ bên trong Nghĩa là tấn công vào một website có bảo mật kém chung máy chủ, sau đó tấn công sang website mục tiêu bằng kĩ thuật local

Ví dụ: Đối với một web máy chủ thông thường khi bạn đăng kí một tài khoản trên máy chủ nào đó bạn sẽ được cung cấp một tài khoản trên máy chủ đó

và một thư mục để quản lý site của bạn Giả sử tài khoản của bạn bị kẻ tấn công chiếm được thì kẻ tấn công có thể dùng các thủ thuật, các đoạn script, các đoạn

mã lệnh để truy cập sang thư mục chứa site của bạn Và cũng theo cách này kẻ tấn công có thể tấn công sang site của người dùng khác và có thể lấy thông tin admin, cơ sở dữ liệu, 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

Nhiệm vụ của Local:

Trang 31

31

 Tìm file config

 Thu thập thông tin đăng nhập vào cơ sở dữ liệu của nạn nhân

 Đăng nhập vào cơ sở dữ liệu, xác định tên đăng nhập và mật khẩu được

mã hóa của nạn nhân

 Crack hoặc thay đổi mật khẩu của nạn nhân

3.10.2 Các bước thực hiện trong Local Attack

Bước 1: Xác định các website cần tấn công

- Khi đã xác định được website cần tấn công trước hết lần lượt dò tìm lỗi website đó

- Khi phát hiện website có dấu hiệu lỗi có thể tấn công website một cách trực tiếp mà không sử dụng đến phương pháp local attack

- Nếu không tìm được lỗi trên website đó thì bắt đầu bước 2

Bước 2: Xác định các website đặt cùng máy chủ với mục tiêu Sử dụng trang

với website mục tiêu

Bước 3: Tìm cách khai thác một trong các website đặt chung máy chủ với mục tiêu

- Khai thác được một trong các website đó Tìm cách tải webshell hoặc thực thi mã shell

- Lần lượt kiểm tra các website cùng với website mục tiêu Khi đã xác định được một website nào đó có các lỗi thì bắt đầu xâm nhập vào website này

và sử dụng quyền quản trị tải mã shell lên website đó

Bước 4: Thành công có webshell, kiểm tra quyền của người dùng hiện tại

Trang 32

- Kiểm tra quyền lực thực thi câu lệnh của shell trên website

- Nếu tắt safe – mode thì shell này có thể toàn quyền sử dụng câu lệnh

Bước 5: Nếu quyền hiện tại không đủ tấn công thì tìm cách nâng quyền lên

Bước 6: Nếu quyền hiện tại đủ để tấn công mục tiêu, tiến hành đọc file config, tìm tên đăng nhập, mật khẩu, mục tiêu có thể Khi đọc được file config của website đó biết được tên người dùng và mật khẩu của cơ sở dữ liệu nên có thể lấy dữ liệu, xem dữ liệu hoặc thậm chí có thể xóa dữ liệu

Bước 7: Kết thúc

3.10.4 Các kỹ thuật Local Attack

- Sử dụng các lệnh cơ bản trong linux ứng dụng trong Local Attack:

 Ls, dir: Liệt kê tên và thuộc tính các file bên trong thư mục

 Ls-al, ls-lia: Liệt kê tên và thuộc tính các file bên trong thư mục

 Cat, /cat, less, more, tail: view nội dung bên trong các file

 Ln: lệnh symbolic link

 Cd: Chuyển đổi thư mục

 Chmod: Phân quyền cho các file hoặc thư mục

 Mkdir: tạo thư mục

 Touch: tạo file

 Tar, zip: Lệnh nén và giải nén

Trong Local Attack để xem tên thư mục, tệp tin và đọc nội dung tệp tin thường sử dụng lệnh dir, cat Nhưng phần lớn các máy chủ hiện nay đều không cho phép thực thi những hàm này, nêu ứng dụng phương pháp này không mấy khả thi

Trang 33

có thể bypass permissions 400

- Sử dụng symlink kết hợp ssi:

 Đối với một số máy chủ khi symbolic link thường xuất hiện lỗi 403 forbidden – không cho phép đọc file đã được symlink thì giải pháp đó là kết hợp với ssi

 Tạo một file ssi.shtml với nội dung như sau:

Lệnh xem file logs như sau:

<! #exec cmd=”tail –n 1000/var/log/httpd/vhbgroup.net.error.log” >

Trong đó: Lệnh tail dùng để xem những dòng cuối cùng của file trên máy chủ /var/log/httpd/domains/vhbgroup.net.error.log là đường dẫn đến file error.log của direct admin

Trang 34

Đường dẫn đến file error.log của cpanel là:

/user/local/apache/logs/error_log…, tùy vào bộ cài host mà đường dẫn đến file error.log khác nhau

- Backconnet:

 Backconnet là kết nối bằng cổng sau, nghĩa là sử dụng shell backconnet và công cụ netcat (nc.exe) để mở sẵn một cổng trên máy chủ, sau đó từ máy tính kẻ tấn công kết nối với máy chủ qua cổng đã được mở sẵn Mọi câu lệnh thực thi đối với máy chủ có thể thực hiện trên máy tính của kẻ tấn công qua dòng lệnh

 Chuẩn bị:

 Tool netcat (nc.exe)

 Shell back connect đối với asp và php

 Thực hiện:

 Đặt tool nc.exe vào trong ổ C, sau đó mở cửa sổ dòng lệnh và sử dụng netcat để mở rộng trên localhost kết nối với máy chủ đã mở cổng sẵn

 Cú pháp:

Chế độ kết nối: nc[tùy chọn] tên máy cổng 1[-cổng 2]

Chế độ lắng nghe: nc-l-p cổng[tùy chọn][tên máy] [cổng]

 Cần copy nc.exe vào một vị trí nào đó trong máy rồi sử dụng lệnh đến thư mục chứa nc.exe trước khi thực hiện các câu lệnh liên quan đến netcat

 Sau khi đã backconnect thành công thì tiến hành local đơn giản chỉ bằng một câu lệnh copy shell từ site đã tải được shell tới site nạn nhân

- Via SQL:

Trang 35

35

 Đăng nhập vào cơ sở dữ liệu và tạo một bảng để tải các thông tin:

Creat table van(thongtin varchar(1024));

 Truy vấn các thông tin vào bảng vừa tạo:

Load data local infile ‘/etc/passwd’ into table van

 Lệnh truy vấn hiển thị các thông tin được tải vào table van:

Select * from van

Phương pháp này được gọi là Via SQL, chủ yếu sử dụng khi máy chủ không cho chạy dòng lệnh và có thể bỏ qua đối với một máy chủ

Đặt safemode on và disable một số hàm nguy hiểm: tạo file php.ini với nội dung sau:

safe-mode = on display_errors = off

Phân quyền cho các tệp tin, thư mục của website một cách hợp lý:

 Thông thường chúng ta cần thiết lập CHMOD 755 cho các thư mục và CHMOD 644 cho các file

 Ý nghĩa của Chmod:

Read: viết tắt là “r”, r = 4

Ngày đăng: 09/11/2015, 14:04

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w