Re: RE: MIB Doctor Review of draft-ietf-adslmib-gshdslbis-07.txt
"Clay Sikes" <[email protected]>
| Newsgroups | gmane.ietf.adslmib |
|---|---|
| Message-ID | <[email protected]> |
Bert and Mike, Let's hold off on the IETF Last Call and I'll look over and work the issues. - Clay Wijnen, Bert (Bert) wrote: >Thanks very much Mike for your thourough review. > >I think we can do one of two things: > >- I go ahead with IETF Last Call and the editors/authors address > your comment as part of any other IETF last Call comments >- The editors/authors address your comments forst before I issue > IETF Last Call. > >I slightly prefer the latter. Editors/authors? > >Bert > > > >>-----Original Message----- >>From: C. M. Heard [mailto:[email protected]] >>Sent: Sunday, January 09, 2005 05:04 >>To: ADSL MIB (E-mail) >>Cc: Wijnen, Bert (Bert) >>Subject: MIB Doctor Review of draft-ietf-adslmib-gshdslbis-07.txt >> >> >>Howdy, >> >>Bert Wijnen asked me to do take a quick look at >>draft-ietf-adslmib-gshdslbis-07.txt before it is sent out for IETF >>last call. I think that there are some issues with the Security >>Considerations section in the draft that warrant a clean-up before >>the document goes to the IESG, and I have also found a few minor >>editorial ssues. Regarding the MIB module itself, I looked only at >>the changes that have been made since RFC 3276; based on that, it >>appears to be in good shape and ready to go. >> >>Details are in the MIB Doctor check list below. (It does not quite >>match Appendix A of draft-ietf-ops-mib-review-guidelines-03.txt >>because it is based on a new version of the checklist that the MIB >>Doctors have been discussing on the mreview list. You are the first >>guinea pigs :) >> >>1.) I-D Boilerplate -- OK >> >>2.) Abstract -- OK >> >>3.) MIB Boilerplate -- OK >> >>4.) Security Considerations Section -- this section does not comply >>with the Security Guidelines for IETF MIB Modules at >>http://www.ops.ietf.org/mib-security.html. Editorially, the >>material appears in an unexpected order, which makes it hard it hard >>to read. Also, there are several redundant/obsolete paragraphs that >>appear to be the result of splicing the text from the current >>guidelines onto the front of the old security text. There are also >>some substantive deficiencies. Because of this I believe that a >>rewrite is needed before submission to the IESG. Specific >>suggestions follow. >> >>(a) The opening paragraph, viz., >> >> There are a number of management objects defined in this MIB module >> with a MAX-ACCESS clause of read-write and/or read-create. Such >> objects may be considered sensitive or vulnerable in some network >> environments. The support for SET operations in a non-secure >> environment without proper protection can have a negative effect on >> network operations. >> >>is fine. However, the MIB security guidelines say: >> >>-- if you have any read-write and/or read-create objects, please >>-- describe their specific sensitivity or vulnerability. >> >>and I have interpreted that to mean that the sensitivity or >>vulnerability of all read-write and read-create objects has to be >>explicitly described. That description is supposed to follow the >>first paragraph. I don't see any such descriptions. The >>read-create objects in this MIB module are: >> >>hdsl2ShdslSpanConfNumRepeaters >>hdsl2ShdslSpanConfProfile >>hdsl2ShdslSpanConfAlarmProfile >>hdsl2ShdslEndpointAlarmConfProfile >>hdsl2ShdslMaintLoopbackConfig >>hdsl2ShdslMaintPowerBackOff >>hdsl2ShdslMaintSoftRestart >>hdsl2ShdslMaintLoopbackTimeout >>hdsl2ShdslSpanConfWireInterface >>hdsl2ShdslSpanConfMinLineRate >>hdsl2ShdslSpanConfMaxLineRate >>hdsl2ShdslSpanConfPSD >>hdsl2ShdslSpanConfTransmissionMode >>hdsl2ShdslSpanConfRemoteEnabled >>hdsl2ShdslSpanConfPowerFeeding >>hdsl2ShdslSpanConfCurrCondTargetMarginDown >>hdsl2ShdslSpanConfWorstCaseTargetMarginDown >>hdsl2ShdslSpanConfCurrCondTargetMarginUp >>hdsl2ShdslSpanConfWorstCaseTargetMarginUp >>hdsl2ShdslSpanConfUsedTargetMargins >>hdsl2ShdslSpanConfReferenceClock >>hdsl2ShdslSpanConfLineProbeEnable >>hdsl2ShdslSpanConfProfileRowStatus >>hdsl2ShdslEndpointThreshLoopAttenuation >>hdsl2ShdslEndpointThreshSNRMargin >>hdsl2ShdslEndpointThreshES >>hdsl2ShdslEndpointThreshSES >>hdsl2ShdslEndpointThreshCRCanomalies >>hdsl2ShdslEndpointThreshLOSWS >>hdsl2ShdslEndpointThreshUAS >>hdsl2ShdslEndpointAlarmConfProfileRowStatus >> >>Some of these objects undoubtedly could, if misconfigured, cause >>traffic disruptions. Others (such as hdsl2ShdslEndpointThreshSNRMargin >>and hdsl2ShdslEndpointThreshLoopAttenuation) could possibly be >>misconfigured in such a way as to allow notification floods. Some >>might cause only minor (or maybe even no) ill effects. Whatever >>is the case, this section needs to spell that out explicitly for >>each writeable object. If some considerations apply to several >>objects, it is of course OK to say to list the those objects rather >>than repeating the text for each; the important thing is to make >>the information available for every writeable object. >> >>The following text (which is presently in the draft) is NOT an >>acceptable substitute for the specific descriptions required by the >>guidelines. Furthermore, the first sentence is simply wrong, since >>it contradicts the recommendation elsewhere in the text to use >>SNMPv3 security to do just the thing that it it says is out of >>scope. >> >> Blocking unauthorized access to the HDSL2-SHDSL MIB via the element >> management system is outside the scope of this document. It should >> be noted that access to the MIB permits the unauthorized entity to >> modify the profiles such that both subscriber service and network >> operations can be interfered with. Subscriber service can >>be altered >> by modifying any of a number of service characteristics >>such as rate >> partitioning and maximum transmission rates. Network >>operations can >> be impacted by modification of notification thresholds such as SES >> thresholds. >> >>(b) The text on readable objects and the remainder of the >>boilerplate should be condensed and reorganized into standard form. >>I suggest: >> >> Some of the readable objects in this MIB module ( i.e., >>objects with >> a MAX-ACCESS other than not-accessible) may be considered sensitive >> or vulnerable in some network environments. In particular, certain >> objects will reveal information about which vendor's >>equipment is in >> use on the network, which in many enviromments may be considered >> sensitive for competitive reasons. It is thus important to control >> even GET and/or NOTIFY access to these objects and possibly even to >> encrypt their values when sending them over the network via SNMP. >> >> These identifying objects in the inventory group are: >> >> - hdsl2ShdslInvVendorID >> - hdsl2ShdslInvVendorModelNumber >> - hdsl2ShdslInvVendorSerialNumber >> - hdsl2ShdslInvVendorEOCSoftwareVersion >> - hdsl2ShdslInvStandardVersion >> - hdsl2ShdslInvVendorListNumber >> - hdsl2ShdslInvVendorIssueNumber >> - hdsl2ShdslInvVendorSoftwareVersion >> - hdsl2ShdslInvEquipmentCode >> - hdsl2ShdslInvVendorOther >> - hdsl2ShdslInvTransmissionModeCapability >> >> SNMP versions prior to SNMPv3 did not include adequate security. >> Even if the network itself is secure (for example by using IPSec), >> even then, there is no control as to who on the secure network is >> allowed to access and GET/SET (read/change/create/delete) >>the objects >> in this MIB module. >> >> It is RECOMMENDED that implementers consider the security >>features as >> provided by the SNMPv3 framework (see [RFC3410], section 8), >> including full support for the SNMPv3 cryptographic mechanisms (for >> authentication and privacy). >> >> Further, deployment of SNMP versions prior to SNMPv3 is NOT >> RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to >> enable cryptographic security. It is then a customer/operator >> responsibility to ensure that the SNMP entity giving access to an >> instance of this MIB module is properly configured to give >>access to >> the objects only to those principals (users) that have legitimate >> rights to indeed GET or SET (change/create/delete) them. >> >> It should be noted that interface indices in this MIB module are >> maintained persistently. View-based Access Control Model (VACM) >> data relating to these should be stored persistently. >> >>(c) Regarding this: >> >> HDSL2-SHDSL layer connectivity from the xtuR will permit the >> subscriber to manipulate both the HDSL2-SHDSL link directly and the >> HDSL2-SHDSL embedded operations channel (EOC) for their own loop. >> For example, unchecked or unfiltered fluctuations initiated by the >> subscriber could generate sufficient notifications to potentially >> overwhelm either the management interface to the network or the >> element manager. >> >>It is not sufficient just to state that notification flooding can >>occur. It is necessary to provide a mechanism to prevent it. Cf. >>the following discussion on the mreview list from December 2002: >> >>| On Sat, 28 Dec 2002 Bert Wijnen wrote: >>| > > 2) DoS attacks (as described in some of the ADSL MIBs' >>| > > security considerations sections) based on the >>| > > conditions under which notifications are generated. >>| > > >>| > Mmm... I wonder... in the end it depends on >>| > - having proper access control to those objects that control/limit >>| > the sending of notifications (for example access to the >>tables in >>| > RFC3413). >>| > - ensuring that no notification flooding will take place. >>| > That I guess depends on proper mib design and the MIB >>doctors should >>| > be looking for such issues. I don't think it is OK to >>just say that >>| > DoS attacks are possible. Better to build in controls >>to prevent it. >>| >>| There is now text in 4.7 to the effect that notifications which can >>| be generated by rapidly changing external conditions SHOULD have a >>| rate-limiting mechanism in order to avoid overwhelming the network >>| with floods of notifications. RFC 2108/RFC 2737 are cited >>as examples. >> >>The "text in 4.7" referred to above is this: >> >> In many cases notifications will be triggered by external >>events, and >> sometimes it will be possible for those external events to >>occur at a >> sufficiently rapid rate that sending a notification for each >> occurrence would overwhelm the network. In such cases a mechanism >> MUST be provided for limiting the rate at which the >>notification can >> be generated. A common technique is to require that the >>notification >> generator use throttling -- that is, to require that it generate no >> more than one notification for each event source in any given time >> interval of duration T. The throttling period T MAY be >>configurable, >> in which case it is specified in a MIB object, or it MAY >>be fixed, in >> which case it is specified in the notification definition. >> Examples >> of the fixed time interval technique can be found in the SNMP- >> REPEATER-MIB [RFC2108] and in the ENTITY-MIB [RFC2737bis]. >> >>If I correctly understood what I read in the MIB module (and it is >>certainly possible that I did not), then it would appear that the >>notifications that could be flooded in case of fluctuations >>initiated by the subscriber are hdsl2ShdslLoopAttenCrossing and >>hdsl2ShdslSNRMarginCrossing, which are controlled by the writeable >>objects hdsl2ShdslEndpointThreshLoopAttenuation and >>hdsl2ShdslEndpointThreshSNRMargin. At the very least the user >>should be warned that incorrect configuration of these objects could >>lead to that exposure (cf. (a) above). You may also want to >>consider adding a throttling mechanism to those notifications. As >>far as I could tell, the other notifications are already >>rate-controlled. >> >>(d) Regarding this: >> >> It is conceivable that a management application that was >>designed to >> support G.SHDSL as defined in RFC 3276 [RFC3276] could be >>broken by a >> G.shdsl.bis agent which reports objects for additional >>wire pairs (as >> noted in Section 7). >> >> For example, if a management application blindly loaded object >> instances into an array until the object changes (during repeated >> GET-NEXT requests). It is anticipated that the >>modifications to the >> management application code would be straightforward. >> >>This is not really a security issue, it is an implementation >>consideration, and it is already dealt with (very well, I might add) >>in the Implementation Analysis section. Please remove it from here. >> >>(e) Please get rid of all redundant/obsolete stuff from previous >>versions of the security boilerplate. If you include the material I >>requested in (a) and (b) above that should be enough. >> >>5.) IANA Considerations Section -- OK >> >>6.) References -- there are a few minor issues here. >> >>(a) I don't think that RFC 3276 should be normative, since it is not >>necessary to consult with it in order to implement the new revision >>of the MIB module. Please move it to the Informative References >>section. >> >>(b) The current version of Security Guidelines for IETF MIB Modules >>at http://www.ops.ietf.org/mib-security.html no longer requires the >>USM and VACM documents as references. If as requested in (4) above >>the Security Considerations section is rewritten to conform to the >>guidelines, then [RFC3414] and [RFC3415] will no longer be needed >>and so should be eliminated (the RFC Editor will remove them if >>there is no citation in the text.) >> >>(c) there are some typos in informative reference [RFC3410]: >>OLD: >> [RFC3410] Case, J., Mindy, R., Partain, D. and B. Stewart, >> "Introduction and Applicability Statements for Internet >> Standard Management Framework", RFC 3410, December 2002. >>NEW: >> [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, >> "Introduction and Applicability Statements for Internet- >> Standard Management Framework", RFC 3410, December 2002. >> >>(d) For completeness, I verified that the documents containing MIB >>modules from which definitions are imported (viz., RFCs 2578, 2579, >>2863, 3593, 3411, and 2580) are included among the Normative >>References and that they are cited in the text. >> >>7.) Copyright Notices -- OK >> >>8.) IPR Notice -- I see the following paragraph that is not actually >>required by RFC 3668: >> >> The IETF has been notified of intellectual property rights claimed >> in regard to some or all of the specification contained in this >> document. For more information consult the online list of claimed >> rights. >> >>I don't think that this is a problem, however, since this text will >>be reviewed and if necessary revised during the RFC publication >>process. >> >>9.) Other issues -- editorial nits, typos, and anything mentioned in >>http://www.ietf.org/ID-Checklist.html that are not covered elsewhere: >> >>(a) typo/punctuation in second paragraph of Section 3.1.2: >>OLD: >> The following attributes are part of the mandatory >>ifGeneral group in >> RFC 2863 [RFC2863], and are not duplicated in the HDSL2/SHDSL Line >> MIB. >>NEW: >> The following attributes are part of the mandatory >> ifGeneralInformationGroup in RFC 2863 [RFC2863] and are not >> duplicated in the HDSL2/SHDSL Line MIB. >> >>(b) in Figure 1, the following was omitted: >> >> ifAlias See interfaces MIB [RFC2863]. >> >>(c) in the DESCRIPTION clause of hdsl2ShdslSpanConfUsedTargetMargins: >>OLD: >> "Contains indicates whether a target SNR margin is enabled or >> disabled. This is a bit-map of possible settings. The >> various bit positions are: >>NEW: >> "Indicates whether a target SNR margin is enabled or >> disabled. This is a bit-map of possible settings. The >> various bit positions are: >> >>(d) punctuation in next-to-last paragraph of Section 7: >>OLD: >> A management application intended to manage G.shdsl.bis agents, >> should be modified to accept this sequence. >>NEW: >> A management application intended to manage G.shdsl.bis agents >> should be modified to accept this sequence. >> >>10.) Technical content -- review of actual technical content for >>compliance with <draft-ietf-ops-mib-review-guidelines-03.txt>: >> >>(a) MIB compilation: >> >>Running smilint identified no errors or warnings. >> >>Running smidiff to evaluate the changes with respect to rfc3276 >>produced numerous messages. The ones that warrant comment are >>discussed below. >> >>HDSL2-SHDSL-LINE-MIB.mi2:418 [3] {range-changed} range of type used >>in `hdsl2ShdslStatusMaxAttainableLineRate' changed from >>`(0..4112000)' to `(0..4294967295)' >>HDSL2-SHDSL-LINE-MIB.mi2:432 [3] {range-changed} range of type used >>in `hdsl2ShdslStatusActualLineRate' changed from >>`(0..4112000)' to `(0..4294967295)' >>HDSL2-SHDSL-LINE-MIB.mi2:1646 [3] {range-changed} range of type used >>in `hdsl2ShdslSpanConfMinLineRate' changed from >>`(0..4112000)' to `(0..4294967295)' >>HDSL2-SHDSL-LINE-MIB.mi2:1664 [3] {range-changed} range of type used >>in `hdsl2ShdslSpanConfMaxLineRate' changed from >>`(0..4112000)' to `(0..4294967295)' >> >>These are flagged as level 3 by smidiff because liberalization of a >>range is not among the changes permitted by RFC 2578. However, I >>think that what you are doing here is correcting a bug in the >>original MIB module by relaxing an arbitrarily restrictive subrange, >>and I agree that it is a good thing to do. Furthermore, I see that >>SYNTAX refinements have been added to the compliance statement >>requiring only the subrange (0..4112000) for these objects: >> >>HDSL2-SHDSL-LINE-MIB.mi2:2362 [5] {refinement-added} warning: >>object refinement for `hdsl2ShdslStatusMaxAttainableLineRate' >>added to `hdsl2ShdslLineMibCompliance' >>HDSL2-SHDSL-LINE-MIB.mi2:2370 [5] {refinement-added} warning: >>object refinement for `hdsl2ShdslStatusActualLineRate' added >>to `hdsl2ShdslLineMibCompliance' >>HDSL2-SHDSL-LINE-MIB.mi2:2378 [5] {refinement-added} warning: >>object refinement for `hdsl2ShdslSpanConfMinLineRate' added >>to `hdsl2ShdslLineMibCompliance' >>HDSL2-SHDSL-LINE-MIB.mi2:2386 [5] {refinement-added} warning: >>object refinement for `hdsl2ShdslSpanConfMaxLineRate' added >>to `hdsl2ShdslLineMibCompliance' >> >>I see also that this issue is explicitly discussed in Section 7 of >>the text, which I would not have asked for but which is a very good >>idea. So I think you are good to go on this score. >> >>I see also that some enumerations have been added in a couple of >>places. One is in the definition of the Hdsl2ShdslWirePair TC: >> >>HDSL2-SHDSL-LINE-MIB.mi2:221 [5] {named-number-added} warning: named >>number `wirePair3' added to type `Hdsl2ShdslWirePair' >>HDSL2-SHDSL-LINE-MIB.mi2:221 [5] {named-number-added} warning: named >>number `wirePair4' added to type `Hdsl2ShdslWirePair' >> >>This TC is used in the definition of hdsl2ShdslEndpointWirePair: >> >>HDSL2-SHDSL-LINE-MIB.mi2:740 [5] {named-number-added} warning: named >>number `wirePair3' added to type used in `hdsl2ShdslEndpointWirePair' >>HDSL2-SHDSL-LINE-MIB.mi2:740 [5] {named-number-added} warning: named >>number `wirePair4' added to type used in `hdsl2ShdslEndpointWirePair' >> >>which is an INDEX object used only in tables that do not support >>dynamic row creation. Thus, the agent decides unilaterally for >>which values a row is instantiated, hence adding these values has no >>effect on the semantics of the compliance statement. So this is OK. >> >>Another place is in the definition of hdsl2ShdslSpanConfWireInterface: >> >>HDSL2-SHDSL-LINE-MIB.mi2:1628 [5] {named-number-added} warning: named >>number `sixWire' added to type used in >>`hdsl2ShdslSpanConfWireInterface' >>HDSL2-SHDSL-LINE-MIB.mi2:1628 [5] {named-number-added} warning: named >>number `eightWire' added to type used in >>`hdsl2ShdslSpanConfWireInterface' >> >>and I see that it now has a refinement so that only the original >>values twoWire(1) and fourWire(2) are required to be supported: >> >>HDSL2-SHDSL-LINE-MIB.mi2:2350 [5] {refinement-added} warning: >>object refinement for `hdsl2ShdslSpanConfWireInterface' added >>to `hdsl2ShdslLineMibCompliance' >> >>So you are good to go here, too. >> >>I see that there are some new objects: >> >>HDSL2-SHDSL-LINE-MIB.mi2:453 [5] {node-added} warning: column >>`hdsl2ShdslStatusMaxAttainablePayloadRate' has been added >>HDSL2-SHDSL-LINE-MIB.mi2:467 [5] {node-added} warning: column >>`hdsl2ShdslStatusActualPayloadRate' has been added >>HDSL2-SHDSL-LINE-MIB.mi2:1141 [5] {node-added} warning: column >>`hdsl2ShdslEndpointCurrTipRingReversal' has been added >>HDSL2-SHDSL-LINE-MIB.mi2:1155 [5] {node-added} warning: column >>`hdsl2ShdslEndpointCurrActivationState' has been added >> >>and that they are packaged into two new object groups: >> >>HDSL2-SHDSL-LINE-MIB.mi2:2645 [5] {node-added} warning: group >>`hdsl2ShdslWirePairGroup' has been added >>HDSL2-SHDSL-LINE-MIB.mi2:2658 [5] {node-added} warning: group >>`hdsl2ShdslPayloadRateGroup' has been added >> >>which in turn have been added to the compliance statement as >>optional groups: >> >>DSL2-SHDSL-LINE-MIB.mi2:2338 [2] {option-added} optional group >>`hdsl2ShdslWirePairGroup' added to `hdsl2ShdslLineMibCompliance' >>HDSL2-SHDSL-LINE-MIB.mi2:2344 [2] {option-added} optional group >>`hdsl2ShdslPayloadRateGroup' added to `hdsl2ShdslLineMibCompliance' >> >>Again, these are flagged at level 2 since RFC 2580 does not >>specifically permit adding optional groups to a compliance >>statement. However this really is OK since it does not change >>the semantics. So you are good to go here, too. >> >>(b) I have also verified that all the changes reported by smidiff >>are accounted for in the current REVISION clause change log. >> >>This concludes the review of draft-ietf-adslmib-gshdslbis-07.txt. >> >>Mike Heard >> >> >> > >_______________________________________________ >Adslmib mailing list >[email protected] >https://www1.ietf.org/mailman/listinfo/adslmib > > -- Paradyne Mail --