This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
cyanisaac's profile picture

IAMS - Initiative Against Malicious Scripts

Started by cyanisaac, 23 January 2016 - 11:51 PM
cyanisaac #1
Posted 24 January 2016 - 12:51 AM


I have seen several really cool things lately that look to make CraftOS into a better platform. For instance, oeed has started CraftOS Standards, to try to set standards for types of data. These efforts to make CraftOS better are really neat.


However, I feel like one specific thing has been missing: Something to combat malicious scripts. Although the forums themselves don't allow malicious scripts (a good thing), that isn't going to work for everything. And whilst there are several scattered efforts against malicious scripts ("antivirus" programs), these won't work for everything.


So, I am starting the Initiative Against Malicious Scripts, or IAMS.


What is IAMS?

IAMS is an effort in combatting malicious scripts, specifically targeted towards ComputerCraft and CraftOS 2.0 (when it comes out). The goal is to act as a unified community to shut down malicious scripts and activities. It is also created to recognize software and projects that help protect users against malicious software, as well as help make trusted software be known as trusted.


Antimalware Definitions: Protecting Users against Current Malware

One of the goals of IAMS is to provide the means for software to protect users against current and existing malware. This is done by creating a centralized database of hashes of malware, along with pastebin IDs and their hashes. Although this isn't the most secure method, it's a good first step to combatting malicious software.


Sandboxing: Protecting Users against Future Malware

Another goal of IAMS is to encourage the securing of their software. For instance, in an operating system, providing a sandboxed filesystem for applications, to prevent against damage to data. Another example is scanning files for potentially harmful code before executing the file.


Certification: Showcasing Secure Software

The final goal of IAMS is to encourage software to be more secure, and follow best practices with combatting malicious software. This will be done by certifying and showcasing the best of secure software: Operating systems with protected filesystems, antivirus software working with IAMS definitions, and other things that contribute to proper security.



Getting Involved with IAMS

You can see the GitHub organization for IAMS here: [REDACTED, I need to reconsider some elements]

You can also join the gitter chat for IAMS here: [REDACTED, I need to reconsider some elements]

I am currently working on documenting IAMS and making it more obvious how to utilize the tools IAMS is providing.


Now, for how to contribute that IS documented.

If you know of any malicious scripts, report them via PM.

DO NOT REPLY TO THIS THREAD WITH MALICIOUS SOFTWARE LINKS. They are not allowed by the ComputerCraft Forums, hence why they are being disclosed through a form here.

Once you report a malicious script, I will review it to see what it does, and if I find it to be malicious as per the definitions of what makes a script malicious (seen in the form) I will add it to the definitions.


I will be more extensively document efforts here.



What makes a script malicious?

(I will be updating this as time goes by, and as per suggestions of others).

A script is deemed malicious if any of the following apply:


- The script is designed with the intent of being malicious.
- The script pretends to be one thing but ends up being another thing (trojan)

- The script, when publicly shown, claims to have IAMS certification when it has not been certified.
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE to data on the device through any of the following means:
* Deletion of Data
* Corruption of Data
* Encryption of Data
* Unauthorized Sending of Data
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE to software on the device through any of the following means:
* Bypassing of existing security systems implemented by software (example: Rooting an OS)
* Masquerading as a system process.
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE through its own distribution through any of the following means:
* Distributed through a disk drive. (ie disk/startup)
* Distributed through a network.
* Masquerading as one thing in a network but being another.
* Masquerading as one thing in a disk but being another.





TODO:
* Certification of IAMS compliant software

* Other stuff.


This is a developing thing I am creating, so expect this to progress more over the next few weeks.


This thread serves as a place to discuss things that can be done to further combat malicious software, as well as make suggestions, and overall contribute. I would also recommend you join the Gitter rooms so that you can more easily collaborate, and so I can explain better what is going on.


EDIT: Also this is a CC thingy, not pet food.
Edited on 24 February 2016 - 05:15 PM
wilcomega #2
Posted 24 January 2016 - 05:23 PM
Really cool idea first of all

