Monday, September 17, 2007

HITB 2007 CTF report

[Original link from vnSecurity]

We decided to join HITB 2007 CTF in Kualar Lumpur just after the VNSECON '07 in August. Our team, Sao Vang from vnSecurity, is the last (10th) team registered, and we had only 1 month to prepare for the competition. It's unbelievable that we win the game!

Day 1 - 05/09

The game, which had been planned to start at 10:30 AM, was delayed because the organizer had not completed setting it up. Teams had to find something fun to do while waiting. We sat on the ground playing bzflag. Other guys checked email, or set up the hardware. We felt a bit nervous because there was only one network cable on each team's table and other teams brought their own switch.

Finally, CTF crew announced the game would start at 2:00 PM. At 2:45pm, it really started. While the crew setting up vmware images (Gentoo 2007 hardened) for teams' servers, some guys looked over their shoulders and captured (guessed) the root's password. It's a bad password (qwe123). We got it too ;).

The organizer sent out crackme1 for Windows and the main switch would only be plumbed after it had been cracked. I changed our root's password, copied the vmware image for backup, tried to upload the tools to server with USB HDD, and ran the defense script while lamer and sieukhung were cracking the binary on their laptop. They took it down only within 20 minutes!

Then the game really started. The organizer announced the root password to all teams. Before that, one team (perhaps Qb1t?) had used it to accessed other servers, installed backdoor user (lalala?) and unwisely changed their root passwords. The organizer identified and removed it easily. We had also prepared a script just for this situation. Had we run install_backdoor script (silently, without changing root password), we could have owned most of the boxes. But then, where is the fun?

All teams started looking at the vulnerability daemons (01 to 08) and defending their servers. Some teams chown'd all the flags so that no other team could get it, even the score server ;-). There was glitches in the score server. Only Sao Vang got positive defensive score while the rest got negative. After crackme1 was done, the organizer sent out crackme2 binary. By the end of day 1, no daemon was exploited and we earned 350 bonus points for crackme1.

There was not much to say about day 1 because it just happened in less than 3 hours. We managed to crack crackme1 and identified the vulnerabilities in some daemons. Our dreaded vmware host running on WinXP hang 2 times and continued to hang 3 or 4 times on day 2.

Day 1.5

We got back to our place and continued the job overnight. crackme2 (md5 crack) was solved first by sieukhung. Then, we found the vuln in daemon05 (trivial buffer overflow; shamelessly, we weren't successful in exploiting it remotely) and daemon07 (trivial format string) but there were "bugs" that made them un-exploitable. After few hours, we could exploit daemon02 (vtable overwrite) and daemon04 (buffer overflow with multithreaded complication). We went to bed (and sofa ;)) at 4:30 AM and woke up at 7:30 AM. Crazyyy!

The next morning, while waiting for taxi, lamer managed to exploit daemon01 (reverse crc32 and buffer overflow). All of our exploits were coded by lamer with his excellent Python framework.

Day 2 - 06/09

The game started at 11:00 AM and ran smoothly.

It was more exciting on day 2. We continued to lead from the beginning by submitting crackme2 and getting flags from other servers. The organizer also sent out fixed binaries for daemon05 and daemon07.

After 2 hours, we raked in lots of points for captured flags from daemon 1, 2, 4, and 7. According to the detail score log, we should have gained breakthrough points for 5 daemons (daemon08 later) instead of 4 as displayed on the official score board and Padocon (from Korea) would have had no breakthrough. We guessed they just replayed our exploits. And maybe other teams did the same too. We raked in more than 3000 points while the next closest team 700.

After that, we settled down to work on daemon 3, 6 and 8. At 2:00 PM, the organizer sent out crackme3 and source code of daemon08. sieukhung cracked crackme3 in half an hour and we earned many bonus points (800). Right after that, lamer finished his work on daemon08 and we got breakthrough for it. We decided to take a break and have lunch with McDonald hamburgers (thanks BlueMood, and Valmont for your support). We intended to give up daemon 3 and 6 to play bzflag (hey, they had a crowded bzflag server there) till the game ended.

But WsLabi (from Switzerland) managed to decode daemon03 and got breakthrough for it. They also ran exploits for other daemons and earned many offensive points. We felt their hot breath when their offensive score was just one flag behind us. I thought there was something wrong with our exploits and reviewed them. We found out that exploit for daemon04 was stuck by blocking socket behavior. We changed it and got more points.

Team Army Strong had best defensive score at that time and it seemed like we could not get valid flags from them. When trying to run exploit for daemon08 against Army Strong, I found that the first byte of the flag changed from time to time. It inspired us to write a brute force script to submit score to the server and with just a few Python loops we successfully captured their flag (thank you Army Strong for this inspration ;)).

