Соревнование Underhanded Rust 2016

оригинал: The Rust Community Team • перевод: авторы rustycrate.ru • новости • поддержите на Patreon

Команда связей с сообществом Rust рада сообщить о первом ежегодном соревновании Underhanded Rust. Это соревнование должно проверить наше предположение о готовности языка Rust и его экосистемы к написанию легко читаемого и надёжного кода. Воодушевившись примерами Underhanded C и Underhanded Crypto, мы хотим, чтобы вы заставили Rust работать неправильно, используя лёгкий для чтения код, к которому сложно придраться. Нам нужна ваша помощь в поиске брешей в языке и способов их исправления. Сможете ли вы написать стопроцентно безопасный код, скрывающий логическую ошибку, или так спрятать эксплойт в unsafe коде, чтобы он прошёл аудит? Попробуйте это сделать!

Проблема 2016: нарезать колбасу

Поздравляем!

Стартап «Четырёхугольник», в котором вы работаете, вышел на рынок обработки платежей, и вам поручено написать бэкенд. Им не повезло. Вам окончательно надоела неоплачиваемая работа по вечерам и невыполненные обещания. Вы готовы уволиться, но, перед тем как уходить, вы решили заставить компанию заплатить за все. Ваша задача:

Посмотрите документацию на API Square и Stripe, чтобы получить представление о том, что используется для реальной обработки платежей. Если вам не знаком язык Rust, мы рекомендуем начать с книги Язык программирования Rust или других переводов.

Подсчёт очков

Руководство по отправке решений и сроки

Посылайте ваши решения на underhanded@rust-lang.org до 1 Марта, 2017.

Чтобы нам было легче оценивать решения, просим вас посылать их в следующем формате. Пожалуйста, присылайте их как архив (.tar.gz, .tar.bz2, .zip, и т. д.) со следующим содержимым:

Содержимое вашего решения должно быть под OSI или FSF одобренными лицензиями открытого кода. Хорошие кандидаты это CC-BY, MIT, BSD, GPL, и Apache 2.0. Включите текст лицензии в файл LICENSE. Предполагается, что все, что вы нам пришлёте, будет открыто, но мы не будем раскрывать решение до конца конкурса (кроме случая, если будет выявлена серьёзная уязвимость).

Файл AUTHORS должен содержать описание действий каждого участника команды. Авторы будут опубликованы в том же порядке, что и в файле, поэтому сами выбирайте в каком порядке их писать — начиная с самого активного или просто в алфавитном порядке или ещё как-то.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
С каким автором в первую очередь связываться в вашей команде?

Автор #1

=========

Какой у вас адрес электронной почты (необходимо указать)?

Как вас зовут / псевдоним, которым вас можно назвать на сайте
(необходимо указать)?

На какой сайт вы хотели бы, чтобы мы дали ссылку (опционально)?

Какой у вас Twitter (опционально)?

Автор #2

=========

...

Плагиат строго запрещён. Можете основываться на предыдущих работах, но если вы не приведёте их или не сможете объяснить, чем ваша работа отличается от них, ваше решение не будет принято.

Приз

Если хотите стать спонсором и подарить другие призы, пожалуйста, свяжитесь с нами по почте underhanded@rust-lang.org.

Жюри

В жюри будут входить члены команд Rust Core и Community, а также волонтёры из большого сообщества Rust.

Объявление Победителя (-ей)

Победитель будет объявлен где-то в районе июня 2017.

Правила

Организаторы соревнований, судьи, и спонсоры не имеют право участвовать в соревновании. Может отсутствовать возможность доставить призы победителю — например, он живёт в стране, в отношении которой действует эмбарго или другие юридические ограничения. В таком случае, если призы не могут быть вручены, организаторы конкурса приложат все усилия, чтобы разрешить ситуацию в рамках действующего законодательства; если выясняется, что ситуация не разрешима, призы будут отданы на благотворительность.

Если победитель не пожелает дать информацию, необходимую для доставки приза (ов), который он выиграл, приз (ы) будут переданы в благотворительный фонд. Специфические Rust призы (swag, и т. д.) будут выданы второму месту.