🐔 “Ký sự NCSC” là chuyên mục bài viết về thời gian mình thực tập tại Trung tâm Giám sát An toàn Không gian mạng Quốc gia (National Cyber Security Center), thuộc Cục An toàn Thông tin, Bộ Thông tin và Truyền thông. Nghe tên Trung tâm thì khủng thế thôi, còn mình thì… gà, đến để “cục tác lá chanh”, học từ những bài học đơn giản nhất.
Trong chuyên mục này, mình sẽ chia sẻ những nhiệm vụ và bài tập mình đã trải qua, cũng như một vài kỷ niệm vui vẻ hay ho trong thời gian ở Trung tâm.
“Từ hôm vào đến giờ đã viết thêm được bài nào chưa ? Có bài nào về An toàn thông tin không đấy?”
— Anh Phạm Thái Sơn (Phó Giám đốc Trung tâm, Trưởng phòng Kỹ thuật Nghiệp vụ, aka. sếp tôi), trong một chiều cuối giờ làm đi săm soi các thực tập sinh
Đi thực tập, tôi tích cực nghe lỏm. Ngoài việc ngồi cày task được giao, tôi có một thú vui nho nhỏ: Học mót từ những người anh chị em. Thông qua những cuộc trò chuyện và đối thoại vu vơ, tôi nhặt nhạnh được vài thứ hay ho – dĩ nhiên là trong phạm vi tôi có thể hiểu được – thứ mà tôi vốn có lẽ sẽ lâu lắm mới tiếp cận đến nếu tôi chỉ biết ngồi và học theo lộ trình.
Bạn có thể cho là tôi tọc mạch. Nhưng mặc cả với việc học làm gì, khi xác định bản thân là người đến sau và đi chậm? Hơn nữa, thay vì tốn hàng giờ đào bới trên Internet, có những vấn đề mà ta được “thông não” đơn giản bởi ngồi nghe mọi người tranh luận. Thế nên tôi lắng nghe. Cũng chẳng phải tôi nghe lỏm đâu, những “chiến binh thầm lặng” này vẫn nói chuyện cho cả phòng nghe thấy ấy mà.
Tôi tin có những thứ bạn sẽ học được mà không cần phải mở miệng: Quan sát và lắng nghe, hai cái đó là quá đủ rồi.
Mào đầu dài dòng xíu. Món chính đây: Xin giới thiệu với bạn, những từ khoá hay ho mà tôi đã “mót” được trong thời gian ở Trung tâm. Nếu bạn quan tâm tới An toàn thông tin thì kiểu gì cũng sẽ gặp chúng thôi – tôi hy vọng chúng sẽ có ích.
Nếu bạn biết rồi thì… soi xem tôi viết sai cái gì rồi gạch đá phía dưới để tôi sửa nhé. Tôi vẫn chưa thoát được phận con gà. Đường làm hacker lỏ vẫn còn xa lắm…
Happy abbreviating!
1 – CVE
Mỗi lần tôi gợi ý thằng em tôi kiếm bạn gái, nó lại kể lại chiếc confession này từ trường cấp hai:
“Mọi người cho em tìm info một bạn nữ hôm vừa rồi có gặp ở sự kiện [X]. Bạn ấy đeo kính tròn, tóc đen, da trắng, mặc váy đồng phục.”
Sở dĩ nó cứ nhai lại câu chuyện đó là vì như cái bạn xin info kia, viết confession thế kia thì đố ai mà giúp được. Ý nó là, bạn gái là thứ mơ hồ, chung chung, chưa xác định. Không có định danh thì chịu, chưa tìm được!
Giờ tưởng tượng bạn là pentester, đang đi tìm em bug yêu dấu của đời bạn. Giả dụ như em ấy không có một mã định danh, mà chỉ được biết đến bởi những lời mô tả dài dòng và chung chung (như “đeo kính, tóc đen, da trắng”) thì tôi cá là bạn hơi bị chật vật để tìm được ẻm.

