1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiểm thử ủy quyền phân quyền - Pentest

26 277 1

Đ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 26
Dung lượng 590,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay công nghệ thông tin đang ngày càng phát triển nhanh chóng, kéo theo đó là hệ thống mạng và các phần mềm cũng gia tăng cả về số lượng theo quy mô rộng và cả về chất lượng phần mềm theo chiều sâu. Nhưng cũng từ đó đã nảy sinh ra nhiều vấn đề về lỗi hỏng hóc phần mềm không đáng có gây ra các ảnh hưởng nghiêm trọng đến xã hội, kinh tế,...Những lỗi này có thể do tự bản thân phần mềm bị hỏng do không được kiểm duyệt kĩ lưỡng trước khi đưa cho người dùng cuối hay cũng có thể do có người cố tình phá hoại nhằm đánh cắp thông tin cá nhân như mã số tài khoản ngân hàng, số điện thoại, danh bạ, tin nhắn,... Từ đây ta dễ dàng nhận ra là mặc dù phần mềm phát triển ngày càng phức tạp nhưng vấn đề chất lượng vẫn là một dấu hỏi lớn cần xem xét cẩn thận. Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật kĩ lưỡng nhằm ngăn chặn các lỗi hay hỏng hóc còn tiềm tàng bên trong phần mềm mà ta chưa kịp nhận ra. Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có thể do cả một công ty hàng nghìn người phát triển vì vậy để kiểm thử được một phần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công, chưa kể đến chất lượng kiểm thử sẽ không cao va thật chính xác phù hợp cho yêu cầu.

Trang 1

ĐỀ TÀI: KIỂM THỬ ỦY QUYỀN PHÂN QUYỀN

Giảng viên hướng dẫn : ThS Phạm Minh Thuấn

Sinh viên thực hiện : Vương Thế Đạt

Vũ Trường Long Nguyễn Hoành Quang Giang Văn Thắng Hoàng Thị Quyên

Hà Nội – Năm 2017

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU 4

KIỂM THỬ ỦY QUYỀN – PHÂN QUYỀN 5

I Kiểm thử thư mục traversal/tệp tin (OTG-AUTHZ-0001) 5

1 Tóm tắt về kiểm thử thư mục tệp tin 5

2 Phương pháp kiểm thử thư mục tệp tin 6

2.1 Kiểm tra hộp đen 6

2.2 Kiểm tra véc-tơ đầu vào 7

2.4 Kỹ thuật kiểm thử 7

2.5 Kiểm thử hộp xám 11

II Kiểm thử lược đồ bỏ qua ủy quyền (OTG-AUTHZ-002) 13

1 Tóm tắt về kiểm thử lược đồ bỏ qua ủy quyền 13

2 Các kiểm thử 13

2.1 Kiểm thử để tuy cập vào các chức năng quản trị 13

2.2 Kiểm thử để truy cập vào tài nguyên được gán cho một vai trò khác 14 III Kiểm thử leo thang đặc quyền (OTG-AUTHZ-003) 14

1 Tóm tắt về kiểm thử leo thang đặc quyền 14

2 Phương pháp kiểm thử leo thang đặc quyền 14

2.1 Kiểm thử với thao tác vai trò/đặc quyền 14

2.2 Thao tác với nhóm người sử dụng 15

2.3 Thao tác với hồ sơ người sử dụng 15

2.4 Thao tác giá trị có điều kiện 16

2.5 Thao tác dựa trên địa chỉ IP 16

2.6 Traversal URL 16

2.7 White box 17

2.8 SessionID yếu 17

IV Kiểm thử đối tượng trực tiếp không an toàn (OTG-AUTHZ-004) 17

1 Tóm tắt về kiểm thử đối tượng trực tiếp không an toàn 17

2 Phương pháp kiểm thử đối tượng trực tiếp không an toàn 17

Trang 3

2.1 Giá trị của tham số được sử dụng trực tiếp để lấy giá trị bản ghi cơ sở

dữ liệu 18

2.2 Giá trị của một tham số được sử dụng trực tiếp để thực hiện một thao tác trong hệ thống 18

2.3 Giá trị tham số được sử dụng trực tiếp lấy tập tin từ hệ thống 19

