As talked with rfay on irc, I'll try to improve a little the "security modules" section of the contrib handbook. After making a first review, I've considered a new approach for this section:

Currently, the security modules page includes four parts:
- Security related module categories
- Security modules
- Other related modules
- The child pages

What I've found with current arrange is that, in fact, these are not modules relating to security, but providing 'security related' functionalities that may have more than one place.

For the "Security related modules" category, this is the current entry list:
* Security category (list of ALL security modules): seems good to me, not really usefull IMO because it will merge all modules.
* User access / authentication modules: they are very different module types, they should be separated: user access or node access or taxonomy access? or JUST access?
* Organic Groups family of modules: Does this have something to do with security or site content access?

The second part is called "Security modules", and shows the following list:

# Captcha module. It is not a security module, but a Spam control module, and it exist as another category at Spam control modules
# Module grants has its own page at http://drupal.org/node/408816, but this module has nothing to do with security, just because it can deal with workflows for unpublished content.
# Taxonomy Access has its own page at http://drupal.org/node/31601 under user management modules category?
# Taxonomy access lite has no page, but should go also into "user access" or alike category, not authentication (it is currently tagged) neither security.
# VidoopCAPTCHA Module: this is an external authentication module.
# Yubikey module: login using a token.

Ok, some of the modules may fit into the security module list, but not as 'security modules' IMO, but as 'Authentication' category modules.

Now, the final part is about "Miscellaneous security related modules (not in Security category)":
* OpenID module: just because it may use ssl then it's considered a security module... Not that bad, but could be improved.

So, what I've found is that actually there are real and not-that-real security modules. I mean, current "security modules" may be categorized as:

- Security: providing security functionalities.
- Privacy: providing privacy functionalities.
- Access: access control functionalities.
- Authentication: just including or improving current authentication mechanisms.

Of course, some modules could still fit into several categories: OpenID is an authentication module providing privacy functionality.. but is clearly an authentication module.

Node/user/taxonomy access modules may deserve a new subtree from "Access control modules".

to avoid confusion between "access" and "privacy", privacy may be used when you try to hide things, instead of controlling access. If want to hide something (using ssl for file system, or blocking some content to all users) then it's clearly a privacy module. The rest of uses would be considered as Access Control.

To clarify also the Access part, user access is node access most of the time. What is not clear enough is about role access, because it may control access to content or to functionalities. So "User administration" and "User access" deserve some brainstorm. Currently some role access modules (or taxonomy access modules) are under the user management and site management categories.

Other dissambiguation could be found for 'security' and 'authentication'. Authentication could be used for third party authentication services integration, and the rest of modules altering the authentication process will drop into security category. Captcha is out of these categories as the spam control category will be included in the security modules page.

As I would like to stick to the 'security modules' I've precompiled a short list of "real" security modules, not access modules:
- secure login
- password policy
- Login security
- Secure Site
- Troll
... and growing.. the bad part? most of them are in -dev or -beta stage, but I guess a more deep search would show other modules more 'usable'.

I would like to introduce also a more refined search now that we have apache solar in d.o. with something like:

* Security (link to http://drupal.org/search/apachesolr_search/security?filters=type%3Aproje...)
* Privacy: (link to http://drupal.org/search/apachesolr_search/privacy?page=1&filters=type%3...)

In the end, the final 'security module' root page may look like:

---
Security Modules handbook page
This page is a router guide to help you find contributed modules related to security. Current module set is categorized as:

  • Security module list
  • a link to a child page or an inline list including modules not related to access, privacy or authentication.

  • Access modules
  • Not sure about this.. should it go into content management category?

  • Privacy modules
  • a link to a child page or an inline list including modules providing privacy functionalities.

  • Authentication modules
  • a link to a child page or an inline list of authentication modules

  • Spam control modules

Security related module search using categories:
Not all security modules are listed here. This contribution page only includes those with documentation. The following searches using module tags may help you to find other security related modules:

Access control module categories:
The following categories may add additional security (by meaning of access) controls for your site:

Other security module searches:
Finally, these searches will help you to find other results just in case you have not found what you are looking for yet:

At the bottom of the page the child pages will create the TOC.

---

I would like to hear any comment on this. I'll try to first rearrange the vast part and do a final step on building the tree. The first approach will be (as commented with rfay) to create child pages for every interesting module copying an abstract from the README or the project page, and then create a task issue in the project queue to let the owner improve this description a little bit.

It would be great also once this page looks more useful, if a link would be included in the "Securing your Drupal site" documentation page including a child as "Securing your site using contrib modules".

so.. expecting comments..

Comments

coltrane’s picture

The list of modules with the 'security' term is daunting and incorrect for many.

I think your chosen categories are good. While looking through the modules tagged security for http://crackingdrupal.com/blog/ben-jeavons/contributed-modules-securing-... I decided to leave out all access control modules. But, there is value in including them on a handbook page if appropriately categorized.

I don't think modules like Troll and GoAway are about security exactly. I put them in the related category, about monitoring for abuse or malicious activity and denying access. How about the following?

* Security
* Access
* Privacy
* Authentication
* Analysis
* Secure communications
* Spam control

ilo’s picture

Thanks Coltrane for the review..

Just two cents about troll.. It may handle and avoid registrations using list of banned IP addresses, as well as (a feature I will request soon) deny registration using email addresses to be know as banned domains, so IMO they have something to do with security, even if they should be moved to a 'related' category.

For the rest of readers, Coltrane's blog post is license as Share Alike content. I'm not sure if this content could be introduced in D.O. due to license terms, if someone could point something about it I would appreciate any advice. If it is not possible, I will make my own review, but I'm afraid I'll reach a close "write up" as he already did. If there are no any concerns, I'm confident with Coltrane module revision and results, so I would suggest to use that work for this page, making the right license attributions.

Thanks for the tips about the categorization, I agree with you, looks a better approach.

ilo’s picture

I have introduced some changes. These are the current categories in the game..

* Secure communications (done)
* Session management (done)
* Password management (done)
* Authentication improvements (done)
* Spam control (will include badbehaviour in this list) (exists, and should be moved)
* IP blacklisting, atack detection and prevention (will include login_security here, as well as coder, as this one test for security vulnerabilities)
* Privacy management (done)
* Legal issues helpers (done)
* Uncategorized modules (paranoia and lockdown) (done)

So, the one missing right now is "IP blacklisting, atack detection and prevention". I'm reviewing the module list right now, but as I guessed, the final result is quite close to Coltrane's review (with some additions, and module rejections because of lack of code).

This one will include at least (close to coltrane's list):

GoAway, HTTP Black List and Troll for the black listing operations.
MD5 check, PHPIDS, for Prevention.
coder and security scanner for Detection.

The question is.. Should I separate "IP black listing" and "Detection and prevention" categories?

As you could see Access control is out of the list, the idea is to put a note in the "Security modules" handbook with the new location of the "access control" modules, under the "Content Management" tree.

Edited: typo.

rfay’s picture

Thanks for the good work on this, Ilo!

ilo’s picture

I've created the tree behind the main security modules handbook. Some other handbook pages should be moved to get the tree completed, but this should be acomplished later IMO. I guess the following steps are:

  • Set appropiate "Security Modules" handbook page content. I'm currently including a proposal in this comment.
  • Move existing handbook pages to fit their right place in the tree:
    • "Spam control modules" should go under "Security modules"
    • (need to review) Bad Behavior module should be included in the "Spam control modules" category.
    • "Login security module handbook" should go under "Password management" section
    • Other Per-module handbooks if available should go into the selected module category (I'll provide a more detailed list of this movements).
    • Complete the -Access Management modules- issue by creating a "Access management" handbook as child of "Contributed module documentation". This kind of page would resolve the differences between "Node Access", "User Access", "Taxonomy Access", "Group Access" and "Menu Access" categorization meaning just a permission management functionality.
  • (this one I hate, but I should live with..) make an english grammar review of the content. Now it may be buggy, but it exists!

This is the proposal for the "security modules" page. I tried to focus on the important issues so people arriving here could be still be warned about changes in the handbook tree. This page should also be reviewed as soon as other child pages got their right placed in the doc.

------- cut here ---------

Security Modules Handbook

This page is a routed guide to help you find contributed modules related to security. You have reached here expecting some documentation, but this is a live process and you should realize current page status may be inaccurate. Please, browse this documentation and get your own conclusions about the module list, features and goals achieved. Once you have finished setting up and securing your site, you are kindly encouraged to update this information with your current findings.

Security is a huge concept that may vary depending on the speaker. This documentation has been written considering Drupal-ed audience, including site administrators that should be aware of security issues exposing their Drupal sites; module developers, to be able to test their on work for security vulnerabilities, and for end users, to be able to know and understand about security features available they would need or require when using a Drupal site.
Although the intention is to cover the whole spectrum, unfortunately the categorization should be done in a more technical way, and this is the outline we could provide.

Security modules category list

Using the module tagging facility you are able to do the following predefined searches, showing modules tagged using the selected tags. Your are advised, the results will probably be difficult to handle and make this filtering currently inappropiate.

Due to the previous exposed reasons, the following list introduces a more detailed categorization, including some module descriptions and handbook pages. This list was introduced to improve the reading and easy the access to the outline for these pages.

  • Secure communications: In any case, when in doubt about security meassures, cyphering the communication is a good solution, and this modules provide that functionality.
  • Session management: Control session usability and behaviour: duration, expiration, number of available sessions are examples of these control features.
  • Password management: Enforce the complexity of a password, or control how many times a wrong login could be introduced blocking an account.
  • Authentication improvements: Enrich the features of the authentication mechanism with more secure options. This is not a list of external authenticators (Windows Live ID, Google apps, Secondlife user, etc...).
  • Spam Control Modules: If you experience undesired behaviour with automated bots or uncontrolled content, this modules will prevent your site from being abused.
  • IP blacklisting modules: Sometimes the preivous meassures are not enough to manage your security risks, and the only solution is the real blockage of the site access.
  • Privacy management: You store data from your users, make sure this information is not usable when being accessed by ways it should not be.
  • Legal issues helpers: Probably the forgotten tale, but some regulations require non-technical compliance of simple tasks like: terms and condition acceptance, age validation facility, etc....
  • Detection and Prevention: You can detect and find wrong behaviour in your site, or even vulnerabilities in your installation or in your code. These modules will help you to do so.
  • Uncategorizable security modules: Yes, it is possible to create security modules that make amazing things, but that could not be categorized at all.

Important Notes

You should be aware that currently "Access control modules" (those providing "User Access", "Node Access", "Taxonomy Access", etc...) have been removed from this list. For so long the term "Security" had grown close to the term "Access", that now it is confusing some times. Documentation of modules providing "Access Control" features have been moved to Access management section within the scope of the Contributed module documentation section considering its functionality approach. This change also affects the Organic Groups family modules.

A more accurate search filter has been included in each category. This was intentionally, as new modules would be introduced in the CVS repository faster than this document would be updated. If you are looking for a module and can not find it, try the search queries at the bottom of each category handbook page.

------- cut here ---------

notes:
- Some handbook pages are being used as a tagging mechanism to have the same module being listed more than once in different categories. I don't know if this is right or not, but as an example: Authentication and login modules lists some modules and describes NOTHING at all. I guess this handbook is the right place to set the list of currently available external authenticators for Drupal: secondlife, windows live ID, google apps, and so. Including a description of the page usage should avoid the inclusion of security modules into the wrong handbook.

This is more or less the final content I guess would fit into the handbook.. Any comments?

Note: currently child pages have incorrect weights. To avoid almost void revision creation, I'll wait for other changes to be introduced in each child page (grammar review, other modules, whatever) and go correcting them in the future.

rfay’s picture

Status: Active » Reviewed & tested by the community

Looks good to me. Why don't you go for it. After you post, assign this issue to me and I'll do a grammar/readability review.

I think after you post it it would be a nice courtesy to let the key module owners know about the new page, and ask them to link to it.

ilo’s picture

Thanks for the tips rfay. Unfortunately I'll be out the whole weekend untill tuesday. The proposed plan will take no more than 2 hours, but I guess I wont be able to do untill then.

Note: If any one is interested in keep the issue moving during these days feel free to do. I'll be back again after this little break.

I've see no concern about the new location for "Access" modules. I guess I would do some categorization with these kind of modules once I've finished this "Security modules" handbook, but I'm not sure about the quality I would get with it, becuase I seriously lack of access control experience far beyond the regular node access.

Cheers!

ilo’s picture

So, here we go!

Updated:

- Finally, now that Access Control modules handbook exists, I'm able to clean the old Security modules handbook.
- Updated content of Security modules, and now "Security Modules" links correctly to "Access Control modules"..
- I've moved Spam control modules as a child of Security modules.

Next steps:

- http://drupal.org/node/31637 should be moved. It is a contrib handbook of taxonomy_access module right in the middle of core documentation.
- (need to review) Bad Behavior module should be included in the "Spam control modules" category.
- "Login security module handbook" should go under "Password management" section (I will do)
- In general, other Per-module handbooks if available should go into the selected module category, so task is now seek and move.
- Write task in the issue queue of modules to move/review/create their appropiate handbook page in the right section.
- Provide a way for users to know that this handbook page exists from other D.O. places relating security of the Drupal setup.

rfay’s picture

Assigned: ilo » rfay

Assigning to myself - I will do a writing review pass on
http://drupal.org/node/382752 and child pages
http://drupal.org/node/602730
http://drupal.org/node/595068

rfay’s picture

Status: Reviewed & tested by the community » Needs work

Sorry, Ilo, I started a pass through this and it needs more than grammar. I think probably it would be best if you and I collaborate on it together in real time. Let me know what would work for you. I'm in GMT-7 (US Mountain time)

ilo’s picture

I'm CEST (GMT+2) so we could meet at the end of the europe day, as we have done these previous days. I'll try to be on IRC tomorrow, it will not be possible today. Thanks rfay.

rfay’s picture

Assigned: rfay » Unassigned

I went through all of these. I may have faded a bit toward the end :-)

Some issues:

  • I think http://drupal.org/node/602730 needs quite a bit of work. It needs to actually list the ACL modules and refer to the very important handbook pages on ACL modules.
  • A few of these pages refer to pretty sketchy modules. For example, Lockdown module appears not to have any actual user base (and no issues ever in the queue). I'm not sure it's useful to point people to modules that have no real user base. D5 and Dev-only D6 modules are also suspect. These pages would be better to focus on the higher-quality and higher-usage modules.
arianek’s picture

Hey - did this ever get a final review/posting? Can we close this issue?

rfay’s picture

Status: Needs work » Fixed

I think it got plenty of work. Now it's so long ago that it's out of date again, but well... so are most pages. Marking fixed.

arianek’s picture

Thanks Randy. :)

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.