Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

XSS - Loạt bài Web- Tấn công và Phòng Thủ

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • XSS - Loạt bài Web- Tấn công và Phòng Thủ

    SVTH: HOÀNG MINH TUẤN

    2.6 XSS


    2.6.1 Một số thông tin thực tế về XSS

    Vào tháng 10 năm 2005, một người dùng đăng nhập tài khoản ở MySpace và xem profile của người khác. Trình duyệt xử lý JavaScript của trang này tự động update trên user profile thông báo là một người tên Samy là người hùng của họ. Một người bạn của người này vào xem profile và đồng ý trên profile là Samy là người hùng của anh ta. Sau đó một người nữa, cũng không cần biết Samy là ai, và thậm chí cũng không hề nghe tới Samy, đăng nhập vào MySpace và cũng đồng ý như trên. Việc này cứ thế tiếp diễn, và sau 24 giờ, Samy có trên 1 triệu bạn bè, và MySpace đã bị tắc nghẽn lưu lượng. Samy đã sử dụng XSS với khoảng 4000 kí tự text, tạo nên một cuộc tấn công DoS vào MySpace, một công ty có số server lên đến hàng ngàn! Cuộc tấn công của Samy được dùng để tham khảo cho các cuộc tấn công sử dụng XSS sau này. Cuộc phỏng vấn về Samy có thể xem tại: http://blogoscoped.com/archive/2005-10-14-n81.html
    XSS có thể được dùng kèm với keylogger để ăn cắp mật khẩu tài khoản ngân hàng, tài khoản game online hoặc có thể được dùng để lấy cookies từ nạn nhân. Phương pháp này tuy đơn giản, nhưng rất nguy hiểm đối với những người sử dụng web.

    2.6.2 Khái niệm về XSS

    Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ...) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng khác. Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng có thể là cả các thẻ HTML.
    Kĩ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗi phổ biến nhất của Web Applications và mối đe doạ của chúng đối với người sử dụng ngày càng lớn. Người chiến thắng trong cuộc thi eWeek OpenHack 2002 là người đã tìm ra 2 XSS mới. Phải chăng mối nguy hiểm từ XSS đã ngày càng được mọi người chú ý hơn?

    2.6.3 Phân loại XSS

    XSS về có thể được phân loại như sau:

    a.Stored XSS Attacks


    Hình 2.3. Mô tả về Stored XSS Attacks


    Stored XSS là hình thức tấn công mà ở đó cho phép kẻ tấn công có thể chèn một đoạn script nguy hiểm (thường là Javascript) vào website của chúng ta thông qua một chức năng nào đó (vd: viết lời bình, guestbook, gởi bài..), để từ đó khi các thành viên khác truy cập website sẽ bị dính mã độc từ kẻ tấn công này, các mã độc này thường được lưu lại trong database của website chúng ta nên gọi là Stored. Stored XSS phát sinh do chúng ta không lọc dữ liệu do thành viên gởi lên một cách đúng đắn, khiến cho mã độc được lưu vào Database của website.

    b.Reflected XSS Attacks

    Hình 2.4. Mô tả Reflected XSS Attacks


    Trong hình thức này, kẻ tấn công thường gắn thêm đoạn mã độc vào URL của website chúng ta và gởi đến nạn nhân, nếu nạn nhân truy cập URL đó thì sẽ bị dính mã độc. Điều này xảy ra do ta không chú ý filter input từ URL của website mình.

    c. XSS Attack Consequences

    Phương pháp này tương tự như 2 phương pháp trên. Tuy nhiên, điểm khác biệt là cách mà payload được đưa tới server. Một site “read only” hay “brochureware” cũng có thển hiễm XSS. XSS có thể gây thiệt hại từ mức độ nhỏ đến lớn như việc chiếm tài khoản của người sử dụng. Một cuộc tấn công XSS có thể lấy được session cookie, gây mất tài khoản sử dụng. Hoặc có thể ảnh hưởng tới dữ liệu người dùng đầu cuối bằng cách cài đặt Trojan, hoặc redirect trang web người truy cập sang một trang khác, hoặc thay đổi nội dung của một trang.

    2.6.4 Tìm hiểu về XSS

    Về cơ bản, hoạt động của XSS có thể được mô tả như sau:

    Hình 2.5. Mô tả hoạt động của XSS


    Theo nguyên tắc trên, một hacker có thể lợi dụng các lỗ hổng bảo mật từ một website. Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS, trong đó 2 thẻ IMG và IFRAME có thể cho phép trình duyệt load thêm các website khác khi các lệnh HTML được hiển thị. Lợi dụng nguyên tắc này, các hacker có thể chèn các đoạn mã độc vào và khiến máy nạn nhân bị tấn công XSS


    2.6.5 Tác hại của XSS

    XSS thường được sử dụng với các mục đích sau:
    Đánh cắp thông tin
    Giúp hacker có thể truy cập được vào những thông tin nhạy cảm
    Lấy được quyền truy cập miễn phí vào những nội dung đúng ra phải trả tiền mới có được
    Dò xét sở thích của người sử dụng mạng
    Thay đổi diện mạo ( deface) một trang web nào đó Tấn công từ chối dịch vụ (DoS)
    Mã JavaScript độc có thể truy cập bất cứ thông tin nào sau đây:
    • Cookie cố định (của site bị lỗi XSS) được duy trì bởi trình duyệt.
    • RAM Cookie (của site bị lỗi XSS)
    • Tên của tất cả các cửa sổ được mở từ site bị lỗi XSS
    • Bất cứ thông tin mà có thể truy cập được từ DOM hiện tại (như value, mã HTML…)


    2.6.6 Đề xuất một số phương pháp phòng ngừa và ngăn chặn

    Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết vấn đề này. OWASP (The Open Web Application Standard Project) nói rằng để có thể xây dựng các website bảo mật cao, đối với các dữ liệu của người sử dụng, nên:
    • Chỉ chấp nhận những dữ liệu hợp lệ.
    • Từ chối nhận các dữ liệu hỏng.
    • Liên tục kiểm tra và thanh lọc dữ liệu.

    Tuy nhiên trên thực tế, một số trường hợp phải chấp nhận mọi loại dữ liệu hay không có một bộ lọc phù hợp. Chính vì vậy phải có những cách riêng để giải quyết.
    Một trong những cách hay sử dụng là mã hoá các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Trong trường hợp này thẻ script sẽ được đổi thành script. Như vậy nó sẽ vẫn được in ra màn hình mà không hề gây nguy hiểm cho người sử dụng.
    Những người phát triển web có thể bảo vệ website của mình khỏi bị lợi dụng thông qua tấn công XSS, bằng cách đảm bảo những trang phát sinh động không chứa các tag của script bằng cách lọc và xác nhận hợp lý các dữ liệu đầu vào từ phía người dùng hoặc mã hóa(endcoding) và lọc các giá trị xuất cho người dùng.

    Đón xem bài tiếp theo về SQL Injection
    Lâm Văn Tú
    Email :
    cntt08520610@gmail.com
    Viet Professionals Co. Ltd. (VnPro)
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257 (5 lines)
    Fax (08) 35124314
    Tập tành bước đi....



  • #2
    hay quá bác lamvantu ơi...đang đón chờ bài tiếp theo của bác đây.

    Comment


    • #3
      bữa nào thử coi sao:D
      Pro Spammer

      Comment

      Working...
      X