DataFlow object attributes need work (or moves)
Maintainer thường phản hồi trong vòng 3 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 20/100
Hướng nghiên cứu
Bắt đầu bằng cách tìm định nghĩa đối tượng DataFlow và các định nghĩa Source và Sink liên quan. Xem xét cách các thuộc tính response, data, protocol, encryption, authentication và port hiện đang được sử dụng, sau đó xác định thuộc tính nào thuộc về từng đối tượng. Công việc được xem là hoàn tất khi ownership và ngữ nghĩa đã được thống nhất, đồng thời mô hình đã được cập nhật nhất quán.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Many of the attributes defined for the DataFlow object belong elsewhere:
Correctly assigned:
-
source = varElement(None, required=True) -
sink = varElement(None, required=True) -
order = varInt(-1, doc="Number of this data flow in the threat model") -
note = varString("")
Maybe correct:
-
isResponse = varBool(False, doc="Is a response to another data flow") --> Is this a dup with `responseTo`? -
response = varElement(None, doc="Another data flow that is a response to this one") --> If this is non-empty, is either `isResponse` or `responseTo` needed (since it would be detectable as True if non-empty)? -
responseTo = varElement(None, doc="Is a response to this data flow") --> Is this a dup with `isResponse`? -
data = varData([], doc="Default type of data in incoming data flows") --> Does this represent the data sent by the source, or returned by the sink? I think this highlights a challenge in setting data to the flow and not associating the connection to the source as sender of data, and server is replier of data.
Should be a property of the Source:
-
srcPort = varInt(-1, doc="Source TCP port") -
isEncrypted = varBool(False, doc="Is the data encrypted") --> Clarification needed - is this data encryption independent of the protocol? -
authenticatesDestination = varBool(False, doc="""Verifies the identity of the destination, - for example by verifying the authenticity of a digital certificate.""")
-
checksDestinationRevocation = varBool(False, doc="""Correctly checks the revocation status - of credentials used to authenticate the destination""")
Should be a property of the Sink:
-
usesSessionTokens = varBool(False) -
authorizesSource = varBool(False) -
usesLatestTLSversion = varBool(False) --> This will become out of date (TLS 1.2 to TLS 1.3 to whatever is next), and TLS is not the only option for secure protocol, so maybe this should be a list -
implementsAuthenticationScheme = varBool(False) -
authenticatedWith = varBool(False) -
protocol = varString("", doc="Protocol used in this data flow") --> With this list, it is possible to check for `usesLatestTLSversion` state -
dstPort = varInt(-1, doc="Destination TCP port")
Should be a property of either source or sink:
-
usesVPN = varBool(False) --> DataFlows are associated with a source (the initiator) and a sink (the target). It is either the source or sink that determines if a VPN is in use. The source may use one, or the sink may do so, or both, but the DataFlow would if anything inherit the state of this flag based on `source.usesVPN or sink.usesVPN`. -
implementsCommunicationProtocol = varBool(False) --> Sink always determines the protocol to be used by the source, but this may also apply to the source's comm stack
- Ngôn ngữ chính
- Python
- Star
- 1.2k
- Fork
- 237
- Merge trung bình
- 4 ngày 2 giờ
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của OWASP/pytm
-
Dataflow defaults overwrite values the model set explicitlyCó thể đã có người làm @markthomaschurch đã nhận 1 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 30/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Calling TM.dfd() a second time returns an empty diagramCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 25/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Datastore icon is missing from SVG diagrams (absolute PNG path)Có thể đã có người làm @markthomaschurch đã nhận 3 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 20/100
Maintainer thường phản hồi trong vòng 3 ngày
-
Long boundary names render a literal "\n" in the DFDCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 3 ngày
-
`TM.check()` overwrites explicit Dataflow `protocol`, `dstPort` and `controls.isEncrypted` with sink defaults (regression in 1.4.0)Có thể đã có người làm @Svastikkka đã nhận 14 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 75/100
OWASP/pytm#373 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
Issue tương tự
-
AI bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
AUTO-MAS-Project/AUTO-MAS#1960 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
btclib-org/btclib-wallet#872 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Scheduled returns scan all accepted minion keys causing extreme loadCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
saltstack/salt#70789 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 87/100
btclib-org/btclib#3093 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày