Nếu một từ có thể tổng kết năm an ninh thông tin 2021 (thực ra tới ba từ lận), thì đó là: “cuộc tấn công chuỗi cung ứng”.
Một cuộc tấn công chuỗi cung ứng phần mềm xảy ra khi tin tặc thao túng mã trong các thành phần phần mềm của bên thứ ba để xâm phạm các ứng dụng ‘hạ nguồn’ sử dụng chúng. Vào năm 2021, chúng ta đã chứng kiến sự gia tăng đáng kể của các cuộc tấn công như vậy: các sự cố bảo mật cao cấp như vụ vi phạm dữ liệu SolarWinds, Kaseya và Codecov đã làm lung lay niềm tin của doanh nghiệp vào các hoạt động bảo mật của các nhà cung cấp dịch vụ bên thứ ba.
Điều này liên quan gì đến bí mật? Trong thời gian ngắn, đúng, rất nhiều. Lấy trường hợp Codecov: đây là một ví dụ điển hình minh họa cách tin tặc tận dụng thông tin đăng nhập được mã hóa để có được quyền truy cập ban đầu vào hệ thống của nạn nhân và thu thập thêm bí mật trong chuỗi.
Secrets-in-code vẫn là một trong những lỗ hổng bị bỏ qua nhiều nhất trong không gian bảo mật ứng dụng, mặc dù là mục tiêu ưu tiên trong playbook của tin tặc. Trong bài viết này, chúng ta sẽ nói về những bí mật và cách giữ chúng khỏi mã nguồn là ưu tiên số một hiện nay để đảm bảo an toàn cho vòng đời phát triển phần mềm.
“Bí mật” là gì?
Bí mật là thông tin xác thực kỹ thuật số (khóa API, chứng chỉ, mã thông báo, v.v.) được sử dụng trong các ứng dụng, dịch vụ hoặc cơ sở hạ tầng. Giống như mật khẩu (cộng với một thiết bị trong trường hợp 2FA) được sử dụng để xác thực một người. Nhưng có một điểm khó khăn: không giống như mật khẩu, các bí mật có nghĩa là được phân phối.
Trong bối cảnh bảo mật ứng dụng, bí mật được mã hóa cứng được xem là một loại lỗ hổng bảo mật. Đầu tiên, vì mã nguồn là một tài sản rất dễ bị rò rỉ, có nghĩa là được sao chép, kiểm tra và chia nhỏ trên nhiều máy rất thường xuyên, nên các bí mật cũng bị rò rỉ. Tuy nhiên, đáng lo ngại hơn, chúng ta đừng quên rằng mã cũng có một bộ nhớ.
Bất kỳ cơ sở mã nào cũng được quản lý bằng một số loại hệ thống kiểm soát phiên bản (VCS), lưu giữ dòng thời gian lịch sử của tất cả các sửa đổi từng được thực hiện đối với nó, đôi khi kéo dài hàng thập kỷ. Vấn đề là những bí mật vẫn còn giá trị có thể được che giấu ở bất cứ đâu trên dòng thời gian này, mở ra một chiều hướng mới cho bề mặt tấn công.
Thật không may, hầu hết các phân tích bảo mật chỉ được thực hiện trên trạng thái hiện tại, sẵn sàng triển khai của một cơ sở mã. Nói cách khác, khi nói đến các thông tin xác thực nằm trong một cam kết cũ hoặc thậm chí là một chi nhánh chưa bao giờ được triển khai, những công cụ này hoàn toàn mù mờ.
Sáu triệu “bí mật” bị tải lên GitHub
Năm ngoái, GitGuardian đã phát hiện hơn 6 triệu bí mật bị rò rỉ, tăng gấp đôi con số so với năm 2020 bị đẩy lên GitHub. Trung bình, 3 trong số 1.000 liên quan tới thông tin xác thực, cao hơn năm ngoái 50%.
Một phần lớn những bí mật đó là cho phép truy cập vào các nguồn lực của công ty. Không có gì ngạc nhiên khi kẻ tấn công tìm cách giành được chỗ đứng trong hệ thống doanh nghiệp trước tiên sẽ xem xét các kho lưu trữ công khai của nó trên GitHub, sau đó xem xét các kho lưu trữ thuộc sở hữu của nhân viên. Nhiều nhà phát triển sử dụng GitHub cho các dự án cá nhân và có thể bị rò rỉ do nhầm lẫn thông tin đăng nhập của công ty (vâng, nó xảy ra thường xuyên!).
Với thông tin xác thực hợp lệ của công ty, những kẻ tấn công hoạt động với tư cách là người dùng được ủy quyền và việc phát hiện lạm dụng trở nên khó khăn. Thời gian để một thông tin đăng nhập bị xâm phạm sau khi được đẩy lên GitHub chỉ là 4 giây, có nghĩa là nó phải được thu hồi và xoay vòng ngay lập tức để vô hiệu hóa nguy cơ bị vi phạm. Vì mặc cảm, hoặc thiếu kiến thức kỹ thuật, chúng ta có thể thấy lý do tại sao mọi người thường đi sai đường để thoát khỏi tình trạng này.
Một sai lầm khác đối với các doanh nghiệp là dung túng sự hiện diện của các bí mật bên trong các kho lưu trữ không công khai. Báo cáo Sprawl State of Secrets của GitGuardian nhấn mạnh thực tế là các kho tư nhân che giấu nhiều bí mật hơn so với các kho lưu trữ công khai. Giả thuyết ở đây là các kho lưu trữ riêng tư mang lại cho chủ sở hữu cảm giác an toàn giả tạo, khiến họ bớt lo lắng hơn một chút về những bí mật tiềm ẩn ẩn trong cơ sở mã.
Công bằng mà nói, các đội bảo mật ứng dụng đều nhận thức rõ vấn đề. Nhưng khối lượng công việc phải thực hiện để điều tra, thu hồi và xoay vòng các bí mật được cam kết hàng tuần, hoặc đào bới trong nhiều năm lãnh thổ chưa được khám phá, chỉ đơn giản là quá sức.
Vi phạm hàng đầu … và phần còn lại
Tuy nhiên, có một sự cấp bách. Tin tặc đang tích cực tìm kiếm các “dorks” trên GitHub, đây là các mẫu dễ dàng nhận ra để xác định các bí mật bị rò rỉ. Và GitHub không phải là nơi duy nhất mà họ có thể hoạt động, bất kỳ cơ quan đăng ký nào (như Docker Hub) hoặc bất kỳ rò rỉ mã nguồn nào cũng có thể trở thành mỏ vàng để tìm vectơ khai thác.
Bằng chứng là, bạn chỉ cần xem xét các vi phạm được tiết lộ gần đây: một công cụ yêu thích của nhiều dự án mã nguồn mở, Codecov là một công cụ bảo vệ mã. Năm ngoái, nó đã bị xâm nhập bởi những kẻ tấn công đã giành được quyền truy cập bằng cách trích xuất thông tin xác thực tài khoản đám mây tĩnh từ hình ảnh Docker chính thức của nó. Sau khi truy cập thành công kho mã nguồn chính thức, họ có thể giả mạo tập lệnh CI và thu thập hàng trăm bí mật từ cơ sở người dùng của Codecov.
Gần đây hơn, toàn bộ cơ sở mã của Twitch đã bị rò rỉ, làm lộ ra hơn 6.000 kho Git và 3 triệu tài liệu. Mặc dù có rất nhiều bằng chứng chứng minh mức độ hoàn thiện nhất định của AppSec, nhưng gần 7.000 bí mật vẫn có thể được tiết lộ! Chúng ta đang nói về hàng trăm khóa AWS, Google, Stripe và GitHub. Chỉ một vài trong số chúng là đủ để triển khai một cuộc tấn công toàn diện vào các hệ thống quan trọng nhất của công ty. Lần này không có dữ liệu khách hàng nào bị rò rỉ, nhưng đó chủ yếu là may mắn.
Vài năm trước, Uber không may mắn như vậy. Một nhân viên đã vô tình xuất bản một số mã công ty trên một kho lưu trữ GitHub công khai, đó là của riêng anh ta. Tin tặc đã tìm ra và phát hiện thấy các khóa của nhà cung cấp dịch vụ đám mây cấp quyền truy cập vào cơ sở hạ tầng của Uber. Một vụ vi phạm lớn xảy ra sau đó.
Điểm mấu chốt là bạn không thể thực sự chắc chắn khi nào bị khai thác, nhưng điều bạn phải biết là các tác nhân độc hại đang theo dõi các nhà phát triển của bạn và họ đang tìm kiếm mã của bạn. Cũng nên nhớ rằng những sự cố này chỉ là phần nổi của tảng băng chìm và có thể còn nhiều vụ vi phạm khác liên quan đến bí mật không được tiết lộ công khai.
Lưu ý – Bài viết này được viết bởi Thomas Segura, người viết nội dung kỹ thuật tại GitGuardian. Thomas vừa là nhà phân tích vừa là nhà tư vấn kỹ sư phần mềm cho nhiều công ty lớn của Pháp.
Vina Aspire là Công ty tư vấn, cung cấp các giải pháp, dịch vụ CNTT, An ninh mạng, bảo mật & an toàn thông tin tại Việt Nam. Đội ngũ của Vina Aspire gồm những chuyên gia, cộng tác viên giỏi, có trình độ, kinh nghiệm và uy tín cùng các nhà đầu tư, đối tác lớn trong và ngoài nước chung tay xây dựng
Các Doanh nghiệp, tổ chức có nhu cầu liên hệ Công ty Vina Aspire theo thông tin sau:
Email: info@vina-aspire.com | Tel: +84 944 004 666 | Fax: +84 28 3535 0668 | Website: www.vina-aspire.com
Vina Aspire – Vững bảo mật, trọn niềm tin
Nguồn: https://thehackernews.com/2022/05/how-secrets-lurking-in-source-code-lead.html