MISSIONS – Cấp độ tiếp theo của đào tạo bảo mật dành cho nhà phát triển tương tác

Nếu các tổ chức muốn nghiêm túc hóa vấn đề bảo mật phần mềm, họ cần trao quyền cho các kỹ sư của mình đóng vai trò phòng thủ chống lại các cuộc tấn công mạng khi họ tạo mã của mình.

Vấn đề là, các nhà phát triển đã không có lời giới thiệu đầy cảm hứng nhất về đào tạo bảo mật trong nhiều năm và bất cứ điều gì có thể làm để làm cho trải nghiệm của họ trở nên hấp dẫn, hiệu quả và thú vị hơn sẽ trở thành động lực mạnh mẽ giúp họ có được sự bảo mật có giá trị kỹ năng viết mã.

Và sau khi dành thời gian quý báu để làm chủ những khả năng mới có thể giúp đánh bại những kẻ tấn công trong trò chơi của riêng họ, cơ hội để kiểm tra những sức mạnh mới này không dễ dàng tìm thấy trong một môi trường an toàn.

Vậy, một kỹ sư thiện chiến, hiểu biết về an ninh để làm gì?

Một tính năng mới được phát hành trên nền tảng Secure Code Warrior, có tên là ‘Nhiệm vụ, ‘là một hạng mục thách thức nâng cao người dùng từ việc nhớ lại kiến ​​thức bảo mật đã học đến việc áp dụng nó trong môi trường mô phỏng thế giới thực.

Phương pháp tiếp cận theo mô hình vi mô, được dàn dựng này xây dựng các kỹ năng mã hóa mạnh mẽ, an toàn phù hợp với công việc và giải trí hơn nhiều so với (theo chiều dọc) xem các video đào tạo liên tục trong nền của một ngày làm việc.

‘Nhiệm vụ’ có sẵn đầu tiên là một mô phỏng của vi phạm GitHub Unicode. Nó không đơn giản như nó có thể xuất hiện trên bề mặt, và đó là một lỗ hổng thực sự thông minh rất thú vị để mổ xẻ. Nhà nghiên cứu bảo mật 0xsha đã làm một nghiên cứu tình huống toàn diện về cách có thể sử dụng cùng một lỗi này để khai thác Django theo cách chuyển đổi trường hợp đồng thời cho thấy hành vi của lỗ hổng bảo mật có thể thay đổi như thế nào giữa các ngôn ngữ lập trình.

Còn rất nhiều điều cần khám phá về vấn đề bảo mật này và đây là một nơi tuyệt vời để bắt đầu.

Va chạm Head-On (Bản đồ trường hợp) của GitHub

Trong một bài viết trên blog từ ngày 28 tháng 11 năm 2019, nhóm nghiên cứu bảo mật Wisdom đã báo cáo về một lỗi bảo mật mà họ đã phát hiện trên GitHub. Họ vạch ra cách họ có thể sử dụng Va chạm lập bản đồ trường hợp trong Unicode để kích hoạt gửi email đặt lại mật khẩu đến địa chỉ email sai (hoặc nếu bạn đang nghĩ như kẻ tấn công, địa chỉ email do kẻ đe dọa lựa chọn).

Mặc dù một lỗ hổng bảo mật không bao giờ là tin tốt, nhưng các nhà nghiên cứu bảo mật đã làm rõ điều đó sẽ cung cấp một số thương xót – chưa kể đến cơ hội ngăn chặn thảm họa – nếu họ phát hiện ra các lỗi có thể khai thác được trong cơ sở mã. Các blog và báo cáo của họ thường mang lại hiệu quả đọc tuyệt vời và thật tuyệt khi tìm hiểu về một lỗ hổng mới và cách nó hoạt động.

Để chuyển sang cấp độ tiếp theo của năng lực mã hóa an toàn, nó không chỉ siêu mạnh mẽ để tìm ra các lỗ hổng phổ biến mà còn phải có một môi trường thực hành an toàn để hiểu cách khai thác chúng.

Hãy tiếp tục đọc để khám phá cách Khai thác Va chạm Lập bản đồ Trường hợp trong Unicode, nó trông như thế nào trong thời gian thực và cách bạn có thể sử dụng tư duy của một nhà nghiên cứu bảo mật và tự mình thử nó.

Unicode: Không chỉ là biểu tượng cảm xúc

“Unicode” có thể không nằm trong tầm ngắm của người bình thường, nhưng rất có thể hầu hết mọi người đều sử dụng nó dưới một số hình thức hàng ngày. Nếu bạn đã sử dụng trình duyệt web, bất kỳ phần mềm nào của Microsoft hoặc gửi một biểu tượng cảm xúc, thì bạn đã gần gũi và cá nhân với Unicode.

