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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +87 -0
- data/Rakefile +8 -0
- data/app/assets/stylesheets/beskar/application.css +15 -0
- data/app/controllers/beskar/application_controller.rb +4 -0
- data/app/helpers/beskar/application_helper.rb +4 -0
- data/app/jobs/beskar/application_job.rb +4 -0
- data/app/mailers/beskar/application_mailer.rb +6 -0
- data/app/models/beskar/application_record.rb +5 -0
- data/app/views/layouts/beskar/application.html.erb +17 -0
- data/config/routes.rb +2 -0
- data/lib/beskar/engine.rb +5 -0
- data/lib/beskar/version.rb +3 -0
- data/lib/beskar.rb +6 -0
- data/lib/tasks/beskar_tasks.rake +4 -0
- metadata +75 -0
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,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,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
data/lib/beskar.rb
ADDED
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: []
|