Monday, June 8, 2009

reality check



vẫn chưa hoàn toàn hồi phục sau hai ngày đêm chiến đấu, và ngày hôm trước đó thì tự dưng mất ngủ. tóm gọn lại thì đã đạt được mục tiêu tự đề ra là lọt vào top 20 và giải được mấy cái bài mật mã, cũng đáng công sức học hành. đồng thời cũng lòi ra thêm rất nhiều cái phải làm, phải học.

hahah lần nào cũng thế, thi thố xong là lòi ra một đống thứ còn chưa hiểu, chưa rõ, chưa biết, hay là biết rồi mà chưa làm thử, bây giờ đề nó ra ngay chỗ đó, nhào vào làm thì mất thời gian quá trời. kinh nghiệm là mai mốt coi cái gì, thì phải làm luôn, để mà hiểu rõ bản chất, chứ chỉ hiểu lý thuyết, mà kô biết hiện tượng thật tế nó ra sao, thì sẽ không làm được gì, thậm chí là kô hiểu mà cứ tưởng là hiểu.

cái đó cũng là sự khác biệt của ông richard feynman so với rất nhiều người làm vật lý khác. xuyên suốt trong cuốn sách của ông mà mình có dịp nói ở đây rồi đó, là những ví dụ về việc làm nghiên cứu lý thuyết không có nghĩa là xa rời thực tế, mà ngược lại càng phải bám chặt thực tế, từ thực tế mà đi lên.

mỗi khi đọc một bài báo về các kết quả mới trong vật lý lý thuyết, ông đều tự hình dung ra hiện tượng tự nhiên mà bài báo mô tả. mỗi khi có sinh viên muốn nhờ ông tư vấn về các công thức hay chứng minh nào đó, ông đều yêu cầu họ phải mô tả ít nhất một hiện tượng thực tế của cái công thức đó.

quay lại với cuộc thi. nó là defcon ctf, cuộc thi hacking lớn nhất và lâu đời nhất thế giới. nó gồm 2 vòng, vòng loại chọn ra 9 đội đứng đầu cùng với nhà vô địch năm ngoái sẽ tham gia vào vòng chung kết ở las vegas, mỹ cùng lúc với defcon conference (cái từ defcon là thuật ngữ ám chỉ mức độ an ninh quốc gia của mỹ).

defcon ctf rất có uy tín, được coi là một trong các phép thử thực sự để phân biệt "vàng hay bạc nhái". vô địch defcon giống như là đoạt chức vô địch thế giới trong bóng đá vậy đó ;-). mình nghĩ trong cv, nhiều khi chỉ cần ghi và chứng minh được là đã từng tham gia vòng chung kết defcon, là đã đủ để có một công việc tốt. giống như denilson vậy đó :-p.

ở vòng loại, các đội sẽ lần lượt được giao các challenge trong 6 nhóm đề tài khác nhau để giải. các challenge sẽ tăng dần độ khó (và điểm số) theo thời gian. sau hai ngày, 9 đội cao điểm nhất sẽ là những người chiến thắng.

hình thức thi vòng chung kết là thi cướp cờ, trong đó mỗi đội được giao nhóm máy chủ, nhiệm vụ là phải bảo vệ máy chủ của mình, và tấn công máy chủ của các đội khác. sau ba ngày liên tục, đội nào điểm cao nhất là đội vô địch. mỗi thành viên sẽ được cấp cho cái mề đai đen trong hình ở trên. ai mà được cái mề đai đen này thì sẽ trở thành rock star trong community!

năm nay là lần đầu tiên team vnsecurity (phối hợp với team arteam) thi. và đúng là có ra biển lớn mới biết bão là gì ;-). kinh khủng. bọn trong top 15 quá dữ dội, toàn là siêu nhân. còn 3 đội đứng đầu thì chắc toàn là người máy thế hệ mới nhất ;-). gì mà bài vừa ra, chưa đến một tiếng là bọn nó đã giải xong. trong khi team của mình trung bình phải 4h mới làm được một bài.

đề tài năm nay, nói sao nhỉ, khó nhưng số bài hay không nhiều bằng codegate. thế nào là khó mà không hay? nói sao nhỉ, kiểu như những bài đánh đố bằng cách gom nhiều bài nhỏ lại thành một bài lớn, tạo cảm giác rất ức chế, tự vì sau khi qua được hết các bài nhỏ phía trước, chưa chắc gì đã được điểm, bởi lúc đến bài nhỏ sau cùng là người ta đã chán, mệt hay thất vọng (vì cứ tưởng là được điểm rồi mà rốt cuộc lại không được, hụt hẫng lắm).