Đó là một tiêu chuẩn để mã hóa và xử lý văn bản nhất quán từ hầu hết các hệ thống viết trên thế giới, đảm bảo rằng mọi người có thể (kỹ thuật số) thể hiện bản thân bằng cách sử dụng một bộ ký tự duy nhất.

Như hiện tại, có hơn 143.000 ký tự, vì vậy bạn sẽ bị che phủ cho dù bạn đang sử dụng þ trong tiếng Iceland hay không dấu chấm ı của Thổ Nhĩ Kỳ, hay bất cứ thứ gì ở giữa.

Do khối lượng lớn các ký tự mà Unicode có trong bộ của nó, một cách chuyển đổi các ký tự sang một ký tự “tương đương” khác là cần thiết trong nhiều trường hợp. Ví dụ, có vẻ hợp lý nếu bạn chuyển đổi một chuỗi Unicode có dấu chấm “ı” thành ASCII, thì nó sẽ đơn giản biến thành “i”, phải không?

Với khối lượng ký tự lớn, mã hóa trở nên tuyệt vời nhiệm vụ tiềm ẩn thảm họa.

Xung đột ánh xạ trường hợp trong Unicode là một lỗ hổng logic nghiệp vụ và có thể dẫn đến việc chiếm tài khoản của các tài khoản không được 2FA bảo vệ. Kiểm tra ví dụ về lỗi này trong một đoạn mã thực:

Logic diễn ra như sau:

  1. Nó chấp nhận địa chỉ email do người dùng cung cấp và viết hoa nó cho nhất quán.
  2. Nó kiểm tra xem địa chỉ email đã tồn tại trong cơ sở dữ liệu hay chưa.
  3. Nếu có, thì nó sẽ đặt một mật khẩu tạm thời mới (nhân tiện, đây không phải là phương pháp hay nhất. Thay vào đó, hãy sử dụng liên kết có mã thông báo cho phép đặt lại mật khẩu)
  4. Sau đó, nó sẽ gửi một email đến địa chỉ được tìm nạp ở bước 1, chứa mật khẩu tạm thời (đây là cách thực hành rất kém, vì rất nhiều lý do. Rất tiếc.)

Hãy xem điều gì xảy ra với ví dụ được cung cấp trong bài blog gốc, trong đó người dùng yêu cầu đặt lại mật khẩu cho email John@GıtHub.com (lưu ý i không có dấu chấm Thổ Nhĩ Kỳ):

  1. Logic chuyển đổi John@Gıthub.com thành [email protected]
  2. Nó tìm kiếm điều đó trong cơ sở dữ liệu và tìm thấy người dùng [email protected]
  3. Nó tạo mật khẩu mới và gửi đến John@Gıthub.com

Lưu ý rằng quá trình này kết thúc việc gửi email có độ nhạy cảm cao đến sai địa chỉ email. Giáo sư!

Làm thế nào để loại bỏ con quỷ Unicode này

Khía cạnh thú vị của lỗ hổng cụ thể này là có nhiều yếu tố khiến nó dễ bị tổn thương:

  1. Hành vi truyền Unicode thực tế,
  2. Logic xác định địa chỉ email để sử dụng, tức là địa chỉ email do người dùng cung cấp, thay vì địa chỉ đã tồn tại trong cơ sở dữ liệu.

Về lý thuyết, bạn có thể khắc phục sự cố cụ thể này theo hai cách, như được xác định trong bài đăng trên blog từ Wisdom:

  1. Chuyển đổi email thành ASCII với chuyển đổi Punycode,
  2. Sử dụng địa chỉ email từ cơ sở dữ liệu thay vì địa chỉ do người dùng cung cấp.

Khi nói đến việc tăng cường phần mềm, tốt hơn hết là không nên bỏ qua cơ hội nào, sử dụng càng nhiều lớp phòng thủ càng tốt. Đối với tất cả những gì bạn biết, có thể có nhiều cách khác để khai thác mã hóa này – chỉ là bạn chưa biết về chúng. Bất cứ điều gì bạn có thể làm để giảm thiểu rủi ro và đóng các cửa sổ có thể để ngỏ cho kẻ tấn công đều có giá trị.

Sẵn sàng thực hiện nhiệm vụ của riêng bạn?

Đã đến lúc nâng các kỹ năng mã hóa và nhận thức an toàn của bạn lên một tầm cao mới. Trải nghiệm lỗ hổng GitHub này trong một mô phỏng an toàn, nhập vai, nơi bạn có thể thấy tác động của mã xấu trong cả bối cảnh giao diện người dùng và phụ trợ. Những kẻ tấn công có lợi thế hơn, vì vậy hãy thậm chí cả sân chơi và áp dụng các kỹ năng thực sự với một cú đấm phản công trắng.

Content Protection by DMCA.com
GenVerge | Trang thông tin dành cho tín đồ công nghệ Việt Nam
Logo
Đăng ký
Liên hệ Admin để kích hoạt tài khoản Cộng Tác Viên
Quên mật khẩu