Professional Documents
Culture Documents
đến 4500 TB
Định dạng file nén .zip được phát minh từ 3 thập niên trước và đến nay nó cực phổ biến khi
giúp chúng ta gởi các thư mục, tập tin dễ dàng hơn cũng như tiết kiệm dung lượng dữ liệu
lưu trữ. Thế nhưng bên cạnh những mặt tích cực thì .zip cũng có thể bị lạm dụng để chế tạo
những thứ độc hại điển hình như Zip bomb - một quả bomb siêu nén thứ khi "phát nổ" sẽ
giải phóng một lượng dữ liệu khổng lồ lên đến vài Petabyte.
David Fitfield - một lập trình viên và là một kỹ sư phần mềm đã vừa tạo ra một quả bomb
như vậy. Thực tế đây là một biến thể malware có vẻ ngoài giống như một file Zip bình
thường với dung lượng chỉ vài KB nhưng khi ai đó lỡ dại giải nén thì nó sẽ nhả ra nhiều PB
dữ liệu (1 Petabyte = 1000 Terabyte).
Những loại file như thế này không hiếm nhưng kỹ thuật được Fitfield sử dụng để tạo ra Zip
bomb rất mới. Nó không phải là một kỹ thuật Zip chồng Zip chồng Zip - mình từng chơi trò
này để thử xem file có thật sự nhỏ đi nhiều không khi nén bằng cách cho nén một thư mục
chứa dữ liệu rồi lại nén tiếp file Zip vừa có, cứ thế vài lần. Thay vào đó, Fitfield đã tìm ra
cách "xếp chồng" các file con bên trong một file Zip, từ đó đạt được tỉ lệ nén cực cao so với
các file nén thông thường. Kết quả tốt nhất mà Fitfield có được là nén 4,5 PB dữ liệu thành
một file có dung lượng chỉ 46 MB.
Tại một buổi thuyết trình tại hội nghị bảo mật USENIX Security Symposium năm 2015 thì Zip
bomb được cho là đã xuất hiện từ năm 1996 khi một file như vậy được tải lên mạng Fidonet
với mục đích là lừa các quản trị viên mở nó nhưng thất bại. Tính đến năm 2001 thì Zip bomb
đã trở thành một trong những mối quan tâm hàng đầu của giới bảo mật khi MIS Corp
Defense cảnh báo người dùng về một hình thức tấn công bằng file đính kèm qua email có
dung lượng chỉ 42 KB nhưng khi giải nén hoàn toàn có thể lên đến vài PB.
Không rõ ai là tác giả của 42.zip nhưng kể từ khi xuất hiện, nó đã trở thành một "huyền
thoại" của Zip bomb khi tỉ lệ nén đạt đến 106 tỉ : 1. Trong một email phỏng vấn Fitfield, anh
nói rằng dù 42.zip đã tồn tại 15 năm qua và nhận được sự quan tâm của giới bảo mật nhưng
những thử nghiệm tương tự khác sau đó lại thu hút anh về khía cạnh kỹ thuật.
Siêu nén:
Zip bomb là một công cụ tấn công rất hiệu quả bởi nó sẽ hút cạn tài nguyên hệ thống ở đây
là CPU, RAM và ổ cứng. Tuy nhiên, những file nén cũng có giới hạn tự nhiên đó là hầu hết
các chương trình giải nén Zip chỉ giải nén tối đa ở tỉ lệ 1032:1. Điều này có nghĩa Zip bomb
chỉ có thể được tạo ra theo quy tắc đệ quy chồng lặp. Một ví dụ như file 42.zip, khi dữ liệu
bên trong được nén hoàn toàn thì nó chỉ lớn hơn 42 KB một chút nhưng bên trong chứa rất
nhiều file Zip phức tạp, cụ thể là 16 file Zip con và mỗi file Zip con lại chứa 16 file Zip con
khác cứ thế xếp chồng nhưng file cuối cùng trong một file Zip là một tập tin dung lượng 4,3
GB. Nếu giải nén ra hoàn toàn thì dung lượng sẽ đến 4,5 PB.
Ngoài ra còn một các nén khác là Zip quines hay đệ quy vô hạn. Về cơ bản khi giải nén ra thì
việc giải nén sẽ được thực hiện bất tận và bạn sẽ không bao giờ có được file cuối cùng.
Fitfield nói phương thức này cho anh ý tưởng để tạo ra file Zip bomb.
Tuy nhiên điều khiến Zip bomb của Fitfield khác biệt đó là cách anh vượt qua giới hạn nén
1032:1. Anh đã dùng một thủ thuật xếp chồng các file lên nhau trong quá trình nén từ đó tạo
ra một file chỉ với 1 lớp, không đệ quy như 42.zip nhưng dung lượng rất nhỏ nếu so với file
mà nó giải nén ra. Fitfield cho biết các kết quả của anh không đạt tỉ lệ nén cao như 42.zip
bởi một file có dung lượng tương tự tức 42 KB thì giải nén ra chỉ ở 5,5 GB thay vì 4,5 PB
nhưng tỉ lệ nén mà anh đạt được cao hơn với các file cỡ lớn. Chẳng hạn như một file 281
TB nén lại chỉ còn tầm 10 MB.
Thêm vào đó nếu sử dụng phần mở rộng Zip64 của định dạng Zip thì Fitfield có thể đạt được
tỉ lệ nén một file 45 MB thành 42 KB như 42.zip không đệ quy với tỉ lệ nén là 98 triệu:1.
Fitfield nói rằng một thứ nữa giúp anh thực hiện được kỹ thuật này là khai thác cơ chế sửa
lỗi CRC tích hợp trong nhiều tiêu chuẩn máy tính như Zip, PNG.
Tất cả các file thử nghiệm của Fitfield đều được anh đăng tải tại đây, anh em có muốn thử
giải nén không : https://www.bamsoftware.com/hacks/zipbomb/
A better zip bomb
BAMSOFTWARE.COM
Fitfield sẽ trình bày về những phát hiện của anh tại hội nghị USENIX Workshop on Offensive
Technologies (WOOT) vào tháng tới. Dù Zip bomb không mới nhưng với hướng tiếp cận của
Fitfield, nghiên cứu của anh sẽ mang lại lợi ích giáo dục nhận thức cao.
Anh nói: "Tôi hy vọng rằng một trong những lợi ích của nghiên cứu này là khiến các nhà phát
triển ý thức được những mối nguy hiểm về việc xử lý các định dạng nén phức tạp như Zip.
Nó cũng sẽ giúp một số đối tượng như những người kiểm mã nguồn, khách hàng và người
dùng biết được liệu một file nén có đang được xử lý bình thường hay không."