Module: PWN::SAST::CmdExecutionRuby
- Defined in:
- lib/pwn/sast/cmd_execution_ruby.rb
Overview
SAST Module used to identify command execution residing within Ruby source code.
Class Method Summary collapse
-
.authors ⇒ Object
- Author(s)
-
0day Inc.
-
.help ⇒ Object
Display Usage for this Module.
-
.scan(opts = {}) ⇒ Object
- Supported Method Parameters
-
PWN::SAST::CmdExecutionRuby( dir_path: ‘optional path to dir defaults to .’ git_repo_root_uri: ‘optional http uri of git repo scanned’ ).
-
.security_references ⇒ Object
Used primarily to map NIST 800-53 Revision 4 Security Controls web.nvd.nist.gov/view/800-53/Rev4/impact?impactName=HIGH to PWN Exploit & Static Code Anti-Pattern Matching Modules to Determine the level of Testing Coverage w/ PWN.
Class Method Details
.authors ⇒ Object
- Author(s)
-
0day Inc. <[email protected]>
70 71 72 73 74 |
# File 'lib/pwn/sast/cmd_execution_ruby.rb', line 70 public_class_method def self. "AUTHOR(S): 0day Inc. <[email protected]> " end |
.help ⇒ Object
Display Usage for this Module
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/pwn/sast/cmd_execution_ruby.rb', line 78 public_class_method def self.help puts "USAGE: sast_arr = #{self}.scan( dir_path: 'optional path to dir defaults to .', git_repo_root_uri: 'optional http uri of git repo scanned' ) #{self}.authors " end |
.scan(opts = {}) ⇒ Object
- Supported Method Parameters
-
PWN::SAST::CmdExecutionRuby(
dir_path: 'optional path to dir defaults to .' git_repo_root_uri: 'optional http uri of git repo scanned')
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/pwn/sast/cmd_execution_ruby.rb', line 17 public_class_method def self.scan(opts = {}) dir_path = opts[:dir_path] git_repo_root_uri = opts[:git_repo_root_uri].to_s.scrub test_case_filter = " grep -n \ -e '`.*`' \ -e 'eval(' \ -e 'exec(' \ -e 'exec \"' \ -e 'system(' \ -e 'system \"' \ -e 'IO.popen' \ -e 'Open3.popen3' \ -e 'Open3.popen3' \ -e 'Facter::Util::Resolution::exec' \ -e 'PTY.spawn' \ -e 'Process.fork' \ -e '%x' {PWN_SAST_SRC_TARGET} 2> /dev/null " include_extensions = %w[.rb .erb .rhtml .rake .gemspec .gem .ru .bundle] PWN::SAST::TestCaseEngine.execute( test_case_filter: test_case_filter, security_references: security_references, dir_path: dir_path, include_extensions: include_extensions, git_repo_root_uri: git_repo_root_uri ) rescue StandardError => e raise e end |
.security_references ⇒ Object
Used primarily to map NIST 800-53 Revision 4 Security Controls web.nvd.nist.gov/view/800-53/Rev4/impact?impactName=HIGH to PWN Exploit & Static Code Anti-Pattern Matching Modules to Determine the level of Testing Coverage w/ PWN.
56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/pwn/sast/cmd_execution_ruby.rb', line 56 public_class_method def self.security_references { sast_module: self, section: 'INFORMATION INPUT VALIDATION', nist_800_53_uri: 'https://csrc.nist.gov/projects/cprt/catalog#/cprt/framework/version/SP_800_53_5_1_1/home?element=SI-10', cwe_id: '78', cwe_uri: 'https://cwe.mitre.org/data/definitions/78.html' } rescue StandardError => e raise e end |