Situation
I am doing a thought game about making a server to manage the own financial situation and do some trading.
I understand, an offline machine would be the safest machine but this kind of defeats the purpose. Please help me find any gaps and/or improvements in my thoughts as well as (if possible) provide some references (videos, books, articles) which I can further research on.
I'm looking forward for your assistance.
System Requirements
Suppose, the system manages Tremendous Funds (what ever this means for you, a few thousand, 100k million, billion whatever). It should therefore be as safe as possible against access from third parties, Natural and Man-Made desasters.
System
My though was to use a physical Machine with Linux (ubuntu) LTS Server installed. The system should be as clean as possible.
Patching
Updating a system is essential but always updating to the latest version might introduce system instabilities and bugs. It is probably best to enable security updates but disable feature updates
Network and firewall
Network would be best fully disabled for a secure system. Unfortunately this is not always feasible. Wireless Network should be avoided, a cable should be used instead.
The Firewall should be as restrictive as possible. At best only allowing function-essential services. Foreign countries should be blocked off alltogether.
The Machine should not be visible on the network.
Ping etc should be disabled
Datastorage and Backup
An internal storag should be used as opposed to nas. The storage should be encrypted.
Backups should be taken regulairly or after relevant system/data changes. One backup should be stored safely on location in order to restore operation after an immediate failure of the machine or operator screw up.
Further backup should be stored in a remote, safe location providing security against natural desaster.
Remote Access
Remote access should be disabled at best or very restricted.
Laptops can make an easier choice as they have a direct attached screen and keyboard and as such might be easier managed directly. However, they are not designed to run 24/7 under heavy load ( the battery should be replaced after 2-3 years to prevent bloating)
If remote access is absolutely nessesary, it should only be available to immediate network. If access from outside is nessesary, a jump host should be used with trust relationship.
Remote access should not work with passwords. Key-files should be used instead (how to protect keyfile???)
Passwords and User account
The root user should be disabled and not allowed for login.
Usernames should not be easily guessed and should not contain any obvious phrases such as (list just exemplary):
I am doing a thought game about making a server to manage the own financial situation and do some trading.
I understand, an offline machine would be the safest machine but this kind of defeats the purpose. Please help me find any gaps and/or improvements in my thoughts as well as (if possible) provide some references (videos, books, articles) which I can further research on.
I'm looking forward for your assistance.
System Requirements
Suppose, the system manages Tremendous Funds (what ever this means for you, a few thousand, 100k million, billion whatever). It should therefore be as safe as possible against access from third parties, Natural and Man-Made desasters.
- The system should be backed up and backups should be stored in a safe manner
- The system must have some online capability in order to fullfill it's purpose (eg trading cryptos or whatever)
- The system would at best have some capability to intervene remotely (I understand, this is a huge security caveat but in practice, it is very hard to have on machine access all the time)
System
My though was to use a physical Machine with Linux (ubuntu) LTS Server installed. The system should be as clean as possible.
Patching
Updating a system is essential but always updating to the latest version might introduce system instabilities and bugs. It is probably best to enable security updates but disable feature updates
Network and firewall
Network would be best fully disabled for a secure system. Unfortunately this is not always feasible. Wireless Network should be avoided, a cable should be used instead.
The Firewall should be as restrictive as possible. At best only allowing function-essential services. Foreign countries should be blocked off alltogether.
The Machine should not be visible on the network.
Ping etc should be disabled
Datastorage and Backup
An internal storag should be used as opposed to nas. The storage should be encrypted.
Backups should be taken regulairly or after relevant system/data changes. One backup should be stored safely on location in order to restore operation after an immediate failure of the machine or operator screw up.
Further backup should be stored in a remote, safe location providing security against natural desaster.
Remote Access
Remote access should be disabled at best or very restricted.
Laptops can make an easier choice as they have a direct attached screen and keyboard and as such might be easier managed directly. However, they are not designed to run 24/7 under heavy load ( the battery should be replaced after 2-3 years to prevent bloating)
If remote access is absolutely nessesary, it should only be available to immediate network. If access from outside is nessesary, a jump host should be used with trust relationship.
Remote access should not work with passwords. Key-files should be used instead (how to protect keyfile???)
Passwords and User account
The root user should be disabled and not allowed for login.
Usernames should not be easily guessed and should not contain any obvious phrases such as (list just exemplary):
- admin
- super
- root
- user
- The password should be long (length beats complexity) but memorable
- The password should not be used in any other systems or anywhere else (unique to the system)
- The password should not be stored in a text file.
Ideally one would carve the password onto a granite stone but a password manager with strong encryption on a offline media might be sufficient?? - An account lockout policy should be in place (lock account for x minutes after 3 attemts)
- Successful and unsuccessful logon attempts should be audited regularly
- Upon logon, the last successful logon time should be displayed
- A software could audit running Processes, services and corresponding ports, Log changes thereof.
- A software could log File changes (excluding logfiles) and Log there changes