Vì lí do đó, CVE ra đời. CVE là viết tắt của Common Vulnerabilities and Exposures, một danh sách các lỗ hổng bảo mật và các mở rộng của phần mềm và hệ thống máy tính. Nó được quản lý bởi đội NCSC của Mỹ. Mỗi lỗ hổng được cung cấp một mã số duy nhất, cho phép bạn tìm kiếm nhanh chóng.
CVE được công bố công khai và hoàn toàn miễn phí.
Mỗi CVE đi với một định danh có format như sau:
CVE-[Năm]-[Số]
Trong đó:
- Năm được hiểu là năm mà lỗ hổng bảo mật được phát hiện ra và được báo cáo.
- Số biểu thị cho số thứ tự được CNA quy định.

Có người bảo tôi, trên con đường đi đến thành công, ngoài học hành kiếm chứng chỉ ra, publish con CVE đầu tay là một điều nên đặt mục tiêu. Người thành công nói gì chẳng đúng (!) 🐧, nên đây là ba điều kiện tối thiểu để lỗ hổng mới của bạn được công nhận là một CVE:
1. Có thể khắc phục lỗ hổng một cách độc lập
Lỗ hổng có thể được khắc phục một cách độc lập với bất kỳ lỗi nào khác mà không gây ảnh hưởng đến hệ thống chung.
2. Được xác nhận bởi nhà cung cấp bị ảnh hưởng hoặc được ghi chép lại
Bạn cần phải liên hệ với bên nhà cung cấp (bên mà bạn đã hack họ) và làm đủ mọi cách để họ phải tâm phục khẩu phục. Họ phải thốt lên “Tụi tao thừa nhận sự bại trận này!”, trước khi bạn có thể nộp một CVE mới.
Hoặc bạn cần có một báo cáo hay văn bản ghi chép chính thức đầy đủ về lỗ hổng.
3. Lỗ hổng ảnh hưởng đến một codebase
Một lỗ hổng chỉ tác động đến một codebase hoặc một sản phẩm bị ảnh hưởng. Một lỗ hổng bảo mật nêu ảnh hưởng đến nhiều codebase hoặc nhiều sản phẩm, nó sẽ có các CVE ID riêng biệt.
Chuyển từ chứng chỉ bằng cấp sang những thứ như CVE, bug bounty… để chứng minh năng lực bản thân là một ý tưởng không tồi. Song, bản thân điều này cũng hàm chứa trong chính nó – một vòng luẩn quẩn trong cái khó của việc khảo sát thực lực một cá nhân. Bạn đọc quan tâm có thể đọc thêm về tâm sự của anh tôi (@yeuchimse) tại đây:
2 – RCE
“Mày RCE được đến con này chưa?”
“Nó còn RCE được cả trên con máy đấy cơ mà”
Tôi cứ nghe anh phó phòng nói “rờ-xê-e, rờ-xê-e” mà không khỏi ngứa ngáy chân tay. Rốt cục thì nó là cái gì mà anh ấy cứ phải nói tắt thế nhỉ? Chả nhẽ tôi lại la lên “RCE là cái gì vậy anh!?”. May mà tôi đã không làm thế. Suýt thì tôi thành con ngố.
Vì RCE đơn giản là viết tắt của Remote Code Execution – Thực thi code từ xa.
Tức là bạn có thể thông qua một kĩ thuật nào đó để có thể đạt được quyền điều khiển trên máy người khác. Bạn có thể chạy bash, shell,… hoặc các ngôn ngữ kịch bản khác như Python, Perl, PHP… Bạn chẳng cần đụng vào máy của họ mà hoàn toàn có thể điều khiển hay xem được mọi thứ từ trên máy bạn.

Mấy vụ như webcam tự động bật tắt soi mói đời tư, hay app tự động thực hiện giao dịch này kia… thường là do RCE. Đây là một trong những phương thức tấn công nguy hiểm nhất vì kẻ tấn công có thể tùy ý cài đặt mã độc cũng như có thể đánh cắp các dữ liệu nhạy cảm của bạn.
Bạn đọc hứng thú có thể tìm hiểu thêm một ví dụ đơn giản của RCE và cách phòng tránh nó từ blog của anh Mạnh NV:
https://manhnv.com/2019/06/thuc-thi-ma-tu-xa-remote-code-execution
3 – Hall of Fame
Dịch hoa mỹ thì từ này có nghĩa là “Đại sảnh danh vọng”, nghe đến là kêu. Nó không chỉ xuất hiện trong mấy tựa game như League of Legends (sao 4 chữ này cứ làm tôi liên tưởng đến cái game ấy nhỉ…) mà hầu như lĩnh vực nào cũng có. Ở đại sảnh này, những cá nhân có thành tích xuất sắc được nêu tên và biểu dương như một sự ghi nhận khả năng của anh ta/ cô ta trong lĩnh vực tương ứng.
Ví dụ như việc bạn có trên trang web này đồng nghĩa với việc bạn đã “hắc” vào được một trang web thuộc mạng lưới của Liên hợp quốc và họ đã công nhận lỗ hổng mà bạn gửi cho họ:

Trong một ngày không nắng cũng chẳng mưa, sếp của chúng tôi bỗng dưng nhiệt tình chỉ bảo cách để “bơi ra biển lớn tìm kho báu”. Anh chỉ vào tên mình cùng một vài người quen khác trong đại sảnh, và động viên chúng tôi là hãy viết tên mình lên đó đi. “Bọn UN này dễ mà em”, anh gật gù, “chỉ hơi tốn thời gian tí thôi. Chúng mày học hành đầy đủ cả rồi là sẽ chiến được tất.”
“Mỗi tội là không có tiền. Chỉ có tên thôi.” Anh cười.
Tôi nghĩ chưa có tiền mà đã có fame thì vẫn là một thứ đáng để thử lắm.

Vì ít ra thì bạn vẫn flex được, ấy nhầm, bạn vẫn học được gì đó từ trải nghiệm này thôi. Như anh idol này của tôi chẳng hạn.
P/s. Bác nào đọc được bài này mà biết được danh tính của anh đại Red Dragon thì chỉ chỗ cho em với ạ 🙏 Em hỏi sếp về anh Rồng xanh, được bảo rằng đó là “người anh em” của Rồng đỏ, rằng anh Đỏ này là thế hệ đầu của bảo mật Việt. Em đào bới mãi không tìm được. Người ấy là ai…
4 – PoC
Proof of Concept hay tiếng Việt là Chứng minh khái niệm. Từ này hay ho ở chỗ, tôi tìm thấy nó ở khắp mọi ngành nghề và lĩnh vực, chứ không riêng gì An toàn thông tin.
Hiểu đơn giản thì PoC là việc bạn khẳng định được sự tồn tại cho một thứ gì đó. Trong kinh tế, PoC có thể là minh chứng cho sự thực tiễn và khả thi của một ý tưởng kinh doanh. Trong công nghệ phần mềm, PoC có thể là những gì bạn đem ra để thuyết phục rằng cái app của bạn nên được triển khai trong thực tế.

Trong ATTT, PoC là cách để bạn chứng minh lỗ hổng mà bạn tìm ra. Nó là một cuộc tấn công không gây phá hoại mà chỉ mang mục đích minh hoạ đơn thuần.
Tôi tìm thấy từ này trong Burp Suite, một công cụ mà tôi phải dùng khi cày bừa bài tập trên Portswigger Web Academy. Để qua được một bài, bạn phải tìm ra PoC tương ứng cho lab đó. Cách mà bạn cố gắng để tấn công hay khai thác lỗ hổng chính là đang tìm ra PoC. Ngoài bài tập ra, từ này sẽ còn đi với bạn dài dài trong công tác nghiệp vụ.
5 – CVSS
CVSS là viết tắt của Common Vulnerability Scoring System, hệ thống chấm điểm cho các CVE, thứ mà tôi vừa giải thích phía trên.
Không phải lỗ hổng nào cũng như lỗ hổng nào. Có bug xịn xò và đầy nguy hiểm, có bug thì “tép riu”, mấy đứa hacker lỏ cũng tìm ra được.

Số là phòng tôi hồi ấy có anh cũng đang học mô phỏng để thi bằng lái ô tô. Cùng cảnh ngộ nên cuối giờ tôi ở lại, sát cánh cùng anh luyện ngón bấm phím cách.
Ngoài câu chuyện ấy ra, cả ngày hôm đó anh chị phòng tôi hục hoặc về cách diễn đạt ngôn từ, cộng với cảnh sát chính tả lẫn nhau về một báo cáo an toàn thông tin cho một đơn vị mà chúng tôi phục vụ.
Anh sếp đấm tôi: “Có hiểu cái gì không mà nhìn?!” Tôi chỉ cười hì hì. Dĩ nhiên là em chẳng hiểu gì cả. Nhưng nhìn anh ấy làm, em hình dung được cách để viết cái báo cáo nên hồn. Tôi biết mấy món này cũng sẽ có template mẫu sẵn cả rồi, nhưng dù sao thì được nhìn trước cũng không tệ. Hoá ra ngoài việc tìm ra lỗ hổng, người ta còn phải chấm điểm cho từng cái.
Vì nguồn lực luôn là câu chuyện có hạn, nên chúng ta cần đánh giá để ưu tiên giải quyết trước những thứ cấp bách và nghiêm trọng hơn.
6 – 0-day, 1-day, n-day
Tưởng tượng bạn đi biển, không biết bơi nhưng vẫn ham hố lội nước. Bỗng dưng bão tố nổi lên, sóng xô vào bờ, biển cả chỉ chực đổ ập đến người bạn. Nước đến chân, bạn còn kịp để nhảy không?
Lỗ hổng 0-day là những lỗ hổng mà khi phát hiện ra thì bạn… chết đuối luôn rồi, khỏi nhảy. Gọi là 0-day, tức là bạn còn 0 ngày, chẳng còn tí thời gian nào để vá víu sửa lỗi. Bên có lỗi không biết về lỗ hổng, và cũng chưa có một ghi chép hay phương pháp vá khả dụng nào tính đến thời điểm đó.
Tìm được lỗ hổng 0-day là một thứ gì đó đầy hứa hẹn.
Những hacker mũ trắng thường sẽ được tưởng thưởng từ phía nhà cung cấp, khi người này nộp báo cáo chi tiết về lỗ hổng, lỗ hổng này sau đó được công nhận và được vá.
Những hacker mũ đen thì bán lại những lỗ hổng này cho những bên đang có nhu cầu khai thác, phạm tội,… để kiếm được lợi ích tài chính tương đương – hoặc thường là nhiều hơn – từ bên này.

Lỗ hổng 1-day là những con sóng “cùi bắp” với bạn khi bạn đã có trong tay khả năng bơi lội thượng thừa hay một bộ đồ bảo hộ. Chúng là những lỗ hổng được phát hiện khi đã có sẵn những biện pháp vá víu. Những giải pháp cho 1-day có thể đã được áp dụng một phần hay hoàn toàn chưa, nhưng tóm lại là đã có kịch bản ứng phó.
Đôi khi các lỗ hổng 1-day còn được gọi là n-day, vì thời gian để vá lỗ hổng thường sẽ không “thần tốc” đến vậy. Thời gian trung bình để vá lỗi, tuỳ thuộc vào mức độ và sự nghiêm trọng của lỗ hổng, rơi vào tầm 2 – 5 tháng.
7 – IOC & IOA
Bạn tưởng làm bảo mật là bạn sẽ không bị hack?
Tôi cũng tưởng thế, cho đến ngày phòng tôi xôn xao vì máy anh phó phòng dính mã độc. Thế mới lạ chứ lị! Tôi không hỏi cụ thể nguyên nhân vì sao. Chỉ thấy các anh tặc lưỡi. Haizz, hoá ra ai cũng có thể ăn hành vào một ngày nào đó…

Indicator of Compromise, hay IOC, là thứ bạn có trong một cuộc điều tra chứng cứ số về những dấu vết tấn công hệ thống.
Bản chất của IOC là thứ bạn tìm đến khi đã trong trạng thái bị động, “chữa cháy”. Tức là sự cố hay việc bị tấn công đã xảy ra rồi, và giờ thì mọi người đang loay hoay để tìm hiểu xem “đám cháy” đã lan đến đâu, ảnh hưởng tới những gì.

Một thứ đi kèm với IOC là IOA, Indicator of Attack. Đây là những dấu hiệu cho thấy một cuộc tấn công có thể đã và đang diễn ra. Nếu như IOC là đống tàn tro còn sót lại, IOA là đám khói bốc lên, mùi khét bạn ngửi thấy ở đâu đó, hoặc thậm chí là đống lửa đang cháy. Vẫn còn cơ hội cứu vãn, nếu như bạn phản ứng kịp thời.
Để chủ động phòng tránh nguy cơ bị tấn công, một tổ chức/ doanh nghiệp cần phải luôn tích cực rà soát và kiểm tra cả IOC lẫn IOA.