Coding Challenge « Security BSides Rochester – April 6th 2013

Coding Challenge

Introducing the BSidesROC Coding Challenge!

This event will be a competition based purely on coding skill. Note that this is not an exploitation contest, it is purely building.

PROCESS Requirements:

  1. Register your team before starting work, get the test data.
    1. Details on where and how to register will be provided during the con bootup
  2. One of the following languages must be used: Basic, C, C++, COBOL, Fortran, or Pascal.  Yes, these are old* and they lack a lot of intrinsic text-processing capability.  The same can be said of the judge.  So there.
  3. The result of the build must be a single executable that can be run from the command line.  It must be able to be timed using the /usr/bin/time command.  Expect the text input from STDIN.  Send the output to STDOUT.
  4. Submit the source code.  Package source file(s) with the makefile in <TeamName>.zip or <TeamName>.tar  One submission per team.
  5. No binaries will be accepted.  Your submission will be built and tested on the judge’s laptop, which is running Linux Mint Maya and the compilers listed.  The submitted program must compile without error.  Any compile or link warnings will be considered in the subjective portion of the scoring.
  6. If any libraries not included by the metapackages for these compilers are required, notify the judge at the time of submission.  But he reserves the right to refuse to install any such libs, so be prepared to make a compelling case for it.  Or maybe you could consider not using any non-standard libs.  In any case, DO NOT include any libraries in the submission package.
Language Compiler Version Installed
Basic Chipmunk Basic 3.6.6b0
C gcc 4:4.6.3-1ubuntu5
C++ g++ 4:4.6.3-1ubuntu5
COBOL open-cobol 1.0-5build1
FORTRAN gfortran 4:4.6.3-1ubuntu5
Pascal fp-compiler 2.4.4-3.1

* – Next year we will add one language to this mix. Submit your votes for which one you’d like to see. Voting will scored as follows: (#votes * Age of language). Only submit languages for which there exists a FOSS compiler that runs on Mint. Vote at the Facebook page for “B Sides Rochester Coding Challenge”

 


 

Scoring:

  1. Objective criteria:
    1. Error-free compile: needed just to qualify the code to continue.
    2. Successfully complete primary task: 100 points.
      1. Completing this task is both necessary and sufficient to be scored on all remaining categories.
      2. The judge will liberally consider minor variations from his nominal output file, and may award as few as 90 points while still allowing the code to compete in the remaining trials.
    3. Fastest run times: 50, 30 and 20 points for top three.
  2. Subjective criteria (judge’s decision is final)
    1. Warnings during build: -1 to -10 points
    2. Error or warning messages during runtime: -1 to -30 points
    3. Code readability: -15 to +15 points
    4. Comments quality: 0 to +20 points (also contributes to readability)
  3. How to get disqualified (The judge suggests you not try these things)
    1. Suppress or redirect runtime error or warning messages
    2. Summon help from the Internet
      This means anything like having your code download a wordlist-builder and run it.  You may, of course, do all the online research you wish while building your source.
    3. Emit shell scripts and execute them.