DataFlow object attributes need work (or moves)
メンテナーはふだん 3 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 20/100
調査の方向性
まず、DataFlow オブジェクトの定義と、関連する Source および Sink の定義を見つけます。response、data、protocol、encryption、authentication、port 属性が現在どのように使用されているかを確認し、その後、各オブジェクトにどの属性を持たせるべきかを決定します。ownership とセマンティクスについて合意し、モデルが一貫して更新されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Python
- スター
- 1.2k
- フォーク
- 237
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 9
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OWASP/pytm のほかの issue
-
Dataflow defaults overwrite values the model set explicitly対応中かも @markthomaschurch が 1 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 30/100
メンテナーはふだん 3 日以内に返信
-
Calling TM.dfd() a second time returns an empty diagram再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
メンテナーはふだん 3 日以内に返信
-
Datastore icon is missing from SVG diagrams (absolute PNG path)対応中かも @markthomaschurch が 3 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 20/100
メンテナーはふだん 3 日以内に返信
-
Long boundary names render a literal "\n" in the DFD再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 35/100
メンテナーはふだん 3 日以内に返信
-
`TM.check()` overwrites explicit Dataflow `protocol`, `dstPort` and `controls.isEncrypted` with sink defaults (regression in 1.4.0)対応中かも @Svastikkka が 14 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 75/100
メンテナーはふだん 3 日以内に返信
似ている issue
-
AI bug
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
AUTO-MAS-Project/AUTO-MAS#1960 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
btclib-org/btclib-wallet#872 ·
メンテナーはふだん 1 日以内に返信
-
[Bug]: Scheduled returns scan all accepted minion keys causing extreme load対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンbug needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
saltstack/salt#70789 · コメント 1 件 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
btclib-org/btclib#3093 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信