[sage-devel] Securing the Sage Notebook - final MSc project paper

2009-09-05 Thread Yoav Aner

The final project paper is now available at
http://www.gingerlime.com/20090901_securing_sage_notebook.pdf

Thanks again to everybody who helped figuring out the architecture,
giving feedback and discussing ideas for improving the notebook's
security.

Yoav
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Securing the Sage Notebook - MSc project draft paper

2009-08-29 Thread Yoav Aner

Thanks for the feedback, and apologies for not replying earlier. I
have posted an updated draft on 
http://www.gingerlime.com/20090829__sage_msc_proj_draft.pdf

Please see sections 4.1 and 5.4.4 where I documented the sagenb.org
setup more clearly. I mentioned it is already using virtualisation and
the benefits it brings.

On Aug 26, 9:45 am, Martin Albrecht 
wrote:
> Hi,
>
> > One thing you repeatedly mention is that sniffing data/credentials
> > may be possible on the public server. I don't think this is ever high
> > risk, as anyone doing "sensitive" computations shouldn't be using
> > someone else's hardware to do it (SSL encrypted connection or not),
> > especially as it is so easy to run your own personal copy of Sage
> > (locally or somewhere that you trust). Also, by default, there's a
> > big warning on running without https on anything but localhost.
>
> With the same argument you could say one shouldn't use webmail or e-mail at
> all if one thinks e-mail is private. Also, it is not only issues with
> sensitive computations but SSL would mitigate quite a few threats Yoav pointed
> out (spoofing, attacks on others, etc.)
>
> > Encrypting and authenticating worksheets seems beyond the scope of
> > what the Sage notebook should do, there are plenty of 3rd party tools
> > to do this cleanly and it's obvious (I hope) that sharing worksheets
> > is sharing code. The %auto keyword could be bad though.
>
> I agree that downloading and mailing worksheets might be beyond the scope of
> Sage but sharing within Sage certainly isn't.
>
> Also, for the download-and-share situation it would be very easy to add some
> protection because Sage has all the relevant crypto-protocols available
> anyway. It would send a clear signal that we care about security and would be
> relatively easy to implement.
>
> Cheers,
> Martin
>
> --
> name: Martin Albrecht
> _pgp:http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8EF0DC99
> _otr: 47F43D1A 5D68C36F 468BAEBA 640E8856 D7951CCF
> _www:http://www.informatik.uni-bremen.de/~malb
> _jab: martinralbre...@jabber.ccc.de
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: barriers to community growth

2009-08-28 Thread Yoav Aner

Don't know if anyone's interested, but I've converted the sage vmware
image to run on virtualbox, and had it running both under Ubuntu and
Mac hosts a while ago.

The steps I followed (apologies if it's wrong, I just scribbled it
down as I was doing it, so may have left something)

1. Import the vmware disks into virtualbox, using the virtualbox media
manager. Import both disks - disk.vmdk and swap.vmdk
2. Create a new ubuntu virtual machine and assign the new disks
(disk.vmdk as primary master, swap.vmdk as primary slave)
3. Boot the virtual machine, click Esc to get to the grub menu, edit
configuration (clicking 'e'), change sda1 to hda1 on the line that
says kernel /boot/vmlinuz... root=/dev/sda1 ro quiet ... press enter,
then click 'b' to boot
4. The virtual sage machine should load. After it does, log in with
user: manage; sudo vi /boot/grub/menu.lst - change sda1 to hda1 and
save
5. For networking, find out the Virtualbox MAC address for the
interface, then edit the first line mac on /etc/iftab
6. reboot

Yoav

On Aug 12, 7:58 pm, Harald Schilly  wrote:
> On Aug 12, 8:04 pm, William Stein  wrote:
>
>
>
> > At this point VirtualBox is like a massive breath of fresh air
> > compared tovmware
>
> ... and don't forget, virtualbox has a python API. That might be
> useful sometimes and fits perfectly.
>
> H
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Securing the Sage Notebook - MSc project draft paper

2009-08-25 Thread Yoav Aner

Following my previous posts, I've finished working on the draft MSc
project draft paper. The paper includes two threat models I already
shared previously, one for the Sage open source development process,
and another of the application itself - focusing on the Sage Notebook.
There's some further analysis, including a look into open source
security issues in general, process isolation techniques,
virtualisation etc.

The paper is not very practical, i.e. it doesn't actually include any
code or spells out exactly how things should be done, but I hope it
can give the Sage project some ideas on the security threats and
vulnerabilities it faces, and some high level suggestions on how to
improve security.

The current version is available at 
http://www.gingerlime.com/20090825_sage_msc_proj_draft.pdf

I would highly appreciate any comments or thoughts on the paper,
particularly if you feel I did injustice to Sage or made any serious
mistakes.

Yoav
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: notebook rewrite

2009-08-24 Thread Yoav Aner



On Aug 23, 4:51 pm, Alex Clemesha  wrote:
> On Fri, Aug 21, 2009 at 5:56 PM, Yoav Aner wrote:
>
> > Sounds like a great idea to me to de-couple the notebook from sage.
> > Appengine is not the only option though (but maybe the cheapest at
> > least for now), you could probably use an Amazon EC2 instance just as
> > easily (and with some more facilities at your disposal, having a
> > virtual server running).
>
> > Some more input from a security perspective: De-coupling the notebook
> > and the processing engine is is one of the key recommendations on my
> > threat model (http://groups.google.com/group/sage-devel/browse_thread/
> > thread/4bf627a69e0401c0 more details will be available soon as I hope
> > to complete a draft of the entire paper, or the final version due by
> > 4th September).
>
> I just read your paper 
> (http://www.gingerlime.com/sageNotebookThreatModel.pdf),
> and it's very impressive how in depth you go, nice job.
Thanks. I'm hoping to post a better and full draft of the MSc project
paper very soon.
>
> I wanted to point out a couple of things related to de-coupling the notebook
> from sage, and the current security situation in the sage notebook.
>
> A good portion of the 'security' related code (HTTP sessions) in the
> sage notebook was written by
> me (see 'sage/server/notebook/avatars.py' or
> 'sage/server/notebook/run_notebook.py', etc)
> and is old and crufty, and probably has some security vulnerabilities.
>  I've long since realized that trying to
> write you own http sessions framework is a bad idea (obviously).
>
> As you point out, decoupling the notebook from sage, and using more
> well established
> frameworks (like Django) is an excellent way to improve security
> because you have hundreds
> to people testing, using, and writing the code for you.  In fact, I
True, but don't take django's security for granted. On the positive
side, it's more likely django will get the necessary security
'attention' as so many people rely on it, but then also attackers will
be more motivated to try to poke holes at it. Overall, my personal
feeling is that it is the right direction. It provides a more solid
and extensible framework to rely on, particularly with regards to
using different authentication and authorisation options.
> have started a project
> called codenode (used to be called Knoboo, or sometime badly spelled as 
> Knooboo)
> that is exactly what you speak of: a de-coupled sage notebook that use Django.
> See here:http://codenode.organd here:http://github.com/codenode/codenode
Codenode looks very sleek. Please forgive my ignorance, but why are
there two projects? or perhaps, looking from a different angle, why
doesn't sage simply use codenode as the front-end? I see there's a
very healthy collaboration between the two projects, so wouldn't it be
more sensible to join forces here, rather than maintaining two
'versions' of the notebook?
>
>
>
> > As far of having notebook running on appengine. It would probably be
> > more straight-forward to use Robert's model - i.e. user->notebook on
> > appengine->sage backend. Otherwise issues like user authentication
> > (token mangement), synchronisation etc sound like a potential
> > nightmare to me. This 'standard' architecture still has its own
> > issues, particularly with appengine. I don't believe google allows to
> > initiate ssh connections to a backend (for the pexpect interface),
> > only web-based requests. Google also try to push users to have a
> > google account to authenticate. It might be a good or a bad thing,
> > depending on your perspective. Amazon EC2 in that respect gives you
> > more flexibility I believe. I would personally avoid either from a
> > vendor lock-in perspective, but that's just me.
>
> One of the "backends" of codenode can be google app engine, which
> is awesome because you get the security benefits that comes along with
> running arbitrary code on google's servers.  You can try it out
> right now here:http://live.codenode.org
That's a very good idea from a 'short-term' security perspective, as
google seem to have done a good job at placing security around
untrusted code - and they take the risk to a great extent (if someone
tries to run malicious code - it runs on google). The downside is of
course the fact that you're locked into google. If users do try to run
malicious code, they might block your account, they might ask you to
pay increasing fees over time, and there's no real competition to
their service at the moment. So from a slightly longer term security
perspective, you might be bette

[sage-devel] Re: notebook rewrite

2009-08-22 Thread Yoav Aner



On Aug 22, 6:04 am, Thierry Dumont  wrote:
> Yoav Aner a écrit :
>
> > only web-based requests. Google also try to push users to have a
> > google account to authenticate. It might be a good or a bad thing,
> > depending on your perspective. Amazon EC2 in that respect gives you
> > more flexibility I believe. I would personally avoid either from a
> > vendor lock-in perspective, but that's just me.
>
> If we need to have a Google Account tu use this, Sage is no more a free
> software...I cannot imagine this.
Me neither. I don't imagine anybody would suggest running the notebook
*only* on appengine. But if the notebook code is 100% appengine
compatible, I suppose it would make a good idea for anyone who wants
to use it there. They will still have to find a somewhere to run the
backend server though...

> But Appengine seems great, and Django is great.
> Yours.
> t.
>
>  tdumont.vcf
> < 1KViewDownload
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: notebook rewrite

2009-08-21 Thread Yoav Aner

Sounds like a great idea to me to de-couple the notebook from sage.
Appengine is not the only option though (but maybe the cheapest at
least for now), you could probably use an Amazon EC2 instance just as
easily (and with some more facilities at your disposal, having a
virtual server running).

Some more input from a security perspective: De-coupling the notebook
and the processing engine is is one of the key recommendations on my
threat model (http://groups.google.com/group/sage-devel/browse_thread/
thread/4bf627a69e0401c0 more details will be available soon as I hope
to complete a draft of the entire paper, or the final version due by
4th September).

As far of having notebook running on appengine. It would probably be
more straight-forward to use Robert's model - i.e. user->notebook on
appengine->sage backend. Otherwise issues like user authentication
(token mangement), synchronisation etc sound like a potential
nightmare to me. This 'standard' architecture still has its own
issues, particularly with appengine. I don't believe google allows to
initiate ssh connections to a backend (for the pexpect interface),
only web-based requests. Google also try to push users to have a
google account to authenticate. It might be a good or a bad thing,
depending on your perspective. Amazon EC2 in that respect gives you
more flexibility I believe. I would personally avoid either from a
vendor lock-in perspective, but that's just me.

Another plus point for google appengine in terms of security - you get
the added security that the appengine provides over and above standard
python and you 'offload' any security problems with the notebook
itself to google. However, if someone does hack your notebook, not
sure whether google will simply shut you down (they probably will). Of
course it only applies to the Notebook code itself, and even then it
won't solve any XSS issues for you. It obviously won't help with any
security issue relating to the backend either, which is where the sage
'soft-spot' is currently.

Unrelated to appengine, using a web framework like django is a good
idea from a security standpoint. It should give you much more
flexibility in terms of user authentication and authorisation with
many backend support. That alone would make a good security
improvement too.


On Jul 21, 7:53 pm, William Stein  wrote:
> On Tue, Jul 21, 2009 at 10:21 AM, Ondrej Certik  wrote:
>
> > On Tue, Jul 21, 2009 at 10:44 AM, William Stein wrote:
>
> > > On Tue, Jul 21, 2009 at 9:39 AM, Ondrej Certik wrote:
>
> > >> On Tue, Jul 21, 2009 at 1:58 AM, Robert
> > >> Bradshaw wrote:
>
> > >>> On Jul 20, 2009, at 9:02 PM, Ondrej Certik wrote:
>
> >  Well, let me say that I really like to run things on the appengine,
> >  rather than to constantly maintain our own servers. I see no reason
> >  why the notebook cannot run on the appengine, only the AJAX would talk
> >  to our own server with Sage to actually evaluate the cells (and for
> >  many people, I think appengine itself could actually be enough). I
> >  have to think though what the best way to transfer data to the
> >  database with worksheets is though.
>
> > >>> +1, though for Sage we rely heavily on compiled code. I wonder how
> > >>> much introduced latency there would be if the backend were served on
> > >>> a university computer, and the front end in appengine.
>
> > >> I think none, it would be as fast as it is now (e.g. the browser
> > >> communicating directly with the engine).
>
> > > How is it "none", given that there are now three separate computers
> > > involved instead of two?  There would have to be a little extra
>
> > What I meant is that the latency in typing 1+1 into the cell and get
> > the output cell saying 2 should not change at all, because the
> > javascript in the browser sends a POST request to the Sage engine
> > (e.g. a web app with the url interface, just like it is now) and it
> > returns it back directly to the browser.
>
> Thanks for the clarification, since I clearly misunderstood you.  Robert
> said "backend were served on a university computer, and the front end in
> appengine."  You seem to be eliminating the frontend completely when
> computations are done.  I.e., do you imagine appengine *just* serving some
> javascript and a database interface, and basically nothing else?  So what
> would happen is the following:
>
> 1. User visits the appengine server and gets the javascript for the sage
> notebook (after authenticating).
> 2. User starts a worksheet.   The javascript in the browser requests a "sage
> engine token", and the appengine allocates a "compute engine" somewhere for
> use by that user's worksheet.
> 3. The user types "factor(2^197-1)" and their javascript *directly* connects
> to the compute engine and runs the code "factor(2^197-1)".  It also connects
> to the appengine and stores that "factor(2^197-1)" was input in the
> database.
> 4. The javascript in the browser gets back the answer to the factor 

[sage-devel] Re: Sage Notebook Threat Model - draft

2009-08-09 Thread Yoav Aner

The other chapters are where the REALLY interesting stuff is. This is
just a taste to get you hooked... :)