2.4 Giá trị của tham số được sử dụng trực tiếp truy cập vào chức năng ứng dụng 19

V Tìm hiểu công cụ hỗ trợ kiểm thử - Burp Suite 20

1 Giới thiệu về Burp Suite 20

2 Tại sao lại lựa chọn Burp Suite 20

3 Chức năng của Burp Suite 21

3.1 Proxy server 21

3.2 Repeater 21

3.3 Web Spider 22

3.4 Decoder 23

3.5 Comparer 23

KẾT LUẬN 24

TÀI LIỆU THAM KHẢO 24

Trang 4

Mục Lục Hình Ảnh

Hình 1: Phương pháp kiểm thử hộp đen 7

Hình 2: Giao diện của Burp Suite 20

Hình 3: Proxy server trong Burp Suite 21

Hình 4: Sử dụng Repeater trong Burp Suit 22

Hình 5: Web spider 22

Hình 6: Decoder 23

Trang 5

LỜI MỞ ĐẦU

Ngày nay công nghệ thông tin đang ngày càng phát triển nhanh chóng, kéo theo

đó là hệ thống mạng và các phần mềm cũng gia tăng cả về số lượng theo quy môrộng và cả về chất lượng phần mềm theo chiều sâu Nhưng cũng từ đó đã nảysinh ra nhiều vấn đề về lỗi hỏng hóc phần mềm không đáng có gây ra các ảnhhưởng nghiêm trọng đến xã hội, kinh tế, Những lỗi này có thể do tự bản thânphần mềm bị hỏng do không được kiểm duyệt kĩ lưỡng trước khi đưa cho ngườidùng cuối hay cũng có thể do có người cố tình phá hoại nhằm đánh cắp thông tin

cá nhân như mã số tài khoản ngân hàng, số điện thoại, danh bạ, tin nhắn, Từđây ta dễ dàng nhận ra là mặc dù phần mềm phát triển ngày càng phức tạpnhưng vấn đề chất lượng vẫn là một dấu hỏi lớn cần xem xét cẩn thận

Do đó yêu cầu đặt ra là cần có công tác kiểm thử phần mềm thật kĩ lưỡng nhằmngăn chặn các lỗi hay hỏng hóc còn tiềm tàng bên trong phần mềm mà ta chưakịp nhận ra Tuy nhiên vì phần mềm ngày càng lớn, hàng nghìn module, có thể

do cả một công ty hàng nghìn người phát triển vì vậy để kiểm thử được mộtphần mềm lớn như vậy sẽ tốn rất nhiều công sức và thời gian nếu làm thủ công,chưa kể đến chất lượng kiểm thử sẽ không cao va thật chính xác phù hợp choyêu cầu

Trang 6

KIỂM THỬ ỦY QUYỀN – PHÂN QUYỀN

Kiểm thử là khái niệm cho phép truy cập vào các tài nguyên được chophép, kiểm thử cho phép có nghĩa là nó được ủy quyền hoạt động và sử dụngthông tin đó để phá vỡ cơ chế ủy quyền

Uỷ quyền là quá trình xảy ra sau khi xác thực thành công, vì vậy ngườikiểm thử sẽ xác minh điểm này sau khi có giấy chứng thực hợp lệ, được liên kếtvới một tập hợp có vai trò và đặc quyền được xác định rõ ràng Trong loại đánhgiá này, cần được kiểm thử nếu bở qua sơ đồ ủy quyền tìm ra một lỗ hổngchuyển hướng đường dẫn hoặc tìm cách để leo thang các đặc quyền được chỉđịnh cho người kiểm thử

I Kiểm thử thư mục traversal/tệp tin

(OTG-AUTHZ-0001)

Nhiều ứng dụng web sử dụng và quản lý tệp tin như một phân cuộc sốngcủa họ Sử dụng các phương pháp xác nhận đầu vào chưa được thiết kế và triểnkhai, một kẻ xâm nhập có thể khai thác hệ thống trong hoặc để đọc hay viết cáctệp tin với mục đích xấu Trong các tình huống đặc biệt, có thể thực hiện cáclệnh mã hoặc hệ thống tùy ý