Some of our exploits were not really stable (e.g. daemon07), flag data sometimes were 40 bytes or more instead of 20 bytes (fixed flag's length). We modified the above brute force script to submit flag in any size and raked in more points. By 4:30 PM the organizer set new flags for some daemons (they set new flags only 1 time on day 2) and we easily gained more offensive points with our scripts.

When there was only 30 minutes left, the organizer announced bonus points for crackmes' and daemons' exploits write-ups (brief). It was quite rush. We decided to shutdown the server because score server did not check for defensive things anymore and focus on write-ups. We submitted write-ups for all challenges we solved and got more than 1000 bonus points.

Finally, we won the 1st place with a total of 8900 points, with best offensive (5280), second-best defensive (510) and highest bonus (3110). WsLabi won the 2nd place with a total of 5540 points and Padocon came next with 3165.

Conclusion

  • The CTF this year was very interesting and attracted a lot of people (though it started late as normal)
  • Some teams had more than 3 players (4 to 6) and played in turn. It is more fun this way.
  • Best defensive strategy is to keep the daemons running and modify nothing.
  • Because defensive score is far lower than offensive score, "good" defensive strategy is to remove read permission from flags so that no other team can get it. "Best" defensive strategy is to follow Army Strong.
  • Capturing then replaying is a good offensive strategy and can help team win if they do it effectively.
  • python rox!
  • Team must plan and prepare well to have good result.

References

Credits

To all vnSecurity members

More detailed write ups will be posted at http://www.vnsecurity.net.

Saturday, September 08, 2007

HITBSecConf2007 Kuala Lumpur Capture the Flag is over!

HITBSecConf2007 Kuala Lumpur Capture the Flag game đã kết thúc, team SaoVang của nhóm VNSECURITY đã thắng giải nhất, các đội về nhì và ba là WsLabi (Switchzerland) và Padocon (Korea). Tường thuật của BTC, có thể xem ở đây, và ở đây, chi tiết bảng điểm cũng được công bố ở http://ctf2007.security.org.my/. Báo Tuổi Trẻ online cũng khá nhanh tay có bài đưa tin. Vẫn chưa kịp hồi phục sau chặng đường di chuyển liên tục tàu lửa, đi bộ và máy bay Malaysia-Singapore-Vietnam nên mình không bàn đến chi tiết kỹ thuật cuộc thi, chỉ kể vài chuyện bên lề CTF.


Thời điểm bắt đầu game bị trễ, do BTC chưa setup kịp các server cho các đội và score server (tính điểm), cuộc thi phải bị hoãn từ 10h30 đến 14h30 (giá mà biết sớm thì buổi sáng đã tranh thủ đi tháp đôi Petronas chơi) làm các đội rất bồn chồn chạy ra chạy vào hoặc ngồi la liệt ra nền nhà mở laptop chuẩn bị hoặc chơi game.


Một số đội tranh thủ vào chuẩn bị thiết bị trước làm các đội khác nhấp nhổm không yên.Do bắt đầu trễ nên ngày đầu tiên (kéo dài khoảng 3h) các đội chỉ kịp chuẩn bị server và phân tích các daemon một chút, score server bị lỗi nên điểm ra sai tùm lum.

Chuẩn bị cho CTF không chỉ có phần mềm và chiến lược, cần phải chuẩn bị cả phần cứng. Do lần đầu tiên tham gia, một số đội (SaoVang, WsLabi) chắc mẩm BTC sẽ cung cấp switch cho team để gắn laptop nhưng khi đến nơi mới kêu trời khi thấy trên bàn chỉ có một sợi dây mạng chỏng chơ. Chưa kể ổ cắm điện ở Malaysia đều xài loại 3 chân, không có apdapter để chuyển đành chịu chết, phải nhờ đến universal adapter của BlueMood và Luois mới đủ hết cho 3 cái laptop của đội. Các đội khác đã từng tham dự chuẩn bị phần cứng khá "hầm hố", như maeT t1n@cs (chơi chữ của ScanIT Team) mới đến đã quăng ngay lên bàn một cái Nortel switch 24 port, cả bó dây mạng, Army Strong cũng quăng lên bàn switch, wireless access point và bố trí dây nhợ ngay. Cũng may mà ngày đầu tiên chỉ có 3h chơi, nếu không thì team 3 người mà chỉ có 1 người vào mạng được.


Một đội CTF chỉ được 3 người ngồi vào bàn chơi nhưng thực tế thì một số đội có ... người chơi phụ ngồi bên ngoài game zone, chạy ra chạy vào thế chỗ hoặc debug/reverse offline. Ngoài ra còn có một số "gián điệp" chạy lòng vòng xem đội này đội kia làm được gì để về mách nước cho đội mình. Vì vậy khu vực bên ngoài game zone rất náo nhiệt, sôi động, Team SaoVang được bố trí ngồi trong cùng nên cũng đỡ bị quấy rầy. Các "gián điệp" này cũng chôm được password root (do BTC đặt quá tệ ;)) trước khi crackme1 được giải ra (là lúc password được công bố).


