Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2300 bài viết · Website
Bảo mật 02/09/2026 9 phút

Một chuỗi 30 ký tự giữ lõi CPU bận 20 giây, 49 KB nở thành 50 MB — DoS tầng ứng dụng không cần lưu lượng, nó cần chi phí bất đối xứng

DoS thường được hình dung là cơn lũ lưu lượng. Nhưng loại nguy hiểm hơn chỉ cần một request nhỏ mà đắt: regex 30 ký tự làm máy chủ bận 20 giây, 49 KB nén giải ra 50 MB, chính cơ chế băm mật khẩu chậm trở thành vũ khí. Bốn kiểu bất đối xứng, đo thật.

Bảo mật 02/09/2026 9 phút

SAST bắt eval trong hàm chết mà DAST không bao giờ chạm tới; DAST thấy traceback rò ra mà SAST không nằm ở dòng nào — chọn một là tự tin sai chỗ

SAST đọc mã mà không chạy, DAST tấn công app đang chạy mà không đọc mã. Tôi gài lỗ hổng vào một app rồi chạy bandit và một DAST tự viết: mỗi công cụ bắt đúng cái công cụ kia mù, gần như bù trừ hoàn toàn — SAST cho danh sách *khả năng*, DAST cho danh sách *thực tế*, và một câu SQLi lệch khuôn thì cả hai đều hụt.

Mạng 02/09/2026 9 phút

Vì sao một luồng tải đơn không lấp nổi đường 10 Gbit — và con số vàng để gỡ nút thắt

Ở RTT cố định, thông lượng tăng tuyến tính theo cửa sổ TCP cho tới khi đụng trần băng thông rồi đứng lại. Điểm gãy đúng bằng tích băng thông–độ trễ (BDP). Dưới BDP là phí băng thông, trên BDP là phí RAM — điểm ngọt nằm ngay tại đó. Đo thật, kèm bẫy benchmark trên veth trần giấu mất nửa sự thật.

Bảo mật 02/09/2026 9 phút

Sửa một byte là chữ ký gãy, kẻ tấn công tự ký lại vẫn trượt — nhưng cái checksum SHA256 bên cạnh file tải về thì ai sửa file cũng tính lại được

Checksum và chữ ký trông na ná nhau — đều là một chuỗi băm để kiểm — nhưng khác nhau ở toàn bộ vấn đề: cái nào cần bí mật để tạo ra. Tôi dựng quy trình ký Ed25519 và tấn công ba cách: sửa byte lộ, tự ký lại lộ; rồi cho thấy checksum chống được tai nạn nhưng vô dụng trước kẻ kiểm soát nơi phát hành, vì nó không đòi bí mật gì cả.

Bảo mật 02/09/2026 10 phút

yaml.load từng chạy lệnh shell của kẻ tấn công chỉ với một dòng — bản vá đổi mặc định sang an toàn, nhưng tôi tự mở lại lỗ hổng bằng đúng cách 'sửa lỗi' ai cũng làm

'Vá thì cứ nâng phiên bản là xong' bỏ qua ba câu hỏi thật: vá sửa cái gì, lỗ hổng có biến mất hẳn không, và bạn phơi nhiễm bao lâu giữa lúc vá ra và lúc thật sự dùng nó. Tôi tái dựng RCE của PyYAML: bản cũ dính, bản mới chặn — rồi vô tình dán lại đúng lỗ hổng bằng cách thêm Loader=yaml.Loader để hết TypeError, đúng cái bẫy khiến lỗ này sống sót qua bản vá.

DevOps 02/09/2026 10 phút

avg(p99) trên bảng điều khiển của bạn báo 357 ms khi sự thật là 1.566 ms — nhẹ đi 4,4 lần đúng lúc một máy đang chết

Bốn cách tính p99 trên cùng dữ liệu cho bốn kết quả. Nghịch lý: p90 sai 19,7% còn p99 chỉ sai 2,5%. Và avg(p99) — công thức có mặt trên vô số dashboard — báo nhẹ sự cố đi 4,4 lần đúng lúc bạn cần nó nhất, vì phân vị không cộng được.