when you get the database up and running you should have a http api that people can check to see a program is certified or malicious. but ofcourse you already planned taht or have done that
I am so looking forward to making software that defeats the programs that implement this standard (its called white hat hacking)
Edited on 24 January 2016 - 04:24 PM
3d6 #3
Posted 24 January 2016 - 07:34 PM
I have a database of CC virus signatures dating back to 2012. I'd love to become a chairperson. :)/>
Quartz101 #4
Posted 24 January 2016 - 07:50 PM
We should make a public virus database, with known sha256 hashes of them posted, name of them, threat level, etc
Edited on 24 January 2016 - 06:52 PM
wilcomega #5
Posted 24 January 2016 - 07:58 PM
We should make a public virus database, with known sha256 hashes of them posted, name of them, threat level, etc

Also a thread type, so like Trojan or Adware, imagine a program using google ads text in CC to make money xD
Pyuu #6
Posted 24 January 2016 - 08:22 PM
This thread feels a bit ridiculous, to be honest. Are CC "malware" an actual threat to anything?
MKlegoman357 #7
Posted 24 January 2016 - 08:22 PM
May I suggest that before hashing the viruses programs would be a little stripped-out:

  1. all characters are converted to be lowercase
  2. all spaces and newlines are removed
  3. all comments are removed

That way the database would be a little less sensitive to these small changes.
Pyuu #8
Posted 24 January 2016 - 08:23 PM
May I suggest that before hashing the viruses programs would be a little stripped-out:
  1. all characters are converted to be lowercase
  2. all spaces and newlines are removed
  3. all comments are removed

That way the database would be a little less sensitive to these small changes.

It'd be so easy to make a program that rewrites itself to circumvent that. Just rename variables repeatedly = win.
MKlegoman357 #9
Posted 24 January 2016 - 08:27 PM
It'd be so easy to make a program that rewrites itself to circumvent that. Just rename variables repeatedly = win.

It's still better than simply hashing the raw program. Also, there are better ways to detecting viruses, like specifying certain patterns (not Lua string patterns) which an anti-virus program can search for inside a potential malware program.
3d6 #10
Posted 24 January 2016 - 08:28 PM
The databases probably shouldn't be made public - at least not the signatures. Scanning should be done remotely over http - this would actually most likely be less time consuming than scanning locally in CC, considering the magnitude of the database.
This thread feels a bit ridiculous, to be honest. Are CC "malware" an actual threat to anything?
They've already proven to be a threat to krist holdings and other protocols with secret keys. Even command computers are susceptible to the "idiot op with a pastebin link" exploit.
cyanisaac #11
Posted 24 January 2016 - 08:31 PM
This thread is blowing up, neat.

I'll be on later to work on stuff, I'm quite busy right now.
Pyuu #12
Posted 24 January 2016 - 08:38 PM
The databases probably shouldn't be made public - at least not the signatures. Scanning should be done remotely over http - this would actually most likely be less time consuming than scanning locally in CC, considering the magnitude of the database.
This thread feels a bit ridiculous, to be honest. Are CC "malware" an actual threat to anything?
They've already proven to be a threat to krist holdings and other protocols with secret keys. Even command computers are susceptible to the "idiot op with a pastebin link" exploit.

CC can "scan" through files at an impressive rate if done right.

MKLegoman, why even hash anything? That is just time consuming for anything CC related. Just check raw strings.
wilcomega #13
Posted 24 January 2016 - 08:49 PM
Still the best way to protect yourself and your files is to run all programs in a protected environment, thats empty but its __INDEX = _G
this way it can use functions but not replace them

When doing this you can also just do a check on all file system operations to check if its only affecting files it created, and to make sure it doesnt change anything in the settings using the settings API
Edited on 24 January 2016 - 07:50 PM
H4X0RZ #14
Posted 24 January 2016 - 08:58 PM
Still the best way to protect yourself and your files is to run all programs in a protected environment, thats empty but its __INDEX = _G
this way it can use functions but not replace them

When doing this you can also just do a check on all file system operations to check if its only affecting files it created, and to make sure it doesnt change anything in the settings using the settings API


local g = getmetatable(getfenv()).__index
g.print = nil
wilcomega #15
Posted 24 January 2016 - 10:08 PM
Still the best way to protect yourself and your files is to run all programs in a protected environment, thats empty but its __INDEX = _G
this way it can use functions but not replace them

When doing this you can also just do a check on all file system operations to check if its only affecting files it created, and to make sure it doesnt change anything in the settings using the settings API