Sau khi nhận tấm bảng tượng trưng cho giải thưởng 3,000 USD cả nhóm phải lật đật về nhà để đi tàu lửa về lại Singapore nên không biết tiền thưởng giờ ở đâu :) vì chưa thấy BTC liên hệ gì cả. Lần sau chắc phải bay thẳng (nhờ tài trợ? ;)) cho đỡ vất vả.


Kinh nghiệm là để có cơ hội chiến thắng ở CTF phải chuẩn bị đầy đủ: chiến lược, phần mềm (công cụ của NamNT đánh bại mọi đối thủ khác về tốc độ viết exploit, tốc độ gửi các flag lấy được lên score server và khả năng chống việc lấy flag, team SaoVang không mất một flag nào vào tay đối thủ nhờ công cụ này), phần cứng (switch, dây mạng, ổ cắm điện, universal adapter), tinh thần và cả thể lực (để chiến đấu trong 2 ngày và có thể cả đêm).

Tuesday, July 17, 2007

Giải cứu Solaris server

Không hiểu sao cái Solaris server lại có thể chứa đến hơn 300.000 email còn nằm trong hàng đợi (email báo kết quả cron job) từ đời tám hoánh đột nhiên lại được gửi ra một lúc. Đến độ 8GB RAM + 8GB swap bị đầy nghẹt, process mail không thể gửi vì lỗi hết bộ nhớ (cannot fork: not enough space). Lỗi này là nghiêm trọng (critical) và hệ thống tự động ... gửi email để thông báo cho root (stupid!) dẫn đến vòng lặp không thể thoát được, một local DoS kiểu "tự mình hại mình". May mắn là vẫn còn có thể cứu được mà không phải reboot server cực kỳ quan trọng này nhờ vẫn còn shell trên đó.

Trước hết là thêm swap để có thể chạy các lệnh khác:
# mkfile 1500m /swapfile
# swap -a /swapfile

Kết quả ps cho thấy hàng trăm process sendmail và mail.local đang chạy, phải kill hết chúng trước:
# pkill -9 sendmail
# pkill -9 mail.local

Phải dọn dẹp đống 300.000 file trong /var/spool/mqueue và /var/spool/clientmqueue để không bị lấy ra xử lý khi sendmail chạy lại (may mà toàn cron email):
# cd /var/spool/clientmqueue
# find . -type f | xargs -n 1000 rm

(Lý thuyết thì rm -rf /var/spool/clientmqueue sẽ nhanh hơn nhưng thực tế thì cũng giống lệnh trên)

Cuối cùng bỏ bớt cái swapfile vì có thể làm chậm hệ thống và start lại các service:
# swap -d /swapfile

Hú hồn!

Wednesday, July 11, 2007

Tại sao hacker nội không mặn mà với Capture The Flag?

