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

Bài tập lớn Môn học An toàn và bảo mật dữ liệu

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

1


2

Mục lục
Trang
1. Giới thiệu chung:.......................................................................4
2. Các phương pháp để khai thác lỗ hổng leo thang đặc
quyền:...............................................................................................5
2.1 Sửa đổi thông số:.................................................................5
2.2 Khai thác lỗ hổng bảo mật khác:.......................................6
2.3 Chức năng quản lý khơng an tồn:....................................6
3. Cơ chế thực hiện:.......................................................................6
4. SQL Injection:.............................................................................7
4.1 SQL Injection là gì?..............................................................7
4.2 Các dạng tấn cơng bằng SQL Injection:...........................8
4.3 Các loại SQL Injection:.........................................................9
4.4 Lỗ hổng:.................................................................................9
4.5 Các ứng dụng dễ bị tổn thương:......................................10
5. Cơng cụ hỗ trợ:.........................................................................11
6. Cách phịng chống:..................................................................13
6.1 Cách phòng chống SQL Injection:....................................13
6.1.1 Validation đầu vào:.......................................................13
6.1.2 Chức năng đầu vào kiểm tra:......................................14
6.1.3 Xác nhận nguồn đầu vào:............................................14
6.1.4 Quyền truy cập:.............................................................15
6.1.5 Cấu hình cơ sở dữ liệu báo cáo lỗi:............................15
6.2 Cách phòng chống chung:................................................15
7. Triển khai demo:......................................................................16



3

1. Giới thiệu chung:
-

Đặc quyền: là một tính năng bảo mật của hầu hết các chương trình và hệ
điều hành. Người dùng có càng nhiều đặc quyền thì càng có nhiều hacker có
thể sửa đổi hoặc tương tác với một hệ thống hay ứng dụng.

-

Sự leo thang đặc quyền: có thể hiểu đơn giản là một phương thức tấn công mà
với cách này các User có quyền hạn thấp hơn sẽ tấn công vào một điểm dễ bị
tổn thương nhất của hệ thống để trở thành một người quản trị hoặc có thể trở
thành các User có quyền hạn cao hơn. Cách để leo thang đặc quyền mà ta có
thể nghĩ ngay đến đó là việc chiếm quyền thơng qua crack password của người
quản trị, tấn công tràn bộ đệm của máy đó và ăn cắp password.

-

Leo thang đặc quyền : là người dùng nhận được nhũng đặc quyền mà
họ không được phân phát hay hưởng. Một người sử dụng có quyền hạn thấp
hơn có thể sử dụng quyền hạn của người dùng khác cao hơn mình. Những đặc
quyền này cho phép người sử dụng nó thực hiện những hành động mà chỉ
người có quyền mới được làm như : thay đổi mật khẩu, xem thông tin cá nhân
của người dùng hay cài các phần mềm yêu cầu quyền hạn nào đó…

-


Leo thang đặc quyền theo chiều dọc : là khả năng nâng cấp
hoặc được truy cập vào một tình trạng tài khoản cao hơn hoặc cấp phép trong
các ứng dụng truy cập, các chức năng của trang web nào đó.

Hình 1.1 Tấn cơng leo thang đặc quyền theo chiều dọc


4

-

Ví dụ:
Một kẻ tấn cơng cũng có thể bỏ qua quyền truy cập vào
thông tin được bảo vệ hay nhạy cảm thông qua con đường
từ xa. Bằng cách cẩn thận crafting truy vấn mà tận dụng lợi
thế của một lỗ hổng trong một ứng dụng web được triển
khai tại một trang web nhắm mục tiêu, kẻ tấn cơng có thể
chèn các hướng dẫn trực tiếp cho các ứng dụng cơ sở dữ liệu
của trang web đó cho phép anh ta truy cập vào hồ sơ bảo vệ
bề ngoài hoặc đổ toàn bộ nội dung của một cơ sở dữ liệu
(SQL Injection). Những kẻ tấn cơng có một sự phong phú của
khai thác để thử, nhưng kẻ tấn công thường chỉ đơn giản là
tận dụng lợi thế của các ứng dụng web thiếu bất kỳ xác
nhậsưn của các loại dữ liệu mà một người dùng gửi: trong
tình huống như vậy, các ứng dụng web qua bất cứ điều
gì các kẻ tấn cơng xâm nhập vào một hình thức trình web
với cơ sở dữ liệu và cơ sở dữ liệu thực thi những gì nó nhận
được, với những hậu quả tai hại thường bao gồm tiết lộ đầy
đủ cơ sở dữ liệu, thay đổi dữ liệu hoặc tham nhũng.


2. Các phương pháp để khai thác lỗ hổng leo thang
đặc quyền:
2.1