local g = getmetatable(getfenv()).__index
g.print = nil


envtop = { }
envrun = { }
realgetmt= getmetatable
newgetmt = function( ... )
	if { ... }[1] == envrun or { ... }[1] == envtop then return { } end
	return realgetmt( ... )
end
envrun.getmetatable = newgetmt
envrun._G = { }
setmetatable(envtop, { __INDEX = _G })
setmetatable(envrun, { __INDEX = envtop })

setfenv(codetorun, envrun)

fixed. should contain all code, otherwise just add more checks

I imagine this is not performace friendly, but when has any anti virus ever been performance friendly, RIGHT?
Edited on 24 January 2016 - 09:23 PM
H4X0RZ #16
Posted 24 January 2016 - 10:22 PM
Still the best way to protect yourself and your files is to run all programs in a protected environment, thats empty but its __INDEX = _G
this way it can use functions but not replace them

When doing this you can also just do a check on all file system operations to check if its only affecting files it created, and to make sure it doesnt change anything in the settings using the settings API


local g = getmetatable(getfenv()).__index
g.print = nil


envtop = { }
envrun = { }
realgetmenv = getmetatable
newgetmenv = function( ... )
	if { ... }[1] == envrun then return { } end
	return realgetenv( ... )
end
envrun.getmetatable = newgetmenv
envrun._G = { }
setmetatable(env1, { __INDEX = envrun })
setmetatable(env2, { __INDEX = envtop })

setfenv(codetorun, envrun)

fixed. should contain all code, otherwise just add more checks

I imagine this is not performace friendly, but when has any anti virus ever been performance friendly, RIGHT?


local g = getfenv(print)._G
--broken again
KingofGamesYami #17
Posted 24 January 2016 - 11:26 PM

local function runProtected( str, ... )
  local env = {}
  return setfenv( loadfile( str ), setmetatable( env, {__index = function( t, k ) return k == "_G" and env or _G[ k ] end, __metatable = false} ) )( ... )
end
Edited on 25 January 2016 - 12:05 AM
Wojbie #18
Posted 24 January 2016 - 11:33 PM

