We are currently suffering a DDOS attack which has effectively killed the server, this means performance will be degraded and all repositories are corrupted.
Protech IT solutions are currently working on a solution, please do not view the site or the source as we are in the process of a forced rewind.
Thank you
@random, CEO of ProTech IT solutions and lead admin. @Techy, Lead Developer and community manager/ Trust and Safety Team Specialist
We remixed it and we provide it as a free service, but in order to keep things safe and prevent further attacks we have set some ground rules for both users and admins.
All changes must be tested first outside the working area
Any cryptic usernames will be banned, we recommend that you use your glitch name so we can identify you.
All repositories must have some kind of README
Also, your account will be deleted if:
you are under 13
you glorify or threaten violence
you are given unauthorized admin privileges
a report is made against you
you launch a DDOS attack against us, we are working on IP address monitoring to improve security
Thank you
@random, CEO of ProTech IT solutions/head admin @Techy, Lead Developer and community manager/ Trust and Safety Team Specialist
If people are able to run malicious code on the server side then you have some major security flaws which should be addressed immediately.
Also, if your database was accessed, are user’s passwords hashed? If so, what algorithms. Also, are they salted? If neither hashed or salted that wouldn’t look very good for you (as a business). (Also if your not salting hashed passwords I recommend you do so).
@charliea21 We are currently investigating the problem. But for some reason the site give’s all new users admin perms. We’re trying to fix that issue right now.
Hm, it could be a malicious code execution then. In that case, I’d take your project offline, backup the database to a secure location (perhaps on your local disk) and do a thorough investigation. Keep in mind though, it could all be down to a default or simple password. One of my personal servers was hit with a remote ransomware attack once - it was all down to using an extremely simple password (which I’ve now changed).
@charliea21 Thing is I’m puzzled how they were able to corrupt all of our Data with just creating new account. After I investigated I could not really find any evidence that users were “running malicious” code.
If the data was actually corrupted (file overwritten with binary nonsense) then someone’s managed to login remotely to your database (if it’s not a file based one, e.g MongoDB, MySQL, etc). On the other hand, if the database is file based (e.g SQLite) then it could be signs of code execution or there’s some random API endpoint letting anyone access project files.
In our case it’s a file based one. When users mass create a bunch of accounts our project just ends up crashing. We’re taking extra steps to ensure this doesn’t happen again.
Eh, likely unrelated. If you hit the disk limit Glitch won’t let you write to a file anymore. Thus, corrupting your data. Is your project scribing “nice” to the container limits?
@charliea21 Gogs is written in Go and uses no complicated technologies, this means that it stays below the container limits.
As for our databases, we are considering wether to move to a different and more secure database such as SQL. Please note that all databases and repositories are stored in private folders that are inaccessible through the editor.
As for the other issues you raised, the Site Security Team are working on ways to prevent future attacks. If you hold an account and feel that you are at risk then you reserve the right to delete it.
We are on red alert and will be hashing passwords.
Everyone at ProTech Web Services (Runs Gogs) are working on improving security, but we can never always spot attacks due to possible time differences. We are relying on the community to spot glitches ( No joke intended) and report them.
Please go easy on us, we are working at breakneck speed to resolve problems.
I get ddosed frequently and I use glitch for one of my premium websites, however i proxy all the discord requests to my hosts due to stupid 12 year olds not knowing how to make a bot ruining glitch and making it block my requests. I setup cloudflare and it works very nicely, i would recommend leaving the “under attack” mode on if your website is ddosed often
But do make sure to prioritise securing the database, make sure it has a very strong password (santa wumpus’s DB password is longer than 30 characters, includes special characters including both lower case and upper) and attempt to establish connections with the database with SSL if you haven’t already. We intentionally do not store explicit data in the database to avoid leaking of the database, all information leaked would pretty much be useless. With @charliea21 s advice, make sure your passwords are encrypted with salt. And ALWAYS MAKE SURE YOU TEST YOUR PERMISSION SYSTEM, i’ve never told this before but once i implemented a quick command to run any code on the server side, didnt test the permissions because i went “ah well i doubt i did anything fatally wrong” and then went to sleep, i woke up with many mentions. Luckily the other developers noticed the mistake quickly, immediately shut the bot down, changed root password, database password and changed the bot token. Due to this experience i have never made such a mistake again, could’ve gone so much worse
What xenforo does is it makes you make an account upon the setup page, which is outside of the main root page and blocked when the account was created, may be interesting setting something like this up
@charliea21 is actually gaining a lead, i am pretty sure gogs uses sqlite3 often, and something known as sqlite injection ( which a few of us can perform ) can override queries and what they are supposed to do, and just like that, the user can log in to an admin account with no password, it is extremely dangerous, and an admin account being hacked via sqlite injection is almost fatal to any website or service that is provided.
SQL injection can be eliminated as a threat quickly, you just need sqlite to read all specific information queries as only values and keys, you can read more about it here https://www.calhoun.io/what-is-sql-injection-and-how-do-i-avoid-it-in-go/ just because a database is vulnerable by nature, doesnt mean it’s a bad and unsecure database. SW uses mysql which uses sql syntax, and we’ve never been attacked due to using the variable feature sql provides. Besides MongoDB has its own vulnerabilities, no database is ever perfect
By concatting a value into the query, sqlite doesn’t know at all what it is, you just can’t expect it to guess
oh, one more little tip don’t let usernames on login contain = signs or semi-colins… doing a regex to check for these can often tell you if that person could be using sql injection
That’s one way to prevent SQL Injection, but the most efficient way is to take advantage of the placeholder feature SQL provides, that way users don’t need to do that. If the sql library you use doesn’t provide this, then you should do checks for special SQL query symbols (like quote marks)
@RiversideRocks We’re currently making some security changes at the moment so users may have a hard time logging in! We expect this to be done in 1 hour.