From a5399c418092b5aba21fd51293679b90130dffbf Mon Sep 17 00:00:00 2001 From: Vighnesh Raje Date: Wed, 28 Feb 2024 17:00:59 +0530 Subject: [PATCH] Adding OWASP Mobile 2024 compliance support --- README.md | 2 +- appknox/mapper.py | 1 + docs/.doctrees/client.doctree | Bin 116089 -> 116947 bytes docs/.doctrees/environment.pickle | Bin 515442 -> 516116 bytes docs/.doctrees/index.doctree | Bin 50837 -> 46812 bytes docs/.doctrees/mapper.doctree | Bin 128040 -> 130562 bytes docs/_modules/appknox/client.html | 62 ++++++------------ docs/_modules/appknox/mapper.html | 1 + docs/_sources/index.rst.txt | 102 +++++------------------------- docs/genindex.html | 2 + docs/index.html | 98 ++++------------------------ docs/mapper.html | 16 +++-- docs/objects.inv | Bin 1142 -> 1154 bytes docs/searchindex.js | 2 +- sphinx-docs/index.rst | 102 +++++------------------------- 15 files changed, 79 insertions(+), 309 deletions(-) diff --git a/README.md b/README.md index 42820fb..7300b9a 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ $ appknox reports create 4 3 $ appknox reports download summary-csv 3 -Organization ID,Project ID,Application Name,Application Namespace,Platform,Version,Version Code,File ID,Test Case,Scan Type,Severity,Risk Override,CVSS Score,Findings,Description,Noncompliant Code Example,Compliant Solution,Business Implication,OWASP,CWE,MSTG,OWASP MASVS (v2),ASVS,PCI-DSS,GDPR,Created On +Organization ID,Project ID,Application Name,Application Namespace,Platform,Version,Version Code,File ID,Test Case,Scan Type,Severity,Risk Override,CVSS Score,Findings,Description,Noncompliant Code Example,Compliant Solution,Business Implication,OWASP,CWE,MSTG,OWASP MASVS (v2),OWASP Mobile 2024,ASVS,PCI-DSS,GDPR,Created On 1,1,MFVA,com.appknox.mfva,Android,1.1,1605631525,51,Broken SSL Trust Manager,Static,High,,6.9,"BluK8lNUoeHkNxZ3GVrKN9BP2 NVWmfbtHDiJBOTbOEpCnsbMhc6T31t...(Truncated) diff --git a/appknox/mapper.py b/appknox/mapper.py index d38f413..479c7a7 100644 --- a/appknox/mapper.py +++ b/appknox/mapper.py @@ -67,6 +67,7 @@ def mapper_drf_api(model: type, resource: dict) -> object: "cwe", "mstg", "masvs", + "owaspmobile2024", "asvs", "gdpr", "computed_risk", diff --git a/docs/.doctrees/client.doctree b/docs/.doctrees/client.doctree index 041626dcb2598013108a4bf88c7d9351edd819d3..711daa9c9933cd3be74017eb617fa2f9cba8b523 100644 GIT binary patch delta 2524 zcma*nT}V_x6bJB*yLa!d>*s^Ym>*k#)I+ZNAZV#jLZzWWDoTN}D*2JS>iV6UWr&t9 z>$FXVP!T;?h%EyRNFlgwL_$(lVi47XNFX9TWU(gA`hL&ueVyO^&$%<_p1(KMWtXZS zQrsqwz68iwYq_(&-D&M=ywqT?cQ#lH9krb;_4W?xai{QpDAExJLQ1$rIgp4GYEh!- zbm}KEiUmn!qQ#c|e8&<7A=3VXOJ>rHq@L$b(l-lmLbvTNNG}pnM#mk|>`@w6=!sTe zaLT*d5{+aCP2B4B2Nen2cIA#rt|37cbn$u|bqucrSN!D-ub%WEVU@IbG@NgaHK-x5 zSFRsA(xH{cJ?<>fUY5O8%}bcgNIJC=B)Ld;XAC^$K~E&k`0mVGJ$fybbap<9=knMH zoblQD&pL8dt0wO9)`Ipjb$Oe3ldsH72DB0+siW!dcW}Y)eV{7x%`R^hpZKz<1R)FG zZ|g~yW+@(bC7)YcRd7P**33L?V?{^C(4@SrLcj^l+e%`_EQsbYzb1{O8;fJD01=${ zFX&9}=Wq7yJ!~ogs`>J6F1X|2H~zkm@4wdJZ5-G`6%Q3S3ZcLp6|&>Vh*s4sGYx8( zB^jdF&m{O43KTUd;8V3nosf}EWE2Lrbc#cV;iF2%HS2O^LbvG405fPKA<>Si{l7A~ zUd1wwfr0(Wf#o1jNZ4vbT3mJ>YdHgvBDN4t8bX1-B3RYojmq-Rfr*(*VF`Cax_9^> zEMu3;VHa(RJrXTeD`470+O!T|4zV(Js}aJ*Mhz4gaVR9TD%zK{7iMpPgW|XYT!v6! zX&3YvNFQ3>kpcOsK}oE*I|%tIX~(ie_6T^CAm-FK*c4=l29B(hLOg99PG$KM;K8ks z){o5Wy;DnO5Xa^j`0*?jaKbtX-^|+Mg|$6}Ix+Yd))j3eB(mwrAa+{pzDHJd`WbBF TPDr;NLu!$%V)1nWro#RM(fr^k delta 1702 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 delta 7336 zcmeHLYm5`u73QvCy`Y5(DWOf5C{xkOrEGS`?}q}!_8NQF9zWNQ^>#61&)A-|J+^1Y zucc&`NTDgpHl%kcNs$sDv;?G(HWo!RX_QnnN}IG2QW~nNKTz8KX;W4Eqd%gkqIbr| z?ZRS%+CPzO$@aZx&iTH%bI+V_&iwK31IL#X8x}VlKl<)ZHe4MT-ZP#p7U=ODM+$iJ zGN?sd98fWx-TdK_F8( zEF!b2M*qv9O6DuH>_W|xDVh~jt%HX~vAg5gi-l62t}{a8HY~9X<|)>?;`lkH%H-(` z&0|5jTwyqxx(%rfhq4ZFQkku|%&OA7)colFgvg z>;_;*{Aq?lSCJv}=;~mTg%UcgwIO>hOl&^jk4LveN=>C*S@$N%9457pSHO@Wg+jVdvf`y8J0=Ad`3-&QAC-q zx{VU&N+tVrHllANsh}^CXBG-hJ=Z8kDPzdU^`M+6mA%fYu55~DxtUC(m<*L1l`>N{ zb|_adO8JLYX)6SBM5ET=>9oUBil&@upL51*_L@z8D#Y}lETzhn$ux<_J*8mTJu_j< zPjgA9!!ffqWsA}1pDE|GPBCMi(#AO>TQT|F*{WJ_xzye)W$i&Z?WAhKfREf~3z(;H zoxv8gX(py(tgag+pL0x=&3I!XV%InDg+gcoH;ZXC7ihRmZf_h>%867dQKUdq3AtLS zG`L3lC~kgKt)0dV7Tjb}o5r*zof+50QEjVM@+`WM+o`%6Q;%ZB8p)TWBvcXVga%g| zRCA+PDaBB{oSG_a0_{GA{f3hb&VfNjXYw&?U5LO@d6Qr30y&REK9(_NXIa z*2rK5UdXfvLetKKp#?;=#xhuey@-c?47tf_vbK2m+v4$!wt9Gxdf1VAcx3gkTD*6P z2lRR#`X402pG6v&BJ*o!*J|nc{7HtlDEvp9x>fxyvSIHn8luX6AEMDqSnppm#I=R~ zUNu8X>RbCS>4x;_sT~a+QxPg!w>_FPihMR>u<`M7#bhvct#PTc&Fo0UN=~jCNb;Q1 zOZd5BP&=hgB@6YtJa2TgBj@+HjI?>avY@V&HB)xm6c-7a(`-`gR^v2W$P=tPWAP*% zitDt-ygs?$o}RANLN+6Fm%Q&#mczc}ge_g1tolO9NT!hu)atgVZ^p2SQM^sA7#HQ@ z@@1T|Th*ERe6&&2)mUd-o6Z+FBYx{ruimr{WnRtbJoRuato4&bRbAs}NUw2W!Bbg9 zxr$N5RQimrkk=VlF3nONBcY4vwDDxl5sSp|WTclU`!ewvP2M~2n)a8g-n>zttdy); z!Hb?%TiGCG#O<0q$u`-m zzm|STWw@7qh^qwT|DYeTINZBtz<1nV#k)%eHn*HrqVLvNzaNpZ>5jhU^CvF-ex%=z z^!t%RcagDvKO#3g{eI-mQs32nk&bI0p*3ZL0Zj4xEZ_#--J9k4e{mo!0YhS<@Z4ouACf!H;%ssF2Q5pzXGnH z`Sxb|#L@NOjpoY9`Ssv!_{~#cQ@N2ko<|4QT zPrZB=eAslHT>^t2N&dUwbLV!ohAK4N(H#9z0)XrAnR7U}-u(Hw!vOpq?mdsA-_m&= Vd<6e|J_kO8{tF?5eD;EA_}}CYDo6kT diff --git a/docs/.doctrees/mapper.doctree b/docs/.doctrees/mapper.doctree index e982863233f142cade6d4fa5506e5c57fde7ca8d..7ce8d997d9cf15bd95dc4c963e94b5bd0cccf6b0 100644 GIT binary patch literal 130562 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 TPo~f(SU!P{kn|adu}1$tP4K0t literal 128040 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 z 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 code for appknox.client
 
 
[docs]class Appknox(object): """ + Client to interact with API server """ def __init__( @@ -292,9 +293,7 @@

Source code for appknox.client

         whoami = self.drf_api.me().get()
         return mapper_drf_api(Whoami, whoami)
-
[docs] def paginated_data(self, response, mapper_class): - """ - """ + def paginated_data(self, response, mapper_class): initial_data = [ mapper_json_api(mapper_class, dict(data=value)) for value in response["data"] @@ -313,11 +312,9 @@

Source code for appknox.client

                 for value in resp["data"]
             ]
 
-        return initial_data
+ return initial_data -
[docs] def paginated_drf_data(self, response, mapper_class): - """ - """ + def paginated_drf_data(self, response, mapper_class): initial_data = [ mapper_drf_api(mapper_class, value) for value in response["results"] ] @@ -331,7 +328,7 @@

Source code for appknox.client

             initial_data += [
                 mapper_drf_api(mapper_class, value) for value in resp["results"]
             ]
-        return initial_data
+ return initial_data
[docs] def get_organizations(self) -> List[Organization]: """ @@ -404,10 +401,8 @@

Source code for appknox.client

         analyses = self.drf_api["v2/files/{}/analyses".format(file_id)]().get()
         return self.paginated_drf_data(analyses, Analysis)
-
[docs] @lru_cache(maxsize=1) + @lru_cache(maxsize=1) def get_vulnerabilities(self) -> List[Vulnerability]: - """ - """ total_vulnerabilities = self.drf_api["v2/vulnerabilities"]().get(limit=1)[ "count" ] # limit is 1 just to get total count @@ -415,7 +410,7 @@

Source code for appknox.client

             limit=total_vulnerabilities + 1
         )
         vulnerabilities = self.paginated_drf_data(vulnerabilities_raw, Vulnerability)
-        return vulnerabilities
+ return vulnerabilities
[docs] def get_vulnerability(self, vulnerability_id: int) -> Vulnerability: """ @@ -433,13 +428,11 @@

Source code for appknox.client

         vulnerability = self.drf_api["v2/vulnerabilities"](vulnerability_id).get()
         return mapper_drf_api(Vulnerability, vulnerability)
-
[docs] @lru_cache(maxsize=1) + @lru_cache(maxsize=1) def get_owasps(self) -> List[OWASP]: - """ - """ owasps_raw = self.drf_api["v2/owasps"]().get() owasps = self.paginated_drf_data(owasps_raw, OWASP) - return owasps
+ return owasps
[docs] def get_owasp(self, owasp_id: str) -> OWASP: """ @@ -455,13 +448,11 @@

Source code for appknox.client

         owasp = self.drf_api["v2/owasps"](owasp_id).get()
         return mapper_drf_api(OWASP, owasp)
-
[docs] @lru_cache(maxsize=1) + @lru_cache(maxsize=1) def get_pcidsses(self) -> List[PCIDSS]: - """ - """ pcidsss_raw = self.drf_api["v2/pcidsses"]().get() pcidsss = self.paginated_drf_data(pcidsss_raw, PCIDSS) - return pcidsss
+ return pcidsss
[docs] def get_pcidss(self, pcidss_id: str) -> PCIDSS: """ @@ -670,9 +661,6 @@

Source code for appknox.client

         headers: object = None,
         auth: Dict[str, str] = None,
     ):