Sửa đổi thông số:

Các ứng dụng thường sử dụng cookie phiên / thông số ẩn để lưu
trữ thơng tin truy cập vai trị kiểm sốt. Nếu những thơng số và
giá trị có thể dự đốn, họ có thể dễ dàng giả mạo để đạt được đặc
quyền cao hơn.
Ví dụ: Ứng dụng sử dụng 'admin' thuộc tính tập tin cookie để xác
định xem một

người dùng là admin hay không.


5

Cookie: JSESSIONI0000d8eyYq3L0z2fgq10m4v-rt4: -1; quản trị =
1;


6

2.2

Khai thác lỗ hổng bảo mật khác:

Lỗ hổng ứng dụng khác như SQL Injection có thể cho phép truy
cập vào dữ liệu mà chỉ nhằm mục đích sử dụng đặc quyền cao

hơn hoặc có thể giúp thay đổi đặc quyền ưu đãi bậc cao
2.3

Chức năng quản lý khơng an tồn:

Chức năng quản lý đơi khi có thể khơng được xác thực hoặc được
ủy quyền đúng

Ví dụ: ứng dụng chấp nhận một

yêu cầu hành chính Post
(ví

dụ:

trang

) từ một
người sử dụng bình thường.

3. Cơ chế thực hiện:
Trong một cuộc tấn cơng leo thang đặc quyền theo chiều dọc,
những kẻ tấn công di chuyển lên các bậc thang đặc quyền, có thể
nói, bằng cách cấp mình đặc quyền thường dành riêng cho người
dùng truy cập cao. Trong hầu hết các cuộc tấn công leo thang
đặc quyền, hacker đầu tiên đăng nhập với một tài khoản người
dùng cấp thấp. Sau đó, hắn có thể tìm kiếm các lỗ hổng có thể
khai thác trong hệ thống có thể được sử dụng để nâng cao đặc
quyền của mình. Nếu các hacker khai thác thành cơng lỗ hổng
như vậy, ơng có thể cho phép hoạt động mạng, tạo người sử dụng

hệ thống tập tin truy cập mới hoặc thay đổi các thiết lập hệ
thống. một cuộc tấn cơng như vậy có thể dẫn đến các hành vi
trộm cắp dữ liệu nhạy cảm hoặc chiếm quyền điều khiển của toàn
bộ mạng.


7

Hình 3.1 Hình ảnh cơ chế tấn cơng leo thang đặc quyền

4. SQL Injection:
4.1

SQL Injection là gì?

Hình 4.1.1 SQL Injection
SQL Injection là một kỹ thuật (như cơ chế tấn công web khác)
để tấn công dữ liệu các ứng dụng điều khiển. Cuộc tấn cơng
này có thể bỏ qua một tường lửa và có thể ảnh hưởng đến hệ
thống vá lỗi đầy đủ. Những kẻ tấn cơng có lợi thế của các nhân
vật kém lọc hoặc khơng đúng cách trốn thốt nhúng vào trong
câu lệnh SQL vào phân tích dữ liệu từ biến người dùng nhập
vào. Những kẻ tấn công đưa dữ liệu tùy ý, thường xuyên nhất
một truy vấn cơ sở dữ liệu, thành một chuỗi đó là cuối cùng


8

thực hiện bởi các cơ sở dữ liệu thông qua một ứng dụng web
(ví dụ như một hình thức đăng nhập).


Hình 4.1.2 Kỹ thuật tấn cơng của SQL Injection
Thơng qua SQL Injection tấn cơng có thể được truy cập trái phép
vào cơ sở dữ liệu và có thể tạo, đọc, cập nhật, thay đổi, hoặc xóa
dữ liệu được lưu trữ trong cơ sở dữ liệu back-end. Hiện nay hầu
như tất cả các cơ sở dữ liệu SQL như Oracle, MySQL, PostgreSQL,
MSSQL Server, MS Access là khả năng dễ bị tấn cơng SQL
injection. Trong hình thức phổ biến nhất của nó, một cuộc tấn
công SQL injection cho phép truy cập thông tin nhạy cảm như số
an sinh xã hội, số thẻ tín dụng hoặc dữ liệu tài chính khác.
4.2

Các dạng tấn công bằng SQL Injection:

-

Dạng tấn công vượt qua kiểm tra đăng nhập.

-

Dạng tấn công sử dụng câu lệnh SELECT.

-

Dạng tấn công sử dụng câu lệnh INSERT.


9

-


Dạng tấn công sử dụng stored-procedures.


10

4.3

Các loại SQL Injection:

-

Lặp lại không cần dựa trên SQL Injection.

-

Các câu hỏi Piggy lưng / Trữ tiêm

