Lỗ Hổng Bảo Mật Từ Các Thư Viện Bên Thứ Ba: Bạn Có Đang Bỏ Qua Chúng?

0 0 0

Người đăng: Nam Phạm

Theo Viblo Asia

1. Giới Thiệu

Thư viện bên thứ ba, như các gói npm (JavaScript) hoặc Composer (PHP), giúp các nhà phát triển tiết kiệm thời gian và tăng hiệu suất phát triển. Tuy nhiên, việc sử dụng chúng cũng mang lại nhiều nguy cơ bảo mật. Các lỗ hổng trong thư viện hoặc phụ thuộc của chúng có thể bị hacker khai thác để xâm nhập vào hệ thống của bạn.

Trong bài viết này, chúng ta sẽ:

  • Tìm hiểu về các lỗ hổng trong thư viện bên thứ ba.
  • Phân tích những ví dụ thực tế về các cuộc tấn công.
  • Đưa ra các biện pháp giảm thiểu rủi ro.

2. Ví Dụ Lỗ Hổng Bảo Mật Trên npm

2.1. Event-Stream (2018)

Tổng quan:

  • Thư viện ảnh hưởng: event-stream (hơn 2 triệu lượt tải mỗi tuần).
  • Chi tiết: Một hacker đã chiếm quyền kiểm soát thư viện, sau đó thêm một gói độc hại mang tên flatmap-stream. Mã độc này được thiết kế để đánh cắp tiền mã hóa từ ví tiền Copay.

Cách thức:

  • Hacker thêm mã độc nhằm đọc private keys từ ví tiền mã hóa khi ứng dụng sử dụng event-stream.

Ảnh hưởng:

  • Hàng nghìn ứng dụng sử dụng event-stream, bao gồm cả các ứng dụng ngân hàng và ví điện tử.

Tham khảo:


2.2. UA-Parser-JS (2021)

Tổng quan:

  • Thư viện ảnh hưởng: ua-parser-js (thư viện phân tích User-Agent phổ biến).
  • Chi tiết: Hacker xâm nhập vào tài khoản npm của nhà phát triển và phát hành một phiên bản chứa mã độc. Mã độc này cài đặt phần mềm đào tiền mã hóa và đánh cắp thông tin hệ thống.

Cách thức:

  • Gói độc hại được phát hành trong các phiên bản 0.7.29, 0.8.0 và 1.0.0.

Ảnh hưởng:

  • Hàng nghìn ứng dụng và website bị lây nhiễm.

Tham khảo:


2.3. Lodash Prototype Pollution (2020)

Tổng quan:

  • Thư viện ảnh hưởng: lodash (một thư viện tiện ích phổ biến với hơn 80 triệu lượt tải mỗi tuần).
  • Lỗ hổng: Prototype Pollution (CVE-2020-8203).

Cách thức:

  • Hacker có thể sửa đổi các prototype của đối tượng JavaScript, dẫn đến việc thực thi mã độc hoặc thay đổi hành vi ứng dụng.

Ảnh hưởng:

  • Rất nhiều ứng dụng phụ thuộc vào lodash, làm tăng nguy cơ bị khai thác.

Tham khảo:


3. Ví Dụ Lỗ Hổng Bảo Mật Trên Composer

3.1. PHPUnit RCE (2017)

Tổng quan:

  • Thư viện ảnh hưởng: phpunit/phpunit (một framework kiểm thử PHP phổ biến).
  • Lỗ hổng: Remote Code Execution (CVE-2017-9841).

Cách thức:

  • Một endpoint không được bảo vệ trong PHPUnit cho phép hacker thực thi mã PHP từ xa.

Ảnh hưởng:

  • Nhiều ứng dụng PHP sử dụng PHPUnit trong môi trường sản xuất, dẫn đến nguy cơ bị tấn công.

Tham khảo:


3.2. Symfony HTTP Foundation (2022)

Tổng quan:

  • Thư viện ảnh hưởng: symfony/http-foundation (thành phần chính trong Symfony framework).
  • Lỗ hổng: XSS (Cross-Site Scripting) (CVE-2022-24894).