-        """
-        Initialise APIResource object
-        """
         self.host = host
         self.headers = {**headers}
         self.headers["User-Agent"] = f"appknox-python/{__version__}"
@@ -682,37 +670,27 @@ 

Source code for appknox.client

         self.endpoint = urljoin(host, API_BASE)
 
     def __getitem__(self, resource):
-        """
-        """
         return partial(self.set_endpoint, resource)
 
     def __getattr__(self, resource):
-        """
-        """
         return partial(self.set_endpoint, resource)
 
-
[docs] def set_endpoint(self, resource, resource_id=None): - """ - """ + def set_endpoint(self, resource, resource_id=None): self.endpoint = "{}/{}".format(urljoin(self.host, API_BASE), resource) if resource_id: self.endpoint += "/{}".format(str(resource_id)) - return self
+ return self -
[docs] def get(self, **kwargs): - """ - """ + def get(self, **kwargs): resp = self.request_session.get( self.endpoint, headers=self.headers, auth=self.auth, params=kwargs, ) - return resp.json()
+ return resp.json() -
[docs] def post(self, data, content_type=None, **kwargs): - """ - """ + def post(self, data, content_type=None, **kwargs): resp = self.request_session.post( self.endpoint, headers=self.headers, @@ -720,18 +698,16 @@

Source code for appknox.client

             params=kwargs,
             data=data,
         )
