Thuật Toán Rung Động Trái Tim
Chương 33: Sự thật về vụ tấn công
Chương 33: Sự thật về vụ tấn công
Chương 33: Mã Nguồn Bẩn Và Dấu Vết Phản Công
Tám giờ sáng.
Nắng thu rực rỡ hắt qua những tấm rèm sáo bằng nhôm của tòa nhà văn phòng kính, xua tan hoàn toàn tàn dư của cơn bão số ba.
Xuân sải bước vào khu vực làm việc của đội dự án với một thần thái hoàn toàn khác biệt. Không còn vẻ căng thẳng, mệt mỏi hay nhợt nhạt của đêm hôm trước. Cô mặc một chiếc áo sơ mi lụa trắng cắt may sắc sảo, kết hợp với quần âu cạp cao, đôi giày cao gót màu đen gõ nhịp điệu dứt khoát và đầy quyền lực trên mặt sàn. Tuy nhiên, khi lướt ngang qua bàn làm việc của Project Manager – nơi vốn dĩ luôn có một ly cà phê nóng hổi và nụ cười chào buổi sáng của Trần Hoàng Đức – ánh mắt cô chợt thoáng lại. Chiếc bàn trống trơn, màn hình máy tính đã tắt ngóm.
Tờ đơn xin từ chức và bàn giao ESOP của anh đã chính thức có hiệu lực từ chiều qua. Anh đã thực sự bước ra khỏi dự án này với hai bàn tay trắng để nhường lại cho cô một bầu trời quang đãng.
Xuân siết chặt tay nắm cửa phòng Server Lab. Bầu trời này là do anh dùng máu thịt và gia tài để đánh đổi, cô tuyệt đối sẽ không để lũ kền kền kia dễ dàng cướp mất.
Cô đẩy cửa bước vào. Năm lập trình viên cốt cán của đội dự án, sau khi được về nhà ngủ một giấc ngắn, đã có mặt đầy đủ. Trong đó nổi bật nhất là Quốc – cậu coder Gen Z với mái tóc nhuộm highlight khói, trên tai lúc nào cũng đeo chiếc headphone chống ồn chà bá, đang gục mặt vào ly cà phê đen đặc.
"Tất cả chú ý," Xuân cất giọng, âm thanh sắc lạnh vang vọng khắp phòng Lab khiến mọi sự ngái ngủ lập tức bay biến. "Hệ thống đã ổn định, nhưng công việc của chúng ta chưa kết thúc. Hôm nay, tôi không cần các cậu viết code. Hôm nay, chúng ta sẽ đóng vai thám tử."
Quốc kéo tụt chiếc headphone xuống cổ, đôi mắt sáng rực lên sự tò mò. "Thám tử? Chị Xuân, chị định cho tụi em 'mổ xẻ' cái gì vậy?"
"Mổ xẻ lại toàn bộ chuỗi tấn công đêm hôm qua," Xuân bật màn hình máy chiếu trung tâm, mở ra một giao diện Kibana Dashboard đang hiển thị biểu đồ lưu lượng mạng với hàng chục triệu điểm dữ liệu. "Ban kiểm soát rủi ro và Hội đồng Quản trị đang muốn đổ lỗi cho sự yếu kém của đội kỹ thuật chúng ta để làm bia đỡ đạn cho báo chí. Tôi không chấp nhận điều đó. Tôi muốn các cậu lật tung từng byte log, truy vết ngược (reverse-trace) toàn bộ dải IP tấn công và tìm ra tận gốc rễ kẻ giật dây phía sau. Bắt đầu ngay đi!"
"Tuân lệnh sếp!"
Cả phòng Lab lập tức bùng nổ khí thế. Không còn gì kích thích những bộ óc hacker mũ trắng hơn là một cuộc đi săn kỹ thuật số. Tiếng gõ phím bắt đầu vang lên rào rào như mưa rào. Màn hình của sáu con người chia thành hàng chục cửa sổ Terminal CLI đen ngòm, những dòng chữ trắng, xanh, đỏ chạy dọc liên tục với tốc độ chóng mặt.
Xuân và Quốc kết hợp thành một tổ đội điều tra chính. Quốc phụ trách viết các đoạn script bằng Python để bóc tách tự động (parsing) hàng triệu dòng tệp nhật ký máy chủ (server logs). Cậu nhóc Gen Z này có một tư duy phân tích dữ liệu cực kỳ nhạy bén, tốc độ gõ phím nhanh đến mức chỉ còn thấy những ảo ảnh mờ ảo.
"Chị Xuân, em đã lọc qua lớp log của tầng tường lửa WAF," Quốc vừa gõ vừa nói nhanh. "Mạng lưới botnet tấn công DDoS hôm qua nhìn bề ngoài có vẻ là các IP rác đến từ nhiều quốc gia khác nhau. Nhưng khi em dùng thuật toán phân tích Deep Packet Inspection (DPI) để kiểm tra sâu vào phần header của các gói tin bị rớt (dropped packets), em phát hiện ra một điều rất bất thường."
"Điều gì?" Xuân kéo ghế xoay trượt tới cạnh bàn Quốc, mắt dán chặt vào màn hình của cậu.
"Tất cả các gói tin botnet này đều có một trường metadata ẩn (hidden metadata) trong phần TCP Header bị tùy biến sai chuẩn," Quốc bôi đen một chuỗi mã Hex trên màn hình. "Đây không phải là lỗi ngẫu nhiên. Đây là dấu vân tay (fingerprint) của một bộ công cụ tạo botnet thương mại. Và quan trọng hơn, em đã đo lường chỉ số TTL (Time to Live) của các gói tin này. Bọn chúng không hề đi qua các node mạng quốc tế như địa chỉ IP giả mạo hiển thị. Bọn chúng được định tuyến trực tiếp từ một trạm trung chuyển (hop) nội địa!"
Xuân nheo mắt, tư duy logic sắc bén lập tức bắt nhịp. "Em có thể truy vết ngược lại IP thực của trạm trung chuyển đó không?"
"Đợi em ba mươi giây," Quốc cắn môi, ngón tay múa trên bàn phím. Cậu gõ một loạt các lệnh truy vấn Elasticsearch phức tạp, kết hợp với công cụ dò quét traceroute tùy biến. "Bắt được mày rồi! Dải IP thực tế phát tán mã độc không nằm ở nước ngoài. Nó trỏ thẳng về một cụm máy chủ điện toán đám mây (Cloud Server) đặt tại khu công nghệ cao ngoại ô thành phố."
Quốc nhấn Enter, màn hình trả về một địa chỉ định danh máy chủ (Reverse DNS).
Hai chữ "GlobalTech-Staging" đập thẳng vào mắt hai chị em.
Xuân sững sờ. GlobalTech. Đó là một công ty công nghệ đối thủ, kẻ luôn cạnh tranh trực tiếp và khốc liệt nhất với dự án của họ trên thị trường. Việc một cuộc tấn công mạng quy mô lớn nhằm phá hoại hệ thống cốt lõi lại xuất phát từ chính máy chủ thử nghiệm của đối thủ cạnh tranh không thể nào là một sự trùng hợp ngẫu nhiên.
Nhưng điều khiến Xuân chấn động hơn cả là đoạn log tài chính mà cô đã bí mật trích xuất từ server ẩn đêm qua, cái mà cô định dùng làm vũ khí phản công. Trong hồ sơ dòng tiền mờ ám của các thành viên Hội đồng Quản trị, đặc biệt là ông Thịnh – Trưởng ban Kiểm soát rủi ro, có hàng loạt giao dịch rót vốn ngầm thông qua các quỹ đầu tư vỏ bọc (shell companies). Và điểm đến cuối cùng của những dòng tiền đó, không đâu khác, chính là GlobalTech.
"Ông ta vừa bán khống cổ phiếu của công ty nhà, vừa dùng sân sau là công ty đối thủ để tấn công phá hoại hệ thống, sau đó lợi dụng quyền lực ép sa thải đội ngũ kỹ thuật để hợp thức hóa việc cổ phiếu lao dốc..." Xuân lẩm bẩm, một nụ cười lạnh lẽo, sắc lẹm nở trên môi. "Một mũi tên trúng ba đích. Ông Thịnh, ông chơi một ván cờ quá tàn nhẫn rồi đấy."
Tuy nhiên, Xuân nhanh chóng lấy lại sự điềm tĩnh. Bằng chứng về IP tấn công và dòng tiền là chưa đủ. Hoàng Nam đã cài backdoor, nhưng để backdoor đó hoạt động và tạo ra lỗ hổng rò rỉ dữ liệu (Data Breach) cấp độ 4, bắt buộc phải có một kẽ hở (vulnerability) sâu trong tầng Base Code của hệ thống để chúng nâng hạng đặc quyền (Privilege Escalation).
Nếu kẽ hở đó là do team của cô viết, HĐQT vẫn có cớ để đổ lỗi cho năng lực của đội dự án, và sự hy sinh của Trần Hoàng Đức vẫn sẽ trở nên vô nghĩa. Cô phải tìm ra tận cùng sự thật.
"Quốc! Mở ngay kho lưu trữ Base Code," Xuân ra lệnh, giọng điệu căng thẳng như dây đàn. "Chúng ta phải tìm ra lỗ hổng Zero-day mà bọn chúng đã sử dụng để chọc thủng tầng ứng dụng. Nó nằm ở đâu?"
Cả phòng Lab chuyển sang trạng thái phân tích mã nguồn (Code Review) khẩn cấp. Sáu bộ óc siêu việt cùng nhau cày xới hàng triệu dòng lệnh.
Sau hơn ba giờ đồng hồ chìm trong sự ngột ngạt và tĩnh lặng, Quốc đột nhiên giơ tay lên, đập mạnh xuống bàn một cái "Chát".
"Chị Xuân! Chị ra đây xem cái này đi!" Quốc reo lên, giọng cậu hơi run rẩy vì kích động.
Xuân vội vã lao đến. Trên màn hình của Quốc đang mở công cụ Git Blame – một lệnh để xem lịch sử ai là người viết từng dòng code.
"Em đã dò theo luồng thực thi (execution flow) của mã độc hôm qua. Em phát hiện ra điểm mà chúng đã chọc thủng không hề nằm trong bất kỳ module nội bộ nào do team mình viết," Quốc dùng con trỏ chuột khoanh tròn một thư mục mã nguồn cũ kỹ. "Nó nằm ở một cổng giao tiếp bên thứ ba (Third-party API). Một thư viện mã nguồn đóng có tên là Legacy-Auth-Gateway-v1.2."
Xuân nhíu mày. Cô nhanh chóng gõ vài lệnh để kiểm tra dependency (các gói phụ thuộc) của hệ thống.
"Cái API này... nó dùng để xác thực các gói tin từ một hệ thống quản lý giao dịch cũ. Code của nó viết theo chuẩn từ năm năm trước, không hề có cơ chế chống Injection (tiêm nhiễm mã độc)," Xuân phân tích nhanh chóng. "Nhưng tại sao một cái API lỗi thời và rác rưởi thế này lại tồn tại trong hệ thống lõi (Core) của dự án mà không bị thay thế?"
"Đó mới là vấn đề!" Quốc nhanh tay mở hệ thống tài liệu quản lý dự án (Confluence). Cậu truy xuất lại những biên bản họp từ nhiều năm trước. "Chị xem lịch sử tích hợp đi. Cái API này được đưa vào hệ thống từ tận 2 năm trước, tức là lúc đó chị còn chưa về làm Tech Lead, và anh Đức cũng chưa xuất hiện với tư cách PM."
Xuân cúi sát màn hình, đọc lướt qua những văn bản điện tử có chữ ký số. Đồng tử cô giãn to, một cơn chấn động chạy dọc sống lưng, mang theo sự tức giận tột độ xen lẫn niềm hả hê khó tả.
Tài liệu ghi rõ: Gói API Legacy-Auth-Gateway này là một sản phẩm phần mềm bản quyền (License Software) được mua từ một công ty đối tác. Việc tích hợp nó vào hệ thống lõi là yêu cầu bắt buộc (Mandatory Requirement) do chính Ban kiểm soát rủi ro của Tập đoàn mẹ ép xuống, viện cớ là để "đồng bộ hóa quy trình quản trị doanh nghiệp". Tất cả các cảnh báo rủi ro bảo mật của đội kỹ thuật tiền nhiệm đều bị phớt lờ và bị đè bẹp bằng quyền lực hành chính.
Đáng nói hơn, công ty đối tác cung cấp cái API phế thải đó lại là một chi nhánh con thuộc sở hữu chéo của ông Thịnh. Ông ta đã ép dự án phải sử dụng phần mềm của mình để trục lợi từ tiền bản quyền hàng năm, một hình thức tham nhũng tinh vi và hợp pháp hóa dòng tiền. Hậu quả là, ông ta đã cắm một quả bom nổ chậm vào giữa hệ thống lõi từ hai năm trước. Và đêm hôm qua, thông qua backdoor của Hoàng Nam, ông ta và công ty sân sau GlobalTech đã châm ngòi quả bom đó, tạo ra vụ rò rỉ dữ liệu chấn động.
Bức tranh sự thật đã hoàn toàn sáng tỏ. Từng mảnh ghép logic ăn khớp với nhau một cách hoàn hảo đến rợn người.
Lỗ hổng bảo mật không thuộc về mã nguồn do team Xuân phát triển. Năng lực của đội ngũ kỹ thuật là hoàn toàn trong sạch. Bản CV của Xuân không hề có bất kỳ một vết nhơ nào. Kẻ gây ra thảm họa, kẻ phản bội công ty, kẻ tàn phá dự án, lại chính là những kẻ đang ngồi chễm chệ trên ghế Hội đồng Quản trị, mượn cớ rủi ro để vắt kiệt mồ hôi nước mắt của những lập trình viên đêm ngày bán mạng cho dự án.
"Tụi nó ép tụi mình xài hàng rác, bắt tụi mình thức trắng đêm đi dọn rác, rồi cuối cùng tụi nó đòi đuổi việc tụi mình để chùi mép?" Quốc phẫn nộ đập bàn, tháo tung chiếc tai nghe quăng sang một bên. Cậu thanh niên Gen Z vốn dĩ chỉ biết cắm mặt vào máy tính giờ đây cũng không thể kiềm chế được cơn tức giận bừng bừng.
Cả phòng Lab vang lên những tiếng chửi thề phẫn uất. Nhưng Xuân thì không.
Cô đứng thẳng dậy, vuốt lại nếp áo sơ mi trắng. Khuôn mặt cô tĩnh lặng như mặt hồ trước cơn bão, nhưng sâu thẳm trong đôi mắt đen láy là ngọn lửa của một nữ hoàng băng giá đang chuẩn bị giáng xuống đòn trừng phạt tàn khốc nhất.
Cô đã có trong tay tất cả. Dấu vết IP tấn công từ GlobalTech, dòng tiền bán khống cổ phiếu của Ban kiểm soát, và bằng chứng kỹ thuật không thể chối cãi về cái API bên thứ ba. Tổ hợp những thứ này tạo thành một quả bom hạt nhân đủ sức san phẳng bất kỳ chiếc ghế giám đốc nào trong Tập đoàn mẹ.
"Lưu trữ toàn bộ bằng chứng. Sao lưu ra ba bản USB vật lý độc lập. Mã hóa toàn bộ dữ liệu log và đẩy lên cloud ẩn," Xuân ra lệnh, giọng nói trầm tĩnh nhưng uy lực vô song. "Quốc, cậu in toàn bộ các biên bản tích hợp API và bằng chứng IP ra giấy. Đóng dấu giáp lai phòng Lab."
"Sếp định làm gì?" Quốc hỏi, tay vội vã thao tác lệnh in.
Xuân quay người, bước đến cửa kính phòng Lab, nhìn xuyên qua những ô rèm sáo ra phía bầu trời rực nắng của Nam Thành. Ánh mắt cô lóe lên sự quyết tâm, sự kiêu hãnh và một tình yêu thương mãnh liệt dành cho người đàn ông đã bằng lòng vứt bỏ tất cả vì cô.
Đức đã dùng sự nghiệp của mình để bảo vệ danh dự cho cô. Anh đã xây dựng một tấm khiên bất hoại để che chắn cho đội dự án. Giờ đây, khi sự thật đã nằm gọn trong lòng bàn tay, cô sẽ dùng chính chuyên môn của mình, dùng những bằng chứng IT không thể chối cãi này để chiến đấu. Cô sẽ xé nát cái HĐQT đạo đức giả kia, cô sẽ rửa sạch mọi oan khuất cho đội ngũ, và quan trọng nhất...
Cô sẽ lấy lại toàn bộ cổ phần ESOP, lấy lại danh dự, và giành lại người đàn ông của đời mình.
"Làm gì ư?" Xuân mỉm cười, một nụ cười rạng rỡ và sắc bén như một thanh gươm vừa được tuốt vỏ. "Chúng ta chuẩn bị đi họp. Đã đến lúc tôi phải đi tính sổ với một vài kẻ, và đi đón Sếp của các cậu về rồi."