Theo như định nghĩa, máy chủ web và ứng dụng web thực hiện các cơ chế

để xác thực để kiểm soát truy cập vào tệp tin và tài nguyên Các máy chủ web cốgắng hạn chế người dùng bên trong một “thư mục gốc” hoặc “tài liệu gốc củaweb”, nó đại diện cho một thư mục vật lý trên hệ thống tệp tin Người dùngphải xem xét thư mục này là cơ sở dữ liệu và cấu trúc phân cấp của web

Định nghĩa các đặc quyền được thực hiện bằng cách sử dụng AccessControl List (ACL) xác định những người dùng hoặc nhóm người dùng nàođược cho là có thể truy cập, sửa đổi hoặc thực hiện một tệp cụ thể trên máy chủ.Các cơ chế này được thiết kế để ngăn chặn người dùng độc hại truy cập các tệptin nhạy cảm (ví dụ common/ect/passwd file trên nền tảng UNIX) hoặc tránhthực hiện các lệnh lên hệ thống

Trang 7

Nhiều ứng dụng web sử dụng server-side bao gồm các loại tệp khác nhau.

Nó khá phổ biến, sử dụng phương pháp này để quản lý hình ảnh, mẫu, tải vănbản tĩnh v.v… Tuy nhiên, các ứng dụng này tồn tại các lỗ hổng bảo mật nếu cácgiá trị tham số đầu vào (các biểu mẫu , các giá trị cookie) không được xác nhậnmột cách chính xác

Trong các máy chủ web và ứng dụng web ,vấn đề phát sinh đường dẫntrong tập tin/traversal bao gồm các cuộc tấn công Bằng cách khai thác lỗ hổngnày, kẻ tấn công có thể đọc được thư mục hoặc tệp mà họ thường không thể truycập dữ liệu gốc từ bên ngoài web hoặc bao gồm các tập lệnh và các loại tệp khác

từ các trang web bên ngoài

Với mục đích hướng dẫn sử dụng OASP, chỉ những mối đe dọa về bảo mậtliên quan đến ứng dụng web mới được xem xét và không phải mối đe dọa nàocho các máy chủ web (ví dụ “% escape code” nổi tiếng trong máy chủ webMicrosoft IIS) Các đề xuất đọc thêm sẽ được cung cấp trong phần tham khảocho độc giả nào quan tâm

Kiểu tấn công này còn được gọi là traversal tấn công bằng dấu chấm – dấu– chạm - trượt , theo thư mục hoặc quay trở lại

Trong quá trình đánh giá, để khám phá đường đi và các lỗi của tệp , ngườikiểm tra cần phải thực hiện hai giai đoạn khác nhau :

(a) Input vectors Enumeration (Đánh giá hệ thống của mỗi vector đầu vào)(b) Testing Techniques ( Mỗi đánh giá phương pháp của mỗi kỹ thuật tấncông được sử dụng bởi một kẻ tấn công để khai thác lỗ hổng)

2.1 Kiểm tra hộp đen

Kiểm thử hộp đen còn gọi là kiểm thử chức năng Việc kiểm thử nàyđược thực hiện mà không cần quan tâm đến thiết kế và mã viết củachương trình Kiểm thử theo cách này chỉ quan tâm đến chức năng đã đề

ra của chương trình Vì vậy kiểm thử loại này chỉ dựa vào bản mô tảchức năng của chương trình, xem chương trình có thực sự cung cấp đúngchức năng đã mô tả trong bản chức năng đó hay không

Trang 8

Kiểm nghiệm hộp đen dựa vào các định nghĩa về chức năng của chươngtrình Các trường hợp kiểm thử được tạo ra dựa vào bản mô tả chức năngchứ không phải dựa vào cấu trúc của chương trình.

Hình 1: Phương pháp kiểm thử hộp đen

2.2 Kiểm tra véc-tơ đầu vào

Để xác định phần nào của ứng dụng dễ bị bỏ qua, người kiểm thử cầnliệt kê tất cả các phần cứng ứng dụng được chấp nhận từ người dùng.Điều này cũng bao gồm các truy vấn HTTP GET và POST và các tùychọn phổ biến như tải tệp lên và các biểu mẫu HTML

