Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


really, aren't most servers full of security holes?
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

really, aren't most servers full of security holes?

I created a pretty simple JVM-based application to run on a VPS. While programming the app was pretty simple, deploying it was not. I wanted to achieve 2 things: a secure system and a (mostly) automated deployment. Long story short... became a mini-expert on Ansible, Docker, web server, while minding lots of security concepts like disabling root logins, requiring key exchange, redirecting ports, keeping passwords/secrets out of source, shutting down unnecessary services, etc.

The point is, I know how much work I've done, and I still feel my server isn't all that secure for a variety of reasons. The guides around the web vary in comprehensiveness and in details. I doubt that many VPS customers have dedicated as much time to locking down their server... and many are running far more services than my 1 app. Which means that most probably have enormous security holes. Agree or disagree? Or am I the one doing it all wrong?

«1

Comments

  • ericlsericls Member, Patron Provider

    No public ip

    Thanked by 1AndreiGhesi
  • yoursunnyyoursunny Member, IPv6 Advocate

    Yes, my servers are full of security holes.
    However, if you attack my server, I'll take away your cookies and tell Santa to put you on the naughty list.


    The following IPs please stop attacking my servers. You have been warned.
    Aug 08 20:19:55 vps5 sshd[7167]: Invalid user jason from 171.251.20.115 port 44116
    Aug 08 20:20:05 vps5 sshd[7169]: Invalid user test from 171.240.194.106 port 43918
    Aug 08 20:20:06 vps5 sshd[7171]: Invalid user 1234 from 116.98.171.249 port 48114
    Aug 08 20:20:07 vps5 sshd[7126]: Invalid user system from 116.110.115.197 port 45186
    Aug 08 20:21:58 vps5 sshd[7174]: Invalid user testuser from 171.251.20.115 port 35962
    Aug 08 20:23:55 vps5 sshd[7176]: Invalid user tester from 116.98.171.249 port 57414
    Aug 08 20:24:21 vps5 sshd[7178]: Invalid user ubnt from 193.169.254.113 port 40604
    Aug 08 20:27:14 vps5 sshd[7183]: Invalid user support from 171.251.20.115 port 57350
    Aug 08 20:32:51 vps5 sshd[7186]: Invalid user super from 116.110.115.197 port 40694
    Aug 08 20:35:01 vps5 sshd[7188]: Invalid user super from 116.98.171.249 port 40050
    Aug 08 20:53:50 vps5 sshd[7196]: Invalid user sconsole from 116.110.8.130 port 49042
    Aug 08 21:35:24 vps5 sshd[7262]: Invalid user minerstat from 37.0.11.249 port 54782
    Aug 08 21:35:51 vps5 sshd[7264]: Invalid user mos from 37.0.11.249 port 51660
    Aug 08 21:36:19 vps5 sshd[7266]: Invalid user mos from 37.0.11.249 port 48462
    Aug 08 21:36:44 vps5 sshd[7268]: Invalid user ad1tz from 37.0.11.249 port 45268
    Aug 08 21:53:55 vps5 sshd[7277]: Invalid user  from 65.49.20.66 port 45210
    Aug 08 21:55:21 vps5 sshd[7280]: Invalid user user from 205.185.127.25 port 37866
    Aug 08 21:56:11 vps5 sshd[7282]: Invalid user user from 205.185.127.25 port 44868
    
    Aug 08 14:31:43 vps9 sshd[35795]: Invalid user telecomadmin from 202.137.144.120 port 22437
    Aug 08 14:45:30 vps9 sshd[35910]: Invalid user vbox from 134.209.39.6 port 54974
    Aug 08 14:49:51 vps9 sshd[35929]: Invalid user joao from 154.8.151.45 port 58587
    Aug 08 14:53:41 vps9 sshd[35946]: Invalid user ubuntu from 212.33.250.241 port 58266
    Aug 08 15:07:57 vps9 sshd[35980]: Invalid user netdiag from 190.104.146.136 port 15624
    Aug 08 15:55:50 vps9 sshd[36268]: Invalid user ftpuser from 1.117.1.19 port 49418
    Aug 08 16:12:36 vps9 sshd[36399]: Invalid user ram from 81.70.220.67 port 53504
    Aug 08 16:15:36 vps9 sshd[36416]: Invalid user chris from 43.129.168.8 port 56900
    Aug 08 18:00:34 vps9 sshd[37587]: Invalid user vijay from 111.229.191.150 port 35610
    Aug 08 18:23:26 vps9 sshd[37754]: Invalid user admin from 49.234.22.220 port 38422
    Aug 08 20:52:26 vps9 sshd[38605]: Invalid user agsadmin from 61.251.191.139 port 27913
    Aug 08 21:11:41 vps9 sshd[38777]: Invalid user brandon from 172.124.38.41 port 58632
    Aug 08 21:38:16 vps9 sshd[38877]: Invalid user ubnt from 193.169.254.113 port 7918
    Aug 08 22:39:26 vps9 sshd[39276]: Invalid user admin from 45.146.166.50 port 33504
    Aug 08 23:44:10 vps9 sshd[39597]: Invalid user ubnt from 176.111.173.156 port 51318
    Aug 09 01:51:25 vps9 sshd[40282]: Invalid user ubuntu from 193.169.254.113 port 38624
    
    Aug 08 21:35:10 vps2 sshd[23242]: Invalid user zookeeper from 107.189.31.98 port 43258
    Aug 08 23:13:45 vps2 sshd[23573]: Invalid user ubnt from 193.169.254.113 port 58254
    Aug 08 23:39:21 vps2 sshd[23607]: Invalid user admin from 199.195.253.212 port 36248
    Aug 08 23:39:23 vps2 sshd[23609]: Invalid user git from 199.195.253.212 port 38134
    Aug 08 23:39:25 vps2 sshd[23611]: Invalid user mysql from 199.195.253.212 port 39640
    Aug 08 23:39:26 vps2 sshd[23613]: Invalid user hadoop from 199.195.253.212 port 41470
    Aug 08 23:39:28 vps2 sshd[23615]: Invalid user steam from 199.195.253.212 port 43054
    Aug 08 23:39:31 vps2 sshd[23617]: Invalid user hadoop from 199.195.253.212 port 44638
    Aug 08 23:39:33 vps2 sshd[23619]: Invalid user user from 199.195.253.212 port 46582
    Aug 08 23:39:35 vps2 sshd[23621]: Invalid user system from 199.195.253.212 port 47666
    Aug 08 23:39:38 vps2 sshd[23625]: Invalid user admin from 199.195.253.212 port 50730
    Aug 08 23:39:40 vps2 sshd[23627]: Invalid user ubuntu from 199.195.253.212 port 52018
    Aug 08 23:39:44 vps2 sshd[23631]: Invalid user azureuser from 199.195.253.212 port 54602
    Aug 08 23:39:46 vps2 sshd[23633]: Invalid user user from 199.195.253.212 port 56266
    Aug 08 23:39:47 vps2 sshd[23635]: Invalid user ansible from 199.195.253.212 port 57498
    Aug 08 23:39:49 vps2 sshd[23637]: Invalid user esuser from 199.195.253.212 port 58720
    Aug 08 23:39:51 vps2 sshd[23639]: Invalid user esuser from 199.195.253.212 port 60412
    Aug 08 23:39:53 vps2 sshd[23641]: Invalid user lighthouse from 199.195.253.212 port 33318
    Aug 08 23:39:55 vps2 sshd[23643]: Invalid user ubuntu from 199.195.253.212 port 35298
    Aug 08 23:39:57 vps2 sshd[23645]: Invalid user guest from 199.195.253.212 port 36584
    Aug 08 23:39:58 vps2 sshd[23647]: Invalid user cisco from 199.195.253.212 port 38012
    Aug 08 23:40:00 vps2 sshd[23649]: Invalid user zookeeper from 199.195.253.212 port 39308
    Aug 08 23:40:02 vps2 sshd[23651]: Invalid user zookeeper from 199.195.253.212 port 40646
    Aug 08 23:40:04 vps2 sshd[23653]: Invalid user zookeeper from 199.195.253.212 port 42084
    Aug 09 01:18:48 vps2 sshd[23755]: Invalid user ubuntu from 176.111.173.156 port 40638
    

    Thanked by 1o_be_one
  • rcxbrcxb Member

    Lots of one-man operations probably have pretty insecure servers/services, yeah. They learn over time by experience, though, figuring out they should try harder every time someone successfully breaks in. Hopefully they aren't doing anything too valuable.

    Bigger companies have experts securing the servers (the work you did only needs to happen once and can be applied to a large number of servers), auditing the code, looking for attempted exploits, monitoring logs, tracking for intrusions, regularly scanning for service vulnerabilities, etc.

    Thanked by 1webcraft
  • cpsdcpsd Member

    A few advices: fail2ban, iptables blocking all the incomings, knock and door to let you in and 2 step verification for ssh login.

  • eriseris Member

    Ipset + blacklist or even better white list + iptables + fail2ban is usually fine. Number of "fail2ban bans" has been decreased a lot since I set up a decent Ipset blacklist...

  • aquaaqua Member, Patron Provider
    edited August 2021

    SSH keys, Fail2Ban, IPtables to whitelist only IPs you know, etc.

    Thanked by 1webcraft
  • @rcxb said:
    Lots of one-man operations probably have pretty insecure servers/services, yeah. They learn over time by experience, though, figuring out they should try harder every time someone successfully breaks in. Hopefully they aren't doing anything too valuable.

    Bigger companies have experts securing the servers (the work you did only needs to happen once and can be applied to a large number of servers), auditing the code, looking for attempted exploits, monitoring logs, tracking for intrusions, regularly scanning for service vulnerabilities, etc.

    Yes, sorry, I was talking about solo/small companies, the typical customers of the VPS providers on this site. For sure, major enterprises that can support full-time IT teams will have better security... although, those companies are also much more likely to be attacked, and it seems like the attackers are reasonably successful.

  • NeoonNeoon Community Contributor, Veteran

    The more holes you have, the more aerodynamic it is.
    In the end, you just doge these attacks.

    Thanked by 4o_be_one MrH Ouji Erisa
  • Security should be baked into every guide for how to setup a server as well as every guide for how to code. When it becomes the baseline, it's no longer extra work.

  • jsgjsg Member, Resident Benchmarker

    @ehhthing said:
    Security should be baked into every guide for how to setup a server

    In theory, yes, but premise error. Actually having good and "secure" configs is NOT making a system secure, it merely helps to not make it even worse (in terms of security) than it already is.
    The real problem is largely out of reach; it starts with the hardware (both X86 and Arm are a security nightmare, and keep in mind that there actually are at least dozens of CPUs and MCUs in a server systems) and it reaches up over basically all commonly used OSs and up to pretty much all libraries and applications. One may have (or be able to get) the source code of much of those but evidently that's worthless. Remember "1000 eyes" and Heartbleed? Actually there were not even 4 eyes with capable minds behind the eye balls - although at least 2 of those eyes had the official task to look at the code and check it.

    And even the vast majority of the developers behind all that code could not make it more secure. In fact most of them chose languages that make bugs likely and solid code unlikely and 95+% (realistically more like 99%) couldn't use real analyzers even if they had them.

    Security should be baked into ... every guide for how to code. When it becomes the baseline, it's no longer extra work.

    Wrong. It's always extra work, and in fact rather complicated work that also requires knowledge many simply do not have and can not easily grasp.

    Another very major problem is the "fun" attitude. Extremely few actually enjoy proper software development, which is very much about knowledge and discipline and very little about fun.

    TL;DR No, sorry, you can't make your system secure with proper config and some scripts (like fail2ban). What you can - and should! - do is to not make it worse than it already is.

    Also note that the best one can achieve, incl. "security experts" at large companies, is to not be easily hackable by script kiddies and 2nd and 3rd rate attackers. NSA and first rate attackers is something almost nobody, incl. large companies can defend against.

  • Also backups are important, really important.

    Thanked by 1jsg
  • @jsg said:

    @ehhthing said:
    Security should be baked into every guide for how to setup a server

    In theory, yes, but premise error. Actually having good and "secure" configs is NOT making a system secure, it merely helps to not make it even worse (in terms of security) than it already is.
    The real problem is largely out of reach; it starts with the hardware (both X86 and Arm are a security nightmare, and keep in mind that there actually are at least dozens of CPUs and MCUs in a server systems) and it reaches up over basically all commonly used OSs and up to pretty much all libraries and applications. One may have (or be able to get) the source code of much of those but evidently that's worthless. Remember "1000 eyes" and Heartbleed? Actually there were not even 4 eyes with capable minds behind the eye balls - although at least 2 of those eyes had the official task to look at the code and check it.

    And even the vast majority of the developers behind all that code could not make it more secure. In fact most of them chose languages that make bugs likely and solid code unlikely and 95+% (realistically more like 99%) couldn't use real analyzers even if they had them.

    Security should be baked into ... every guide for how to code. When it becomes the baseline, it's no longer extra work.

    Wrong. It's always extra work, and in fact rather complicated work that also requires knowledge many simply do not have and can not easily grasp.

    Another very major problem is the "fun" attitude. Extremely few actually enjoy proper software development, which is very much about knowledge and discipline and very little about fun.

    TL;DR No, sorry, you can't make your system secure with proper config and some scripts (like fail2ban). What you can - and should! - do is to not make it worse than it already is.

    Also note that the best one can achieve, incl. "security experts" at large companies, is to not be easily hackable by script kiddies and 2nd and 3rd rate attackers. NSA and first rate attackers is something almost nobody, incl. large companies can defend against.

    This is true only in a sense of things you cannot control. There is no point in dwelling on 0days that are discovered once in a blue moon. I am more than aware that pretty much everything is inherently insecure, but from the perspective of a developer there are plenty of actionable things that can be done to make basic vulnerabilities much less likely.

    Security in web applications is very different from the typical stack/heap vulnerabilities you get in C. This is what I was referring to, basic security against XSS/CSRF/SQLi/IDOR would be effective against the vast majority of web vulnerabilities discovered to date. Yet most courses don't teach you anything about these basic vulnerabilities.

    I maintain that it's not hard to know the basics of web security, and in nearly every case a basic understanding of web security is enough to protect you against nearly every single attack.

    I do heavily advocate for not using C/C++ whenever you can. Languages like Rust and Go are more than fast enough for pretty much every purpose.

    There is nothing that is "properly secure" but it's completely useless to be putting a rant about it on a thread about server security, if it's something nobody here can fix then why even bother.

  • deankdeank Member, Troll

    Even humans are full of holes.

  • @deank said:
    Even humans are full of holes.

    Which one?

  • jsgjsg Member, Resident Benchmarker
    edited August 2021

    @ehhthing said:
    This is true only in a sense of things you cannot control.

    One can have access to the source code of multiple, incl. significant, OSs, as well as to diverse software of major importance. So your "cannot control" is nonsensical.

    ... but from the perspective of a developer there are plenty of actionable things that can be done to make basic vulnerabilities much less likely.

    Security in web applications ...

    Cute. Sorry but web applications are usually neither developed by software engineers nor are they all software (on servers).

    I maintain that it's not hard to know the basics of web security, and in nearly every case a basic understanding of web security is enough to protect you against nearly every single attack.

    That may or may not be the case but the title of this thread (and accordingly my post) is not about web stuff but about servers in general.

    I do heavily advocate for not using C/C++ whenever you can. Languages like Rust and Go are more than fast enough for pretty much every purpose.

    Hahaha, you really seem to be one of those web developer guys ...

    There is nothing that is "properly secure" but it's completely useless to be putting a rant about it on a thread about server security, if it's something nobody here can fix then why even bother.

    Well, a quite considerable part of my job is exactly that. Plus, a guy putting C, C++, Rust, and Go next to each other arrogates to judge whether my post was a "rant" and "useless"? Seriously? Congrats, in case your goal was to confirm and actually worsen my already very negative professional view on "web developers" you succeeded.

    Thanked by 1Boogeyman
  • @yoursunny said:
    Yes, my servers are full of security holes.
    However, if you attack my server, I'll take away your cookies and tell Santa to put you on the naughty list.


    The following IPs please stop attacking my servers. You have been warned.
    Aug 08 20:19:55 vps5 sshd[7167]: Invalid user jason from 171.251.20.115 port 44116
    Aug 08 20:20:05 vps5 sshd[7169]: Invalid user test from 171.240.194.106 port 43918
    Aug 08 20:20:06 vps5 sshd[7171]: Invalid user 1234 from 116.98.171.249 port 48114
    Aug 08 20:20:07 vps5 sshd[7126]: Invalid user system from 116.110.115.197 port 45186
    Aug 08 20:21:58 vps5 sshd[7174]: Invalid user testuser from 171.251.20.115 port 35962
    Aug 08 20:23:55 vps5 sshd[7176]: Invalid user tester from 116.98.171.249 port 57414
    Aug 08 20:24:21 vps5 sshd[7178]: Invalid user ubnt from 193.169.254.113 port 40604
    Aug 08 20:27:14 vps5 sshd[7183]: Invalid user support from 171.251.20.115 port 57350
    Aug 08 20:32:51 vps5 sshd[7186]: Invalid user super from 116.110.115.197 port 40694
    Aug 08 20:35:01 vps5 sshd[7188]: Invalid user super from 116.98.171.249 port 40050
    Aug 08 20:53:50 vps5 sshd[7196]: Invalid user sconsole from 116.110.8.130 port 49042
    Aug 08 21:35:24 vps5 sshd[7262]: Invalid user minerstat from 37.0.11.249 port 54782
    Aug 08 21:35:51 vps5 sshd[7264]: Invalid user mos from 37.0.11.249 port 51660
    Aug 08 21:36:19 vps5 sshd[7266]: Invalid user mos from 37.0.11.249 port 48462
    Aug 08 21:36:44 vps5 sshd[7268]: Invalid user ad1tz from 37.0.11.249 port 45268
    Aug 08 21:53:55 vps5 sshd[7277]: Invalid user  from 65.49.20.66 port 45210
    Aug 08 21:55:21 vps5 sshd[7280]: Invalid user user from 205.185.127.25 port 37866
    Aug 08 21:56:11 vps5 sshd[7282]: Invalid user user from 205.185.127.25 port 44868
    
    Aug 08 14:31:43 vps9 sshd[35795]: Invalid user telecomadmin from 202.137.144.120 port 22437
    Aug 08 14:45:30 vps9 sshd[35910]: Invalid user vbox from 134.209.39.6 port 54974
    Aug 08 14:49:51 vps9 sshd[35929]: Invalid user joao from 154.8.151.45 port 58587
    Aug 08 14:53:41 vps9 sshd[35946]: Invalid user ubuntu from 212.33.250.241 port 58266
    Aug 08 15:07:57 vps9 sshd[35980]: Invalid user netdiag from 190.104.146.136 port 15624
    Aug 08 15:55:50 vps9 sshd[36268]: Invalid user ftpuser from 1.117.1.19 port 49418
    Aug 08 16:12:36 vps9 sshd[36399]: Invalid user ram from 81.70.220.67 port 53504
    Aug 08 16:15:36 vps9 sshd[36416]: Invalid user chris from 43.129.168.8 port 56900
    Aug 08 18:00:34 vps9 sshd[37587]: Invalid user vijay from 111.229.191.150 port 35610
    Aug 08 18:23:26 vps9 sshd[37754]: Invalid user admin from 49.234.22.220 port 38422
    Aug 08 20:52:26 vps9 sshd[38605]: Invalid user agsadmin from 61.251.191.139 port 27913
    Aug 08 21:11:41 vps9 sshd[38777]: Invalid user brandon from 172.124.38.41 port 58632
    Aug 08 21:38:16 vps9 sshd[38877]: Invalid user ubnt from 193.169.254.113 port 7918
    Aug 08 22:39:26 vps9 sshd[39276]: Invalid user admin from 45.146.166.50 port 33504
    Aug 08 23:44:10 vps9 sshd[39597]: Invalid user ubnt from 176.111.173.156 port 51318
    Aug 09 01:51:25 vps9 sshd[40282]: Invalid user ubuntu from 193.169.254.113 port 38624
    
    Aug 08 21:35:10 vps2 sshd[23242]: Invalid user zookeeper from 107.189.31.98 port 43258
    Aug 08 23:13:45 vps2 sshd[23573]: Invalid user ubnt from 193.169.254.113 port 58254
    Aug 08 23:39:21 vps2 sshd[23607]: Invalid user admin from 199.195.253.212 port 36248
    Aug 08 23:39:23 vps2 sshd[23609]: Invalid user git from 199.195.253.212 port 38134
    Aug 08 23:39:25 vps2 sshd[23611]: Invalid user mysql from 199.195.253.212 port 39640
    Aug 08 23:39:26 vps2 sshd[23613]: Invalid user hadoop from 199.195.253.212 port 41470
    Aug 08 23:39:28 vps2 sshd[23615]: Invalid user steam from 199.195.253.212 port 43054
    Aug 08 23:39:31 vps2 sshd[23617]: Invalid user hadoop from 199.195.253.212 port 44638
    Aug 08 23:39:33 vps2 sshd[23619]: Invalid user user from 199.195.253.212 port 46582
    Aug 08 23:39:35 vps2 sshd[23621]: Invalid user system from 199.195.253.212 port 47666
    Aug 08 23:39:38 vps2 sshd[23625]: Invalid user admin from 199.195.253.212 port 50730
    Aug 08 23:39:40 vps2 sshd[23627]: Invalid user ubuntu from 199.195.253.212 port 52018
    Aug 08 23:39:44 vps2 sshd[23631]: Invalid user azureuser from 199.195.253.212 port 54602
    Aug 08 23:39:46 vps2 sshd[23633]: Invalid user user from 199.195.253.212 port 56266
    Aug 08 23:39:47 vps2 sshd[23635]: Invalid user ansible from 199.195.253.212 port 57498
    Aug 08 23:39:49 vps2 sshd[23637]: Invalid user esuser from 199.195.253.212 port 58720
    Aug 08 23:39:51 vps2 sshd[23639]: Invalid user esuser from 199.195.253.212 port 60412
    Aug 08 23:39:53 vps2 sshd[23641]: Invalid user lighthouse from 199.195.253.212 port 33318
    Aug 08 23:39:55 vps2 sshd[23643]: Invalid user ubuntu from 199.195.253.212 port 35298
    Aug 08 23:39:57 vps2 sshd[23645]: Invalid user guest from 199.195.253.212 port 36584
    Aug 08 23:39:58 vps2 sshd[23647]: Invalid user cisco from 199.195.253.212 port 38012
    Aug 08 23:40:00 vps2 sshd[23649]: Invalid user zookeeper from 199.195.253.212 port 39308
    Aug 08 23:40:02 vps2 sshd[23651]: Invalid user zookeeper from 199.195.253.212 port 40646
    Aug 08 23:40:04 vps2 sshd[23653]: Invalid user zookeeper from 199.195.253.212 port 42084
    Aug 09 01:18:48 vps2 sshd[23755]: Invalid user ubuntu from 176.111.173.156 port 40638
    

    I'm surprised you still have IPv4 enabled on your servers. Or sshd.

    Anything to share with IPv6 addresses or you don't receive any attacks with v6?

  • @jsg said: Hahaha, you really seem to be one of those web developer guys ...

    Read this to make it more stronger

    https://beginnercoder.quora.com/Why-are-programmers-so-well-paid-even-if-that-job-is-pretty-easy-Im-also-a-programmer-its-easy-68

    Thanked by 1jsg
  • @jsg

    One can have access to the source code of multiple, incl. significant, OSs, as well as to diverse software of major importance. So your "cannot control" is nonsensical.

    So you're just gonna single handedly fix all the security problems in all the software you use? Be my guest!

    Cute. Sorry but web applications are usually neither developed by software engineers nor are they all software (on servers).

    Ah so you subscribe to the wonderful belief that people who make websites aren't engineers. Google doesn't seem to agree with you on that. but if you really want to explain why this is the case, I'd love to hear it. I gave one example here but if you do any amount of searching you'll find plenty of "web" software engineering positions from large tech companies.

    Well, a quite considerable part of my job is exactly that. Plus, a guy putting C, C++, Rust, and Go next to each other arrogates to judge whether my post was a "rant" and "useless"? Seriously? Congrats, in case your goal was to confirm and actually worsen my already very negative professional view on "web developers" you succeeded.

    Well you haven't really justified why your rant was any more useful than a rant about something nobody can fix. "Oh you have access to the source code" is no justification for why someone should fix every memory corruption bug that exists. How useful is it for anyone?

    "I wOnT TakE OpInIoNs FrOm a WeB DeVeLoPer" is a crappy argument. You make it because you have no other way to explain why or how someone is supposed to do anything about the problems you propose. Instead, you bring up the fact that the world is insecure purely so you can drag in your field of work and rant about how terrible the state of the world is. If you really believe that what you said is at all actionable by anyone here, then find that person and get them to talk about why its so useful.

    For gods sake OP mentioned specifically that their program runs on the JVM, its not rocket science to think that they can't fix security issues in the Linux kernel.

    Wrong. It's always extra work, and in fact rather complicated work that also requires knowledge many simply do not have and can not easily grasp.

    I think its clear to anyone who's actually read the OP's post that he isn't talking about low level memory corruption or CPU architecture exploits. It isn't difficult to make a reasonably secure program that runs on the JVM or any other high level language for that matter.

  • jsgjsg Member, Resident Benchmarker

    @Boogeyman said:

    @jsg said: Hahaha, you really seem to be one of those web developer guys ...

    Read this to make it more stronger

    https://beginnercoder.quora.com/Why-are-programmers-so-well-paid-even-if-that-job-is-pretty-easy-Im-also-a-programmer-its-easy-68

    Nice. although (1.e.) is a bit off because software engineers do not build mathematical models but they work with them and often implement them.

    (In my eyes funny) side note: analysis and verification, mostly static but also dynamic, may look somewhat like code but it's basically pretty much pure math (with a notation that is halfway amenable to software engineers). And that (being pretty much pure math) is in fact a, probably even the, reason why analysis and verification are done rarely/only by very few developers.

  • jsgjsg Member, Resident Benchmarker
    edited August 2021

    @ehhthing said:
    @jsg

    One can have access to the source code of multiple, incl. significant, OSs, as well as to diverse software of major importance. So your "cannot control" is nonsensical.

    So you're just gonna single handedly fix all the security problems in all the software you use? Be my guest!

    "Can control" != "fix all problems."
    Your assertion to which I responded was

    This is true only in a sense of things you cannot control.

    .

    Ah so you subscribe to the wonderful belief that people who make websites aren't engineers. [Google doesn't seem to agree with you on that.](link to Google) but if you really want to explain why this is the case, I'd love to hear it. I gave one example here but if you do any amount of searching you'll find plenty of "web" software engineering positions from large tech companies.

    (a) Hahaha!

    Google jobs said:
    8 years of professional software development experience in Javascript, and one or more programming languages including but not limited to: Java, C/C++, Python, or Go.

    (emphasis mine)

    (b) Just because some company calls someone "engineer" that doesn't make him one.

    Well, a quite considerable part of my job is exactly that. Plus, a guy putting C, C++, Rust, and Go next to each other arrogates to judge whether my post was a "rant" and "useless"? Seriously? Congrats, in case your goal was to confirm and actually worsen my already very negative professional view on "web developers" you succeeded.

    Well you haven't really justified why your rant

    I've had it with you. I do not have to justify anything based on some idiot willy nilly and cluelessly calling it a "rant".

    "I wOnT TakE OpInIoNs FrOm a WeB DeVeLoPer" is a crappy argument. [plenty BS]

    That's not what I said. In fact I will take opinions from a web developer if it was about crapscript, css, etc - but not on matters that evidently are far beyond his reach.

    For gods sake OP mentioned specifically that their program runs on the JVM, its not rocket science to think that they can't fix security issues in the Linux kernel.

    (a) Java is very different from C in quite a few regards, some of them critical wrt many linux problems.
    (b) You of course don't know it but actually Java has and supports some approaches and tools for formal verification.
    (c) OP expressly said "I wanted to achieve ... a secure system" (possibly with some Java application running on it)

    Wrong. It's always extra work, and in fact rather complicated work that also requires knowledge many simply do not have and can not easily grasp.

    I think its clear to anyone who's actually read the OP's post that he isn't talking about low level memory corruption or CPU architecture exploits. It isn't difficult to make a reasonably secure program that runs on the JVM or any other high level language for that matter.

    You are so utterly clueless that it almost hurts.

  • yoursunnyyoursunny Member, IPv6 Advocate
    edited August 2021

    @Pixels said:

    @yoursunny said:
    Yes, my servers are full of security holes.
    However, if you attack my server, I'll take away your cookies and tell Santa to put you on the naughty list.

    I'm surprised you still have IPv4 enabled on your servers. Or sshd.

    Anything to share with IPv6 addresses or you don't receive any attacks with v6?

    This morning there were a few machines requesting my homepage repeatedly.
    The following IPs requested the homepage more than 1000 times within 3 minutes.
    Three of them are IPv6.

    sunny@vps4:/var/log/caddy$ zcat yoursunny2017-2021-08-09T08-37-17.326.log.gz | jq -r 'select(.request.uri=="/")|.request.remote_addr' | awk -F: -vOFS=: '{NF-=1;print}' | sort | uniq -c | sort -nk1 | awk '$1>1000'
       1026 62.78.84.159
       1075 51.222.87.166
       1108 1.165.187.230
       1192 154.6.20.213
       1208 65.0.176.212
       1248 185.87.49.9
       1285 188.166.104.152
       1287 103.161.39.159
       1306 46.146.239.100
       1373 78.46.89.24
       1416 165.22.223.92
       1558 45.152.188.241
       2103 54.146.75.7
       2202 107.174.85.143
       2345 [2a01:4f8:150:8147::2]
       2758 149.19.224.39
       2891 185.38.111.15
       3177 [2a01:540:ccdd:0:250:56ff:fead:9b4c]
       3227 81.169.226.234
       3296 122.155.165.191
       3355 45.152.188.247
       3526 120.79.45.32
       3704 119.90.38.51
       4046 149.19.224.29
       4183 45.152.188.239
       4369 45.152.188.244
       5268 [2001:41d0:700:198b::]
       5579 178.63.17.151
       5855 45.152.188.217
       6351 45.152.188.216
       6631 45.152.188.237
       6904 185.107.82.164
       7069 45.152.188.214
    

    Please stop this behavior or I'll delete your Fortnite.

    Moreover, a few IPs (all IPv4) are somehow causing Caddy to log error aborting with incomplete response; write: connection reset by peer and occasionally crash.
    As a result, my website was offline intermittently for 40 minutes.

    sunny@vps4:~$ sudo journalctl -ocat -u caddy | jq -r 'select(.msg|contains("aborting"))|.error' | awk '{split($3,a,"->");split(a[2],a,":");print a[1]}' | sort | uniq -c | sort -nk1
    parse error: Invalid numeric literal at line 3018, column 9
          9 136.228.141.154
         85 13.84.36.78
        128 54.37.128.23
        385 107.174.85.143
        825 178.62.81.8
    

    The last two are now prohibited from visiting my website.
    If the IP owner is reading this, please write an apology letter and I'll unban you.

  • TimboJonesTimboJones Member
    edited August 2021

    @ehhthing said:
    @jsg

    Cute. Sorry but web applications are usually neither developed by software engineers nor are they all software (on servers).

    Ah so you subscribe to the wonderful belief that people who make websites aren't engineers. Google doesn't seem to agree with you on that. but if you really want to explain why this is the case, I'd love to hear it. I gave one example here but if you do any amount of searching you'll find plenty of "web" software engineering positions from large tech companies.

    In a number of jurisdictions, Engineer is a protected legal term (like doctor or lawyer). Engineers have received training in their field, have code of ethics, apprenticeship shit, and legal liability. This may not be completely accurate rough description, but it's a big difference between someone who is doing web development without prior education and one that is a member of a professional Association (ie, IEEE).

    I'm not an engineer, but I work in engineering. I can do the exact same thing as an Engineer, just not as an Engineer. I'm a "Technologist" just like I'd argue most software is done by "Developers” and not "Software Engineers".

    Edit: you'll note Google specifically said minimum requirements was a Bachelor's degree but they really want masters and PhDs engineering their shit. I wonder how the self taught get hired at Google, probably solving one of those hard billboard questions.

  • raindog308raindog308 Administrator, Veteran

    To be fair, most Unix-derived (and z/OS-derived if you to be pedantic) operating systems are not "full of security holes" out of the box. Not to say that over the last 50 years there haven't been some, but if you put one on the internet and let it idle for a year, it's unlikely to be compromised.

    Note that in this scenario I'm assuming:

    • you're doing the right things like turning off unneeded services, which your distro or OS should have turned off by default
    • not setting the root password to 'password' and allowing root logins. Or better yet, only allowing keys.

    OTOH, if you install $RANDOM_WEB_APP from github, all bets are off.

    Even then, what is "insecure"? Someone can remotely get root? Someone can read SSL traffic and decrypt it? Someone with physical access to the datacenter or hypervisor can silently enter your VM?

    Over the hundreds if not thousands of VMs I've put on the Internet in my life, the only time I had any kind of security issue was with a cacti monitoring 0-day, and I shouldn't have had it internet-exposed to begin with.

    Of course, the only issue that I know of...

  • jsgjsg Member, Resident Benchmarker
    edited August 2021

    @raindog308 said:
    Of course, the only issue that I know of...

    That is problem number one. '(widely or at all) known vulnerabilites' != 'existing vulnerabilities'

    To be fair, most Unix-derived (and z/OS-derived if you to be pedantic) operating systems are not "full of security holes" out of the box. Not to say that over the last 50 years there haven't been some, but if you put one on the internet and let it idle for a year, it's unlikely to be compromised.

    Depends on the definition, but usually when I dig deeper I find that almost always "security hole" is understood to mean "dangerous or well-known vulnerability". I can understand that but it's wrong.

    Even then, what is "insecure"? Someone can remotely get root? Someone can read SSL traffic and decrypt it? Someone with physical access to the datacenter or hypervisor can silently enter your VM?

    Secure (in that context) means the absence of vulnerabilities or at least the absence of known vulnerabilities.
    Also, warning: The question "what can evil guys do with a vulnerability*" is only relatively losely related to "is my system secure?".

    The sad fact is that most OS, incl. all more or less widely used ones, do have thousands upon thousands of bugs, most of which don't open significant vulnerabilites, but keep in mind that only a single one is needed to create very significant damage.
    Even more sad is the fact that we still are at a relatively early stage wrt. formal verification, let alone actually usable tools plus only a frighteningly small part of developers master and use more than some (rather primitive) clang compiler switches. GCC, for instance, had the first rudimentary static analysis only in v. 10 (current is 11.1).
    Another important factor are languages themselves. The vast majority of PL didn't pay any attention to "safety" (a rather lose term but I guess it transports well enough what I mean) and those that do are unwieldy and/or complex and/or cumbersome and/or rather exotic and/or largely focusing (too) tightly on one, e.g. the space domain (like Rust).
    Which basically translates to even if more software engineers had the good will they would have to walk a very bothersome road and be put back again and again by problems.
    And finally add to that that the relevant knowledge is taught in rather few uni courses (competently).

  • @yoursunny said: Moreover, a few IPs (all IPv4) are somehow causing Caddy to log error aborting with incomplete response; write: connection reset by peer and occasionally crash.

    Caddy has always kinda buggy and unstable, try using nginx. Yes, it's written in C and @jsg wouldn't approve, but it's HTTP protocol handling is more robust and doesn't crash as much as Caddy.

  • jsgjsg Member, Resident Benchmarker

    @stevewatson301 said:

    @yoursunny said: Moreover, a few IPs (all IPv4) are somehow causing Caddy to log error aborting with incomplete response; write: connection reset by peer and occasionally crash.

    Caddy has always kinda buggy and unstable, try using nginx. Yes, it's written in C and @jsg wouldn't approve, but it's HTTP protocol handling is more robust and doesn't crash as much as Caddy.

    FWIW: Nope, I'd take nginx over caddy every day and twice on sundays.

  • rchurchrchurch Member
    edited August 2021

    There is no security baked in because the leading distributions are heavily influenced by the 3LAs.

    The distributions put out by Redhat, Debian and Ubuntu should come with the security protocols and the administration tools baked in from the very start, instead of expecting users and server administrators to do it themselves.

    There has been no genuine commitment to make security administration easy from the early times. In the past the first thing you did when installing a Redhat or Centos system was to disable SELinux because it frustrated everything. These guys who claimed to be serious about making Linux secure didn't even seem to have the sense to put in easily accessible administration tools.

    20 years on nothing has basically changed, because there is no genuine commitment right from the very top.

    It is silly to expect the 3LAs who are among the biggest IT spenders (they carry a lot of clout) whose job is to spy and monitor everything there is to support the development of configurations that frustrate them in their ability to do their job.

    When the NSA offers cryptographic standards who do they think their fooling and why i is the Linux community silent on their obvious deception?

    Thanked by 1quicksilver03
  • @rchurch said: There has been no genuine commitment to make security administration easy from the early times

    You should check the systemd analyze-security and the Protect*= primitives. It is notoriously easy to enable, although systemd got a lot of hate because Linux people generally don't like easy stuff and insist on doing everything the old way.

    @rchurch said: When the NSA offers cryptographic standards

    This is probably the only time you're correct, but all the better cryptographers are working for the government, and you'd need to get the same amount of clout as the government to ask private companies to implement your standard.

  • TimboJonesTimboJones Member
    edited August 2021

    @rchurch said:
    There is no security baked in because the leading distributions are heavily influenced by the 3LAs.

    Wtf are you talking about? I think you just love saying "3LA". But feel free to post the number of lines of code committed by the "3LA". It's like you're thinking the Snowden docs didn't change anything.

    The distributions put out by Redhat, Debian and Ubuntu should come with the security protocols and the administration tools baked in from the very start, instead of expecting users and server administrators to do it themselves.

    What?

    There has been no genuine commitment to make security administration easy from the early times. In the past the first thing you did when installing a Redhat or Centos system was to disable SELinux because it frustrated everything. These guys who claimed to be serious about making Linux secure didn't even seem to have the sense to put in easily accessible administration tools.

    Dude, this is done because we don't RTFM. If you're a paid server administrator and not using SELinux, you're probably incompetent. Security is hard, expecting it to be easy means you don't understand the problem.

Sign In or Register to comment.