local function runProtected( str )
  local env = {}
  setfenv( loadfile( str ), setmetatable( env, {__index = function( t, k ) return k == "_G" and env or _G[ k ] end, __metatable = false}
end
Will fail on pairs(_G) and can be detect that way.
KingofGamesYami #19
Posted 25 January 2016 - 01:04 AM
Will fail on pairs(_G) and can be detect that way.

Umm… I just tested it. It doesn't. It just shows there's nothing in the _G table. Which is absolutely true.

Anyway, what non-malicious purpose would you have for iterating through _G?
Edited on 25 January 2016 - 12:08 AM
Wojbie #20
Posted 25 January 2016 - 01:13 AM
Will fail on pairs(_G) and can be detect that way.

Umm… I just tested it. It doesn't. It just shows there's nothing in the _G table. Which is absolutely true.

Anyway, what non-malicious purpose would you have for iterating through _G?

Validating integrity of environment for one.
Duplicating _G for local use so API would ignore overwrites on it later for other.
KingofGamesYami #21
Posted 25 January 2016 - 01:14 AM
Alright, fine. Here's a fix

Spoiler

local function runProtected( str )
  local env = {}
  env.pairs = function( t )
  	if t == env then
  		return pairs( _G )
  	end
  	return pairs( t )
  end
  setfenv( loadfile( str ), setmetatable( env, {__index = function( t, k ) return k == "_G" and env or _G[ k ] end, __metatable = false} ) )()
end

runProtected( "tester" )

Edit: And for the extremely overprotective, let's protect every table in _G (and subtables)!

Spoiler

local function protect( var )
	if type( var ) == "table" then
		local t = {}
		for k, v in pairs( var ) do
			t[ k ] = protect( v )
		end
		return t
	end
	return var
end

local function runProtected( str )
  local env = {}
  env.pairs = function( t )
  	if t == env then
  		return pairs( _G )
  	end
  	return pairs( t )
  end
  setfenv( loadfile( str ), setmetatable( env, {__index = function( t, k ) return k == "_G" and env or protect( _G[ k ] ) end, __metatable = false} ) )()
end

runProtected( "tester" )
Edited on 25 January 2016 - 12:19 AM
Wojbie #22
Posted 25 January 2016 - 01:24 AM
Alright, fine. Here's a fix

Spoiler

local function runProtected( str )
  local env = {}
  env.pairs = function( t )
  	if t == env then
  		return pairs( _G )
  	end
  	return pairs( t )
  end
  setfenv( loadfile( str ), setmetatable( env, {__index = function( t, k ) return k == "_G" and env or _G[ k ] end, __metatable = false} ) )()
end

runProtected( "tester" )
Hmm dirty but effective.
Closer to protected but you are only protecting content of _G itself. So stuff like tostring is safe but fs is a table. And while it can't be replaced itself it's contents are not protected. You have to protect every table in _G like you do with top level one. But then you run I problem with loadAPI breaking or allowing loaded code access to _G itself. Making a foolproof sandbox is not 5 looms of code thing.

Edit: ok you did half what I said above in your EDIT. :)/> Still is not foolproof.
Edited on 25 January 2016 - 12:29 AM
KingofGamesYami #23
Posted 25 January 2016 - 02:34 AM
Yeah, a perfect sandbox isn't easy. And I really don't feel like trying to write one (file system is a HUGE problem), but really you don't need that much protection. 99% of viruses would be thwarted by the sandbox I wrote. Even IRL virus protection isn't 100%.
Admicos #24
Posted 25 January 2016 - 08:50 AM
I'm just gonna throw this out here, may help some stuff.

The (not the most effective way) to check if a path tries to bypass a specified folder

local sbRoot = "/sandboxed/" --#The path programs shouldn't escape
local function sandboxCheck(path)
  local fullPath = fs.combine(sbRoot, path)
  local splitPath = split(fullPath, "/")
  local sbRootSP = split(sbRoot, "/")
  local ssPath = ""
  local ssFPath = ""
  for i, v in ipairs(splitPath) do
    ssPath = ssPath .. " " .. v
    if i <= #sbRootSP then
	  if not isEmpty(sbRootSP[i]) then
	    ssFPath = ssFPath .. " " .. sbRootSP[i]
	  end
    end
  end
  for i, v in ipairs(sbRootSP) do
    if not string.match(ssPath, v) then
	  print("BYPASS ATTEMPT IN: " .. path)
	  return false
    end
  end
  return true
end
cyanisaac #25
Posted 25 January 2016 - 04:43 PM
There's some interesting sandbox discussion going on. I will definetely look into what you guys have been discussing sometime later this week.

Unfortunately at the moment I'm sick and have finals. I probably should have held off for a week or so on posting this thread.

BTW, the Gitter chat is a great place to discuss stuff like this, and I would highly recommend joining it.
oeed #26
Posted 26 January 2016 - 01:30 AM
Not gonna lie, I was incredibly dubious of this; as anyone who's seen a CC 'virus scanner' would. But I have to say, it looks it might actually work. Look forward to seeing where it goes.
cyanisaac #27
Posted 26 January 2016 - 01:46 AM
Not gonna lie, I was incredibly dubious of this; as anyone who's seen a CC 'virus scanner' would. But I have to say, it looks it might actually work. Look forward to seeing where it goes.

Haha yeah. The point of this is to NOT be a "hey guise I made a virus scanner check it outszzz" but to be an actual malware database + effort to better secure + sandbox apps in the future. I hope it goes well :)/>
ardera #28
Posted 20 February 2016 - 02:35 PM
@KingofGamesYami:
detecting if you're in the sandbox:

if rawget(getfenv(1), "sleep") ~= sleep then
  -- in the sandbox
end
or:

if getfenv(2)._G ~= _G then
  -- in the sandbox
end
breaking out of it:

local function toBeRunIn_G()
  print("Hello")
end
setfenv(toBeRunIn_G, getfenv(0))
-- or
setfenv(toBeRunIn_G, getfenv(sleep))

toBeRunIn_G()
To get a perfect script sandbox, you have to tweak the getfenv, setfenv, tostring and error functions
Edited on 20 February 2016 - 01:46 PM
LewisTehMinerz #29
Posted 24 February 2016 - 04:30 PM
GitHub seems to be dead. Would of looked at actually joining IAMS after my CC Virus Labs idea died off.
cyanisaac #30
Posted 24 February 2016 - 06:13 PM
GitHub seems to be dead. Would of looked at actually joining IAMS after my CC Virus Labs idea died off.

