Difference between revisions of "2044: Sandboxing Cycle"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(transcript)
(expl: correct order of panels, some more info; trans: some more important details)
Line 11: Line 11:
  
 
Software is getting more and more complex, and in an effort to reduce programming work and security vulnerabilities, large applications (for example a web service) is comprised of multiple programs. Getting these mostly self-contained programs to work with each other can be tricky, since requirements can vary a lot between different applications, requiring a rather general {{w|Interface (computing)|interface}} or {{w|API}} for communication. The more open such interfaces are, the higher the risk of unintended side effects, like vulnerabilities and unnecessary data access (which could be exploited by hackers).  
 
Software is getting more and more complex, and in an effort to reduce programming work and security vulnerabilities, large applications (for example a web service) is comprised of multiple programs. Getting these mostly self-contained programs to work with each other can be tricky, since requirements can vary a lot between different applications, requiring a rather general {{w|Interface (computing)|interface}} or {{w|API}} for communication. The more open such interfaces are, the higher the risk of unintended side effects, like vulnerabilities and unnecessary data access (which could be exploited by hackers).  
 +
 +
At first, we are presented with an application whose parts are not yet fully connected to each other. Some of them are encapsulated and don't talk directly with programs on the outside, but through the encapsulation layer.
 +
 +
Using some "new technology" these parts are interconnected, with blatant disregard to good software design (foregoing encapsulation (as they are being drawn from an inner circle 'cutting' through its container), too much data sharing, even a connection that seemingly leads nowhere).
 +
 +
Randall then notices that the programs making up his service have a very high number of connections between them, reducing the sandboxing effort to absurdity (and probably gaining a few security holes along the way).
  
 
One solution to this problem is {{w|Sandbox (computer security)|sandboxing}}. Sandboxing a program limits its access to the outside world transparently. This can tighten up sloppy security by working around it. A direct consequence of restricted communication is that it is now harder to connect programs with each other. The Industry currently puts a lot of work into {{w|Orchestration (computing)|orchestrating}} these sandboxes; making it (supposedly) easier to plug programs into each other without sacrificing security.  
 
One solution to this problem is {{w|Sandbox (computer security)|sandboxing}}. Sandboxing a program limits its access to the outside world transparently. This can tighten up sloppy security by working around it. A direct consequence of restricted communication is that it is now harder to connect programs with each other. The Industry currently puts a lot of work into {{w|Orchestration (computing)|orchestrating}} these sandboxes; making it (supposedly) easier to plug programs into each other without sacrificing security.  
  
Randall then notices that the programs making up his service have a very high number of connections between them, reducing the sandboxing effort to absurdity (and probably gaining a few security holes along the way). He then proceeds to re-sandbox his services and the cycle starts over.
+
He then proceeds to re-sandbox his services without cleaning up the mess he made and the cycle starts over.
  
 
The dilemma is again stated in the title text: Randall wants both ease of use and high security. In practice, a tradeoff has to be made.
 
The dilemma is again stated in the title text: Randall wants both ease of use and high security. In practice, a tradeoff has to be made.
  
 
==Transcript==
 
==Transcript==
{{incomplete transcript|Do NOT delete this tag too soon.}}
 
  
 
The comic consists of four panels that are connected with arrows in a circle.
 
The comic consists of four panels that are connected with arrows in a circle.
  
 
: "I wish these parts could communicate more easily."
 
: "I wish these parts could communicate more easily."
: A large software application is stylized as circles; larger parts contain sub programs. Some are connected to each other, but far from all.
+
: A large software application is stylized as circles; larger parts contain sub programs. Some are connected to each other, but far from all, others are colored red, possibly indicating known security vulnerabilities.
  
 
: "Ohh, this new technology makes it easy to create arbitrary connections, integrating everything!"
 
: "Ohh, this new technology makes it easy to create arbitrary connections, integrating everything!"
: New communication channels (in green) have formed between most of the subprograms.
+
: New communication channels (in green) have formed between all of the subprograms, often forgoing the principle of encapsulation.
  
 
: "Uh-oh, there are so many connections it's creating bugs and security holes!"
 
