출처(영문): http://www.networkworld.com/article/3104879/security/mayhem-wins-2m-first-prize-in-darpa-cyber-grand-challenge.html#comments



미 방위고등과학계획국(DARPA, 달빠)가 주최한 이번 사이버그랜드챌린지가 뜻깊은 이유는 컴퓨터 프로그램이 인간의 개입 없이 지금까지 단 한 번도 본적이 없는, 달빠 측에서 제공한 코드에서 버그를 발견하고 패치했다는 점이다. 더구나 컴퓨터 프로그램들은 실시간으로 패치를 만들어내는데 성공했다.


이번 대회에서는 총 7개의 컴퓨터 프로그램들이 Capture the Flag(깃발뺏기) 게임을 벌였다. 컴퓨터 프로그램 각각에게는 서버가 하나씩 배정되며, 이 서버는 일련의 과제들을 수행해야 한다. 또한 서버에는 각종 버그와 보안결함을 가졌거나 비효율적인 새 코드들이 지속적으로 추가된다. 이러한 상황에서 컴퓨터 프로그램들은 상대방의 해킹으로부터 자신의 데이터를 보호해야 하며, 그와 동시에 상대방의 서버를 해킹하여 데이터를 빼내와야 한다.


다시 말해 이번 사이버그랜드챌린지의 궁극적인 목적은 스스로를 패치하고 해킹을 감지하는 컴퓨터 시스템을 만드는데 있다. 컴퓨터가 자기 자신을 돌볼 수 있다는 것은 매우 좋은 일이기 때문이다.



20160804_vega_034.jpeg?w=1104

사진 1: 달빠가 주최한 Capture the Flag(깃발뺏기) 대회장 모습


이번 대회에서는 인공지능이 사용되지 않았다. 이 컴퓨터 프로그램들은 사전에 입력된 일련의 정책들을 따라 코드의 특성을 분석하고 그 결과에 따라 반응했다.


1 등은 카네기멜론대학의 All Secure팀이 개발한 컴퓨터 프로그램 Mayhem이, 2등은 GrammaTech사와 버지니아주립대학 팀에서 개발한 Xandra가, 3등은 캘리포니아주립대학 팀이 개발한 Mech.Phish가 차지했다.


점수는 세 가지 부문에서 매겨졌다:


1. 보안(Security) - 결함을 발견하고 이를 패치하여 자신의 데이터를 상대방의 해킹으로부터 보호하는 능력


2. 가용(Availability) - 상대방의 해킹을 막으면서 동시에 일련의 과제들을 정상적으로 수행할 수 있는 능력


3. 탐지(Evaluation) - 상대방 프로그램에서 결함을 발견할 수 있는 능력



darpa cgc wide shot

사진 2: 달빠가 주최한 Capture the Flag(깃발뺏기) 대회장 모습



놀랍게도 카네기멜론대학의 All Secure팀이 개발한 Mayhem은 총 96라운드에 걸쳐 진행된 대회 막바지에서 30라운드 동안 아무것도 하지 않았음에도 불구하고 대회에서 우승했다. 사실 이런 전략은 종종 볼 수 있다. 상대팀들이 자신들의 문제를 해결하려 진땀을 빼는 동안 정작 자신은 아무것도 안하는 것이 최선의 전략인 경우가 있다.


대회 진행 도중 Raytheon 팀에서 개발한 컴퓨터 프로그램 Rubeus는 상대방이 발견한 자기 프로그램의 결함을 고치기 위해 패치를 적용했으나, 그 다음부터는 작동속도가 엄청나게 느려졌다. 이 패치가 CPU 용량의 대부분을 잡아먹는 바람에 정작 수행해야 되는 다른 과제들을 제대로 수행할 수가 없었던 것이다.


결국 Rubeus는 패치를 제거했다. 아마도 프로그램 결함을 없애는 것보다 접근성 부문에서 점수를 더 따는 것이 중요하다고 판단한 듯 싶다.


이번 대회의 우승자인 Mayhem은 올해 열리는 DEF CON에서 인간 해커들과 대결할 예정이다.