I have no idea whether or not I'm going to be able to do IAMS and I feel like I need to make some stuff before starting it for real. I keep rushing into projects worrying about the repository before I even start at looking at problems and addressing them. So I pulled the GitHub, if I decide to move forward with IAMS I will definitely put it back up. But I'm doing stuff outside of CC at the moment that's taking a lot of attention, and ProjectB isn't that interested in ComputerCraft right now, so I can't have him take over for me right now.
LewisTehMinerz #31
Posted 24 February 2016 - 07:00 PM
Okay. I'll see if I can invent something for IAMS to use like a sandboxing application (if you don't have one), else, I'll develop for my new project, TMI.
manu_03 #32
Posted 01 March 2016 - 03:48 PM
I like the idea. I think that unoficial OS makers would implement a permission system to make sure the user knows what is he/she doing. I want to contribute. I can start a virus database.

EDIT
What exactly are unofficial OS makers?
I mean OS makers. With unofficial I mean their OS is not included in the mod jar.
Edited on 02 March 2016 - 03:56 PM
Creator #33
Posted 01 March 2016 - 04:02 PM
What exactly are unofficial OS makers?
bauen1 #34
Posted 06 March 2016 - 05:00 PM
So i guess this should eventually detect viruses at scan and at runtime?
Btw, i would say making a perfect sandbox is easier than "scanning" files.
Edited on 06 March 2016 - 04:00 PM
ry00000 #35
Posted 06 March 2016 - 06:49 PM


I have seen several really cool things lately that look to make CraftOS into a better platform. For instance, oeed has started CraftOS Standards, to try to set standards for types of data. These efforts to make CraftOS better are really neat.


However, I feel like one specific thing has been missing: Something to combat malicious scripts. Although the forums themselves don't allow malicious scripts (a good thing), that isn't going to work for everything. And whilst there are several scattered efforts against malicious scripts ("antivirus" programs), these won't work for everything.


So, I am starting the Initiative Against Malicious Scripts, or IAMS.


What is IAMS?

IAMS is an effort in combatting malicious scripts, specifically targeted towards ComputerCraft and CraftOS 2.0 (when it comes out). The goal is to act as a unified community to shut down malicious scripts and activities. It is also created to recognize software and projects that help protect users against malicious software, as well as help make trusted software be known as trusted.


Antimalware Definitions: Protecting Users against Current Malware

One of the goals of IAMS is to provide the means for software to protect users against current and existing malware. This is done by creating a centralized database of hashes of malware, along with pastebin IDs and their hashes. Although this isn't the most secure method, it's a good first step to combatting malicious software.


Sandboxing: Protecting Users against Future Malware

Another goal of IAMS is to encourage the securing of their software. For instance, in an operating system, providing a sandboxed filesystem for applications, to prevent against damage to data. Another example is scanning files for potentially harmful code before executing the file.


Certification: Showcasing Secure Software

The final goal of IAMS is to encourage software to be more secure, and follow best practices with combatting malicious software. This will be done by certifying and showcasing the best of secure software: Operating systems with protected filesystems, antivirus software working with IAMS definitions, and other things that contribute to proper security.



Getting Involved with IAMS

You can see the GitHub organization for IAMS here: [REDACTED, I need to reconsider some elements]

You can also join the gitter chat for IAMS here: [REDACTED, I need to reconsider some elements]

I am currently working on documenting IAMS and making it more obvious how to utilize the tools IAMS is providing.


Now, for how to contribute that IS documented.

If you know of any malicious scripts, report them via PM.

DO NOT REPLY TO THIS THREAD WITH MALICIOUS SOFTWARE LINKS. They are not allowed by the ComputerCraft Forums, hence why they are being disclosed through a form here.

Once you report a malicious script, I will review it to see what it does, and if I find it to be malicious as per the definitions of what makes a script malicious (seen in the form) I will add it to the definitions.


I will be more extensively document efforts here.



What makes a script malicious?

(I will be updating this as time goes by, and as per suggestions of others).

