[01:15.780 --> 01:22.560] Welcome to Space Security Challenge 2020, HackASAT, the final event. As the democratization [01:22.560 --> 01:28.020] of space opens up a new frontier for exploration and innovation, we see new cybersecurity [01:28.020 --> 01:34.660] vulnerabilities emerging. The Space Security Challenge is designed to inspire the world's [01:34.660 --> 01:40.360] top cybersecurity talent to develop the skills necessary to secure this last frontier of [01:40.360 --> 01:47.900] cybersecurity, space. And already we've made a ton of progress. I'll catch you up. This [01:47.900 --> 01:52.700] spring, we hosted over 2,000 teams who worked their way through a set of foundational space [01:52.700 --> 01:58.620] cybersecurity challenges in our HackASAT qualification round. Now, eight finalist [01:58.620 --> 02:04.700] teams are stepping up to the ultimate challenge. They are hacking a satellite. [02:12.080 --> 02:17.960] Welcome back to the second and final day of the competition portion of HackASAT. Are you excited? [02:17.960 --> 02:24.400] As always, I'm your host, Jordan Wines. First, a quick recap of the game to this point. [02:30.140 --> 02:35.280] The game has actually been underway for one hour now, and our team's first challenge has been to [02:35.280 --> 02:40.460] regain control of the ground station that they'll be using to communicate with their Flatsats. In [02:40.460 --> 02:46.060] fact, just before this broadcast went live, we received word that this challenge was actually [02:46.060 --> 02:52.180] solved by Team Samurai. Congratulations to them. Right after our last update ended with only a [02:52.180 --> 02:58.420] Samurai solve, several other teams came in with solutions for Challenge Zero. PFS and Solarwine [02:58.420 --> 03:04.580] were solvers two and three on that challenge. After those two teams scored on Challenge Zero, [03:04.580 --> 03:07.640] every other team was eventually able to solve Challenge Zero over the next several hours. [03:07.640 --> 03:12.980] Taking a look at the scoreboard so far, we've had an eventful last hour. Our teams continue to make [03:12.980 --> 03:17.920] progress, with four teams now having solved Challenge One. Unfortunately, the window of time [03:17.920 --> 03:23.440] after first solve has expired, and the remaining four teams were given a solution with no points. [03:23.520 --> 03:31.580] PFS and Colon Can Into Space were joined by 1553 and 1064 Seabred with solutions for Challenge One. [03:31.740 --> 03:36.420] Now, this was going to be where I signed off for this update, but as we were live, [03:36.420 --> 03:42.560] PFS actually jumped up on the scoreboard, yet again, solving Challenge Two. Most teams are now [03:42.560 --> 03:48.280] working on two or three challenges. The On-Orbit Challenge, Challenge Two, and Challenge Three. [03:48.280 --> 03:53.120] PFS has been pulling away to a healthy lead. They still have a critical problem to solve. [03:53.120 --> 03:58.260] Specifically, the On-Orbit Challenge. While Colon Can Into Space is only nipping at their heels at [03:58.260 --> 04:02.980] number two on the scoreboard, they are critically not only the first team with an attempted solution [04:02.980 --> 04:07.460] to their On-Orbit Challenge, but the first with an accepted solution. That would mean that they [04:07.460 --> 04:13.080] would be able to pass PFS if PFS is not able to actually solve, because again, that is a pass-fail [04:13.080 --> 04:23.160] challenge. Yesterday, our teams collectively worked their way through Challenges Zero through Two, [04:23.160 --> 04:27.740] leaving with half of the challenges solved by at least one team, and three challenges remaining [04:27.740 --> 04:34.340] to be solved today. PFS grew their lead throughout the day yesterday, but the biggest drama occurred [04:34.340 --> 04:40.840] after hours. When the 4 p.m. Pacific deadline for the On-Orbit Challenge passed, only four teams [04:40.840 --> 04:47.520] had submitted solutions deemed acceptable. What's an acceptable solution? Let's take a look at [04:47.520 --> 04:54.500] solving the On-Orbit Challenge. First, some terms you'll want to know. Two-line element set, or TLE, [04:54.640 --> 04:58.900] a data format containing information about an object's position and velocity at a specific [04:58.900 --> 05:03.440] point in time. It is used to calculate where a satellite will be at some point in the future, [05:03.440 --> 05:09.000] with increasing uncertainty the further out in time. Window of opportunity, the period of time [05:09.000 --> 05:14.680] during which the satellite can be positioned to complete the desired goal. Vector, a line [05:14.680 --> 05:20.480] indicating a specific direction in magnitude. A satellite will have assigned X, Y, and Z vectors [05:20.480 --> 05:26.020] associated with the body of the vehicle that can be used in a coordinate system. Camera boresight, [05:26.020 --> 05:31.160] camera mounting position, and camera body vector all describe the satellite camera and where it's [05:32.180 --> 05:36.780] Quaternion, a number system that is handy for calculating 3D rotations. [05:37.340 --> 05:44.620] Got it? Here we go. The first step in solving the On-Orbit Challenge, identify the key data. The TLE, [05:44.620 --> 05:49.360] camera mounting position, target, and window of opportunity are all supplied in the challenge [05:49.360 --> 05:54.380] description or the On-Orbit Handbook. The data is used to calculate the orbit of both the satellite [05:54.380 --> 05:59.400] and the moon toward the window of opportunity. And don't forget to grab the camera body vector, [05:59.400 --> 06:04.440] which will be needed later. The second step, calculate the time of image by defining the [06:04.440 --> 06:09.880] relationship between these key vectors. One, determine the satellite to moon vector, which [06:09.880 --> 06:14.780] points directly from the satellite towards the moon. Two, determine the nadir vector, which points [06:14.780 --> 06:20.140] directly from the satellite towards the center of the earth. Three, determine the angle between one, [06:20.140 --> 06:24.800] the satellite to moon vector, and the nadir vector, and two, the angle between the satellite [06:24.800 --> 06:29.860] negative z vector and the camera body vector. The instance when the difference between the two [06:29.860 --> 06:34.620] angles is minimized gives us the time of image, the moment along its orbit when the satellite [06:34.620 --> 06:42.220] will be in position to take our all-important moon shot. The third step, calculate the attitude or [06:42.220 --> 06:47.060] the position within its orbit that the satellite must take for the camera to capture the image. [06:47.140 --> 06:54.780] This is accomplished by lots of math. Specifically, something called a Direction Cosine Matrix, DCM, [06:54.780 --> 07:00.540] or Rotation Matrix. The DCM calculates a satellite attitude that points one, the camera boresight to [07:00.540 --> 07:05.860] the moon, and two, the satellite's negative z vector to earth's center, which is the attitude [07:05.860 --> 07:12.540] needed to accomplish the goal. The DCM supplies us with a specific quaternion, which when uploaded [07:12.540 --> 07:17.680] and applied to the satellite's attitude determination and control system, ADCS, moves the [07:17.680 --> 07:24.160] satellite into the desired position. On to the final step, apply all that information and get [07:24.160 --> 07:30.180] the image we're after. We take the time of image and back out the commands around it, giving the [07:30.180 --> 07:34.780] satellite enough time to apply the quaternion and be in position when it arrives at the window of [07:34.780 --> 07:41.140] opportunity. The proper order of commands would be as follows, turn on the ADCS, slew to the commanded [07:41.140 --> 07:48.060] quaternion, turn the camera on, set the exposure time, capture the image, and finally, turn the camera [07:48.060 --> 07:54.420] off. That's it. Challenge accomplished. But what does all of this have to do with [07:54.420 --> 08:00.320] hacking and keeping our satellites secure? The on-orbit challenge was completed with full trust. [08:00.320 --> 08:05.080] Our satellites rely on data and sensors from multiple sources in order to complete an objective. [08:05.080 --> 08:09.080] The TLE that was provided relied on data from the satellite and ground stations. [08:09.080 --> 08:13.200] Authenticated communications were required to upload the proper command sequence. [08:13.200 --> 08:18.720] Trusted execution was required to process sensor and actuator data to close control loops. [08:18.720 --> 08:24.140] Secure onboard communications were required to carry out operations in orbit. We need security [08:24.140 --> 08:28.880] focused people to help with these problems because just as much as it takes a team of people to strap [08:28.880 --> 08:34.200] explosives to a computer to get a satellite into orbit, it takes a team of people from both space [08:34.200 --> 08:39.920] and security communities to ensure that space remains a viable usable resource. [08:42.160 --> 08:49.100] The four teams with successful on-orbit solutions during the time period were Poland Cannon to Space, [08:49.100 --> 08:56.260] in fact theirs came well over an hour before anyone else's, ADD Vulcan, Flux Rocket Repeat, [08:56.260 --> 09:03.900] and Samurai all came in within about 10 minutes of each other within the last 15 minutes of that window. [09:04.160 --> 09:08.680] Remember, the on-orbit portion involves a team computing a mission plan for an actual satellite [09:08.680 --> 09:13.720] to take a picture of the moon. All acceptable solutions were evaluated and the most accurate [09:13.720 --> 09:19.060] solution submitted before the 4 p.m. deadline will be chosen to be sent into space into our orbiting [09:19.060 --> 09:25.640] satellite. We'll learn whose solution that was amongst those four later on today. As we entered [09:25.640 --> 09:31.600] into our overtime period after the 4 p.m. deadline yesterday, the alternate acceptance criteria kicked [09:31.600 --> 09:36.700] into play. Well, the four teams submitting before 4 p.m. were automatically eligible for their [09:36.700 --> 09:42.580] solution to be sent and automatically into prize eligibility. We had to get more teams available. [09:42.580 --> 09:48.380] The limit was six. This meant that two teams of the remaining four would be out of contention [09:48.380 --> 09:57.300] for the final prize pool. The four teams fighting for those two spots included PFS, 1553, 1064 Seabred, [09:57.300 --> 10:03.480] and Solarwine. 1553 managed to submit a solution that was valid only three minutes after the [10:03.480 --> 10:10.840] quickly grabbing that fifth spot. That left PFS, 1064 Seabred, and Solarwine on the ropes for that [10:10.840 --> 10:17.160] last spot. PFS and 1064 Seabred were number one and number four on the scoreboard at that point, [10:17.160 --> 10:22.780] so no matter what happened, someone in contention for the podium would not be eligible. All of the [10:22.780 --> 10:27.620] contest organizers were on a shared video chat waiting to see the results as they came in. [10:27.700 --> 10:32.880] 1064 Seabred had what looked to be an extremely close solution that was just outside the acceptance [10:32.880 --> 10:41.560] criteria, and PFS didn't seem to be close. Then at 7 48 p.m eastern or 4 48 p.m pacific, [10:41.560 --> 10:47.380] PFS came in with a valid solution just edging out 1064 Seabred and Solarwine on the list of [10:47.380 --> 10:55.460] on-orbit acceptance. Unfortunately, that means that 1064 Seabred and Solarwine are both ineligible for [10:55.620 --> 11:00.880] a spot on the podium. That said, they can still have an impact on the game. Either team scoring [11:00.880 --> 11:04.780] first blood will potentially change the number of available points left on the board for the [11:04.780 --> 11:10.200] competitors and impact the final result. It's sad to see two great teams out of contention for the [11:10.200 --> 11:14.440] prize pool, but they can still end up on the leaderboard from a points perspective and attain [11:14.440 --> 11:19.020] the associated bragging rights. In fact, let's go ahead and take a look at the scoreboard now [11:19.020 --> 11:25.580] in our live octagon feed. And they definitely haven't slowed down. You'll notice that Solarwine [11:25.580 --> 11:30.240] actually scored first blood on challenge three. Congratulations to them for the great work [11:30.240 --> 11:34.800] overnight. The pressure is now on the remaining teams to show that they made good use of [11:34.800 --> 11:40.880] the downtime as well to land challenge three. You can also see Flux Repeat Rocket scoring [11:40.880 --> 11:45.700] just before this broadcast with only a 5% reduction in total points. So that's a good [11:45.700 --> 11:51.000] amount of points for them. That means Solarwine and Flux Repeat Rocket are both moving on to [11:51.000 --> 12:01.130] challenge four. Challenge four. Here's what we know. We've restored communication with the payload [12:01.130 --> 12:06.650] module, but we still can't operate it. The challenge? Now teams must restore normal operations [12:06.650 --> 12:20.510] of the payload module so we can access the imager. This is the first time we've seen Flux Repeat [12:20.510 --> 12:55.340] Rocket make a big move on the scoreboard. Let's check out their team bio. Like many of the combined [12:56.200 --> 13:01.660] CTF teams that we've seen here today, I have good memories of playing Hack Lou CTF. In fact, [13:01.660 --> 13:06.240] it's often the case that the competition participants are also organizers in other times. [13:06.240 --> 13:10.440] So one of those teams that makes up the composition of Flux Repeat Rocket, [13:10.440 --> 13:15.500] FluxFingers, runs Hack Lou, which is another great CTF competition you should check out. [13:15.740 --> 13:20.120] What an exciting first day. I'm looking forward to seeing what happens today as our teams battle [13:20.120 --> 13:24.760] through these last few challenges. Come back and join us at our 10 50 a.m. Pacific, [13:24.760 --> 13:28.100] 1 50 p.m. Eastern for our next competition update.