SecurityGuard Build Status Dependency Status

This gem is a collection of useful tools for auditing data and performing security checks.

Installation

Standalone

$ gem install security_guard

As part of your application

Add this line to your application's Gemfile:

gem 'security_guard'

And then execute:

$ bundle

Usage

Executable

There is an sguard command if you intend to use security_guard as a command line tool. Please refer to the help option for its usage.

sguard -h

Tips

You can pass in setters during initialisation, for example:

country_ips = SecurityGuard::CountryIps.new
country_ips.countries = ['Australia', 'United Kingdom']
country_ips.ips = ['4.4.4.4', '8.8.8.8', '203.206.0.1']

# the above is equivalent to:

country_ips = SecurityGuard::CountryIps.new(
  :countries => ['Australia', 'United Kingdom'],
  :ips       => ['4.4.4.4', '8.8.8.8', '203.206.0.1']
)

Country IPs

Returns a list of the IPs from given country and IP dictionaries. Useful for auditing IPs from higher risk nations.

SecurityGuard::CountryIps.new(
  :countries => ['Australia'],
  :ips       => ['4.4.4.4', '8.8.8.8', '203.206.0.1']
).result # => ['203.206.0.1']

You may also pass country and IP data as a line-delimited file by appending _from_file at the end of the attributes:

country_ips.countries_from_file = '/path/to/the/file'
country_ips.ips_from_file = '/path/to/the/file'

Deduplication

Deduplicates line-delimited content contained within a list of files. Useful for deduplicating email newsletter subscription lists.

SecurityGuard::Deduplication.new(
  :input_folder  => '/path/to/the/input/folder',
  :output_folder => '/path/to/the/output/folder'
).process

Sequences

Prepends line-delimited content with a comma-delimited sequence column (1, 2, 3...) for counting.

SecurityGuard::Sequences.new(
  :input_folder  => '/path/to/the/input/folder',
  :output_folder => '/path/to/the/output/folder'
).process

Changelog

v0.0.6 [2012-03-07]

  • Output file names are now automatically mapped from the input file names

v0.0.5 [2012-03-07]

  • Fixed the file ordering issue on some OSes like Linux
  • Fixed the non-existing specs/tmp directory that causes specs to fail

v0.0.4 [2012-02-08]

  • Fixed Concerns::Initializable for CountryIps
  • Added Deduplication

v0.0.3 [2012-01-20]

  • Added Concerns::Initializable

v0.0.2 [2012-01-19]

  • Added IP address sanity check
  • Coloured test output
  • Added changelog

v0.0.1 [2012-01-18]

  • First release, implemented CountryIps and bin/sguard

Contributing

  1. Fork it
  2. Make sure you add documentation to README.md
  3. Make sure you test all your code
  4. Do your magic!
  5. Create a new Pull Request

Author

Brought to you by SitePoint.