VNSECON 07 Capture The Flag đã thông báo mở cửa nhận đăng ký các đội chơi được 2 tháng nhưng vẫn chưa có đội nào trong nước đăng ký tham gia. Qua tìm hiểu và phỏng đoán của tôi, có thể có một số nguyên nhân sau:
  • Hacker nội thích "chiến đấu" một mình thay vì theo đội: teamwork (làm việc nhóm) là điểm còn yếu của người Việt, hacker lại thường không "phục" nhau khó lòng lập thành một nhóm phối hợp ăn ý.
  • Hacker nội "sở trường" Windows: Linux/Unix vẫn chưa được phổ biến dù trong giới làm bảo mật, với hình thức khai thác các lỗ hổng trên Linux của CTF (HITB, VNSECON), đa số chuyên gia Windows không mặn mòi tham gia.
  • Hacker nội thiếu kỹ năng viết chương trình khai thác lỗ hổng: một số trung tâm đào tạo bảo mật dạy các học viên sử dụng Metasploit nhoay nhoáy nhưng là để khai thác các lỗi "ăn sẵn", tìm ra lỗ hổng và viết chương trình khai thác là một chuyện khác.
  • Hacker nội mang tâm lý sợ "mất mặt": một số hacker có "số" trên các diễn đàn bảo mật có thể sợ "quê" (trước một số lượng đông người hâm mộ) nếu không có điểm ở CTF. Không có điểm ở CTF cũng là điều bình thường, nó chỉ là một trò chơi và đôi khi rất khó. Có thể xem tâm tư của một đội tham gia HITB Dubai 2007 CTF (không có đội đoạt giải) ở đây.
  • Hacker nội không muốn lộ diện: các hacker "mũ đen" thực sự chắc chắn sẽ không tham gia, những hacker khác không muốn công khai danh tính để giữ tính "huyền bí" của nickname.
  • Hacker nội sợ bị quy chụp là "mũ đen": nếu thể hiện những kỹ năng tấn công khai thác lỗ hổng của mình công khai người ngoài sẽ nghĩ ngay mình là "mũ đen" (mới rành tấn công như thế :)) và dễ bị lưu ý khi có site nào đó bị hack. Đây là quan niệm hết sức sai lầm, cũng giống như ai có võ người đó đều có thể chủ động đánh người khác.
  • Giải thưởng không hấp dẫn: hiện tại ban tổ chức vẫn chưa thể công bố chính xác mức thưởng cho VNSECON CTF (dự kiến bằng hiện vật thay vì tiền mặt) nên chưa kích thích được sự tham gia. Bên cạnh đó, giải thưởng tinh thần mang ý nghĩa là đội chiến thắng không có tính động viên lắm do đây là lần tổ chức đầu tiên và VNSECURITY (nhóm tổ chức) còn ít được biết đến.
  • Và cuối cùng, sẽ là điều rất đáng buồn, có thể tất các hacker nội đã ... "giải nghệ" nên không còn ai!

Tuesday, July 10, 2007

Những chủ đề "nóng" ở VNSECON 07

Chương trình hội thảo VNSECON 07 đã được công bố, chuyên đề kỹ thuật đã khá đầy đủ với hầu hết các báo cáo do diễn giả nước ngoài trình bày, chuyên đề chính sách và thương mại điện tử với chủ yếu các báo cáo trong nước hiện vẫn đang tiếp tục được cập nhật. Một số chủ đề khá "nóng" và thời sự được trình bày tại hội thảo lần này hứa hẹn sẽ thu hút được sự tham dự đông đảo của giới chuyên môn và giới lãnh đạo.

Sau cơn bão khai thác lỗi tràn bộ đệm của Microsoft IIS và SQL Injection trong ASP các web site trong nước hiện khá yên ổn do phần lớn đã nâng cấp hệ điều hành Windows 2003 và sử dụng .NET cho ứng dụng web. Do đó, báo cáo "Next Generation .NET Attacks" (Tấn công .NET thế hệ kế tiếp) của Paul Craig hứa hẹn sẽ đem đến cho cả giới quản trị mạng/bảo mật và hacker sự quan tâm đặc biệt. Paul sẽ trình bày các phương pháp khai thác lỗ hổng bảo mật dành cho .NET chưa từng được công bố.

Virus luôn là mối quan tâm lo lắng hàng đầu của các tổ chức và cá nhân khi mà các thông kê số lượng virus mới luôn tăng lên mỗi ngày. Làm thế nào các tổ chức như Symantec, Sophos, Message Lab, BKIS phát hiện và khống chế các virus mới? Paul Barrie Ducklin đến từ Sophos Australia sẽ mang đến một trình bày rất hấp dẫn và thú vị đối với tất cả người nghe: "Live Malware Attack" (Xem trực tiếp chương trình mã độc tấn công). Hẳn người dùng vẫn còn nhớ sự lây lan nhanh chóng mặt của virus Code Red khai thác lỗ hổng Windows, hay virus nội Gaixinh qua Yahoo Messenger. Làm thế nào các chương trình mã độc làm được điều đó? Làm thế nào các tổ chức phản ứng nhanh có thể khống chế chúng? Tất cả sẽ có trong phần minh họa trực quan hết sức sống động với các công cụ của Sophos - một trong các nhà cung cấp phần mềm nổi tiếng thế giới.

Cũng về chủ đề mã độc nhưng ở một khía cạnh khác: phân tích tĩnh thay vì phân tích động (trực tiếp). Dr. Jose Nazario, Kỹ sư bảo mật cao cấp của công ty bảo mật Arbor Networks sẽ cho thấy sức mạnh của công cụ tìm kiếm Google trong việc tìm kếm các lỗi bảo mật cũng như các chương trình mã độc với báo cáo "Googling for Malware and Bugs" (Tìm kiếm chương trình mã độc và lỗi bảo mật bằng Google). Đây là một phương pháp rất hữu ích cho những người nghiên cứu về bảo mật bởi cơ sở dữ liệu khổng lồ và sức mạnh tìm kiếm của Google là một công cụ vô song nếu biết khai thác.

