Xin thứ lỗi vì tiêu đề có hơi click-bait xíu, thực ra bài này chỉ xoay quanh câu chuyện mình đã và đang viết blog như nào chứ ko hẳn là 1 bài self-help, khuyên giúp các bạn có thể viết blog tốt hơn hay gì đâu╮(╯▽╰)╭
Mình bắt đầu viết sớm nhất từ năm 2016, hồi đó mình mới bắt đầu chơi CTF nên nội dung chủ yếu là về writeup của các challenge mình làm được. Từ những năm 2017, 2018 trở đi thì tần suất có tăng thêm do mình đã đi làm, nội dung xoay quanh các lỗ hổng mình gặp trong quá trình làm việc.
Ngày đó chưa biết tới medium, mình dùng tới facebook Notes để lưu trữ các bài này dưới dạng note, tới năm 2020 facebook khai tử Notes thì coi như tất cả các bài cũ của mình bị mất tích hết luôn.
# Why ?
Thời điểm mình bắt đầu viết blog là khi nhận ra mình có vấn đề gì đó về trí nhớ. Cùng 1 vấn đề đó nhưng chỉ trong vòng khoảng 3 tuần là mình quên hết, mọi thứ lại thành như mới. Cho nên mình viết lại mọi thứ mà mình từng làm, trên blogspot, github, khi thì trên facebook notes. Mặc dù nó không giúp mình giải quyết vấn đề về trí nhớ, nhưng ít nhất nó cũng được lưu vào đâu đó và có thể được tìm ra dễ hơn là kêu mình nhớ lại ╮(╯▽╰)╭…
Và sau này, đôi khi tìm kiếm gì đó quanh 1 vòng google thì lại trỏ về chính bài blog mà mình từng viết năm nào, bấm vào đọc thì lại như mới =))).
Lý do tiếp theo là vào thời những năm 2015–2018, trước khi đạo luật về an ninh mạng của Trung Quốc đại lục bị thắt chặt, nổi lên rất rất nhiều các bài viết kỹ thuật chất lượng của researcher Trung Quốc, ví dụ như các bài phân tích 0day, 1day, các kỹ thuật mới, các xu hướng mới trong ngành cyber security.
Các khu vực khác trên thế giới cũng có nhiều người viết về kỹ thuật, tuy nhiên không nhiều, không chi tiết và nhanh như tụi tàu. Họ chia sẻ rất nhiều, tinh thần chia sẻ của mấy anh Tàu khựa phải nói là đáng khâm phục, họ không ngại viết, và viết rất có tâm. Ngay cả một đứa sinh viên bập bõm vào ngành như mình đọc qua còn có thể đọc và hiểu được cái bản chất.
Chỉ có duy nhất 1 điều mình không thích là họ viết 100% bằng tiếng tàu, đôi khi google translate không thể load được trang, có khi thì dịch được nhưng ngữ nghĩa của nó rất khác so với việc dịch từ tiếng Anh (giống như việc mình dịch từ tiếng Việt sang tiếng Anh vậy).
Và khi đem ra so sánh với tình hình ở Việt Nam mình mới thấy sự khác biệt rõ ràng, blog viết bằng tiếng Việt vẫn có, nhưng khá ít, khó tìm và không update như bên nước bạn.
Đó là khi mình quyết định viết blog nhiều hơn, hoàn toàn bằng tiếng Việt, hy vọng sẽ đủ để lấp đầy vào khoảng trống này. Và cũng hy vọng là để khơi dậy phong trào viết lách trong ngành cybersec ở Việt Nam, giúp cho cộng đồng có thể mạnh được như bên nước bạn!
Sau này khi viết lách được một thời gian, mình nhận ra còn có 1 lợi ích mang ý nghĩa tích cực hơn cho chính mình …
# Benefit
Thời điểm mình viết blog, mình cũng xác định sẵn từ đầu đó là mình chỉ viết những gì mình biết, hay rõ hơn là viết một cách chủ quan, những gì mình biết chưa chắc đã là chính xác so với thực tế.
Chẳng vậy mà sau một vài bài đầu tay, đã có các cmt trên fb nhắc mình sửa cái này sửa cái kia. Nhờ vậy mà mình biết cách sử dụng IntellIJ IDEA để remote debug liferay, chứ ko là giờ này mình vẫn đang dùng Eclipse ╮(╯▽╰)╭.
Đây là thứ lợi ích lớn nhất mình nhận ra trong quá trình viết blog. Thay vì phải nhờ ai đó cầm tay chỉ việc, mình chỉ cần viết điều đó ra theo đúng ý hiểu của mình, sẽ có một ai đó sẵn sàng vào nắn lại và dạy bạn free ( ͡° ͜ʖ ͡°).
Việc nhận feedback từ người khác là rất quan trọng, nhất là khi tự học trong ngành này. Mình không thể đọc được tất cả các tài liệu, cover mọi ngõ ngách, tips tricks của vấn đề, hãy tìm cách để “moi móc” nó từ người có kinh nghiệm ( ͡° ͜ʖ ͡°).
Nhờ vậy mà trong khoảng thời gian ngắn, từ 2019->2020, mình đã học được rất nhiều ở mảng Java Security Researcher nói riêng.
Cái lợi ích tiếp theo đó là sự nhìn nhận của cộng đồng.
Yeah, sự thực là khi mà bạn viết quá nhiều thứ mà cộng đồng đang quan tâm tới và trong một thời gian dài thì đây là điều không thể tránh khỏi.
Cách nhìn nhận của cộng đồng cũng có 2 hướng:
- tích cực
- và tiêu cực
Với mình thì có đủ cả hai yếu tố trên, phần tích cực thì sẽ tập trung vào nội dung mình viết ra sao, có giúp gì cho họ được hay không, và rồi lại retweet với nội dung “CoNGr4t bro …!” “AmZing goOd jOb …”. Có một số họ thực sự đọc, và có vấn đề gì thì họ nhắn trực tiếp cho mình để hỏi, nhiều khi họ cũng góp ý để bài viết được tốt hơn (respect!).
Phần tiêu cực còn lại cũng ko ít, có khá nhiều người comment một cách vô tri “idoor, djnk, vjp pro”. Có thể với người khác thì đây là một lời khen, nhưng với mình thì nó lại mang một ý nghĩa tiêu cực, mỉa mai mình hơn
Có vài người thì chỉ xem phần cuối bài có PoC để đem đi scan hay không (cả người Việt lẫn nước ngoài), người thì mỉa mai cách mình viết. Thực ra thì mình phải cảm ơn kha khá người như vậy, vì nhờ đó mà mình cũng nhận ra được lỗi sai và cải thiện trong các bài sau này.
Mấy bài gần đây thì không thấy feedback xấu/tốt gì từ ai nữa, mình đã mất công viết lách thì hy vọng reader có thể bỏ chút thời gian đọc và comment để mình sửa sai, :( chứ cứ để như vậy là dễ thành tự mãn lắm.
Một cái lợi ích của viết lách nữa là sau này khi search lại thì nội dung đó đã được index lên google bằng tiếng Việt rồi. Nó có thể giúp chính mình khi đó hoặc người đi sau có thể dễ dàng đọc hiểu kiến thức hơn, như vậy cũng là góp phần nào cho sự phát triển của cả cộng đồng rồi!
# How
Cuối cùng là quay trở lại câu hỏi ở title: Viết như thế nào?
Cách viết của mình nó hơi giống như là đang kể lại một câu chuyện vậy.
Câu chuyện sẽ được kể lần lượt:
- Mở đầu,
- Vấn đề,
- Khó khăn,
- Cách giải quyết,
- Kết quả …
Mô típ như vậy sẽ bớt khô khan và dễ tiếp cận hơn cho người mới. Vì mình quan niệm là tất cả người đọc đều sẽ đều trắng trơn, không biết gì về vấn đề mình đang viết luôn.
Nội dung cũng phải được chọn lọc cho kỹ lưỡng, tất cả những thứ gì được đề cập tới trong bài thì cũng phải được chú thích cặn kẽ nguồn gốc, tránh trường hợp người đọc phải mở google và tìm kiếm về thứ đó, như vậy sẽ làm đứt mạch đọc, rất là mất hứng.
Đôi khi trong quá trình chú thích thêm các ý đó mình mới nhận ra là mình không biết rõ về vấn đề này đến vậy, lại có thêm một khoảng thời gian để đọc kỹ về nó và chắt lọc thông tin, từ đó giúp mình bổ sung và hoàn thiện kiến thức hơn.
Các ý chính trong bài cũng cần phải được nối với nhau sao cho liền mạch, không nên jump từ phần này qua phần khác mà không có lý do.
Một câu chuyện thì cũng nên có các hình minh họa, ở đây cũng tương tự, các hình ảnh hay code khi thêm vào nên được chú giải kỹ lưỡng: phần này phần kia để làm gì. Nếu chỉ paste 1 đống code vào đó rồi để người đọc tự đoán thì rất mất thời gian của người đọc, hãy tối ưu bằng cách note các dòng lại và giải thích flow ở ngay sau đó!
Từ ngữ dùng trong bài: nên sử dụng những từ ngữ phổ thông, dễ hiểu nhất. Vì vấn đề vốn dĩ đã phức tạp rồi, không nên để ngôn ngữ trở thành ngăn cản quá trình đọc hiểu.
Có nhiều thứ cần lưu ý như vậy, nhưng trên hết vẫn là hãy tự tin viết theo ý hiểu của mình, và làm sao để sau này chính mình đọc lại mà vẫn hiểu, như vậy có thể được coi là thành công rồi!
Một điều nữa là đừng ngại public những gì mình viết cho người khác đọc, đó mới là cái quan trọng nhất của việc viết lách, đừng sợ sai. Sai lầm thì chắc chắn ai cũng sẽ mắc phải, và ở vị thế chủ quan thì rất khó để tự mình nhận ra. Hãy để người khác giúp bạn ( ͡~ ͜ʖ ͡°).
Và không mong gì hơn là sẽ có nhiều người viết hơn nữa!
#vicongdong
p/s: Đọc đâu đó đc câu này: “These scars we have, make us who we are”
p/s2: Thêm cái ảnh để lấy feature image thoy hehe
__Jang__