Dưới đây là một số ví dụ về kiểm thử sẽ được thực hiện ở giai đoạn này:

 Có các tham số yêu cầu có thể được sử dụng cho các hoạt động liênquan tới tệp tin?

 Có các phần mở rộng tệp tin không bình thường hay không?

 Có biến có tên khác biệt hay không?

Cookie: USER=1826cc8f:PSTYLE=GreenDotRed

Trang 9

2.4 Kỹ thuật kiểm thử

Giai đoạn tiếp theo của kiểm thử là phân tích các hàm xác nhận đầu vào

có trong ứng dụng web Sử dụng ví dụ trước, trang điển tử gọi làgetUserProfile.jsp tải thông tin tĩnh từ tệp và hiển thị nội dung cho ngườidung Một kẻ tấn công có thể thực hiện chuỗi mail-cious

”./././etc/passwd” để đưa vào tệp băm mật khẩu của một hệ thống Linux/UNIX Rõ ràng , việc loại bỏ tấn công này chỉ có thể thực hiện được nếukiểm tra hợp lệ không thành công, theo đặc quyền hệ thống tập tin, ứngdụng web phải có khả năng đọc được tệp

Để kiểm thử thành công lỗi này, người kiểm tra cần có kiển thức về hệthống đang được thực nghiệm và vị trí của các tệp tin được yêu cầu.Không có điểm yêu cầu etc/passwd từ một máy chủ web IIS

http://example.com/getUserProfile.jsp?item= / / / /etc/passwdĐối với những ví dụ về cookies:

Cookie: USER = 1826cc8f: PSTYLE = / / / / etc / passwd

Nó cũng có thể bao gồm các tệp tin và tệp lệnh nằm bên ngoài trangweb:

http://example.com/index.php?file=http://www.owasp.org/malicioustxtNếu các giao thức được chấp nhận như các đối số, như trong các ví dụtrên, nó cũng có thể thăm dò các dịch vụ cục bộ và các dịch vụ gần đó

Trang 10

mã hóa bằng cách sử dụng những ký tự đặc biệt (ví dụ như: “.”dấu chấm,

%00, v.v ) trong câu lệnh điều khiển để mở rộng thư mục hoặc chặnthực thi trên bản rõ

Chú ý : Đây là một sai khá lầm phổ biến của các nhà phát triển, họ

không mong muốn mọi thứ được mã hóa và do đó chỉ có những cách mãhóa cơ bản là hợp lệ Nếu lần đầu chuỗi thử nghiệm mã hóa không thànhcông, hãy thử chương trình mã hóa khác

Mỗi hệ điều hành sử dụng các bộ ký tự khác nhau như con đường khácnhau:

Classic Mac OS:

root directory: "<drive letter>:"

directory separator: ":

Chúng ta có thể đưa vào tài khoản các cơ chế mã hóa sau đây:

 Mã hóa URL và mã hóa URL kép:

%255c represents \ and so on.

 Mã hóa Unicode/UTF-8 (Nó chỉ hoạt động trong hệ thống chấp nhậnchuỗi dài UTF-8)

Trang 11

%c0%af represents /

%c1%9c represents \

Còn những hệ điều hành và những chương trình ứng dụng khác cónhững quan tâm cụ thể Ví dụ hệ điều hành Windows, nó rất linh hoạttrong việc phân tích đường dẫn của các tệp tin

Windows shell: Bổ sung thêm thêm bất kỳ những điều sau đây để

đường dẫn được sử dụng trong một vỏ lệnh không có sự thay đổi về cấutrúc:

 Dấu ngoặc nhọn ">" và "<" ở cuối đường dẫn

 Ngoặc kép (đóng đúng cách) vào cuối đường dẫn

 Đánh dấu thư mục bằng "./" hoặc " \"

 Đánh dấu thư mục cha với biểu tượng tùy ý có thể có hoặc không có thểtồn tại

Windows API: Các mục sau đây sẽ bị loại bỏ khi sử dụng trong bất kỳ

lệnh shell hoặc API gọi tới một chuỗi được thực hiện như là một tên tập tin:

periods

spaces

Windows UNC filepaths: Được sử dụng để hồi đáp các tập tin được chia

sẻ trên SMB Đôi khi, một ứng dụng có thể được thực hiện để hồi đáp cáctập tin trên một UNC filepath từ xa Nếu vậy, các máy chủ SMB Windows

có thể gửi lưu trữ thông tin cho kẻ tấn công, có thể được bắt gói tin và bị bẻkhóa Cũng có thể được sử dụng với một địa chỉ IP tự động hoặc tên miền

để tránh các bộ lọc, hoặc được sử dụng để truy cập tới các tập tin được chia

Trang 12

sẻ trên SMB mà những kẻ tấn công không thể tiếp được, nhưng có thể truycập được từ các web server.

\\server_or_ip\path\to\file.abc

\\?\server_or_ip\path\to\file.abc

Windows NT Device Namespace: Được sử dụng để truy cập đến các

không gian tên trên hệ điều hành Windows Có một số cách sẽ cho phéptruy cập vào hệ thống tập tin này bằng cách sử dụng những đường đi khácnhau khác nhau

 Có thể là ký tự với ổ đĩa như C:\, hay thậm chí là một hệ thống ổ đĩa màkhông có một hệ thống gán

\\ \ GLOBALROOT \ Device \ HarddiskVolume1 \

 Đề cập đến ổ đĩa đầu tiên trên máy

\\.\CdRom0\

2.5 Kiểm thử hộp xám

Khi việc phân tích được thực hiện bằng cách tiếp cận hộp xám, testerphải thực hiện theo các phương pháp tương tự như trong kiểm thử hộpđen Tuy nhiên, khi các tester có thể xem được mã nguồn, nó có thể tìmkiếm các vectơ đầu vào (giai đoạn (a) của thử nghiệm) một cách dễ dàng

và chính xác hơn Trong lúc kiểm tra mã nguồn, họ có thể sử dụng cáccông cụ đơn giản (chẳng hạn như lệnh grep) để tìm kiếm một hay nhiềuhình thái bên trong mã ứng dụng: chức năng thu nhận / phương pháp,hoạt động hệ thống tập tin, và:

PHP: include(), include_once(), require(), require_once(), fopen(), readfile(),

JSP/Servlet: java.io.File(), java.io.FileReader(),

ASP: include file, include virtual,

Trang 13

Sử dụng công cụ tìm kiếm code trực tuyến (ví dụ, Ohloh Code[1]), cũng

có thể tìm thấy trên đường truyền trong những phần mềm mã nguồn mở

đã được công khai trên Internet

Đối với PHP, việc tìm kiếm có thể sử dụng:

lang:php (include|require)(_once)?\s*['"(]?\s*\$_(GET|POST|COOKIE)

Sử dụng phương pháp kiểm thử hộp xám có thể phát hiện ra các lỗ hổng

mà thường gặp nhiều khó khăn, hoặc thậm chí không thể tìm thấy khi sửdụng phương pháp kiểm thử hộp đen

Một số ứng dụng web tạo ra các website động sử dụng các giá trị và cácthông số được lưu trữ trong một cơ sở dữ liệu Có thể chèn các chuỗi linkđặc biệt khi các ứng dụng được thêm vào cơ sở dữ liệu Đây là một loại vấn

đề bảo mật là rất khó để phát hiện ra do thực tế các thông số bên trongkhông rò rỉ ra bên ngoài và "an toàn", nhưng trong thực tế lại không phảinhư vậy

Ngoài ra, bằng cách xem mã nguồn có thể phân tích các chức năng xử lýđầu vào nào là không hợp lệ: một số nhà phát triển cố gắng thay điều này

để làm cho nó có giá trị, tránh các cảnh báo và lỗi Điều này thường dễ tạo

Trang 14

II Kiểm thử lược đồ bỏ qua ủy quyền

(OTG-AUTHZ-002)

Đây là kiểu kiểm thử tập trung vào việc xác minh các giản đồ ủy quyềnđược thực hiện như thế nào cho mỗi vai trò đặc quyền để có được quyền truycập vào các hàm và tài nguyên đã được bảo vệ

Đối với mỗi vai trò cụ thể mà người kiểm thử giữ trong quá trình đánh giá,đối với mỗi chức năng và yêu cầu cần thực hiện trong giai đoạn hậu xác thực,cần phải xác minh:

 Có thể truy cập tài nguyên đó ngay cả khi người dùng không được xácthực?

 Có thể truy cập tài nguyên đó sau khi đăng xuất hay không?

 Có thể truy cập các chức năng vào tài nguyên mà người dùng được truycập với những vai trò hoặc đặc quyền khác nhau hay không?

Hãy cố gắng thử truy cập vào ứng dụng như một người quản trị và theo dõitất cả các chức năng quản trị

 Có thể truy cập các vào các chức năng quản trị nếu người kiểm thửđược đăng nhập với tư cách là người dùng có các quyền chuẩn haykhông?

 Có thể sử dụng các chức năng quản trị này như một người dùng có vaitrò khác hay không và ai là người mà hành động này nên bị từ chối?

2.1 Kiểm thử để tuy cập vào các chức năng quản trị

Ví dụ, giả sử rằng chức năng 'AddUser.jsp' là một phần của menu quảntrị viên của ứng dụng, và có thể truy cập đến nó bằng cách gửi yêu cầuURL sau đây:

Trang 15

Điều gì sẽ xảy ra nếu người dùng không phải quản trị cố gắng để thựchiện yêu cầu đó? Người dùng sẽ được tạo ra? Nếu vậy, người dùng mới

có thể sử dụng đặc quyền của người quản trị

2.2 Kiểm thử để truy cập vào tài nguyên được gán cho một vai trò khác

Ví dụ phân tích một ứng dụng sử dụng một thư mục chia sẻ để lưu trữcác tệp tin PDF tạm thời cho các người dùng khác nhau Giả sửdocumentABC.pdf có thể truy cập được chỉ bở người dùng test1 vớiroleA Phải xác minh nếu sử dụng người dùng test2 với roleB để có thểtruy cập tài nguyên đó

III Kiểm thử leo thang đặc quyền

(OTG-AUTHZ-003)

Phần này mô tả vấn đề nâng cao đặc quyền từ giai đoạn này sang giai đoạnkhác Trong giai đoạn này, người kiểm thử phải xác minh rằng người dùngkhông thể thay đổi các đặc quyền hoặc vai trò của mình bên trong ứng dụngbằng cách cho phép tấn công leo thang đặc quyền

Sự leo thang đặc quyền xảy ra khi người dùng truy cập vào các tài nguyênhoặc chức năng nhiều hơn mức cho phép, sự leo thang này hay những thay đổi

đó cần được ngăn chặn bởi ứng dụng Điều này thường gây ra bởi một lỗ hổngtrong ứng dụng Kết quả là ứng dụng sẽ thực hiện các hành động vượt quyềnhơn so với những gì được tạo ra bởi nhà phát triển hoặc người quản trị hệ thống.Mức độ leo thang phụ thuộc vào những đặc quyền mà kẻ tấn công đượcphép sở hữu, và những đặc quyền nào có thể có được nếu việc tấn công đượcthực hiện thành công Ví dụ: Một lỗi trong lập trình cho phép người dùng cóđược đặc quyền đặc biệt sau khi xác thực thành công giới hạn mức độ leo thang

vì người dùng đã được ủy quyền để giữ một số đặc quyền này Tương tự nhưvậy, một kẻ tấn công từ xa nhận được đặc quyền superuser mà không có bất kỳchứng thực nào ,mức độ leo thang cao hơn

Thông thường, người ta đề cập đến sự leo thang theo chiều dọc khi có thểtruy cập các tài nguyên được cấp cho các tài khoản có đặc quyền (ví dụ như thuthập các đặc quyền quản trị của ứng dụng) và theo thang ngang khi có thể truycập các tài nguyên được cấp cho một tài khoản tương tự (ví dụ: Trong một ứngdụng ngân hàng trực tuyến, một người truy cập thông tin liên quan đến mộtngười dùng khác)

Ngày đăng: 20/04/2018, 22:32

TỪ KHÓA LIÊN QUAN

w