On a more seriously note - other chapters cover the previous threat
model of the Sage development process (see other post), as well as
information about the threat model methodology, background e.g. open
source security concerns in general and some info on Sage itself.

I'm hoping to write a more comprehensive summary for the threat model,
with a list of key issues and recommendations, particularly for the
higher level risks / core issues.

I realise the format / presentation of the threat model pdf is a
little dull and perhaps tedious to read through, but this is the key
analysis output. I'll try to share other segments of my project paper
as and when they take better form.

Cheers
Yoav

On Aug 9, 11:19 pm, David Joyner  wrote:

>
> To me this looks great and very valuable but since the pdf starts with
> chapter 4,
> I'm curious what the other chapters say:-)
>
>
>
> > Cheers
> > Yoav
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sage Notebook Threat Model - draft

2009-08-09 Thread Yoav Aner

This is a follow-up on my previous post on
http://groups.google.com/group/sage-devel/msg/1f851e27f5500712 - which
(for obvious reasons) generated overwhelming response :)

I have now completed the first 'official' draft of the Sage Notebook
threat model. It is available on 
http://www.gingerlime.com/sageNotebookThreatModel.pdf

I am hoping this threat model is a little more 'juicy', as it covers
real vulnerabilities and threats to the Sage Notebook itself.

I'm hoping at least some of you might find it useful, and am really
looking forward to any feedback you might have. I must have made some
mistakes in the analysis, failed to cover certain areas, or paid too
much attention to others, the risk rating may be inaccurate etc. Any
input would be greatly appreciated.