-

Union Query

-

Bất hợp pháp / Queries logic không đúng.

-

Suy luận.


-

Thủ tục lưu trữ tiêm.

4.4

Lỗ hổng:

Trong an ninh máy tính, một lỗ hổng là một điểm yếu cho phép kẻ
tấn công để giảm đảm bảo thơng tin của hệ thống. hình thức dựa
trên web cho phép một số quyền truy cập vào cơ sở dữ liệu backend cho phép nhập dữ liệu và một phản ứng, loại tấn công này bỏ
qua tường lửa và phịng thủ điểm cuối. Bất kỳ hình thức web,
thậm chí là một hình thức đăng nhập đơn giản hay hộp tìm kiếm
(nơi người dùng có thể nhập dữ liệu), có thể cung cấp quyền truy
cập vào cơ sở dữ liệu back-end bằng SQL injection.

Hình 4.4.1 Ví dụ minh họa “Lỗ hổng”
Lý do phổ biến mà một ứng dụng dễ bị tấn công SQL injection là
lọc không đúng và thiếu xác nhận cho người dùng nhập vào. hình
thức đầu vào là khá phổ biến để thu thập dữ liệu từ người dùng. Vì
vậy, thực tế nó khơng có tính khả thi để đóng tất cả các điểm vào
để thanh SQL injection. Để ngăn chặn các cuộc tấn công các nhà


11

phát triển phải áp dụng thích hợp lọc / xác nhận trên tất cả các
hình thức.
4.5
-


Các ứng dụng dễ bị tổn thương:

Hầu như tất cả các cơ sở dữ liệu SQL là khả năng dễ bị tổn
thương như MS SQL Server, DB2, Oracle, PostgreSQL, MySQL,
MS Access, Sybase, Informix, vv

-

Truy cập thông qua các ứng dụng sử dụng:
 ASP, JSP, PHP
 Perl và CGI script đó truy cập vào cơ sở dữ liệu
 XML, XSL và XSQL
 JavaScript
 Cơ sở dữ liệu các ứng dụng web cụ thể
 …


12

5. Cơng cụ hỗ trợ:
Backtrack

Hình 5.1 Backtrack
-

Backtrack: là một bản phân phối Linux tập trung vào bảo mật
dựa trên Ubuntu Linux nhằm pháp lý kỹ thuật số và thử
nghiệm thâm nhập sử dụng. Trong tháng 3 năm 2013, nhóm
nghiên cứu Tấn An xây dựng lại Backtrack về việc phân phối

Debian và phát hành nó dưới tên Kali Linux .

-

Backtrack: là một hệ điều hành tích hợp nhiều tools giúp kiểm
tra và khai thác lỗ hổng bảo mật.

-

Backtrack: cung cấp người dùng dễ dàng truy cập đến một bộ
sưu tập toàn diện và lớn các công cụ an ninh liên quan đến
nhau, từ máy quét cổng để kiểm toán an ninh. Hỗ trợ cho Live
CD và Live USB chức năng cho phép người dùng khởi động
Backtrack trực tiếp từ phương tiện truyền thông di động mà
không cần cài đặt, dù lắp đặt cố định vào đĩa cứng và mạng
cũng là một lựa chọn.

-

Backtrack bao gồm nhiều công cụ bảo mật nổi tiếng:
 Nmap


13

 Gerix Wifi Cracker
 Ettercap
 Ophcrack
 Aircrack-ng
 …

-

Backtrack sắp xếp các công cụ thành 12 loại:
 Thu thập thông tin
 Đánh giá tổn thương
 Công cụ khai thác
 Leo thang đặc quyền
 Duy trì truy cập
 Kỹ thuật đảo ngược
 Công cụ RFID
 Căng thẳng thử nghiệm
 Pháp y
 Công cụ báo cáo
 Dịch vụ
 Hỗn hợp

VD: Nmap

Hình 5.2 Nmap
-

Là một phần mềm mã nguồn mở dung để quét đường mạng và
dị ra nhiều thơng tin hữu ích trên máy chủ.


14

-

Hỗ trợ tìm ra các lỗ hổng bảo mật.


-

Hỗ trợ tính tốn thời gian trễ , thời gian chờ gói tin, phát hiện
máy chủ đang download dữ liệu

* Ưu điểm:
-

Hỗ trợ nhiều kỹ thuật tiên tiến, vượt qua được nhiều bộ lọc hệ
thống như IP, tường lửa.

-

Miễn phí.

-

Có thể qt đường dây mạng lớn.

-

Dễ sử dụng.

-

Đa ngôn ngữ.

-


Hỗ trợ hầu hết các hệ điều hành.

6. Cách phòng chống:
6.1

Cách phòng chống SQL Injection:

Nguyên nhân gốc rễ của hầu hết các SQL injection là kiểm tra
đầu vào không hợp lệ.
6.1.1

Validation đầu vào:

- Đơn giản kiểm tra đầu vào có thể ngăn chặn nhiều vụ tấn
công.
- Luôn xác nhận đầu vào người sử dụng bằng cách kiểm tra
loại, kích cỡ, chiều dài, định dạng, và phạm vi.
- Kiểm tra các nội dung của các biến chuỗi và chấp nhận các
giá trị chỉ là dự kiến.
- Từ chối mục chứa dữ liệu nhị phân, chuỗi escape vv Điều này
có thể giúp ngăn ngừa tiêm kịch bản và có thể bảo vệ chống
lại một số bộ đệm tràn ngập khai thác.
- Khi bạn đang làm việc với các tài liệu XML, xác nhận tất cả
các dữ liệu so với sơ đồ của nó khi nó được nhập vào.


15

6.1.2


Chức năng đầu vào kiểm tra:

- Một số nhân vật và các chuỗi ký tự như; , -, Lựa chọn, chèn và
xp_ có thể được sử dụng để thực hiện một cuộc tấn công SQL
injection.
- Hủy bỏ các ký tự và chuỗi ký tự từ người dùng nhập vào trong
đó làm giảm nguy cơ của một cuộc tấn công tiêm.
- Chuỗi truy vấn Scan cho chữ không mong muốn như "chèn",
"cập nhật", "xóa", "thả" vv kiểm tra xem nó đại diện cho một
tuyên bố hoặc đầu vào người dùng hợp lệ.
- Viết một chức năng mà có thể xử lý tất cả những điều này.
Danh sách các nhân vật được sử dụng để thực hiện một cuộc
tấn cơng SQL Injection:

Hình ảnh danh sách các nhân vật được sử dụng để thực hiện
một cuộc tấn công SQL Injecton
6.1.3

Xác nhận nguồn đầu vào:

Có rất nhiều cách để tấn cơng một cơ sở dữ liệu, do đó các nhà
phát triển nên kiểm tra và xác nhận tất cả các nguồn đầu vào và
không cho phép xác định hoặc không tin cậy người sử dụng /
trang web.


16

6.1.4


Quyền truy cập:

- Tạo "thấp đặc quyền" tài khoản để sử dụng bởi các ứng dụng.
- Không bao giờ cấp các đặc quyền instancelevel vào tài khoản
cơ sở dữ liệu.
- Không bao giờ cấp databaseowner hoặc ưu đãi schemaowner
vào tài khoản cơ sở dữ liệu.
- Hãy biết về cơ chế cho phép của cơ sở dữ liệu của bạn.
6.1.5

Cấu hình cơ sở dữ liệu báo cáo lỗi:

- Lỗi mặc định một số ứng dụng máy chủ của báo cáo thường
xuyên cho đi thơng tin có giá trị cho những kẻ tấn công (tên
bảng, tên trường, v…v...)
- Nhà phát triển nên cấu hình hệ thống một cách chính xác, do
đó thơng tin này sẽ không bao giờ tiếp xúc với một người sử
dụng trái phép.

6.2

Cách phòng chống chung:

- Giữ cho phần mềm chống virus được cập nhật và cài đặt các
bản vá lỗi mới và sửa chữa phần mềm ngay khi họ trở nên có
sẵn. Càng an tồn hệ thống của bạn, ít có khả năng một hacker
là tìm một cái lỗ có thể khai thác.

- Sử dụng phịng ngừa thực thi dữ liệu (DEP) là một cách khác để
tránh những cuộc tấn công. Hầu hết các hệ điều hành phổ biến

có DEP được xây dựng trong chỉ vì lý do này.
-

Đặt vai trị thích hợp người dùng và đặc quyền cho mỗi tài
nguyên ứng dụng (các trang web, cơ sở dữ liệu, vv,…)

-

Kiểm tra các đặc quyền người dùng cho mỗi yêu cầu người sử
dụng một cách thích hợp.

-

Quét các ứng dụng web của bạn cho các lỗ hổng được biết đến
giảm thiểu khai thác tấn công

-

Xác nhận dữ liệu ở mọi trình tạo trang web của bạn sử dụng.


17

-

Sử dụng các phương pháp xác thực mạnh nhất có thể, và sử
dụng chúng một cách thơng minh (ví dụ, dài mạnh mẽ và mật
khẩu phức tạp)

7. Triển khai demo:

Demo trực tiếp trên máy.

TÀI LIỆU THAM KHẢO:
- />ms161953(v=sql.105).aspx
- />- />sql-injection.php
- />- />


×