A script is deemed malicious if any of the following apply:


- The script is designed with the intent of being malicious.
- The script pretends to be one thing but ends up being another thing (trojan)

- The script, when publicly shown, claims to have IAMS certification when it has not been certified.
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE to data on the device through any of the following means:
* Deletion of Data
* Corruption of Data
* Encryption of Data
* Unauthorized Sending of Data
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE to software on the device through any of the following means:
* Bypassing of existing security systems implemented by software (example: Rooting an OS)
* Masquerading as a system process.
- The script poses an INTENDED threat WITH MALICIOUS PURPOSE through its own distribution through any of the following means:
* Distributed through a disk drive. (ie disk/startup)
* Distributed through a network.
* Masquerading as one thing in a network but being another.
* Masquerading as one thing in a disk but being another.






TODO:
* Certification of IAMS compliant software

* Other stuff.


This is a developing thing I am creating, so expect this to progress more over the next few weeks.


This thread serves as a place to discuss things that can be done to further combat malicious software, as well as make suggestions, and overall contribute. I would also recommend you join the Gitter rooms so that you can more easily collaborate, and so I can explain better what is going on.


EDIT: Also this is a CC thingy, not pet food.


My virus is NOT IAMS compliant. I will say that. It spreads through disk drives, and renders the PC useless by instantly shutting down at startup. Note that I WON'T release the Pastebin to the public.
bauen1 #36
Posted 04 April 2016 - 05:23 PM
And also, what about rootkits?
Im totaly not developing one right now :ph34r:/>
Edited on 04 April 2016 - 03:24 PM
Tiin57 #37
Posted 05 April 2016 - 02:53 AM
My virus is NOT IAMS compliant. I will say that. It spreads through disk drives, and renders the PC useless by instantly shutting down at startup. Note that I WON'T release the Pastebin to the public.

… Of course it's not. That's like saying CryptoLocker is not McAfee-compliant. It's the definition of non-compliance just because it exists. Anyways.

And also, what about rootkits?
Im totaly not developing one right now :ph34r:/>

cyanissac said:
* Bypassing of existing security systems implemented by software (example: Rooting an OS)

I'd say a "rootkit" would meet that criteria.
Anavrins #38
Posted 05 April 2016 - 03:14 AM
My virus is NOT IAMS compliant. I will say that. It spreads through disk drives, and renders the PC useless by instantly shutting down at startup. Note that I WON'T release the Pastebin to the public.
I don't understand your statement, not only this kind of virus is trivial to make, but let me remind you that IAMS stands for Initiative Against Malicious Scripts, you obviously don't make a virus compliant to anti-malware standards…
Edited on 05 April 2016 - 01:16 AM
gollark8 #39
Posted 21 April 2016 - 08:03 PM
The databases probably shouldn't be made public - at least not the signatures. Scanning should be done remotely over http - this would actually most likely be less time consuming than scanning locally in CC, considering the magnitude of the database.
This thread feels a bit ridiculous, to be honest. Are CC "malware" an actual threat to anything?
They've already proven to be a threat to krist holdings and other protocols with secret keys. Even command computers are susceptible to the "idiot op with a pastebin link" exploit.

I wouldn't trust a remote server with AV scans. Definitions, sure, but not a system where every file is transmitted to a remote server to do whatever.
Edited on 21 April 2016 - 06:03 PM
FoxData #40
Posted 16 June 2016 - 07:16 PM
What about normal programs that can be used for malicious purposes? Like them Packer sniffers that when used on servers like LurCraft - You can see what people are sending over rednet.

PS: There was a time when i found a server on LurCraft that had a program on it running that was meant to infect everyone's computer with a virus (I still have on Floppy disk and i might send it to you)
bauen1 #41
Posted 17 June 2016 - 04:05 PM
What about normal programs that can be used for malicious purposes? Like them Packer sniffers that when used on servers like LurCraft - You can see what people are sending over rednet.