: "Uh-oh, there are so many connections it's creating bugs and security holes!"
: Even more connections appear and some of them are now circled red, indicating bugs.
+
: Even more connections appear and some of them are now circled red, likely indicating bugs.
  
 
: "Ohh, this new technology makes it easy to enclose arbitrary things in secure sandboxes!"
 
: "Ohh, this new technology makes it easy to enclose arbitrary things in secure sandboxes!"

Revision as of 11:09, 10 September 2018

Sandboxing Cycle
All I want is a secure system where it's easy to do anything I want. Is that too much to ask?
Title text: All I want is a secure system where it's easy to do anything I want. Is that too much to ask?

Explanation

Ambox notice.png This explanation may be incomplete or incorrect: Created by a BADLY SANDBOXED BOT- Please change this comment when editing this page. Do NOT delete this tag too soon.
If you can address this issue, please edit the page! Thanks.

Software is getting more and more complex, and in an effort to reduce programming work and security vulnerabilities, large applications (for example a web service) is comprised of multiple programs. Getting these mostly self-contained programs to work with each other can be tricky, since requirements can vary a lot between different applications, requiring a rather general interface or API for communication. The more open such interfaces are, the higher the risk of unintended side effects, like vulnerabilities and unnecessary data access (which could be exploited by hackers).

At first, we are presented with an application whose parts are not yet fully connected to each other. Some of them are encapsulated and don't talk directly with programs on the outside, but through the encapsulation layer.

Using some "new technology" these parts are interconnected, with blatant disregard to good software design (foregoing encapsulation (as they are being drawn from an inner circle 'cutting' through its container), too much data sharing, even a connection that seemingly leads nowhere).

Randall then notices that the programs making up his service have a very high number of connections between them, reducing the sandboxing effort to absurdity (and probably gaining a few security holes along the way).

One solution to this problem is sandboxing. Sandboxing a program limits its access to the outside world transparently. This can tighten up sloppy security by working around it. A direct consequence of restricted communication is that it is now harder to connect programs with each other. The Industry currently puts a lot of work into orchestrating these sandboxes; making it (supposedly) easier to plug programs into each other without sacrificing security.

He then proceeds to re-sandbox his services without cleaning up the mess he made and the cycle starts over.

The dilemma is again stated in the title text: Randall wants both ease of use and high security. In practice, a tradeoff has to be made.

Transcript

The comic consists of four panels that are connected with arrows in a circle.

"I wish these parts could communicate more easily."
A large software application is stylized as circles; larger parts contain sub programs. Some are connected to each other, but far from all, others are colored red, possibly indicating known security vulnerabilities.
"Ohh, this new technology makes it easy to create arbitrary connections, integrating everything!"
New communication channels (in green) have formed between all of the subprograms, often forgoing the principle of encapsulation.
"Uh-oh, there are so many connections it's creating bugs and security holes!"
Even more connections appear and some of them are now circled red, likely indicating bugs.
"Ohh, this new technology makes it easy to enclose arbitrary things in secure sandboxes!"
The sandboxes are stylized as new green circles encapsulating major parts of the application.

The circle continues from the beginning.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

It’s not just sand boxing that follows this kind of cycle, other design ideas follow similar iterations from generation to generation. The grass is always greener... 172.68.34.94 04:55, 10 September 2018 (UTC)

Interesting that the same red and green colours have been used for two comics in a row. Baquea (talk) 05:18, 10 September 2018 (UTC)

This seems linked to the British Airways (BA) Data breach. https://www.bbc.co.uk/news/uk-england-london-45440850 From the precise time frame it is likely that was how long a piece of code (the one with the "link going nowhere") was in use. RIIW - Ponder it (talk) 17:41, 10 September 2018 (UTC)

The one thing that we learn from history is that nobody ever learns anything from history..... Gearóid (talk) 05:56, 10 September 2018 (UTC)

I've started explaining this comic, but it is far from done. We should probably address some of the undertones (history repeating itself, software getting more and more complex to do the same thing it did before, the constant cycle of improvement we expect from software products,...) //gir.st/ (talk) 10:42, 10 September 2018 (UTC)

