2009-12-15 33 views
10

xml là xương sống của ứng dụng hướng dịch vụ (SOA) và nó sẽ là một phần hữu ích trong tương lai sắp tới. Vì xml dễ dàng, linh hoạt, nó có thể dễ dàng bị tấn công và những kẻ tấn công có thể sử dụng nó cho mục đích riêng của họ. Như vậy một số các cuộc tấn công là tấn công phân tích cú pháp cưỡng chế, tấn công thực thể bên ngoài xml (XEE), tấn công xml dos (xdos), bom xml.
bất kỳ ai có thể kể chi tiết về các cuộc tấn công này.
cách người ta có thể mô phỏng các cuộc tấn công này thực tế trong một hệ thống đơn lẻ?lỗ hổng xml

+3

Điều này giống như việc học. – Emyr

Trả lời

18

Trước tiên, chúng ta cần phân biệt hiệu ứng tấn công từ tính năng được khai thác.

tính năng đặc biệt của XML có thể được khai thác là

  • thực thể XML
  • mở rộng độc quyền của phân tích cú pháp và validator
  • Cyclic/recursive tài liệu tham khảo
  • từ xa truy cập

Tác dụng có thể là

  • DOS
  • Thông tin tiết lộ

Tôi không nghĩ rằng có nét percise của một "quả bom", nhưng nó đề cập đến một cuộc tấn công đó là đặc biệt "nhỏ gọn" và đó "nở". Một "cuộc tấn công phân tích cú pháp cưỡng chế" khai thác bản chất của mô hình XML để áp đảo trình phân tích cú pháp.

Ví dụ bên dưới được lấy từ XML Denial of Service Attacks and Defenses. Ngoài ra, nếu bạn hiểu tiếng Pháp, hãy đọc tạp chí xuất sắc "La security des web services".

Ví dụ 1

Một quả bom sử dụng các đối tượng mà kết quả trong một hệ điều hành DOS vì nó làm cạn kiệt bộ nhớ

<?xml version="1.0"?> 
<!DOCTYPE kaboom [ 
    <!ENTITY a "aaaaaaaaaaaaaaaaaa..."> 
]> 
<kaboom>&a;&a;&a;&a;&a;&a;&a;&a;&a;...</kaboom> 

Nếu bạn có 50'000 "aaaa ... aaa" và 50'0000 &a:&a;...&a;, tải trọng của 200KB mở rộng đến hơn 2GB bộ nhớ trong

Ví dụ 2

Một thực thể có thể được sử dụng để truy cập một tệp khác một cách trái phép. Điều này dẫn đến việc tiết lộ thông tin.

<?xml version="1.0"?> 
<!DOCTYPE letter [ 
    <!ENTITY file SYSTEM "/sensitive.txt" > 
]> 
<tag> &file; </tag> 

Ví dụ 3

Sử dụng khả năng của phân tích cú pháp nhất định để truy cập tài nguyên từ xa (xem http://www.ibm.com/developerworks/xml/library/x-tipgentity.html), bây giờ đi tìm những gì sẽ xảy ra nếu các tập tin bigfile.xml là 2GB. Điều này có thể dẫn đến một hệ điều hành DOS.

<?xml version="1.0"?> 
<!DOCTYPE letter [ 
    <!ENTITY file SYSTEM "http://www.mysite.com/bigfile.xml" > 
]> 
<tag> &file; </tag> 

Ví dụ 4

đệ quy này sẽ dẫn đến xả bộ nhớ và có thể là một hệ điều hành DOS.

<!ENTITY companyname "Contoso Inc."> 
<!ENTITY divisionname "&companyname; Web Products Division"> 

Nếu đây là bài vở ở trường, sau đó bạn cũng nên suy nghĩ về cách bạn có thể bảo vệ mình khỏi bị tấn công như vậy.

+0

Có lẽ tôi đang bị nguyền rủa ở đây, nhưng ai đó có thể giải thích sự đệ quy trong Ví dụ 4? Theo như tôi có thể nói, '& companyname;' sẽ mở rộng thành "Contoso Inc." và '& divisionname;' sẽ mở rộng thành "Contoso Inc. Web Products Division". Tôi không thấy một trong hai điều này có thể gây ra vấn đề gì. –

+0

@squeamishossifrage Nếu bạn đi đến liên kết mà các ví dụ được lấy từ bạn sẽ nhận được một lời giải thích rõ ràng hơn nhiều. Ví dụ được đưa ra ở đây để đệ quy không phải là một ví dụ đệ quy trong bài viết, chỉ là một ví dụ làm tổ đơn giản. Ngoài ra, cuộc tấn công đệ quy sẽ chỉ hoạt động nếu trình phân tích cú pháp của bạn cho phép XML không hợp lệ như được mô tả trong bài viết. – JimmyJames

Các vấn đề liên quan