Company
Careers
Services
We emulate attackers to locate the critical exposures that hackers, ransomware, cybercriminals, and nation states will leverage to compromise your organization.
Use Cases
Every organization has digital assets to protect. Which of these scenarios sounds like you?
Customers
We are fanatical about delivering security solutions and fixated on customer success.
Put the customer first and everything else will work out. Our lifetime NPS of 02 reflects this core value commitment to our customers.
Several customers have jumped on camera to share their Praetorian experience. Check out their success stories.
Resources
We build innovative, sustainable solutions that solve real-world problems for our customers and ourselves.
Learn about our offerings, their methodologies, and the outcomes you can expect.
Our whitepapers blend data and thought leadership across a range of security matters, to help you understand an issue, solve a problem, or make a decision.
Keep up-to-date on cybersecurity industry trends and the latest tools & techniques from the world’s foremost cybersecurity experts.
Praetorian is committed to opensourcing as much of our research as possible.
A Classic Game of Ancient Rome
No one knows the Roman name for it, but scholars call it ROTA, Latin for “wheel.” ROTA boards were painted, scratched or scribbled everywhere that Romans went. It probably kept a lot of bored Roman soldiers busy.
Scholars guess that ROTA is a three-in-a-row game like tic-tac-toe. They have reconstructed the rules based on medieval games that look a lot like it. There is one key difference between tic-tac-toe and ROTA…. ROTA can never end in a tie.
Icon/Info When you complete this challenge, please send a copy of your resume along with all hash values you collected and any code used in the challenges to: careers@praetorian.com
When you complete this challenge, please send a copy of your resume along with all hash values you collected and any code used in the challenges to: careers@praetorian.com
I’ll explain how to play the game, then you’ll get a chance to experience the real game.
Icon/Info Pssst… By the Way: Really good players of Rota can keep the game going forever.
Pssst… By the Way: Really good players of Rota can keep the game going forever.
The object of the final challenge is to play 50 consecutive thirty-move games against our ROTA AI without losing.
To interact with the ROTA web service, GET requests are sent to:
https://rota.praetorian.com/rota/service/play.php
Icon/Info Note: Successful requests (the correct use of placing a piece or moving a piece) must be made within a certain time limit or the session time restarts and a new game must be requested
Note: Successful requests (the correct use of placing a piece or moving a piece) must be made within a certain time limit or the session time restarts and a new game must be requested
Use request values to tell the computer what you want to do, for example: https://rota.praetorian.com/rota/service/play.php?request=new
request
Use the following parameters as reference when interacting with the web service:
new
Restart a game. In doing so you will create a new game and restart the timer for game length. This request can be made at any point. You must include your email in the initial request to obtain a valid session.
Example: https://rota.praetorian.com/rota/service/play.php?request=new&email=rota@example.org
place
Place a new piece on the board. This request can only be made during the first three moves of each player’s turns.
Use the location parameter in conjunction with place with a value between 1-9
location
Example: https://rota.praetorian.com/rota/service/play.php?request=place&location=3
move
Use the move parameter when moving a current piece from one location to another. This request can only be made after the player has placed all 3 pieces on the board. Include both the from and to parameters when moving a piece on the board. The value must be an integer between 1-9.
from
to
Example: https://rota.praetorian.com/rota/service/play.php?request=move&from=3&to=4
status
Returns the current status of the session which includes board status, computer wins, and player wins. This request can be made at any time, but does not reset the timer between successful requests.
Example: https://rota.praetorian.com/rota/service/play.php?request=status
next
Increases the games_won count and resets the moves count. This endpoint will kill a game if it is called prior to a 30 move game.
games_won
moves
Example: https://rota.praetorian.com/rota/service/play.php?request=next
All web service responses are in a JSON format. Every server response will include the updated game board with the computer’s next move if the prior request involved a player move.
Specifies whether the request was successfully executed. If the request did not go through it will fail and an explanation is given in the response data. A success is returned if the request does go through and is properly executed.
success
Success: {"status":"success","data":{"board":"---------","player_wins":0,"computer_wins":0}}
{"status":"success","data":{"board":"---------","player_wins":0,"computer_wins":0}}
Fail: {"status":"fail","data":{"request":"No game available. Please start a new game by using the \"new\" request."}}
{"status":"fail","data":{"request":"No game available. Please start a new game by using the \"new\" request."}}
data
Contains the responses data which may include: board layout, computer_wins count, player_wins count, moves count, games_won, and hash (which is given after one hours of continuous play)
board
computer_wins
player_wins
hash
The board will be returned as a string, where each position corresponds to a position on the board. Board positioning is as below, where each position has a number 1-9.
1
2
3
4
5
6
7
8
9
- represents an empty space
-
c represents a space occupied by a computer piece
c
p represents a space occupied by a player piece
p
To help get you started, we’ve included basic Ruby code needed to interact with and solve this challenges.
Please use Chrome, Safari, Firefox, or Edge to view this site.