ICO 2025: Contest Rules, Format & Requirements
ICO Contest Details:
- Dates: 24 & 26 June 2025
- Time: 09:30 AM to 02:30 PM
- Day 1 Contest – Attack Style CTFs (Continuous 5 hours contest)
- Day 2 Contest – Defence Style CTFs (Continuous 5 hours contest)
- Venue: COM3 – Multi Purpose Halls, School of Computing, NUS (11 Research Link, Singapore 119391)
- Contest Platform: https://ctfd.io/ [Account and Login credentials will be shared to the respective students closer to the contest day]
Rules/Format:
- This is an individual event. Contestant should compete individually without assistance from others.
- Students must bring their own laptops and charging adapter for the contest. Students are allowed to use only one laptop (device) during the contest. The use of multiple devices during the contest is not permitted.
- In Singapore, the standard power plug type is Type G (also known as the UK 3-pin plug), featuring three rectangular pins arranged in a triangular pattern. The standard voltage is 230V with a frequency of 50Hz.
- Students are advised to bring their own travel adapters or converters, if required.
- Students must wear ICO event ID badges during the contests.
- The contest is open-book – you may use any online resources or tools including AI bots, Chat GPT or any other tools/platform. However, contestants must not discuss the questions with anyone else during the contest.
- Internet access is required during the contest. Students can connect to NUS Wi-Fi; connection details will be provided before the contest.
- Students are not permitted to take the ICO contest outside the designated contest venue. This ICO contest must be taken strictly within the contest venue (COM3-MPH).
- All participants must wear the official ICO T-shirts on contest days. Red Colour ICO T-Shirt on Day 1 and Blue Colour ICO T-Shirt on Day 2.
- For boys: Trousers, chinos, or jeans; Bermudas or knee-length shorts; Closed-toe shoes or sneakers (no flip-flops/slippers)
- For girls: Trousers, jeans, skirts (knee-length or longer), or Bermudas; Closed-toe shoes, sneakers, or flats (avoid heels or open footwear).
- Avoid inappropriate or overly casual clothing such as short shorts, flip-flops etc.
- Ensure attire is comfortable for long hours in an indoor, possibly air-conditioned environment.
- Optional: Bring a light jacket or hoodie.
- Snacks and Refreshments will be provided during the contest; however, students must consume only in the foyer area.
- Any updates to the contest format will be communicated in advance.
ICO Training Topics: (https://ico2025.sg/training-materials/ )
Participants can refer to the NCL online training materials (pre-recorded basic training videos below), covering the following topics:
Latest Training Materials:
- Part 1: Cryptography (Course Videos)
- Part 2: Cryptography (Course Videos)
- Part 3: Cryptography (Course Videos)
- Web Exploitation - SQL Injection (Course Videos)
- Binary Exploitation – Video will be uploaded soon at the ICO website.
Basic Topics:
- Session 1: Cryptography (Course Videos)
- Session 2: Networking Fundamentals (Course Videos)
- Session 3: Red Teaming & Introduction to CTF (Course Videos)
- Session 4: Digital Forensics (Course Videos)
Additional Advanced Topics:
- Session 5: Additional Topics on Networking (Course Videos)
- Session 6: Python Program to solve CTF challenges (Course Videos)
- Session 7: Additional Topics on Digital Forensics (Course Videos)
Participants can try platforms such as TryHackMe, picoCTF, and Hack The Box to learn and practice on the real CTF environment. Participants can refer to any other relevant training resources (not limited to NCL materials).
Prerequisite/Knowledge Requirements:
To effectively participate in the NCO onsite contest, students are encouraged to attend the training sessions and have a basic understanding of Python and C programming, particularly in the following areas:
Python Programming:
- Basic concepts: Variables, Data Types, Conditional Statements, Loops, File I/O, OOP, Exception Handling
- Network libraries: Requests, Socket, Scapy, Paramiko, Socket.IO, HTTPx, PyCurl
- Cryptography libraries: SSL, Cryptography, PyCrypto, PyCryptodome, Hashlib, PyNaCl
- Penetration testing libraries: Impacket, Python-nmap, Pwntools, BeautifulSoup
C Programming:
- Basic syntax and structure, Data types, Memory management, Control structures, Functions, Pointers & Arrays
- File I/O, Bitwise operations, Buffer overflows, Structs & Typedefs, Assembly & System Calls, Debugging tools (optional)
- Students are encouraged to explore any additional resources they find useful beyond NCL’s materials.
The online qualifier contest will be based on the above topics but is not limited to them. Students should aim to build a strong foundational understanding of cybersecurity concepts to perform well.
Client Device Requirements for the Contest:
General Requirements:
- Each participant should have access to a device that is able to access internet.
This device should have the following capabilities.
Supported Operating Systems (either one of the following):
- Windows: Windows 10 or higher
- Mac: macOS 12 (Monterey) or higher
- Linux: Ubuntu 20+, Debian 10+
Browser Requirements:
- A web browser is required to access the contest platform. Supported browsers include (but not limited to):
- Google Chrome
- Firefox 80+
- Opera
- Microsoft Edge 17+
SSH Client (Optional):
- Some challenges may require SSH access to a cloud instance. Participants can use the ssh command line or install one of the following SSH clients:
- PuTTY: https://www.putty.org/
- MobaXterm: https://mobaxterm.mobatek.net/download.html
Other Tools/Packages/Software:
Participants are recommended to install the following tools (prior to the contest) to complete certain challenges:
- Proton VPN: https://protonvpn.com/download (Students must install this VPN beforehand, as some challenges require a VPN connection to complete. This VPN is recommended because it has been tested and works on devices connected to the NUS guest Wi-Fi).
- Python: https://www.python.org/downloads/
- GCC (GNU Compiler Collection): https://gcc.gnu.org/install/
- Windows Subsystem for Linux (for Windows users): Installation guide: https://learn.microsoft.com/en-us/windows/wsl/install
- Wireshark: https://www.wireshark.org/download.html