một cái dở nữa là bọn tổ chức dùng nhiều tiểu xảo để làm mất thời gian của các đội quá. ví dụ như trong một bài, bọn nó cố tình tạo ra các dữ liệu giả, làm mình đâm đầu vào đó, 6-7h đồng hồ, rồi rốt cuộc phát hiện ra là dữ liệu đó chẳng có gì quan trọng cả. chơi thế thì mua đường về chơi với kiến! cũng có thể đây là một phần của defcon, mà do mới thi lần đầu, nên team của mình chưa quen.

tội nghiệp nhất là có một thằng serbian chung team với mình. hắn bỏ ra gần cả hai ngày làm một bài 500 điểm (là mức điểm khó nhất), làm đến tận cùng luôn rồi, chạy thử trên máy này nọ đúng phóc, thế mà đưa lên máy của bọn tổ chức thì tụi nó vẫn từ chối. cuối cùng phát hiện ra bọn ban tổ chức chơi so từng byte code, nên nếu mà file chỉ cần khác với kết quả một bit, thì tụi nó sẽ vẫn từ chối, mặc dù có chạy đúng.

khỏi phải nói tay serbian đó thất vọng thế nào. hắn kêu cả ngày hôm qua, mặc dù rất mệt, nhưng hắn vẫn không ngủ được. mình rất hiểu cảm giác bỏ bao nhiêu đó thời gian mà vẫn kô được điểm nào.

lần này mình cũng bị một bài 400 điểm. 400 điểm = 4 bài nhỏ gom lại. qua được 3 bài, còn bài cuối, đuối quá, giao lại cho hai sư phụ làm. sư phụ kia làm gần xong thì hết giờ. đếch được điểm nào. coi tức hông. mai mốt mình mà tổ chức thi, mình làm đề cho tụi nó làm chết bà luôn :-D.

nhìn lại thì thấy điểm yếu nhất của team mình là thiếu người. các team khác toàn trên dưới 20 mạng, mà mạng nào cũng dữ dội hết trơn. team đứng đầu vòng loại (và cũng là đương kim vô địch) là một phần cái khoa computer science của trường naval postgraduate school của quân đội mỹ. toàn là professor với cả phd candidate :|.

team mình lác đác vài người, cộng với team arteam cũng chỉ có vài mống, dẫn đến tình trạng một người không thể tập trung vào một đề tài chuyên biệt được. mà thực tế cho thấy, cái gì cũng làm thì sẽ không làm được gì hết.

đó là chưa kể sức khỏe không cho phép nữa. team vnsecurity lúc nào cũng khởi đầu khá tốt, nhưng càng về sau càng đuối dần đuối dần. một phần là đề càng lúc càng khó, nhưng chủ yếu là sức khỏe. số điểm cuối cùng của team là 2800, và team đã lấy được 2800 điểm này từ 10h-12h trước khi cuộc thi kết thúc (lúc đó còn nằm trong top 10). vậy mà nhiều giờ sau đó chẳng lấy thêm được điểm nào.

xây dựng một team mạnh không phải là chuyện dễ làm. số người muốn làm hacking ở vn nhiều, nhưng số thực sự đam mê, có kỷ luật, kiên nhẫn và năng khiếu thì ít. quanh đi quẩn lại vẫn chỉ có vài người. muốn làm hacking tốt thì phải tập trung học hành làm việc liên tục trong nhiều năm, mà ở đây, sau vài năm làm việc là người ta đã chán, không muốn làm tiếp nữa rồi.

dẫu vậy thì mình viết entry này là để các bạn sinh viên, vốn thường hay hỏi mình về những hướng đi trong lĩnh vực an toàn thông tin, biết rằng nếu các bạn có quyết tâm và tài năng, thì vẫn còn nhiều chỗ trống cho các bạn trong team vnsecurity, mà mình nghĩ rằng sẽ là một cơ hội tốt để các bạn phát triển :-). đương nhiên không cần bạn phải là sinh viên ;-).

cập nhật: tại sao mình chỉ nói đến hacking theo nghĩa tấn công, mà không nói đến an toàn thông tin theo hướng phòng thủ, điều mà nhiều bạn khác quan tâm?

trước đây mình đã từng nghĩ là mình vẫn có thể làm tốt công việc phòng thủ mà không cần biết nhiều về tấn công. nhưng rốt cuộc thì đó là một ngộ nhận. như tôn vũ nói, muốn chiến thắng trong mọi cuộc chiến, bạn phải hiểu rõ đối thủ.

kinh nghiệm cho thấy chỉ khi nào bạn hiểu rõ các lỗ hổng và khai thác được chúng, thì bạn mới hiểu rõ mức độ nghiêm trọng và nghiêm túc hơn trong việc sửa chữa chúng.

cập nhật: kết quả cuối cùng http://ddtek.biz/qualsDC17scores.txt. team clgt (vnsecurity + arteam) đứng thứ 19.