我在信息學奧賽上,用Bug直接改了驗算數據,拿了滿分算作弊嘛?

本文經AI新媒體量子位(公衆號ID:qbitai)授權轉載,轉載請聯繫出處。

本文約1700字,建議閱讀5分鐘

信息學奧賽上用Bug改數據拿了滿分!

在線考試,一道題太難做不出來,怎麼辦,是多少寫點還是直接放空?

在NOIP 2020(信息學奧賽)上,一位浙江同學,“另闢蹊徑”,最終,還拿了滿分。

簡單來說,就是他在直接指定了驗算數據,還要“改卷老師”就按着這個數據判卷。

什麼,還可以這麼操作?是不是感覺匪夷所思?

這,是NOIP2020被發現的Bug,是怎麼回事?又是什麼導致的Bug?


直接把驗算數據改了

不妨直接來看看選手提交的代碼:

圖源:洛谷

是的,就是這麼直接,打開輸入文件,覆蓋驗算數據;打開輸出文件,寫入答案。

相當於做數學題,考生的解題過程只有在特定數據下是正確的,但考生在改卷老師判卷的時候,直接讓老師全部按着這組數據去改。

是不是發現了核心問題所在了?對,改卷老師的數據能被修改了,就是Bug所在。

在瞭解Bug之前,我們先來對比和了解一下二者改卷的流程。

在NOIP2020中,驗算數據是內置的ball.in文件,答題卡是考生提交的程序,而改卷老師就是系統中的checker。

正常的評測流程:

  1. 評測系統給一個輸入ball.in文件;

  2. 運行選手的程序,得到ball.out文件;

  3. 用checker去檢查ball.in對應的ball.out文件的答案是不是滿足要求。

鑽空子後的評測流程:

  1. 評測系統給一個輸入ball.in文件;

  2. 運行選手的程序,選手改了ball.in文件,同時寫入ball.out文件;

  3. 用checker去檢查ball.in(修改過的)對應的ball.out文件的答案是不是滿足要求。

這個Bug中最詭異的地方,就是:原本應該只有只讀權限的ball.in文件,竟然能夠被輕易修改。

這個低級問題,出在哪裏,還不知道,但是據網友推測:應該就是落後老舊的評測軟件Arbiter的鍋。

因爲Arbiter的問題和Bug實在是太多了,修改ball.in文件只是其中之一。

知乎網友Menci的回答中,通過Arbiter,選手其實還能直接解限內存(增加計算力)和解限時間(增加答題時長)。

正是由於Arbiter的技術太落後了,存在各種Bug,才讓驗算數據的修改成爲了可能。

此外,網友的討論,也能發現,在文件讀取的指令中,也存在一些問題。

如果改卷老師先把輸入數據看一遍,那麼就算後面數據被偷換了,也不會出現誤判。

但是,系統程序的加載順序偏偏是,先運行選手的文件,於是,才留下了可乘之機。

當然,這個可乘之機,也是有使用侷限的,而這,跟Special judge的獨特判定機制有關。

Special Judge,是讀取選手提交的特定程序,通過驗算數據來確定選手提交的程序輸出(ball.out文件)是否正確。

而平常的題目,只需覈對答案就行,就不需要讀取程序。

直接覈對,也就沒有了篡改驗算數據的機會。

而今年,卻是NOIP競賽首次出現Special Judge題目。

就這樣,各種陰差陽錯的情況下,NOIP2020中最難的一道題,就這麼被「改」出了滿分答案。(狗頭)

取消成績?禁賽三年?

這位同學此次的行爲,算是踩到了競賽本身和競賽規則的一處灰色地帶。

至於會怎麼處理,還不得而知,我們只能從規定和往年的一些案例中窺探一二。

在往年中,CCF本身是對違規行爲有着規定和處罰的。

對於個人違規的判例上,可以分爲三個層級:

  1. 不合程序的成績作廢;

  2. 選手禁賽三年;

  3. 扣除所在省選下季名額1個,優先扣除作弊選手所在學校的名額。

從過往案例來看,如果只是選手在過程中被認爲不合乎程序,那麼即該部分成績取消,這種情況一般是沒有直接認定爲作弊。

而一旦認定爲作弊,則是禁賽三年扣除名額同時進行。

可以看出,認定爲作弊和非作弊二者之間,處罰力度之間的差距還是很大。

因此,該同學面臨處罰的最關鍵點,便是在於其行爲與作弊之間的一個認定。

那麼,CCF往年是如何認定作弊的呢?從往年公告中,我們可以看到:

爲獲獎採取了抄襲、拷貝等不正當的手段

另外,在作弊通告中,CCF特別強調:

本學會認爲,誠信是對一個成長中的學生最起碼的道德要求,也是參加競賽的前提條件,CCF嚴厲譴責任何弄虛作假的行爲。

按照往年來看,“等行爲”與“誠信”,似乎足以給這個行爲定性。

但是,也有網友認爲:CCF軟件出了問題,合理利用規則,沒有違反規定。

至於最終如何,只能等待處理結果出來才能知曉了。

網友討論:快去打CTF

NOIP2020被考生鑽了空子,這事一經發布,便引起啦網友的關注和討論。

在知乎上,相關提問已經有了89W的瀏覽量,並衝上了當日的知乎熱榜。

對於這種黑客式的攻擊行爲,又怎能不讓人想到CTF(網絡安全技術奪旗賽)呢?

這也難怪網友們都驚呼:快去打CTF

另外,也有網友調侃道:CTFer又多了個拿獎的地方。

所以,這位同學要不要考慮一下網絡安全技術奪旗賽呢?(狗頭)

參考鏈接:
https://www.luogu.com.cn/discuss/show/284885?page=6
https://www.zhihu.com/question/433907534/answer/1617656279

編輯:於騰凱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章