PS: There was a time when i found a server on LurCraft that had a program on it running that was meant to infect everyone's computer with a virus (I still have on Floppy disk and i might send it to you)
I wouldn't really say a packet sniffer is a malicious program, you can read all packets send by rednet due to the nature of computer craft a packet sniffer with gui just makes it easier for you.
Btw, if its a virus that does more than just your average print and shutdown on startup shit, i would love to take a look at it
CrazedProgrammer #42
Posted 17 June 2016 - 05:20 PM
Malicious scripts are not allowed on the forums, so I don't know if this initiative is very useful.
TheRockettek #43
Posted 17 June 2016 - 07:48 PM
;P The network sniffer isnt malacious but the floopy disk is
FoxData #44
Posted 17 June 2016 - 07:51 PM
I can't join lurcraft (it won't let me download the modpack). But the virus was a rednet one designed to mass infect computers without user intention. It replaced the startup screen with a message saying that rednet is insecure. If i can guess who made it then it must be Terra or anonymous (remember him?) But i think its Terra's virus
Anavrins #45
Posted 17 June 2016 - 09:15 PM
What about normal programs that can be used for malicious purposes? Like them Packer sniffers that when used on servers like LurCraft - You can see what people are sending over rednet.

PS: There was a time when i found a server on LurCraft that had a program on it running that was meant to infect everyone's computer with a virus (I still have on Floppy disk and i might send it to you)
I, for one, did use a full-spectrum sniffer on Lurcraft. By itself, it doesn't allow hacking or virus infection since it's a passive system, it did allow me to detect attacks on other computers.
I wish people could see sniffers more as a debug tool rather than a weapon.
FoxData #46
Posted 18 June 2016 - 08:47 PM
What about normal programs that can be used for malicious purposes? Like them Packer sniffers that when used on servers like LurCraft - You can see what people are sending over rednet.

PS: There was a time when i found a server on LurCraft that had a program on it running that was meant to infect everyone's computer with a virus (I still have on Floppy disk and i might send it to you)
I, for one, did use a full-spectrum sniffer on Lurcraft. By itself, it doesn't allow hacking or virus infection since it's a passive system, it did allow me to detect attacks on other computers.
I wish people could see sniffers more as a debug tool rather than a weapon.

A sniffer can be used for passwords. Unless the computer encrypts the password before sending it off. Then you can see peoples passwords,

That's a bad thing when you think about it (Krist accounts being hacked and spam being sent out from peoples craftmail accounts)
Anavrins #47
Posted 18 June 2016 - 09:34 PM
There are safe way to authenticate wirelessly, as well as multiple encryption algorithm available on the forums.
Example if a file sharing software simply send the files directly over modem, then it doesn't matter if someone can sniff it or not, the software is still vulnerable and at risk.

Both Krist and Craftmail uses http, not the in-game modems, so I don't know why that matters, at this point, only the server host can see these communications.
Creator #48
Posted 18 June 2016 - 10:40 PM
There are safe way to authenticate wirelessly, as well as multiple encryption algorithm available on the forums.
Example if a file sharing software simply send the files directly over modem, then it doesn't matter if someone can sniff it or not, the software is still vulnerable and at risk.

Both Krist and Craftmail uses http, not the in-game modems, so I don't know why that matters, at this point, only the server host can see these communications.

I implemented the Diffie-Hellman key exchange. It works, but it is slow.
FoxData #49
Posted 19 June 2016 - 05:53 PM
Was IAMS created because of Fox Anti-virus?
Anavrins #50
Posted 19 June 2016 - 05:58 PM
Was IAMS created because of Fox Anti-virus?
What are you implying, there are hundreds of "anti-virus" on the forums.

I implemented the Diffie-Hellman key exchange. It works, but it is slow.
So did I, but it's not that useful, since D-H does not provide authenticity.
Edited on 19 June 2016 - 03:59 PM
bauen1 #51
Posted 26 June 2016 - 02:02 PM
Was IAMS created because of Fox Anti-virus?
What are you implying, there are hundreds of "anti-virus" on the forums.

I implemented the Diffie-Hellman key exchange. It works, but it is slow.
So did I, but it's not that useful, since D-H does not provide authenticity.

Combined the D-H algorithm with a hashing (sha256) and a signing algorithm (DSA ?) and you got yourself a bullet proof system
Anavrins #52
Posted 26 June 2016 - 04:13 PM
Except that the only DSA implementation on CC is crazy slow, and only 512 bits.
So, possible yeah, but usable, meh.
Our best bet would be ECDSA and ECDH, I have yet to fully understand how they work to be able to implement them :/
The Crazy Phoenix #53
Posted 07 July 2016 - 07:57 PM
In case you're still looking for a secure FS sandbox, I actually have one on GitHub. I tested all sorts of exploits on it. I believe that the fs.list function isn't quite 100% reliable, but all else works.