If you require more background information on the methodology I used,
I'd be happy to share it, but most of it is still work in progress as
part of my project.

Cheers
Yoav
--~--~-~--~~~---~--~~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Sage development process Threat Model

2009-07-17 Thread Yoav Aner

Some updates on the sage notebook security review project I'm working
on:

First threat model for the development process:

The model I created might apply to other open source applications or
systems, or even not purely open source ones, as it is focused on the
development process, code changes / contributions, and distribution of
code and packages. There isn't anything radically new or that people
weren't fully aware of before, but I think it does help highlight some
potential threats, even in the existing development process which is
fairly robust. From what I picked up at the Sage Days 16 conference
and talking to Martin Albrecht and William Stein, every bit of code
must get reviewed and 'earn' its way into the codebase. However, I
think the threat model shows there are still ways of bypassing this
process (e.g.  faking positive reviews, modifying code or Trac records
after review etc). I'm not entirely sure how feasible or likely these
threats, but I think they are still valid. They probably won't rate
very high on the list of priorities, but worth capturing.

The model is based on the Microsoft SDL (Security Development
Lifecycle) methodology, itself drawing from other methodologies like
the one in the Threat Modeling book (again by MS press). The model is
based around a Data Flow Diagram (DFD), which lists the main
components and the flow of information between them: e.g. People,
processes, storage, data links. Whilst my initial 'gut feeling' was
that Microsoft isn't exactly the best source for information when it
comes to threat modeling, particularly for open source systems, I have
to say that most of it makes sense, and seems to apply. It's not
perfect, but seems like a good way to go through a checklist of items
and think about the threats that may apply to each. It is built around
Data Flows (and there's a tool which rather neatly allows you to draw
the Data Flows and then use it to list threats).

