beskar 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 634876ddd13d9bc2e2cf6fd90917f3890dc97aefd3ed7746552ab2fa9838a15c
4
+ data.tar.gz: '085d97745587523870ea5dacaedda2cc757f88a48711d8ca556e7e7ef72061a0'
5
+ SHA512:
6
+ metadata.gz: 4f10ade46713e24239ba8b2ef55ba30fa17556cdf290ba31fc935b810d5c68d0931d2e37f622511aa61fe3fc74249b23c1dd859c07847d8147c43f62c4a9dc13
7
+ data.tar.gz: aa1f4dcd08a7ba93359a10c9c84c61e4c9e8dd73708302c216a308ef344fc79064d70b43d2d74e2162790ca3243b515122a555dfec85d410d61577bad2ca49d1
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright Maciej Litwiniuk
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # Beskar
2
+
3
+ **Beskar** is a comprehensive, Rails-native security engine designed to provide multi-layered, proactive protection for modern web applications. It defends against common threats, bot activity, and account takeovers without requiring external dependencies, integrating seamlessly into your application as a natural extension of the framework.
4
+
5
+ ## Features
6
+
7
+ - **Web Application Firewall (WAF):** Real-time protection against common attack vectors like SQL Injection (SQLi) and Cross-Site Scripting (XSS).
8
+ - **Advanced Bot Detection:** Multi-layered defense using JavaScript challenges and invisible honeypots to filter out malicious bots while allowing legitimate ones.
9
+ - **Account Takeover (ATO) Prevention:** Actively monitors and blocks brute-force attacks, credential stuffing, and impossible travel anomalies.
10
+ - **Rails-Native Architecture:** Built as a mountable `Rails::Engine`, it leverages `ActiveJob` and `Rails.cache` for high performance and low overhead.
11
+ - **Real-Time Dashboard (Coming Soon):** A mountable dashboard to visualize security events and monitor threats as they happen.
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's Gemfile:
16
+
17
+ ```ruby
18
+ gem 'beskar'
19
+ ````
20
+
21
+ And then execute:
22
+
23
+ ```bash
24
+ $ bundle install
25
+ ```
26
+
27
+ Next, run the installation generator. This will copy the necessary migrations and create an initializer file.
28
+
29
+ ```bash
30
+ $ rails g beskar:install
31
+ ```
32
+
33
+ Finally, run the database migrations:
34
+
35
+ ```bash
36
+ $ rails db:migrate
37
+ ```
38
+
39
+ ## Configuration
40
+
41
+ You can configure Rails Security Shield in the initializer file created by the installer:
42
+
43
+ ```ruby
44
+ # config/initializers/beskar.rb
45
+ RailsSecurityShield.configure do |config|
46
+ # === Web Application Firewall (WAF) ===
47
+ # Enable or disable the WAF middleware. Defaults to false.
48
+ config.enable_waf = true
49
+
50
+ # === Account Protection ===
51
+ # Set the class name of your user model.
52
+ # This is used for tracking security events related to users.
53
+ config.user_class = 'User'
54
+
55
+ # More configuration options will be available here.
56
+ end
57
+ ```
58
+
59
+ ## Usage
60
+
61
+ Once installed and configured, Rails Security Shield works automatically. Its middleware is injected into the Rails request stack to analyze incoming traffic and block threats before they reach your application.
62
+
63
+ Security events are logged to the `beskar_security_events` table for analysis and will be visualized in the forthcoming security dashboard.
64
+
65
+ ## Development
66
+
67
+ After checking out the repo, run `bundle install` to install dependencies. The gem contains a dummy Rails application in `test/dummy` for development and testing.
68
+
69
+ To run the test suite, use the standard Rails command:
70
+
71
+ ```bash
72
+ # From the gem's root directory
73
+ $ bin/rails test
74
+ ```
75
+
76
+ ## Contributing
77
+
78
+ Bug reports and pull requests are welcome on GitHub at [https://github.com/prograis/beskar](https://github.com/prograils/beskar).
79
+
80
+ ## License
81
+
82
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
83
+
84
+ ## Code of Conduct
85
+
86
+ Just be nice to each other.
87
+
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/setup"
2
+
3
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
+
6
+ load "rails/tasks/statistics.rake"
7
+
8
+ require "bundler/gem_tasks"
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,4 @@
1
+ module Beskar
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Beskar
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Beskar
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Beskar
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: "from@example.com"
4
+ layout "mailer"
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module Beskar
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Beskar</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= yield :head %>
9
+
10
+ <%= stylesheet_link_tag "beskar/application", media: "all" %>
11
+ </head>
12
+ <body>
13
+
14
+ <%= yield %>
15
+
16
+ </body>
17
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Beskar::Engine.routes.draw do
2
+ end
@@ -0,0 +1,5 @@
1
+ module Beskar
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Beskar
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module Beskar
2
+ VERSION = "0.0.1"
3
+ end
data/lib/beskar.rb ADDED
@@ -0,0 +1,6 @@
1
+ require "beskar/version"
2
+ require "beskar/engine"
3
+
4
+ module Beskar
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :beskar do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: beskar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Maciej Litwiniuk
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 8.0.0
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 8.0.0
26
+ description: |-
27
+ Rails Security Shield is a comprehensive, Rails-native security engine designed to provide multi-layered protection for modern web applications. It actively defends against common threats by integrating a powerful Web Application Firewall (WAF) to block attacks like SQLi and XSS, an advanced bot detection system using JavaScript challenges and honeypots, and robust account takeover prevention to stop brute-force and credential stuffing attacks.
28
+
29
+ Built as a mountable Rails Engine, it leverages core framework features like ActiveJob and Rails.cache to ensure high performance and minimal external dependencies. It includes a real-time dashboard for monitoring security events, giving you immediate insight into the threats your application faces. Drop it in, configure it, and get enterprise-grade security that feels like a natural extension of Rails.
30
+ email:
31
+ - maciej@litwiniuk.net
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - MIT-LICENSE
37
+ - README.md
38
+ - Rakefile
39
+ - app/assets/stylesheets/beskar/application.css
40
+ - app/controllers/beskar/application_controller.rb
41
+ - app/helpers/beskar/application_helper.rb
42
+ - app/jobs/beskar/application_job.rb
43
+ - app/mailers/beskar/application_mailer.rb
44
+ - app/models/beskar/application_record.rb
45
+ - app/views/layouts/beskar/application.html.erb
46
+ - config/routes.rb
47
+ - lib/beskar.rb
48
+ - lib/beskar/engine.rb
49
+ - lib/beskar/version.rb
50
+ - lib/tasks/beskar_tasks.rake
51
+ homepage: https://humadroid.io/
52
+ licenses:
53
+ - MIT
54
+ metadata:
55
+ homepage_uri: https://humadroid.io/
56
+ source_code_uri: https://github.com/prograils/beskar
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ requirements: []
71
+ rubygems_version: 3.7.2
72
+ specification_version: 4
73
+ summary: An all-in-one security engine for Rails providing WAF, bot detection, and
74
+ account takeover prevention.
75
+ test_files: []