Cách thức:

  • Hacker khai thác lỗ hổng trong xử lý đầu vào HTTP để thực hiện các cuộc tấn công XSS.

Ảnh hưởng:

  • Các ứng dụng Symfony không cập nhật phiên bản mới nhất dễ bị khai thác.

Tham khảo:


3.3. Guzzle HTTP Header Injection (2020)

Tổng quan:

  • Thư viện ảnh hưởng: guzzlehttp/guzzle (thư viện HTTP client phổ biến).
  • Lỗ hổng: Header Injection (CVE-2020-8024).

Cách thức:

  • Hacker có thể chèn các header độc hại vào yêu cầu HTTP, dẫn đến việc đánh cắp thông tin hoặc thực thi mã độc.

Ảnh hưởng:

  • Các ứng dụng sử dụng Guzzle để gửi yêu cầu HTTP bị ảnh hưởng.

Tham khảo:


4. Làm Thế Nào Để Giảm Thiểu Rủi Ro?

4.1. Kiểm tra thư viện định kỳ

  • Sử dụng các công cụ như:
    • npm audit (Node.js)
    • composer audit (PHP)
    • OWASP Dependency-Check

4.2. Cập nhật phiên bản mới nhất

  • Luôn cập nhật lên phiên bản mới nhất của thư viện.
  • Sử dụng các công cụ như GitHub Dependabot để tự động kiểm tra và cập nhật.

4.3. Kiểm tra mã nguồn thư viện

  • Đối với các thư viện quan trọng, hãy kiểm tra mã nguồn để đảm bảo không có mã độc.

4.4. Sử dụng Lockfile

  • Đảm bảo package-lock.json (npm) hoặc composer.lock (Composer) luôn được sử dụng để cố định phiên bản thư viện.

5. Kết Luận

Thư viện bên thứ ba là con dao hai lưỡi. Chúng giúp tăng tốc phát triển phần mềm nhưng cũng mang lại nhiều nguy cơ bảo mật nghiêm trọng. Việc kiểm tra, quản lý và cập nhật thư viện là nhiệm vụ không thể bỏ qua nếu bạn muốn bảo vệ hệ thống của mình.

Đừng để các thư viện bên thứ ba trở thành mắt xích yếu nhất trong chuỗi bảo mật của bạn.


Tài Liệu Tham Khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Tạo ra virus bằng tool (Part1)

Virus. Tác hại của nó để lại cũng nặng nề:. . Gây khó chịu cho chúng ta là tác hại đầu tiên.

0 0 50

- vừa được xem lúc

Facebook và google "hiểu" chúng ta như thế nào?

Tổng quan. Đã bao giờ bạn gặp những tình huống dưới đây và đặt câu hỏi thắc mắc tại sao chưa.

0 0 54

- vừa được xem lúc

Mã hoá dữ liệu trên Android với Jetpack Security

Jetpack Security (JetSec) là thư viện được xây dựng từ Tink - dự án mã nguồn mở, bảo mật đa nền tảng của Google. Jetpack Security được sử dụng cho việc mã hoá File và SharedPreferences.

0 0 74

- vừa được xem lúc

Tái hiện vụ bị đánh cắp 2 triệu DAI (~2 triệu USD) của Akropolis

Tổng quan. .

0 0 114

- vừa được xem lúc

Bảo mật internet: HTTPS và SSL/TLS như giải thích cho trẻ 5 tuổi

(Mình chém gió đấy, trẻ 5 tuổi còn đang tập đọc mà hiểu được cái này thì là thần đồng, là thiên tài, là mình cũng lạy). . . Xin chào các bạn.

0 0 96

- vừa được xem lúc

Phân biệt server xịn và server pha ke bằng SSL Pinning

Xin chào các bạn, trong bài viết này mình muốn chia sẻ về một kĩ thuật rất nên dùng khi cần tăng tính bảo mật của kết nối internet: SSL Pinning. Trong bài viết trước, mình đã giải thích khá kĩ về SSL,

0 0 589