https://github.com/C...er/bios/sandbox

I'm also working on an RSASSA-PSS and RSAES-OAEP implementation, most of it's already written and only needs testing.
It's actually a part of a secure protocol I'm working on.
Edited on 07 July 2016 - 05:58 PM
FoxData #54
Posted 15 July 2016 - 06:32 PM
Hello, Our company was recently attacked by a new type of virus.

Name: Cryptolocker
Type: Locking ransom ware that demands krist
Made by: Unknown

Link: [Removed By Request]

Please investigate this as i found it on all my computers.

Best regards: FoxData's CEO (olliegw)
Edited on 15 July 2016 - 05:32 PM
Cloud Ninja #55
Posted 15 July 2016 - 06:44 PM
Hello, Our company was recently attacked by a new type of virus.

Name: Cryptolocker
Type: Locking ransom ware that demands krist
Made by: Unknown

Link:

Please investigate this as i found it on all my computers.

Best regards: FoxData's CEO (olliegw)
I figured out how that virus works. In the headline of it, it has the computer ID. wrap a modem on another computer, modem.transmit(421,421,ID), and then on the infected machine, do fs.list("/") in lua

This "virus" was horribly made, and if they really wanted to, they could have made it much easier and had a krist password box. But tadah, a little bit of digging in the code fixed it.

Edit: You can just startup disk it as well. This virus was super shitty, and doesnt even deserve the name "Cryptolocker"
Edited on 15 July 2016 - 06:35 PM
KingofGamesYami #56
Posted 15 July 2016 - 06:47 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
Cloud Ninja #57
Posted 15 July 2016 - 07:44 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
This is true as well lol.
H4X0RZ #58
Posted 15 July 2016 - 07:52 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
This is true as well lol.

Also you actually can't disk-unlock it because it disables every setting xD
Cloud Ninja #59
Posted 15 July 2016 - 07:57 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
This is true as well lol.

Also you actually can't disk-unlock it because it disables every setting xD
Yes you can. The code fox posted didnt block disk hijacks.
bauen1 #60
Posted 15 July 2016 - 08:15 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
This is true as well lol.

Also you actually can't disk-unlock it because it disables every setting xD
Yes you can. The code fox posted didnt block disk hijacks.

It does on line 10 but you can (if you set a label) break the computer and put it in a drive and remove the startup
Cloud Ninja #61
Posted 15 July 2016 - 08:20 PM
That's too complicated CloudNinja. Simply remove all modems from the computer - the virus will error on line 4, allowing you free access.
This is true as well lol.

Also you actually can't disk-unlock it because it disables every setting xD
Yes you can. The code fox posted didnt block disk hijacks.

It does on line 10 but you can (if you set a label) break the computer and put it in a drive and remove the startup
Incorrect, the line says "settings.set("shell.allow_startup", true)"
Which allows startup files.
KingofGamesYami #62
Posted 15 July 2016 - 08:22 PM
No it does not. He calls set, but never saves it so the setting does not persist through a reboot.

@CloudNinja - actually, that's the normal startup file. The part where he sets all other settings to false (including the one for disk startup) would do it, if he bothered to call settings.save.
Edited on 15 July 2016 - 06:23 PM
FoxData #63
Posted 15 July 2016 - 11:07 PM
Lur made the virus and messed all my stuff up. We traced back the krist address and it landed at lur. Lur even told us all his krist addresses.

Even more details:
Name: Cryptolocker
Type: Krist Demanding ransomware
Made by: Lur
First Victim: FoxData Inc
Spreads: No
Uses: Rednet
Created on: 15/07/2016 at 5PM
Easy to remove: Yes

We've finished our investigation into this, So now just add it to any definitions.
Saldor010 #64
Posted 16 July 2016 - 01:06 AM
Lur made the virus and messed all my stuff up. We traced back the krist address and it landed at lur. Lur even told us all his krist addresses.

:lol:/> +1 to Lur for spreading a virus to people on his own server, this just made my day.