Game online đang là một thị trường béo bở với rất nhiều nhà cung cấp trong nước nhảy vào cuộc chơi, việc thương mại hoá các đồ chơi trong game cũng đang được thừa nhận và bảo vệ. Việc chống gian lận trong game online vì thế hết sức được quan tâm từ cả phía người chơi lẫn nhà cung cấp. Các công cụ nhằm qua mặt sự kiểm soát của nhà cung cấp, chơi tự động trình độ cao luôn được giới game thủ săn lùng. Mikado và ReD Dragon của nhóm VNSECURITY sẽ trình bày chi tiết về các kỹ thuật chống gian lận trong game online cũng như những phương pháp, kỹ thuật để qua mặt các hệ thống này trong báo cáo "Cheating Massively Multiplayer Online Game for Fun and Profit" (Gian lận game online nhiều người chơi để tiêu khiển và kiếm lợi). Báo cáo này cũng đề cập đến một vấn đề hầu như còn rất ít được quan tâm ở Việt Nam là bảo mật và tính riêng tư của người chơi khi mà một số hệ thống chống gian lận của nhà cung cấp đang sử dụng kỹ thuật rootkit để ngăn chặn và phát hiện gian lận.

Điện thoại di động đang và sẽ là dịch vụ có tốc độ phát triển phi mã ở Việt Nam khi kho số đã "cháy" sau hàng loạt "cuộc đua" khuyến mãi của các nhà cung cấp dịch vụ. Bên cạnh đó, điện thoại di động đang được xem như một bước đệm của thanh toán trực tuyến với các hình thức mobile banking, thanh toán qua SMS do vẫn được xem là bảo mật (dựa trên sim) và tiện dụng, phổ biến với đại đa số người dùng. Có thể sau khi nghe báo cáo của Skyper (cựu tổng biên tập tạp chí Phrack) "Build your own GSM interceptor for $900" (Tự tạo bộ chặn bắt sóng GSM với giá 900 USD) sẽ có cái nhìn dè dặt hơn về tính bảo mật của giao thức viễn thông này.

Với sự bùng nổ của thị trường chứng khoán Việt Nam trong năm qua, nhiều ngân hàng thương mại, công ty chứng khoán được mở và ăn nên làm ra. Khác với kiểu ngân hàng truyền thống trước đây, ngày nay các ngân hàng phải kết nối với các ngân hàng khác và nối vào mạng để cung cấp nhiều dịch vụ hơn cho khách hàng. Các ngân hàng ở các nước đang có tốc độ phát triển nhanh thường "đi tắt đón đầu" ở bước này và để lộ ra những lỗ hổng có thể bị lợi dụng. Với kinh nghiệm làm việc trong lĩnh vực bảo mật ngân hàng, Fabrice A. Marie qua báo cáo "Banking Security in Fast Developing Countries" (Bảo mật ngân hàng cho các nước đang phát triển nhanh) sẽ đề cập đến những "vết xe đổ" cần tránh cho các ngân hàng trong vấn đề bảo mật. Các nguy cơ thực tế như gian lận ATM, thẻ tín dụng, ứng dụng nghiệp vụ, bảo mật mạng ngân hàng cũng được đưa thảo luận kèm với các giải pháp. Đây là chủ đề rất đáng quan tâm đối với giới lãnh đạo công nghệ thông tin và tài chính của các ngân hàng.

Mặc dù gặp khó khăn về tài trợ do tổ chức lần đầu và không chấp nhận các báo cáo giới thiệu sản phẩm, ban tổ chức hội thảo đang cố gắng để đạt được mục tiêu đề ra: một hội thảo bảo mật chất lượng mang tầm quốc tế.

Sunday, June 24, 2007

Bash "bug": mở rộng ký tự đại diện [a-z] liệt kê cả chữ hoa

Thực hành demo phần mở rộng ký tự đại diện (filename expansion) trên bash FC6/F7 thấy ... trật lất vì lệnh "ls [a-z]*" không chạy đúng và liệt kê cả tên file/thư mục chữ hoa. Tra lại trên Google thì thấy "bug" này được thảo luận mới đây trên maillist gnu.bash.bug. Nguyên nhân là khi thiết lập LANG=en_US.UTF-8 (để sử dụng tiếng Việt Unicode) các ký tự sẽ được sắp xếp theo locale theo thứ tự [aAbBcC...zZ], và điều này ảnh hưởng đến toàn bộ các tiện ích hệ thống sử dụng biểu thức chính tắc (regex) như ls, grep, sort. Điều này cũng đã được đề cập trong man page của bash (mấy ai đọc hết ;)) là thứ tự sắp xếp ký tự sẽ được quyết định bởi locale và thiết lập của biến LC_COLLATE. Cách để vẫn sử dụng được đúng thứ tự A-Za-z với các locale khác C là đặt lại biến LC_COLLATE trong profile:

export LC_COLLATE=C
Một kinh nghiệm khá thú vị!

Sunday, April 08, 2007

Capture-the-Flag: hình thức hack game nổi tiếng lần đầu đến Việt Nam

Trong khuôn khổ hội thảo bảo mật VNSECON '07 sẽ tổ chức tại TpHCM tháng 8 tới, hình thức hack game nổi tiếng Capture the Flag (CTF) sẽ lần đầu được tổ chức tại Việt Nam. VNSECON CTF lần này hy vọng sẽ là một sân chơi mở, cạnh tranh và hấp dẫn cho các nhóm bảo mật trong nước và nước ngoài so tài.

CTF lần đầu tiên được tổ chức tại hội thảo bảo mật nổi tiếng DefCon (Mỹ) lần thứ 5 năm 1997. CTF đã được cải tiến, nâng dần độ khó trong các lần sau đó để hấp dẫn và mang tính cạnh tranh hơn với sự đóng góp của các nhóm tổ chức như GhettoHackers, Kenshoto và được tổ chức ngày càng chuyên nghiệp hơn. Các lần DefCon CTF gần đây được tổ chức bởi Kenshoto, một nhóm những người từng tham gia tranh tài và tổ chức CTF qua các kỳ DefCon. Được xem như một hack game "chuẩn", CTF đã được nhân rộng ở một số hội thảo bảo mật khác như Hack.Lu, HITBSecConf, tất nhiên về quy mô hoặc cách thức có thể khác nhau.

CTF là thể loại hack game "tấn công và phòng thủ" (attack and defense), qua đó không chỉ thử thách người chơi các kỹ năng phát hiện lỗ hổng bảo mật, khai thác chúng mà còn các kỹ năng bịt các lỗ hổng đó, xây dựng phòng tuyến để bảo vệ. Do chỉ diễn ra trong thời gian ngắn (2-3 ngày) nên "cuộc chiến" sẽ rất căng thẳng với cường độ và áp lực cao, mặc dù thể lệ cho phép cá nhân tham gia nhưng chiến thắng thường thuộc về các đội có trình độ "cứng" và được tổ chức tốt. Các kỳ CTF gần đây được tổ chức như sau: các đội tham gia sẽ được cấp một máy chủ chạy hệ điều hành được công bố trước (như Gentoo Linux, FreeBSD, Windows 2000), trên máy chủ đã cài đặt sẵn nhiều dịch vụ mạng chứa "lỗ hổng". Nhiệm vụ của đội chơi là tìm ra các lỗ hổng đó, khai thác chúng và tấn công máy chủ của các đội khác để ghi điểm, đồng thời phải tìm cách bịt các lỗ hổng đó trước sự tấn công của các đội khác. Các dịch vụ có thể là thông thường như http, mysql, ftp với các lỗ hổng đã được công bố hoặc được các nhóm tổ chức tạo ra với lỗ hổng được "cố tình" tạo ra rất tinh vi (loại này khó hơn).

Có hai loại điểm được tính: điểm tấn công (offensive) và điểm phòng thủ (defensive). Ví dụ có 4 đội chơi, đội 1 khai thác được lỗ hổng trong daemon1 và dùng chúng để tấn công máy chủ của đội 2-4, lấy các flag (hay token) cho daemon1 trên các máy chủ đó và ghi được 3 điểm tấn công. Các flag được thay đổi định kỳ (ví dụ mỗi 2 giờ), do đó với cùng một lỗ hổng khai thác được, một đội có thể kiếm được nhiều điểm tấn công theo thời gian. Ngược lại, điểm phòng thủ có được bằng cách đảm bảo các dịch vụ cần bảo vệ chạy liên tục (máy chủ tính điểm kiểm tra định kỳ) với các quy định như không được làm thay đổi file chương trình, không được tắt, không được đặt firewall chặn các đối thủ,... Ngoài ra một đội còn có thể có điểm thưởng thêm nếu viết chi tiết về lỗ hổng phát hiện được, cách khai thác và vá chúng. Một đội cũng có thể giành giải chỉ với điểm phòng thủ. CTF được xem là game rất "đời thực" (real world) do lẽ giống như công việc của các nhà quản trị mạng hoặc chuyên gia bảo mật, họ phải bảo vệ các máy chủ của công ty trước sự tấn công từ bên ngoài trong khi vẫn phải duy trì sự liên tục của các dịch vụ mạng. Luật chơi chỉ cấm các hình thức tấn công DoS (đội vi phạm có thể bị loại lập tức), còn lại các đội có thể dùng bất cứ "thủ đoạn" nào để đạt được mục tiêu kiếm điểm, kể cả các biện pháp phi kỹ thuật như ... lừa gạt đội khác (social engineering).

