











Preview text:
11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
K65A4 - Đề thi giữa kỳ - An toàn máy tính
nguyenminhhieu_t65@hus.edu.vn Chuyển đổi tài khoản Gửi lại để lưu
Email của bạn sẽ được ghi lại khi bạn gửi biểu mẫu này Câu hỏi
Hãy định nghĩa 1 biến hệ vỏ tên là foo để khi export foo thì hệ vỏ con sẽ
nhận được một hàm có nội dung là echo "Hello"
export foo='() { echo "Hello"; }'
Hãy định nghĩa 1 biến hệ vỏ foo với thân hàm là lệnh echo "Hello world",
đồng thời khai thác lỗ hổng Shellshock để chạy hệ vỏ /bin/sh
export foo='() { echo "Hello world";}; /bin/sh'
Trong hệ vỏ bash, nếu chạy lệnh export foo=bar thì có làm thay đổi biến
environment của tiến trình hiện tại không?
Có, vì export sẽ xuất biến hệ vỏ foo thành biến môi trường
Không, vì biến môi trường chỉ được khởi tạo giá trị tại thời điểm chạy tiến trình
Có, vì biến môi trường có thể thay đổi giá trị qua lệnh gán
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 1/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Chương trình đặc quyền abc có lời gọi hàm system(“xyz”) để thực hiện lệnh
xyz ở bên ngoài. Nếu chúng ta chạy chương trình abc từ dòng lệnh hệ vỏ
bash, hãy cho biết các cách mà kẻ tấn công có thể chiếm đặc quyền trên hệ thống. Đúng Sai Chạy 2 lệnh gộp "abc; /bin/sh"
Sửa biến PATH trỏ tới 1 chương trình xyz khác Chạy export foo='() { echo Hi;}; /bin/sh'
Tạo input đủ lớn gây tràn bộ đệm
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 2/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Cả hai hàm system() and execve() đều cho phép thực hiện một chương trình
bên ngoài. Tại sao dùng execve() lại an toàn hơn so với system() ? execve() system()
Lệnh và tham số được trộn vào trong cùng 1 xâu input
Tạo ra tiến trình con khi thực hiện chương trình
Toàn bộ biến môi trường
được kế thừa bới tiến trình con
Kiểm soát được biến môi
trường truyền cho chương trình thực thi
Cho phép chạy 2 lệnh, phân
tách bởi dấu chấm phẩy
Chương trình được thực thi
không tự động kế thừa biến môi trường
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 3/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Tại sao việc ngẫu nhiên hóa bố cục không gian địa chỉ (ASLR) làm cho tấn
công tràn bộ đệm trở nên khó khăn hơn? Giải thích vì sao.
Việc ngẫu nhiên hóa bố cục không gian địa chỉ (ASLR ) là một kỹ thuật được sử dụng để làm
chậm việc tấn công tràn bộ đệm bằng cách ngẫu nhiên di chuyển vị trí của các phân vùng bộ
nhớ quan trọng trong bộ nhớ, chẳng hạn như vùng nhớ heap và stack, đến một địa chỉ ngẫu
nhiên khác nhau trong không gian địa chỉ của quá trình. Điều này làm cho việc tìm kiếm địa
chỉ chính xác của các vùng nhớ quan trọng để tấn công trở nên khó khăn hơn.
Khi ASLR được bật, các phân vùng bộ nhớ trong quá trình sẽ được đặt tại vị trí ngẫu nhiên
trong không gian địa chỉ, do đó, kẻ tấn công sẽ không thể dễ dàng biết được vị trí chính xác
của các phân vùng bộ nhớ quan trọng. Việc tìm kiếm các địa chỉ vùng nhớ để thực hiện tấn
công tràn bộ đệm sẽ trở nên khó khăn hơn, đặc biệt là nếu kẻ tấn công không biết địa chỉ
của các vùng nhớ quan trọng trước đó.
Chúng ta có thể điều hướng để một chương trình đọc dữ liệu từ một tệp thay
vì kênh input chuẩn. Cho prog là là một chương trình Set-UID có đặc quyền
root, chúng ta có thể dùng lệnh dưới đây để đọc nội dung từ tệp mật khẩu của hệ thống không?
Có, vì prog là chương trình Set-UID với đặc quyền root
Không, vì RUID của prog không phải là root ID
Không, vì người chạy không có quyền hiển thị tệp shadow
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 4/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Khi export 1 biến hệ vỏ có nội dung là thân 1 hàm, điều gì sẽ xảy ra khi chạy 1 tiến trình con? Đúng Sai
Biến hệ vỏ trở thành biến môi trường
Biến hệ vỏ trở thành 1 hàm
Biến môi trường được chuyển thành 1 hàm
Tiến trình con kế thừa hàm
định nghĩa từ hệ vỏ cha
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 5/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Có hai cách tiếp cận để thực hiện một nhiệm vụ đặc quyền. Cách thứ nhất là
viết một chương trình Set-UID với đặc quyền root. Cách thứ hai là viết một
ứng dụng nền daemon chạy với quyền root. Hãy so sánh các bề mặt tấn
công (attack surface) của hai cách tiếp cận trên. Đúng Sai
Trình Set-UID luôn phải chạy ngầm trong hệ thống
Daemon chiếm ít tài nguyên bộ nhớ hơn
Người dùng có thể thay đổi
biến môi trường của Daemon
Người dùng không thể thay
đổi biến môi trường của trình Set-UID
Set-UID ít rủi ro hơn so với Daemon
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 6/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Đối với 1 chương trình cgi viết trên bash, làm thế nào để thực hiện tấn công shellshock? Đúng Sai
Định nghĩa hàm trở thành 1 biến môi trường Trường USER_AGENT trở thành biến môi trường
Nội dung biến môi trường là 1 hàm, gắn kèm 1 lệnh
Kẻ tấn công có thể lấy được quyền root
Cho tệp /tmp/secret.txt được đặt thuộc tính để không ai có thể đọc được,
trừ Alice. Bob tạo ra một chương trình Set-UID cho phép hiển thị nội dung
một tệp. Câu hỏi đặt ra là nếu Alice chạy chương trình Set-UID của Bob thì
cô ấy có thể xem được nội dung tệp /tmp/secret.txt hay không? Đúng Sai
Alice có thể xem được vì RUID là ID của Alice
Alice có thể xem được vì chương trình là Set-UID
Alice không thể xem được vì EUID là ID của Bob
Nếu tắt bít Set-UID đi thì Alice xem được
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 7/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Không gian vùng nhớ buffer trong hàm bof dưới đây đã được chỉnh sửa lại.
Liệu có còn lỗi tràn bộ đệm không và kẻ tấn công vẫn có thể sửa trường
Return address trong ngăn xếp và chạy đoạn mã xấu thành công không? Đúng Sai
Vẫn xảy ra lỗi tràn bộ đệm
Khi tràn bộ đệm buffer, ngăn xếp sẽ bị ghi đè
Nội dung ngăn xếp không bị
thay đổi khi bộ đệm buffer tràn
Chương trình sẽ crash vì lỗi heap buffer over ow
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 8/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Chạy lệnh export foo=’echo world; () { echo hello;}’.Điều gì sẽ xảy ra khi chạy hệ vỏ con bash? Đúng Sai "world hello" được in ra
Hàm foo được định nghĩa và "world" được in ra
Biến môi trường foo được kế thừa
Một người muốn chuyển một chương trình thành chương trình với đặc quyền
root. Các lệnh dưới đây có đạt được mục tiêu đó không?
Có, vì bật bit Set-UID với đặc quyền root
Không, vì lệnh chown sẽ tắt bit Set-UID đi
Có, thứ tự 2 lệnh trên không quan trọng
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 9/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Trong chương trình có lời gọi tới hàm execve() để thực hiện chương trình xyz
ở bên ngoài. Chương trình xyz khi chạy sẽ nhận được những biến môi trường nào?
Tất cả các biến môi trường của chương trình ban đầu
Các biến được trao qua tham số thứ 3 của execve()
Tất cả các biến môi trường + biến hệ vỏ của chương trình ban đầu
Hãy sắp thứ tự các thành phần trong stack frame của một hàm có 2 tham
số (theo thứ tự từ địa chỉ cao xuống thấp) 1 2 3 4 5 Local variables Previous frame pointer Return address Argument 1 Argument 2
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuC… 10/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Các biến trong chương trình dưới đây được đặt trong các segment bộ nhớ nào? Data Stack Heap i str ptr ptr[] buffer[] j Trang 2 trong tổng số 2 ạ
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuCz… 11/12 11:31 29/03/2023
K65A4 - Đề thi giữa kỳ - An toàn máy tính
Bạn đang chỉnh sửa câu trả lời của mình. Việc chia sẻ URL này cũng sẽ
ĐIỀN VÀO CÂU TRẢ LỜI MỚI
cho phép người khác chỉnh sửa câu trả lời của bạn.
https://docs.google.com/forms/d/e/1FAIpQLSep29QcxXnzZLGf0No42EcqnrUg6EI6nBbTcjDAJh7Te5GxuQ/formResponse?edit2=2_ABaOnudvCuC… 12/12