-        return resp.json()
+ return resp.json() -
[docs] def direct_get(self, url, **kwargs): - """ - """ + def direct_get(self, url, **kwargs): resp = self.request_session.get( url, headers=self.headers, auth=self.auth, params=kwargs, ) - return resp.json()
+ return resp.json()
[docs] def direct_get_http_response(self, url: str, **kwargs) -> "Response": """ diff --git a/docs/_modules/appknox/mapper.html b/docs/_modules/appknox/mapper.html index a85c6fa..3f1acd0 100644 --- a/docs/_modules/appknox/mapper.html +++ b/docs/_modules/appknox/mapper.html @@ -99,6 +99,7 @@

Source code for appknox.mapper

         "cwe",
         "mstg",
         "masvs",
+        "owaspmobile2024",
         "asvs",
         "gdpr",
         "computed_risk",
diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt
index 86e1cbf..a73dda1 100644
--- a/docs/_sources/index.rst.txt
+++ b/docs/_sources/index.rst.txt
@@ -165,91 +165,19 @@ Get the analyses for this new file:
 
 .. code-block:: python
 
-   >>> client.get_analyses(273)[:3]
-    [Analysis(id = 22248, risk = 2, status = 3, cvss_base = 6.6, cvss_vector = 'CVSS:3.0/AV:A/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H', cvss_version = 3,         cvss_metrics_humanized = [{
-            'key': 'Attack Vector',
-            'value': 'Adjacent'
-        }, {
-            'key': 'Attack Complexity',
-            'value': 'Low'
-        }, {
-            'key': 'Privileges Required',
-            'value': 'High'
-        }, {
-            'key': 'User Interaction',
-            'value': 'Required'
-        }, {
-            'key': 'Scope',
-            'value': 'Unchanged'
-        }, {
-            'key': 'Confidentiality Impact',
-            'value': 'High'
-        }, {
-            'key': 'Integrity Impact',
-            'value': 'High'
-        }, {
-            'key': 'Availability Impact',
-            'value': 'High'
-    }], 
-    findings = [{
-            'title': 'ssLA5o60a398i7TM5RkofIA1J',
-            'description': 'MfmnwBwK2HsWqnZMOJoDvWnhIFdVMn'
-        }, {
-            'title': 'p9TPfBKLqtlExLklJYnifHO72',
-            'description': '0rppCThV5ybdROVlizmG5ryoWd7S7r'
-        }, {
-            'title': 'DpqNGv4q8ZhrYgyobSpEuqiq7',
-            'description': 'BmQkMywysefELpWcG1OGYN9N98PdSi'
-        }, {
-            'title': 'pcqd88I0ZLpRqKYD7lTrbGEEY',
-            'description': '7PYqk3Gg9J3Zr7nu8PKhv1tHH1NhdA'
-        }, {
-            'title': 'TGdwRQOaFBQ9J046BRB2DJXn4',
-            'description': 'skEJq90yDVC5y0zmSD09f1rQyK8KNZ'
-    }], 
-    updated_on = '2023-09-13T06:08:18.384903Z', vulnerability = 1, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_3', 'MSTG_6_4'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None), 
-    Analysis(id = 22247, risk = 2, status = 3, cvss_base = 5.7, cvss_vector = 'CVSS:3.0/AV:P/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:N', cvss_version = 3, cvss_metrics_humanized = [{
-            'key': 'Attack Vector',
-            'value': 'Physical'
-        }, {
-            'key': 'Attack Complexity',
-            'value': 'Low'
-        }, {
-            'key': 'Privileges Required',
-            'value': 'High'
-        }, {
-            'key': 'User Interaction',
-            'value': 'Not Required'
-        }, {
-            'key': 'Scope',
-            'value': 'Changed'
-        }, {
-            'key': 'Confidentiality Impact',
-            'value': 'Low'
-        }, {
-            'key': 'Integrity Impact',
-            'value': 'High'
-        }, {
-            'key': 'Availability Impact',
-            'value': 'None'
-        }], 
-        findings = [{
-            'title': 'y4iutu3KCWb7shg6BsZqu867Y',
-            'description': 'cqB9EcXpGrvQbsrGNMProR3J1cbmxw'
-        }, {
-            'title': 'kPLH7e9juz1wq2JCBJrVR9fnb',
-            'description': '2rSLRxGXZbeSZ437l5bzKTTwwSB7il'
-        }, {
-            'title': 'qUObDBfoIvOSbVgyhQwxBWOY6',
-            'description': 'iHdHrlq0dCA1gxjWyo4wnGZ3flmr70'
-        }, {
-            'title': 'l1i4LxUXU3PaMv1wsYaN7zzLu',
-            'description': '5g4ml46nrfndL7M4V43ZbkEXVX0bVn'
-        }, {
-            'title': 'OgZY2lNjHTPqvNl75bupA3tNH',
-            'description': 'IiwQX1xQDjX5t4W6Y9KyWIrMdeREtw'
-        }], 
-    updated_on = '2023-09-13T06:08:21.540225Z', vulnerability = 2, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_1'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None), ]
+   >>> client.get_analyses(1)[6:9]
+    [Analysis(id=7, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
+        findings=[], updated_on='2024-02-28T09:53:39.292318Z', vulnerability=7, owasp=['M3_2016'], pcidss=['4_1'],
+        hipaa=['164_312_e_1'], cwe=['CWE_296'], mstg=['MSTG_3_2', 'MSTG_3_3', 'MSTG_3_3'], masvs=['MASVS_2_1'],
+        owaspmobile2024=['M5_2024'], asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None),
+    Analysis(id=8, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
+        findings=[], updated_on='2024-02-28T09:53:52.471037Z', vulnerability=8, owasp=['M3_2016'], pcidss=['4_1'],
+        hipaa=['164_312_e_1'], cwe=['CWE_297'], mstg=['MSTG_5_3'], masvs=['MASVS_5_1'], owaspmobile2024=['M5_2024'],
+        asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None),
+    Analysis(id=9, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
+        findings=[], updated_on='2024-02-28T09:54:06.240677Z', vulnerability=9, owasp=['M3_2016'],
+        pcidss=[], hipaa=[], cwe=['CWE_749'], mstg=['MSTG_6_6'], masvs=['MASVS_6_2'], owaspmobile2024=['M5_2024'],
+        asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None)]
 
 
 Note the ``vulnerability_id`` for ``Analysis(id=235)``. To get details about this vulnerability:
@@ -432,7 +360,7 @@ __
 
 Download Report Data from URL
 ------------------------------
-Returns full HTTP response body from a given absolute URL 
+Returns full HTTP response body from a given absolute URL
 
 .. code-block:: python
 
@@ -459,7 +387,7 @@ Complete Reference
    :maxdepth: 2
 
    client
-   
+
    mapper
 
 --
diff --git a/docs/genindex.html b/docs/genindex.html
index c7b4d51..591bc98 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -341,6 +341,8 @@ 

O

  • owasp (appknox.mapper.Analysis attribute)
  • OWASP (class in appknox.mapper) +
  • +
  • owaspmobile2024 (appknox.mapper.Analysis attribute)
  • diff --git a/docs/index.html b/docs/index.html index da1e6d9..4c1db79 100644 --- a/docs/index.html +++ b/docs/index.html @@ -147,91 +147,19 @@

    Quickstart
    >>> client.get_analyses(273)[:3]
    - [Analysis(id = 22248, risk = 2, status = 3, cvss_base = 6.6, cvss_vector = 'CVSS:3.0/AV:A/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H', cvss_version = 3,         cvss_metrics_humanized = [{
    -         'key': 'Attack Vector',
    -         'value': 'Adjacent'
    -     }, {
    -         'key': 'Attack Complexity',
    -         'value': 'Low'
    -     }, {
    -         'key': 'Privileges Required',
    -         'value': 'High'
    -     }, {
    -         'key': 'User Interaction',
    -         'value': 'Required'
    -     }, {
    -         'key': 'Scope',
    -         'value': 'Unchanged'
    -     }, {
    -         'key': 'Confidentiality Impact',
    -         'value': 'High'
    -     }, {
    -         'key': 'Integrity Impact',
    -         'value': 'High'
    -     }, {
    -         'key': 'Availability Impact',
    -         'value': 'High'
    - }],
    - findings = [{
    -         'title': 'ssLA5o60a398i7TM5RkofIA1J',
    -         'description': 'MfmnwBwK2HsWqnZMOJoDvWnhIFdVMn'
    -     }, {
    -         'title': 'p9TPfBKLqtlExLklJYnifHO72',
    -         'description': '0rppCThV5ybdROVlizmG5ryoWd7S7r'
    -     }, {
    -         'title': 'DpqNGv4q8ZhrYgyobSpEuqiq7',
    -         'description': 'BmQkMywysefELpWcG1OGYN9N98PdSi'
    -     }, {
    -         'title': 'pcqd88I0ZLpRqKYD7lTrbGEEY',
    -         'description': '7PYqk3Gg9J3Zr7nu8PKhv1tHH1NhdA'
    -     }, {
    -         'title': 'TGdwRQOaFBQ9J046BRB2DJXn4',
    -         'description': 'skEJq90yDVC5y0zmSD09f1rQyK8KNZ'
    - }],
    - updated_on = '2023-09-13T06:08:18.384903Z', vulnerability = 1, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_3', 'MSTG_6_4'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None),
    - Analysis(id = 22247, risk = 2, status = 3, cvss_base = 5.7, cvss_vector = 'CVSS:3.0/AV:P/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:N', cvss_version = 3, cvss_metrics_humanized = [{
    -         'key': 'Attack Vector',
    -         'value': 'Physical'
    -     }, {
    -         'key': 'Attack Complexity',
    -         'value': 'Low'
    -     }, {
    -         'key': 'Privileges Required',
    -         'value': 'High'
    -     }, {
    -         'key': 'User Interaction',
    -         'value': 'Not Required'
    -     }, {
    -         'key': 'Scope',
    -         'value': 'Changed'
    -     }, {
    -         'key': 'Confidentiality Impact',
    -         'value': 'Low'
    -     }, {
    -         'key': 'Integrity Impact',
    -         'value': 'High'
    -     }, {
    -         'key': 'Availability Impact',
    -         'value': 'None'
    -     }],
    -     findings = [{
    -         'title': 'y4iutu3KCWb7shg6BsZqu867Y',
    -         'description': 'cqB9EcXpGrvQbsrGNMProR3J1cbmxw'
    -     }, {
    -         'title': 'kPLH7e9juz1wq2JCBJrVR9fnb',
    -         'description': '2rSLRxGXZbeSZ437l5bzKTTwwSB7il'
    -     }, {
    -         'title': 'qUObDBfoIvOSbVgyhQwxBWOY6',
    -         'description': 'iHdHrlq0dCA1gxjWyo4wnGZ3flmr70'
    -     }, {
    -         'title': 'l1i4LxUXU3PaMv1wsYaN7zzLu',
    -         'description': '5g4ml46nrfndL7M4V43ZbkEXVX0bVn'
    -     }, {
    -         'title': 'OgZY2lNjHTPqvNl75bupA3tNH',
    -         'description': 'IiwQX1xQDjX5t4W6Y9KyWIrMdeREtw'
    -     }],
    - updated_on = '2023-09-13T06:08:21.540225Z', vulnerability = 2, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_1'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None), ]
    +
    >>> client.get_analyses(1)[6:9]
    + [Analysis(id=7, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
    +     findings=[], updated_on='2024-02-28T09:53:39.292318Z', vulnerability=7, owasp=['M3_2016'], pcidss=['4_1'],
    +     hipaa=['164_312_e_1'], cwe=['CWE_296'], mstg=['MSTG_3_2', 'MSTG_3_3', 'MSTG_3_3'], masvs=['MASVS_2_1'],
    +     owaspmobile2024=['M5_2024'], asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None),
    + Analysis(id=8, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
    +     findings=[], updated_on='2024-02-28T09:53:52.471037Z', vulnerability=8, owasp=['M3_2016'], pcidss=['4_1'],
    +     hipaa=['164_312_e_1'], cwe=['CWE_297'], mstg=['MSTG_5_3'], masvs=['MASVS_5_1'], owaspmobile2024=['M5_2024'],
    +     asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None),
    + Analysis(id=9, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[],
    +     findings=[], updated_on='2024-02-28T09:54:06.240677Z', vulnerability=9, owasp=['M3_2016'],
    +     pcidss=[], hipaa=[], cwe=['CWE_749'], mstg=['MSTG_6_6'], masvs=['MASVS_6_2'], owaspmobile2024=['M5_2024'],
    +     asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None)]
     

    Note the vulnerability_id for Analysis(id=235). To get details about this vulnerability:

    diff --git a/docs/mapper.html b/docs/mapper.html index 79b4032..a3536b7 100644 --- a/docs/mapper.html +++ b/docs/mapper.html @@ -35,17 +35,17 @@

    appknox.mapper

    -class appknox.mapper.Analysis(id, risk, status, cvss_base, cvss_vector, cvss_version, cvss_metrics_humanized, findings, updated_on, vulnerability, owasp, pcidss, hipaa, cwe, mstg, masvs, asvs, gdpr, computed_risk, overridden_risk)
    +class appknox.mapper.Analysis(id, risk, status, cvss_base, cvss_vector, cvss_version, cvss_metrics_humanized, findings, updated_on, vulnerability, owasp, pcidss, hipaa, cwe, mstg, masvs, owaspmobile2024, asvs, gdpr, computed_risk, overridden_risk)
    asvs
    -

    Alias for field number 16

    +

    Alias for field number 17

    computed_risk
    -

    Alias for field number 18

    +

    Alias for field number 19

    @@ -87,7 +87,7 @@
    gdpr
    -

    Alias for field number 17

    +

    Alias for field number 18

    @@ -117,7 +117,7 @@
    overridden_risk
    -

    Alias for field number 19

    +

    Alias for field number 20

    @@ -126,6 +126,12 @@

    Alias for field number 10

    +
    +
    +owaspmobile2024
    +

    Alias for field number 16

    +
    +
    pcidss
    diff --git a/docs/objects.inv b/docs/objects.inv index a5002b4c5d56ccbcf204be24fa65b8488e551b1d..95ed3bf2960a09224d6e1643eeaba0f5ec49e295 100644 GIT binary patch delta 944 zcmV;h15f<+2!aWagMZvM5QgvjD;7wvE2KeBxfuxp_)uiwZJVROB}Woteu1QRz5Vqe zMaq$!CKZQ1c_s0A`7y(pAx(^VRQjo*f`jsVb9*l}8wKp&?$fJg@KU@VFXSTutCXn}YL zof>UDqRWQqs}h>9EYULJ2}Y*}1vUNB5n>GmhZTL8W!DgFkW5n z+V({8e~IT>wVb_%40G+I%s27gZ!#4G5HAzXLsL*G$5N)UJ6hYd~Y8gy@mfSgfGziHlJhr2WLEhmM93=`zUP2bA&IsMj0&+tV-(Oz= zxa!eX?U_MOec*-=EX>hHlQmu}o$s-%4raETF;G=|;JJK4!%~M72=Cs$`vWWUy$Zw7 zHM4h~_D^&;aItWSwp6pyDcq|8Vj^b8RfW3IQlG!vosOmL8^kaZ$U^00x$))8l=xzwN|@(f z;0AmHQko?`zo^Q#uIvIs%yUU2_R#Ue{m0X(V3YC!7k_K6*h|%o2k5a0r!19G$u!p6@U> znybRcPS3|`6omJXg$5#lFX&y>eNfQvH{4W4XI%Rod0j@JbTYH-5*x> zsQdLz?2{Y>AvxdAF4``}xL;3hCpG(z5t!Ry{*b6Y(@k$0%i`<*V8>}hYubeq86DPO SdY70}`hE=QeD@8u&^198{LS$I delta 943 zcmV;g15o^e3HAt(gMZsN5Qgvm6$W;%7Pi;kf-V-wp{Nn>ZjS;@jwCkx0!i6%e|<@j zN~N?-#bHjdBt9=cW;iosh%t{!KQ&ZvP=0T2@1#87yolXAa%9u{y5e?3Bhr2No2C3c)X7n^xlJ`M6O^Vs9;V zmw8U36}4*cM1MiNf!-Lxl?c-V_I3+CIcG^x6r0uMh!PIBTox?|iketF}JDM2e9ZtbfqHyFTWP$38;I7=$VHMLb zGHD6W(fMk5$Zjz`hM8N+)33FwVUj4E%$)E409Dm5&vM5-RuOJO^mx&|ZTYerr z6tGlFGfts^yGOLhB^dlnQWb<22#aeub?q?9Xn9~&YL^hs%o2k5aC($T9G$u!o-ZFa znybRcPS59I6omJXg$5#lFX&YzX%Mmo@fA ztE{-@JUXu8%?_7Fa7qw4axECI9+SKS8d7hurWV8$HhtZU{LMgV;Q0J}kGs)H6A;{> zBct#?TpJd5jS52>> client.get_analyses(273)[:3] - [Analysis(id = 22248, risk = 2, status = 3, cvss_base = 6.6, cvss_vector = 'CVSS:3.0/AV:A/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H', cvss_version = 3, cvss_metrics_humanized = [{ - 'key': 'Attack Vector', - 'value': 'Adjacent' - }, { - 'key': 'Attack Complexity', - 'value': 'Low' - }, { - 'key': 'Privileges Required', - 'value': 'High' - }, { - 'key': 'User Interaction', - 'value': 'Required' - }, { - 'key': 'Scope', - 'value': 'Unchanged' - }, { - 'key': 'Confidentiality Impact', - 'value': 'High' - }, { - 'key': 'Integrity Impact', - 'value': 'High' - }, { - 'key': 'Availability Impact', - 'value': 'High' - }], - findings = [{ - 'title': 'ssLA5o60a398i7TM5RkofIA1J', - 'description': 'MfmnwBwK2HsWqnZMOJoDvWnhIFdVMn' - }, { - 'title': 'p9TPfBKLqtlExLklJYnifHO72', - 'description': '0rppCThV5ybdROVlizmG5ryoWd7S7r' - }, { - 'title': 'DpqNGv4q8ZhrYgyobSpEuqiq7', - 'description': 'BmQkMywysefELpWcG1OGYN9N98PdSi' - }, { - 'title': 'pcqd88I0ZLpRqKYD7lTrbGEEY', - 'description': '7PYqk3Gg9J3Zr7nu8PKhv1tHH1NhdA' - }, { - 'title': 'TGdwRQOaFBQ9J046BRB2DJXn4', - 'description': 'skEJq90yDVC5y0zmSD09f1rQyK8KNZ' - }], - updated_on = '2023-09-13T06:08:18.384903Z', vulnerability = 1, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_3', 'MSTG_6_4'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None), - Analysis(id = 22247, risk = 2, status = 3, cvss_base = 5.7, cvss_vector = 'CVSS:3.0/AV:P/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:N', cvss_version = 3, cvss_metrics_humanized = [{ - 'key': 'Attack Vector', - 'value': 'Physical' - }, { - 'key': 'Attack Complexity', - 'value': 'Low' - }, { - 'key': 'Privileges Required', - 'value': 'High' - }, { - 'key': 'User Interaction', - 'value': 'Not Required' - }, { - 'key': 'Scope', - 'value': 'Changed' - }, { - 'key': 'Confidentiality Impact', - 'value': 'Low' - }, { - 'key': 'Integrity Impact', - 'value': 'High' - }, { - 'key': 'Availability Impact', - 'value': 'None' - }], - findings = [{ - 'title': 'y4iutu3KCWb7shg6BsZqu867Y', - 'description': 'cqB9EcXpGrvQbsrGNMProR3J1cbmxw' - }, { - 'title': 'kPLH7e9juz1wq2JCBJrVR9fnb', - 'description': '2rSLRxGXZbeSZ437l5bzKTTwwSB7il' - }, { - 'title': 'qUObDBfoIvOSbVgyhQwxBWOY6', - 'description': 'iHdHrlq0dCA1gxjWyo4wnGZ3flmr70' - }, { - 'title': 'l1i4LxUXU3PaMv1wsYaN7zzLu', - 'description': '5g4ml46nrfndL7M4V43ZbkEXVX0bVn' - }, { - 'title': 'OgZY2lNjHTPqvNl75bupA3tNH', - 'description': 'IiwQX1xQDjX5t4W6Y9KyWIrMdeREtw' - }], - updated_on = '2023-09-13T06:08:21.540225Z', vulnerability = 2, owasp = ['M1_2016'], pcidss = ['3_2', '3_3', '3_4'], hipaa = ['164_312_a_1'], cwe = ['CWE_926'], mstg = ['MSTG_6_1'], masvs = ['MASVS_6_1'], asvs = [], gdpr = ['gdpr_25', 'gdpr_32'], computed_risk = 2, overridden_risk = None), ] + >>> client.get_analyses(1)[6:9] + [Analysis(id=7, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[], + findings=[], updated_on='2024-02-28T09:53:39.292318Z', vulnerability=7, owasp=['M3_2016'], pcidss=['4_1'], + hipaa=['164_312_e_1'], cwe=['CWE_296'], mstg=['MSTG_3_2', 'MSTG_3_3', 'MSTG_3_3'], masvs=['MASVS_2_1'], + owaspmobile2024=['M5_2024'], asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None), + Analysis(id=8, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[], + findings=[], updated_on='2024-02-28T09:53:52.471037Z', vulnerability=8, owasp=['M3_2016'], pcidss=['4_1'], + hipaa=['164_312_e_1'], cwe=['CWE_297'], mstg=['MSTG_5_3'], masvs=['MASVS_5_1'], owaspmobile2024=['M5_2024'], + asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None), + Analysis(id=9, risk=0, status=3, cvss_base=0.0, cvss_vector='', cvss_version=3, cvss_metrics_humanized=[], + findings=[], updated_on='2024-02-28T09:54:06.240677Z', vulnerability=9, owasp=['M3_2016'], + pcidss=[], hipaa=[], cwe=['CWE_749'], mstg=['MSTG_6_6'], masvs=['MASVS_6_2'], owaspmobile2024=['M5_2024'], + asvs=[], gdpr=['gdpr_25', 'gdpr_32'], computed_risk=0, overridden_risk=None)] Note the ``vulnerability_id`` for ``Analysis(id=235)``. To get details about this vulnerability: @@ -432,7 +360,7 @@ __ Download Report Data from URL ------------------------------ -Returns full HTTP response body from a given absolute URL +Returns full HTTP response body from a given absolute URL .. code-block:: python @@ -459,7 +387,7 @@ Complete Reference :maxdepth: 2 client - + mapper --