Là một hack game hấp dẫn, tất nhiên đối tượng tham gia CTF là các hacker, nhưng thành phần cũng rất đa dạng. Có thể là nhóm các hacker, nhóm các chuyên gia bảo mật hoặc nhóm nghiên cứu ở trường đại học. Đội giành chiến thắng DefCon CTF 2005, ShellPhish đến từ trường đại học UCSB (University of California, Santa Barbara) và được dẫn đầu bởi Associate Professor Giovanni Vigna. Giải thưởng CTF thường không lớn về vật chất nhưng rất có giá trị bởi uy tín của nó. Đội đoạt giải thường được cộng đồng bảo mật trân trọng bởi họ là "vàng thật " và đã chứng tỏ được những kỹ năng thực sự của mình. Để được tham dự vòng chơi trực tiếp DefCon CTF các đội còn phải trải qua vòng sơ loại để đảm bảo các đội là đủ năng lực và trình độ khá tương đồng.

Ở châu Á, CTF được tổ chức lần đầu tiên tại Malaysia trong trong hội thảo HITBSecConf 2002. Năm nay, HITB CTF 2007 Dubai đã diễn ra tại Dubai, UAE từ ngày 3 đến 5 tháng 4 và ... không có đội nào thắng cuộc. HITB CTF 2006 Kuala Lumpur được tổ chức tại Malaysia với 9 đội tham dự đến từ Italia, Singapore, Malaysia và Hàn Quốc. Các đội tham dự phải giải quyết 6 thử thách hóc búa có mức độ khó khác nhau của các nhà tổ chức là các chương trình được viết có lỗi một cách tinh vi. Đội thắng cuộc DOKDO-KOR (PADOCON) Hàn Quốc cũng chỉ vượt qua được một thử thách. Nhóm tổ chức HITB CTF cũng là nhóm tổ chức VNSECON CTF 2007 tháng 8 tới tại Việt Nam với hình thức tương tự nhưng chỉ khó trung bình do đây là lần đầu tiên. HITB CTF 2007 Dubai dự kiến cũng được sử dụng để làm bài thử cho VNSECON CTF 2007.

VNSECON CTF 2007 lần đầu tiên tại Việt Nam này sẽ gồm tối đa 10 đội, mỗi đội tối đa 3 thành viên. Ban tổ chức hy vọng sẽ thu hút được từ 3 đến 5 đội trong nước và các đội trong khu vực Đông Nam Á như Signapore, Malaysia đã không có điều kiện tham dự HITB CTF 2007 tại Dubai do Việt Nam hiện là một điểm đến hấp dẫn, khá gần và không cần Visa. Để tham dự VNSECON CTF 2007, các đội tham gia cần chuẩn bị các kỹ năng như dịch ngược (reverse engineering), kiểm lỗi mã nguồn (code auditing, trong trường hợp được cung cấp mã nguồn) và kỹ năng quan trọng nhất là viết chương trình khai thác lỗ hổng. Nếu muốn có hy vọng đoạt giải các đội cần phải lên kế họach và chuẩn bị thật kỹ, đây là lời khuyên nghiêm túc của ban tổ chức. Nếu các bạn muốn tham gia, hãy thành lập đội của mình và chuẩn bị ngay từ bây giờ. Liệu các hacker nội có chứng tỏ được mình trước các đối thủ nước ngoài? Hẹn gặp ở VNSECON CTF 2007!

--
Nguồn tham khảo
1. http://en.wikipedia.org/wiki/Capture_the_flag#Computer_security
2. http://defcon.org/
3. http://midnightresearch.com/hacking-contest-scoreboard/
4. http://conference.hackinthebox.org/
5. http://mel.icious.net/ctf_writeup.html
6. http://www.vnsecurity.net/download/rd/ctf/
7. http://conf.vnsecurity.net/contest-vi

Wednesday, February 28, 2007

JpGraph với PHP: lưu ý memory_limit