It's not only software

Right now I see two other things also matching the graph: The internet vs. firewalling, and the imposition of duties by the US against free-trade with China and Europe. An because the comic doesn't mention software anyway I think the explanation should be more universal at the first place. It's the more common problem between being open and secure. Software is just one example. --Dgbrt (talk) 13:04, 10 September 2018 (UTC)

While my two examples before matched the graph they don't fit to the comic at all. A sandbox is primarily a box where everyone inside can do anything without effecting others outside. And while this comic is probably about software - only small hints like bug and security are given - a sandbox is still a playing ground (not only for children.) --Dgbrt (talk) 19:23, 10 September 2018 (UTC)

SMBC is so similar sometimes... Even down to using the phrase "is that too much to ask"!

Does anyone else here read smbc-comics? Today's: http://www.smbc-comics.com/comic/the-problem

All I want is a webcomic that is timely, topical, & mirrors my own sentiments on a day-to-day basis without feeling redundant or eerily informed. Is that too much to ask? ProphetZarquon (talk) 15:38, 10 September 2018 (UTC)

I don't see social media as mentioned at SMBC as the major part in this comic, but the same phrase "is that too much to ask" is probably more than just a coincidence. --Dgbrt (talk) 19:02, 10 September 2018 (UTC)

Gotta say, that map of the nodes looks vaguely "US shaped", I'd guess that this is especially referencing connecting various datacenters? R167 (talk) 16:11, 10 September 2018 (UTC)

re:Transcript:

sorry for botching the transcript and i appreciate you fixing my mistake (i'll learn, i promise). i do think though that my version was contentwise better: i tried to make it as concise as possible and explaining 'why' instead of exactly how it is pictured.
i believe we shouldn't describe minute details (e.g. '14 nodes', 'clockwise', ...) and do include what is meant to be depicted ('likely indicating bugs') as in the faq states: someone should understand the comic if it was being read to them. i'm keeping it as-is for now, with the hope that we can find some middle ground down the line ;-) //gir.st/ (talk) 19:39, 10 September 2018 (UTC)

Many thanks for your first draft. But: A transcript describes what can be seen, exactly that but not more. Everything else belongs the the explanation on top. And I wouldn't count 114 nodes but 14 is more than a few but less than hundreds. And the clockwise orientation is really important - think about impaired (blind) people. BTW: Please avoid html-tags here. --Dgbrt (talk) 20:14, 10 September 2018 (UTC)

The focus on a single application's parts / developpment doesn't make much sense here. Network (with various machines / applications communicating with each other) is a much more likely explanation. 108.162.229.100 (talk) (please sign your comments with ~~~~)

I have a question. Do the big green circles in the bottom-left represent the tiny red circles in the top left, and thus the cycle moves "up" a level with each iteration? Or is it all on the same level and the sandboxing divides are drawn and redrawn in every cycle? 172.68.133.168 16:02, 12 September 2018 (UTC)

The infinite loop only does work when the tiny circles always represent the same entity. It's drawn by hand but they are in each frame at the same relative position. Nevertheless the colors should be explained. --Dgbrt (talk) 16:52, 12 September 2018 (UTC)

Can someone explain the colors? Herobrine (talk) 13:12, 13 September 2018 (UTC)

My explanation, green is things doing good/what he wants them to, red is not doing what he wants or making connections he wants. Not sure where to put it in the explanation - Welp 172.68.46.41 17:29, 2 October 2018 (UTC)
I explained the colors in the explanation just now; as such, shall the incomplete tag be deleted? 162.158.106.168 23:29, 24 October 2018 (UTC)
Nice work, I've removed the incomplete tag and moved some content to a trivia section. BTW: Please add your comments below and not inside other comments. --Dgbrt (talk) 19:40, 25 October 2018 (UTC)

I think this comic is referring to "modules" from the Java 9 release, since that happened on Sept 21, 2017. The slogan was basically "A key motivation of the module system is strong encapsulation." https://www.oracle.com/corporate/features/understanding-java-9-modules.html