Please find a link to the threat model report generated by the MS tool
(and then converted fairly crudely to LaTeX). I will carry on working
and trying to produce a threat model for the core elements, i.e. sage
notebook and the usage (as opposed to dev) processes. This is still
work in progress obviously.

Please have a look at the PDF for more detailed information. It can be
downloaded from http://www.gingerlime.com/sageosThreatModel.pdf

I'm assuming some of the information I captured is inaccurate, wrong,
irrelevant etc. Hopefully some issues will be highlighted and I'll
update the model. Any other feedback, ideas, suggestions will be
greatly appreciated.

Cheers
Yoav
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Securing Sage Notebook - MSc project

2009-06-07 Thread Yoav Aner

Thank you for useful points / comments and for the pointers to how
sage works in particular. I certainly have more information to get
started now, though I'm sure I'll end up with more questions sooner or
later...

I'm guessing the answer is no, but are there any high or lower level
diagrams to help understand the architecture (e.g. server pool
processes, OS processes, web front-end and their interfaces etc, how
it all sits together)? I mean other than going through the code? I'll
start looking at the code Martin and Robert mentioned though. That's
already of great help!

Regarding working out the security threats / vulnerabilities /
scenarios - I think it's important to try to separate common
vulnerabilities from sage/notebook specific ones. Booting from a CD
and gaining direct access to the filesystem which Dave mentioned, or
accessing localhost sockets which Robert referred to are not less
important, but generic concerns tend to have generic solutions or
approaches. However, Sage/Notebook specific vulnerabilities, which are
inherent to the way Sage was designed and built and from the
functionality it provides, would perhaps be of more interest /
challenge to solve. I hope that this project can bring more 'value' by
trying to address those. Having said that, some time the biggest
'value for money' can be gained by something as simple as changing a
default parameter, even if it's something trivial like setting a
process to listen on 127.0.0.1:80 instead of 0.0.0.0:80. I would
certainly want to consider all threats, generic or otherwise.

Thanks again for your replies. I'll try to figure out more on my own
now, and come back with more specific questions.

Yoav
p.s hopefully more people would share their thoughts so this thread
isn't dead yet...
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Securing Sage Notebook - MSc project

2009-06-05 Thread Yoav Aner

I'm still rather lost to be honest and in need of some guidance.

Could anybody please suggest what's the best way to work out (map) the
software architecture of sage in terms of:

Software components/objects
Interfaces (User interfaces, functional specifications, object
relationship/hierarchy)
Data flows, communication/storage
Libraries and underlying OS functions (e.g. authentication,
authorisation, filesystem, process memory and cpu space, external
directories e.g. LDAP?)

Any other comments? Am I posting on the right group? Did I say
something wrong/offending/inappropriate? Am I asking too many
questions? (ok, I'll stop there...)

Thanks in advance
Yoav

On Jun 3, 10:18 am, Yoav Aner  wrote:
> Hello all,
>
> This is my first post. My name is Yoav, and I'm studying for an
> Information Security MSc at Royal Holloway, University of London. I'm
> starting to work on a project proposed by Martin Albrecht, to look at
> several security aspects of the Sage Notebook server.
>
> The MSc project is primarily intended to produce a paper, rather than
> write code or deliver any functionality (and my programming skills are
> limited anyway). Nevertheless, I'm hoping that at least some of the
> work would benefit the Sage community, at the very least in suggesting
> some security improvements.
>
> Martin has kindly pointed me to a couple of threads on the 
> subject:http://groups.google.com/group/sage-devel/browse_thread/thread/06735e...
> andhttp://groups.google.com/group/sage-support/browse_thread/thread/1351...
>
> Martin highlighted two primary areas on his project proposal:
>
> 1. Denial of Service - which is apparently relatively easy considering
> access is granted via the web to the shell and / or spawning processes
> via external system calls (e.g. python os.system etc). Denial of
> Service attacks are not limited to the Sage platform itself, but it
> can be used as a platform to launch attacks on other systems.
> 2. Using Sage Notebook in an academic environment, where stricter
> access control to data may be necessary. For example, to prevent one
> student tampering with or accessing other's work.
>
> The project will obviously try to cover those, and possibly other (in)
> security areas if they can be identified. I would therefore like to
> start by performing some form of a threat modeling / assessment, to
> discover other areas which security needs consideration or
> improvements.
>
> I have sage running on a virtual machine and tried to read through the
> various groups and documentation, but still trying to figure out the
> sage notebook architecture, components, interfaces etc. Any help,
> suggestions, ideas or comments are most welcome. I would try to share
> my own thoughts and project progress with you and hope to contribute
> to the project as much as I can.
>
> Yoav
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Securing Sage Notebook - MSc project

2009-06-03 Thread Yoav Aner

Hello all,

This is my first post. My name is Yoav, and I'm studying for an
Information Security MSc at Royal Holloway, University of London. I'm
starting to work on a project proposed by Martin Albrecht, to look at
several security aspects of the Sage Notebook server.

The MSc project is primarily intended to produce a paper, rather than
write code or deliver any functionality (and my programming skills are
limited anyway). Nevertheless, I'm hoping that at least some of the
work would benefit the Sage community, at the very least in suggesting
some security improvements.

Martin has kindly pointed me to a couple of threads on the subject:
http://groups.google.com/group/sage-devel/browse_thread/thread/06735e88260cc079/5a341e48670c5465
and 
http://groups.google.com/group/sage-support/browse_thread/thread/1351e426eb55d6e2

Martin highlighted two primary areas on his project proposal:

1. Denial of Service - which is apparently relatively easy considering
access is granted via the web to the shell and / or spawning processes
via external system calls (e.g. python os.system etc). Denial of
Service attacks are not limited to the Sage platform itself, but it
can be used as a platform to launch attacks on other systems.
2. Using Sage Notebook in an academic environment, where stricter
access control to data may be necessary. For example, to prevent one
student tampering with or accessing other's work.

The project will obviously try to cover those, and possibly other (in)
security areas if they can be identified. I would therefore like to
start by performing some form of a threat modeling / assessment, to
discover other areas which security needs consideration or
improvements.

I have sage running on a virtual machine and tried to read through the
various groups and documentation, but still trying to figure out the
sage notebook architecture, components, interfaces etc. Any help,
suggestions, ideas or comments are most welcome. I would try to share
my own thoughts and project progress with you and hope to contribute
to the project as much as I can.

Yoav

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---