Vò đầu bứt tóc với MasterShaper vì các luật quản lý băng thông "có vẻ" chạy nhưng không thể hiển thị được biểu đồ băng thông sử dụng tức thời để kiểm tra và điều chỉnh luật cho đúng. CentOS-4, PHP-5, JpGraph-2 tất cả đều cài đặt đúng và chạy ổn, không có gì trong error_log của Apache. Thử downgrade xuống PHP-4 mới thấy xuất hiện báo lỗi do vượt quá giới hạn bộ nhớ của PHP. Sửa lại trong /etc/php.ini giá trị memory_limit=16M (mặc định là 8M) thì cả PHP-4 lẫn PHP-5 đều vẽ được hình ngon lành. Tìm thấy vấn đề này được đề cập trong JpGraph FAQ. Tại sao các packager không nâng quách lên mặc định 16M trong khi các script ngày càng "béo" nhỉ?

Tuesday, January 23, 2007

23/1/2007 - Con gái chào đời


5h30 sáng 23/1, đón mừng sự kiện trọng đại: con gái đầu lòng chào đời, mẹ tròn con vuông. Bé cân nặng 3.3kg và dài 52cm (khá ... cao đấy chứ ;)) , giống cả Ba và Mẹ. Ông nội đặt tên cho cháu là Quỳnh Anh, Bà nội thì quả quyết họ đệm phải là Lê Thị, chữ đệm thuần Việt cho con gái.

Updated: cuối cùng đặt tên con gái là Lê Nguyễn Quỳnh Anh. Cả Bà và Mẹ đều hài lòng :)

Monday, January 01, 2007

2007: viễn cảnh sáng sủa cho PMNM ở Việt Nam?

Chào năm mới 2007! Hôm nay là ngày đầu tiên của năm. Sau lưng tôi, VTV3 đang phát trực tiếp chương trình TTVN, các tác giả có sản phẩm lọt vào chung kết không ai nhắc đến phần mềm nguồn mở (PMNM). Sau lưng tôi, 2 năm đã qua nhưng dự án chuyển sang PMNM của công ty vẫn đang dẫm chân tại chỗ. Vậy có lý do gì để dự báo viễn cảnh PMNM ở Việt Nam trong năm 2007 sẽ sáng sủa hơn các năm trước? Liệu có lạc quan quá chăng?

Dự báo năm mới đương nhiên phải lạc quan, tuy nhiên tôi cũng phải dựa trên một số cơ sở. Các cơ sở đó là:
  • Sự hiện diện của PMNM đang chứng minh được tính lợi ích: các doanh nghiệp ngày càng quen dần với nền tảng LAMP và các ứng dụng web trên đó, hệ thống email/anti-virus/anti-spam dựa trên PMNM với chi phí thấp, hiệu quả cao. Ứng dụng VoIP/PBX với Asterisk cũng đang bắt đầu được quan tâm. Các phần mềm hữu ích trên Windows được biết đến và sử dụng nhiều hơn như Firefox, Thunderbird, OpenOffice, Stardict, IZArc. Việc này đồng nghĩa với các doanh nghiệp sẽ có tinh thần cởi mở và tự tin hơn khi muốn áp dụng PMNM thay vì dè dặt và hoài nghi.
  • Áp lực bản quyền: đối tượng bị các cơ quan chức năng sờ gáy kiểm tra bản quyền phần mềm không chỉ còn là các công ty bán máy tính và các đối tượng này sẽ ngày càng được mở rộng. Có vẻ như bóng của "cái búa" xử phạt hành chính đang treo lơ lửng trên đầu các doanh nghiệp.
  • PMNM đã thân thiện người dùng: hơn hết muốn được chấp nhận rộng rãi, PMNM phải thực sự hữu dụng và thân thiện. Có thể khẳng định, các bản phân phối Linux đã thực sự hướng đến người dùng với các cải thiện đáng kể về giao diện, hỗ trợ phần cứng, dễ dùng và hỗ trợ người dùng tốt. Một minh chứng là sự thành công của Ubuntu khi đứng ở vị trí số một cho Linux desktop. OpenOffice 2.0 cũng là bước tiến đáng kể khi hoàn toàn có thể thay thế (về chức năng) cho MS Office.
  • Cộng đồng người dùng đông đảo và trưởng thành hơn: thay vì tạo ra các cuộc "đấu võ mồm" trên diễn đàn để khẳng định tính ưu việt của một phần mềm/bản phân phối Linux nào đấy, người dùng đang chọn lựa một cách khôn ngoan hơn: sử dụng những gì có lợi nhất cho mình miễn đúng tinh thần mở.
Điểm yếu duy nhất khiến sự lạc quan về PMNM trong năm 2007 có hơi bị "sứt mẻ" đôi chút chính là sự yếu kém của ngành dịch vụ PMNM. Sự yếu kém này (với những kiểu làm ăn chụp giựt, treo đầu dê bán thịt ... lợn như VKLin.., VietLin.., VietWo.., BTOffi..) có khi bóp chết cơ hội thay vì tận dụng nó. Hãy thử chờ xem!

Happy New Year!