OASIS Cyber Threat Intelligence (CTI) TC

 View Only
Expand all | Collapse all

TAXII Pagination Example Text

  • 1.  TAXII Pagination Example Text

    Posted 09-03-2019 20:00
    All, Here is the text we talked about on the working call today.  Please send any changes or suggestions to the list by end of day next Tuesday the 10th.  After we get all suggestions and changes, Drew and I will add this to TAXII. TAXII 2.1 supports pagination of large result sets on certain endpoints. These endpoints return results sorted in ascending order by the date they were added to the collection (see section 3.3). The server may limit the number of responses in result to a query, either as the result of a server-specified limit, or in response to a limit parameter passed by the client as part of a query (see section 3.4). If more records are available than are returned, the client may paginate through the remaining records by using the added_after filter parameter and the date/time value from the X-TAXII-Date-Added-Last header. Example: Collection High-Value-Indicators has 1000 records in it. The client or server has limited all responses to 100 records at a time. A client will make a request and the server will respond with the first 100 records. The server will also populate the two X headers for TAXII, X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers will contain the date/time value of when the first and last records were added to the TAXII server. The server will also set the “more” property to a value of true on the TAXII envelope. When a client wants to obtain the next 100 records, the client will populate the added_after filter with the value from the previous results X-TAXII-Date-Added-Last header. This will ensure that the client starts requests the records immediate following the data that was returned in their last request. Bret


  • 2.  Re: [cti] TAXII Pagination Example Text

    Posted 09-04-2019 07:01
    Hello Bret, just curious, how should we deal with more than 100 records that were added at the same time? Best regards, Andras On 03.09.19 21:59, Bret Jordan wrote: > All, > > Here is the text we talked about on the working call today.  Please send > any changes or suggestions to the list by end of day next Tuesday the > 10th.  After we get all suggestions and changes, Drew and I will add > this to TAXII. > > > TAXII 2.1 supports pagination of large result sets on certain endpoints. > These endpoints return results sorted in ascending order by the date > they were added to the collection (see section 3.3). The server may > limit the number of responses in result to a query, either as the result > of a server-specified limit, or in response to a limit parameter passed > by the client as part of a query (see section 3.4). If more records are > available than are returned, the client may paginate through the > remaining records by using the added_after filter parameter and the > date/time value from the X-TAXII-Date-Added-Last header. > > Example: > > 1. Collection High-Value-Indicators has 1000 records in it. > 2. The client or server has limited all responses to 100 records at a time. > 3. A client will make a request and the server will respond with the > first 100 records. > 4. The server will also populate the two X headers for TAXII, > X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers > will contain the date/time value of when the first and last records > were added to the TAXII server. > 5. The server will also set the “more” property to a value of true on > the TAXII envelope. > 6. When a client wants to obtain the next 100 records, the client will > populate the added_after filter with the value from the previous > results X-TAXII-Date-Added-Last header. This will ensure that the > client starts requests the records immediate following the data that > was returned in their last request. > > > > Bret > >


  • 3.  Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-04-2019 21:36
    Hi Andras, In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ", aka microsecond precision. This timestamp is used for all records as they are added to the TAXII Server.  So under normal conditions microsecond precision should give ample amount of space per second for new records coming in. Now there is a possibility that one may try to bulk load records and give every new record the same timestamp.  This would be a less than ideal design.  However, if this is what you have, and someone requests more records than you can give, then you would probably respond with an error message telling the client that you can not complete the request since there are more records with the exact same microsecond timestamp than the client requested.  Bret From: cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of Andras Iklody <andras.iklody@circl.lu> Sent: Wednesday, September 4, 2019 1:01 AM To: cti@lists.oasis-open.org <cti@lists.oasis-open.org> Subject: [EXT] Re: [cti] TAXII Pagination Example Text   Hello Bret, just curious, how should we deal with more than 100 records that were added at the same time? Best regards, Andras On 03.09.19 21:59, Bret Jordan wrote: > All, > > Here is the text we talked about on the working call today.  Please send > any changes or suggestions to the list by end of day next Tuesday the > 10th.  After we get all suggestions and changes, Drew and I will add > this to TAXII. > > > TAXII 2.1 supports pagination of large result sets on certain endpoints. > These endpoints return results sorted in ascending order by the date > they were added to the collection (see section 3.3). The server may > limit the number of responses in result to a query, either as the result > of a server-specified limit, or in response to a limit parameter passed > by the client as part of a query (see section 3.4). If more records are > available than are returned, the client may paginate through the > remaining records by using the added_after filter parameter and the > date/time value from the X-TAXII-Date-Added-Last header. > > Example: > >  1. Collection High-Value-Indicators has 1000 records in it. >  2. The client or server has limited all responses to 100 records at a time. >  3. A client will make a request and the server will respond with the >     first 100 records. >  4. The server will also populate the two X headers for TAXII, >     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers >     will contain the date/time value of when the first and last records >     were added to the TAXII server. >  5. The server will also set the “more” property to a value of true on >     the TAXII envelope. >  6. When a client wants to obtain the next 100 records, the client will >     populate the added_after filter with the value from the previous >     results X-TAXII-Date-Added-Last header. This will ensure that the >     client starts requests the records immediate following the data that >     was returned in their last request. > > > > Bret > > --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail.  Follow this link to all your TCs in OASIS at: https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php


  • 4.  Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 11:49
    Hello Bret, the problem with this is that TAXII / STIX are meant to work on the transport layer, not necessarily the native storage behind it. For example, if we deal with a passiveDNS system behind a TAXII connector, having microsecond precision would be absolutely meaningless, hence the second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ" on the fly by padding everything beyond seconds. This would mean that for systems such as this pagination would not be possible if more values exist than the limit / page. Best regards, Andras On 04.09.19 23:36, Bret Jordan wrote: > Hi Andras, > > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ", > aka microsecond precision. This timestamp is used for all records as > they are added to the TAXII Server.  So under normal conditions > microsecond precision should give ample amount of space per second for > new records coming in. > > Now there is a possibility that one may try to bulk load records and > give every new record the same timestamp.  This would be a less than > ideal design.  However, if this is what you have, and someone requests > more records than you can give, then you would probably respond with an > error message telling the client that you can not complete the request > since there are more records with the exact same microsecond timestamp > than the client requested.  > > Bret > > ------------------------------------------------------------------------ > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of > Andras Iklody <andras.iklody@circl.lu> > *Sent:* Wednesday, September 4, 2019 1:01 AM > *To:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text >   > Hello Bret, > > just curious, how should we deal with more than 100 records that were > added at the same time? > > Best regards, > Andras > > On 03.09.19 21:59, Bret Jordan wrote: >> All, >> >> Here is the text we talked about on the working call today.  Please send >> any changes or suggestions to the list by end of day next Tuesday the >> 10th.  After we get all suggestions and changes, Drew and I will add >> this to TAXII. >> >> >> TAXII 2.1 supports pagination of large result sets on certain endpoints. >> These endpoints return results sorted in ascending order by the date >> they were added to the collection (see section 3.3). The server may >> limit the number of responses in result to a query, either as the result >> of a server-specified limit, or in response to a limit parameter passed >> by the client as part of a query (see section 3.4). If more records are >> available than are returned, the client may paginate through the >> remaining records by using the added_after filter parameter and the >> date/time value from the X-TAXII-Date-Added-Last header. >> >> Example: >> >>  1. Collection High-Value-Indicators has 1000 records in it. >>  2. The client or server has limited all responses to 100 records at a time. >>  3. A client will make a request and the server will respond with the >>     first 100 records. >>  4. The server will also populate the two X headers for TAXII, >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers >>     will contain the date/time value of when the first and last records >>     were added to the TAXII server. >>  5. The server will also set the “more” property to a value of true on >>     the TAXII envelope. >>  6. When a client wants to obtain the next 100 records, the client will >>     populate the added_after filter with the value from the previous >>     results X-TAXII-Date-Added-Last header. This will ensure that the >>     client starts requests the records immediate following the data that >>     was returned in their last request. >> >> >> >> Bret >> >> > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail.  Follow this link to all your TCs in OASIS at: > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php > >


  • 5.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 14:09
    If you using the timestamps in Passive DNS (I know at least one vendor that has stated they don t want or provide accurate enough timestamps) then you need to use the insertion timestamp local to the TAXII server not the timestamp in the data itself. And technically you need to do that on all data because the timestamps in TAXII for the records are not the timestamps of the data but rather the timestamp of addition to TAXII. This is required because you could have older Intel that is months old being added to a TAXII server today and if someone is sync-ing to that server then they need to know what was added today. Allan ïOn 9/6/19, 4:49 AM, "cti@lists.oasis-open.org on behalf of Andras Iklody" <cti@lists.oasis-open.org on behalf of andras.iklody@circl.lu> wrote: Hello Bret, the problem with this is that TAXII / STIX are meant to work on the transport layer, not necessarily the native storage behind it. For example, if we deal with a passiveDNS system behind a TAXII connector, having microsecond precision would be absolutely meaningless, hence the second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ" on the fly by padding everything beyond seconds. This would mean that for systems such as this pagination would not be possible if more values exist than the limit / page. Best regards, Andras On 04.09.19 23:36, Bret Jordan wrote: > Hi Andras, > > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ", > aka microsecond precision. This timestamp is used for all records as > they are added to the TAXII Server. So under normal conditions > microsecond precision should give ample amount of space per second for > new records coming in. > > Now there is a possibility that one may try to bulk load records and > give every new record the same timestamp. This would be a less than > ideal design. However, if this is what you have, and someone requests > more records than you can give, then you would probably respond with an > error message telling the client that you can not complete the request > since there are more records with the exact same microsecond timestamp > than the client requested. > > Bret > > ------------------------------------------------------------------------ > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of > Andras Iklody <andras.iklody@circl.lu> > *Sent:* Wednesday, September 4, 2019 1:01 AM > *To:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text > > Hello Bret, > > just curious, how should we deal with more than 100 records that were > added at the same time? > > Best regards, > Andras > > On 03.09.19 21:59, Bret Jordan wrote: >> All, >> >> Here is the text we talked about on the working call today. Please send >> any changes or suggestions to the list by end of day next Tuesday the >> 10th. After we get all suggestions and changes, Drew and I will add >> this to TAXII. >> >> >> TAXII 2.1 supports pagination of large result sets on certain endpoints. >> These endpoints return results sorted in ascending order by the date >> they were added to the collection (see section 3.3). The server may >> limit the number of responses in result to a query, either as the result >> of a server-specified limit, or in response to a limit parameter passed >> by the client as part of a query (see section 3.4). If more records are >> available than are returned, the client may paginate through the >> remaining records by using the added_after filter parameter and the >> date/time value from the X-TAXII-Date-Added-Last header. >> >> Example: >> >> 1. Collection High-Value-Indicators has 1000 records in it. >> 2. The client or server has limited all responses to 100 records at a time. >> 3. A client will make a request and the server will respond with the >> first 100 records. >> 4. The server will also populate the two X headers for TAXII, >> X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers >> will contain the date/time value of when the first and last records >> were added to the TAXII server. >> 5. The server will also set the more property to a value of true on >> the TAXII envelope. >> 6. When a client wants to obtain the next 100 records, the client will >> populate the added_after filter with the value from the previous >> results X-TAXII-Date-Added-Last header. This will ensure that the >> client starts requests the records immediate following the data that >> was returned in their last request. >> >> >> >> Bret >> >> > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php > > --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php


  • 6.  RE: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 16:30
    Cloud APIs such as
    AWS, Azure, Cloudant, etc all handle this problem using a system where
    the response to your initial request contains at the end of it a continuation
    marker/token (UUID), and allow you to fetch the next set of records using
    that marker/token. This obviously
    requires the implementer of a TAXII server to have some form of server-side
    cursor/result set management. But it's a lot more elegant for the consumer
    and avoids all these timestamp-related problems. - Jason Keirstead Chief Architect - IBM Security Threat Management www.ibm.com/security "Would you like me to give you a formula for success? It's quite simple,
    really. Double your rate of failure." - Thomas J. Watson From:
            Allan
    Thomson <athomson@lookingglasscyber.com> To:
            Andras
    Iklody <andras.iklody@circl.lu>, Bret Jordan <Bret_Jordan@symantec.com>,
    "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> Date:
            09/06/2019
    11:10 AM Subject:
            [EXTERNAL]
    Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text Sent
    by:         <cti@lists.oasis-open.org> If you using the timestamps in Passive
    DNS (I know at least one vendor that has stated they don t want or provide
    accurate enough timestamps) then you need to use the insertion timestamp
    local to the TAXII server not the timestamp in the data itself. And technically you need to do that on all data because the timestamps
    in TAXII for the records are not the timestamps of the data but rather
    the timestamp of addition to TAXII. This is required because you could have older Intel that is months old
    being added to a TAXII server today and if someone is sync-ing to that
    server then they need to know what was added today. Allan ïOn 9/6/19, 4:49 AM, "cti@lists.oasis-open.org on behalf of Andras
    Iklody" <cti@lists.oasis-open.org on behalf of andras.iklody@circl.lu>
    wrote:    Hello Bret,        the problem with this is that TAXII / STIX are meant to work
    on the    transport layer, not necessarily the native storage behind
    it. For    example, if we deal with a passiveDNS system behind a TAXII
    connector,    having microsecond precision would be absolutely meaningless,
    hence the    second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ"    on the fly by padding everything beyond seconds.        This would mean that for systems such as this pagination
    would not be    possible if more values exist than the limit / page.        Best regards,    Andras        On 04.09.19 23:36, Bret Jordan wrote:    > Hi Andras,    >    > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ",    > aka microsecond precision. This timestamp is used for
    all records as    > they are added to the TAXII Server.  So under normal
    conditions    > microsecond precision should give ample amount of space
    per second for    > new records coming in.    >    > Now there is a possibility that one may try to bulk
    load records and    > give every new record the same timestamp.  This
    would be a less than    > ideal design.  However, if this is what you have,
    and someone requests    > more records than you can give, then you would probably
    respond with an    > error message telling the client that you can not complete
    the request    > since there are more records with the exact same microsecond
    timestamp    > than the client requested.    >    > Bret    >    > ------------------------------------------------------------------------    > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org>
    on behalf of    > Andras Iklody <andras.iklody@circl.lu>    > *Sent:* Wednesday, September 4, 2019 1:01 AM    > *To:* cti@lists.oasis-open.org <cti@lists.oasis-open.org>    > *Subject:* [EXT] Re: [cti] TAXII Pagination Example
    Text    >      > Hello Bret,    >    > just curious, how should we deal with more than 100
    records that were    > added at the same time?    >    > Best regards,    > Andras    >    > On 03.09.19 21:59, Bret Jordan wrote:    >> All,    >>    >> Here is the text we talked about on the working
    call today.  Please send    >> any changes or suggestions to the list by end of
    day next Tuesday the    >> 10th.  After we get all suggestions and changes,
    Drew and I will add    >> this to TAXII.    >>    >>    >> TAXII 2.1 supports pagination of large result sets
    on certain endpoints.    >> These endpoints return results sorted in ascending
    order by the date    >> they were added to the collection (see section 3.3).
    The server may    >> limit the number of responses in result to a query,
    either as the result    >> of a server-specified limit, or in response to a
    limit parameter passed    >> by the client as part of a query (see section 3.4).
    If more records are    >> available than are returned, the client may paginate
    through the    >> remaining records by using the added_after filter
    parameter and the    >> date/time value from the X-TAXII-Date-Added-Last
    header.    >>    >> Example:    >>    >>  1. Collection High-Value-Indicators has 1000
    records in it.    >>  2. The client or server has limited all responses
    to 100 records at a time.    >>  3. A client will make a request and the server
    will respond with the    >>     first 100 records.    >>  4. The server will also populate the two X
    headers for TAXII,    >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last.
    These headers    >>     will contain the date/time value of
    when the first and last records    >>     were added to the TAXII server.    >>  5. The server will also set the more property
    to a value of true on    >>     the TAXII envelope.    >>  6. When a client wants to obtain the next
    100 records, the client will    >>     populate the added_after filter with
    the value from the previous    >>     results X-TAXII-Date-Added-Last header.
    This will ensure that the    >>     client starts requests the records
    immediate following the data that    >>     was returned in their last request.    >>    >>    >>    >> Bret    >>    >>    >    > ---------------------------------------------------------------------    > To unsubscribe from this mail list, you must leave the
    OASIS TC that    > generates this mail.  Follow this link to all your
    TCs in OASIS at:    > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php    >    >        ---------------------------------------------------------------------    To unsubscribe from this mail list, you must leave the OASIS
    TC that    generates this mail.  Follow this link to all your TCs
    in OASIS at:     https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php          



  • 7.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 17:04
    I believe we have enough information to provide a deterministic sorting token for every type of item a TAXII server returns, assuming we re limiting the discussion to STIX results. Sometimes, this token must be a compound key, such as the combination of an object ID and it s modification time. See  https://github.com/oasis-tcs/cti-taxii2/issues/50#issuecomment-367505271 I think that stateless approach from a scalability perspective than maintaining cursor state between requests. On Sep 6, 2019, at 12:30 PM, Jason Keirstead < Jason.Keirstead@ca.ibm.com > wrote: Cloud APIs such as AWS, Azure, Cloudant, etc all handle this problem using a system where the response to your initial request contains at the end of it a continuation marker/token (UUID), and allow you to fetch the next set of records using that marker/token. This obviously requires the implementer of a TAXII server to have some form of server-side cursor/result set management. But it's a lot more elegant for the consumer and avoids all these timestamp-related problems. - Jason Keirstead Chief Architect - IBM Security Threat Management www.ibm.com/security Would you like me to give you a formula for success? It's quite simple, really. Double your rate of failure. - Thomas J. Watson From:         Allan Thomson < athomson@lookingglasscyber.com > To:         Andras Iklody < andras.iklody@circl.lu >, Bret Jordan < Bret_Jordan@symantec.com >, cti@lists.oasis-open.org < cti@lists.oasis-open.org > Date:         09/06/2019 11:10 AM Subject:         [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text Sent by:         < cti@lists.oasis-open.org > If you using the timestamps in Passive DNS (I know at least one vendor that has stated they don t want or provide accurate enough timestamps) then you need to use the insertion timestamp local to the TAXII server not the timestamp in the data itself. And technically you need to do that on all data because the timestamps in TAXII for the records are not the timestamps of the data but rather the timestamp of addition to TAXII. This is required because you could have older Intel that is months old being added to a TAXII server today and if someone is sync-ing to that server then they need to know what was added today. Allan ïOn 9/6/19, 4:49 AM, cti@lists.oasis-open.org on behalf of Andras Iklody < cti@lists.oasis-open.org on behalf of andras.iklody@circl.lu > wrote:    Hello Bret,        the problem with this is that TAXII / STIX are meant to work on the    transport layer, not necessarily the native storage behind it. For    example, if we deal with a passiveDNS system behind a TAXII connector,    having microsecond precision would be absolutely meaningless, hence the    second-precision values are converted to YYYY-MM-DDTHH:MM:SS.ssssssZ    on the fly by padding everything beyond seconds.        This would mean that for systems such as this pagination would not be    possible if more values exist than the limit / page.        Best regards,    Andras        On 04.09.19 23:36, Bret Jordan wrote:    > Hi Andras,    >    > In TAXII we define the timestamp to be YYYY-MM-DDTHH:MM:SS.ssssssZ ,    > aka microsecond precision. This timestamp is used for all records as    > they are added to the TAXII Server.  So under normal conditions    > microsecond precision should give ample amount of space per second for    > new records coming in.    >    > Now there is a possibility that one may try to bulk load records and    > give every new record the same timestamp.  This would be a less than    > ideal design.  However, if this is what you have, and someone requests    > more records than you can give, then you would probably respond with an    > error message telling the client that you can not complete the request    > since there are more records with the exact same microsecond timestamp    > than the client requested.    >    > Bret    >    > ------------------------------------------------------------------------    > *From:* cti@lists.oasis-open.org < cti@lists.oasis-open.org > on behalf of    > Andras Iklody < andras.iklody@circl.lu >    > *Sent:* Wednesday, September 4, 2019 1:01 AM    > *To:* cti@lists.oasis-open.org < cti@lists.oasis-open.org >    > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text    >      > Hello Bret,    >    > just curious, how should we deal with more than 100 records that were    > added at the same time?    >    > Best regards,    > Andras    >    > On 03.09.19 21:59, Bret Jordan wrote:    >> All,    >>    >> Here is the text we talked about on the working call today.  Please send    >> any changes or suggestions to the list by end of day next Tuesday the    >> 10th.  After we get all suggestions and changes, Drew and I will add    >> this to TAXII.    >>    >>    >> TAXII 2.1 supports pagination of large result sets on certain endpoints.    >> These endpoints return results sorted in ascending order by the date    >> they were added to the collection (see section 3.3). The server may    >> limit the number of responses in result to a query, either as the result    >> of a server-specified limit, or in response to a limit parameter passed    >> by the client as part of a query (see section 3.4). If more records are    >> available than are returned, the client may paginate through the    >> remaining records by using the added_after filter parameter and the    >> date/time value from the X-TAXII-Date-Added-Last header.    >>    >> Example:    >>    >>  1. Collection High-Value-Indicators has 1000 records in it.    >>  2. The client or server has limited all responses to 100 records at a time.    >>  3. A client will make a request and the server will respond with the    >>     first 100 records.    >>  4. The server will also populate the two X headers for TAXII,    >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers    >>     will contain the date/time value of when the first and last records    >>     were added to the TAXII server.    >>  5. The server will also set the more property to a value of true on    >>     the TAXII envelope.    >>  6. When a client wants to obtain the next 100 records, the client will    >>     populate the added_after filter with the value from the previous    >>     results X-TAXII-Date-Added-Last header. This will ensure that the    >>     client starts requests the records immediate following the data that    >>     was returned in their last request.    >>    >>    >>    >> Bret    >>    >>    >    > ---------------------------------------------------------------------    > To unsubscribe from this mail list, you must leave the OASIS TC that    > generates this mail.  Follow this link to all your TCs in OASIS at:    > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php    >    >        ---------------------------------------------------------------------    To unsubscribe from this mail list, you must leave the OASIS TC that    generates this mail.  Follow this link to all your TCs in OASIS at:     https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php          


  • 8.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 17:54




    I would add that there s some implied guarantees behind cursor support:

    The view that the cursor is created from remains consistent and unchanging. Sorting of view, and if we allow new items to be inserted, then where does the insertion happen? Maintaining state between requests.
     
    While it makes things easier for the client, it imposes a heavy cost on server infrastructure that is not obvious I ve seen cases where we had thousands of cursors open concurrently, and the backend in this case (ElasticSearch) could
    not ever do any compaction or deletion of shards because it needed to maintain snapshots for each of the cursors in question.
     
    -
    Wes Brown
    Distinguished Engineer
    Lookingglass Cyber Solutions
     
     

    From: <cti@lists.oasis-open.org> on behalf of "drew.varner@ninefx.com" <drew.varner@ninefx.com>
    Date: Friday, September 6, 2019 at 1:04 PM
    To: Jason Keirstead <Jason.Keirstead@ca.ibm.com>
    Cc: Allan Thomson <athomson@lookingglasscyber.com>, Andras Iklody <andras.iklody@circl.lu>, Bret Jordan <Bret_Jordan@symantec.com>, "cti@lists.oasis-open.org" <cti@lists.oasis-open.org>
    Subject: Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text


     

    I believe we have enough information to provide a deterministic sorting token for every type of item a TAXII server returns, assuming we re limiting the discussion to STIX results. Sometimes, this token must be a compound key, such as the
    combination of an object ID and it s modification time. See  https://github.com/oasis-tcs/cti-taxii2/issues/50#issuecomment-367505271


     


    I think that stateless approach from a scalability perspective than maintaining cursor state between requests.




    On Sep 6, 2019, at 12:30 PM, Jason Keirstead < Jason.Keirstead@ca.ibm.com > wrote:



    Cloud APIs such as AWS, Azure, Cloudant, etc all handle this problem using a system where the response to your initial request contains at the end of it a continuation marker/token
    (UUID), and allow you to fetch the next set of records using that marker/token.

    This obviously requires the implementer of a TAXII server to have some form of server-side cursor/result set management. But it's a lot more elegant for the consumer and avoids all these timestamp-related
    problems.

    -
    Jason Keirstead
    Chief Architect - IBM Security Threat Management
    www.ibm.com/security

    "Would you like me to give you a formula for success? It's quite simple, really. Double your rate of failure."

    - Thomas J. Watson



    From:         Allan Thomson < athomson@lookingglasscyber.com >
    To:         Andras Iklody < andras.iklody@circl.lu >, Bret Jordan < Bret_Jordan@symantec.com >,
    " cti@lists.oasis-open.org " < cti@lists.oasis-open.org >
    Date:         09/06/2019 11:10 AM
    Subject:         [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text
    Sent by:         < cti@lists.oasis-open.org >






    If you using the timestamps in Passive DNS (I know at least one vendor that has stated they don t want or provide accurate enough timestamps) then you need to use the insertion timestamp local to the TAXII server not the timestamp
    in the data itself.

    And technically you need to do that on all data because the timestamps in TAXII for the records are not the timestamps of the data but rather the timestamp of addition to TAXII.

    This is required because you could have older Intel that is months old being added to a TAXII server today and if someone is sync-ing to that server then they need to know what was added today.

    Allan

    On 9/6/19, 4:49 AM, " cti@lists.oasis-open.org on behalf of Andras Iklody" < cti@lists.oasis-open.org on behalf of
    andras.iklody@circl.lu > wrote:

       Hello Bret,
       
       the problem with this is that TAXII / STIX are meant to work on the
       transport layer, not necessarily the native storage behind it. For
       example, if we deal with a passiveDNS system behind a TAXII connector,
       having microsecond precision would be absolutely meaningless, hence the
       second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ"
       on the fly by padding everything beyond seconds.
       
       This would mean that for systems such as this pagination would not be
       possible if more values exist than the limit / page.
       
       Best regards,
       Andras
       
       On 04.09.19 23:36, Bret Jordan wrote:
       > Hi Andras,
       >
       > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ",
       > aka microsecond precision. This timestamp is used for all records as
       > they are added to the TAXII Server.  So under normal conditions
       > microsecond precision should give ample amount of space per second for
       > new records coming in.
       >
       > Now there is a possibility that one may try to bulk load records and
       > give every new record the same timestamp.  This would be a less than
       > ideal design.  However, if this is what you have, and someone requests
       > more records than you can give, then you would probably respond with an
       > error message telling the client that you can not complete the request
       > since there are more records with the exact same microsecond timestamp
       > than the client requested.
       >
       > Bret
       >
       > ------------------------------------------------------------------------
       > *From:* cti@lists.oasis-open.org < cti@lists.oasis-open.org > on behalf of
       > Andras Iklody < andras.iklody@circl.lu >
       > *Sent:* Wednesday, September 4, 2019 1:01 AM
       > *To:* cti@lists.oasis-open.org < cti@lists.oasis-open.org >
       > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text
       >  
       > Hello Bret,
       >
       > just curious, how should we deal with more than 100 records that were
       > added at the same time?
       >
       > Best regards,
       > Andras
       >
       > On 03.09.19 21:59, Bret Jordan wrote:
       >> All,
       >>
       >> Here is the text we talked about on the working call today.  Please send
       >> any changes or suggestions to the list by end of day next Tuesday the
       >> 10th.  After we get all suggestions and changes, Drew and I will add
       >> this to TAXII.
       >>
       >>
       >> TAXII 2.1 supports pagination of large result sets on certain endpoints.
       >> These endpoints return results sorted in ascending order by the date
       >> they were added to the collection (see section 3.3). The server may
       >> limit the number of responses in result to a query, either as the result
       >> of a server-specified limit, or in response to a limit parameter passed
       >> by the client as part of a query (see section 3.4). If more records are
       >> available than are returned, the client may paginate through the
       >> remaining records by using the added_after filter parameter and the
       >> date/time value from the X-TAXII-Date-Added-Last header.
       >>
       >> Example:
       >>
       >>  1. Collection High-Value-Indicators has 1000 records in it.
       >>  2. The client or server has limited all responses to 100 records at a time.
       >>  3. A client will make a request and the server will respond with the
       >>     first 100 records.
       >>  4. The server will also populate the two X headers for TAXII,
       >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers
       >>     will contain the date/time value of when the first and last records
       >>     were added to the TAXII server.
       >>  5. The server will also set the more property to a value of true on
       >>     the TAXII envelope.
       >>  6. When a client wants to obtain the next 100 records, the client will
       >>     populate the added_after filter with the value from the previous
       >>     results X-TAXII-Date-Added-Last header. This will ensure that the
       >>     client starts requests the records immediate following the data that
       >>     was returned in their last request.
       >>
       >>
       >>
       >> Bret
       >>
       >>
       >
       > ---------------------------------------------------------------------
       > To unsubscribe from this mail list, you must leave the OASIS TC that
       > generates this mail.  Follow this link to all your TCs in OASIS at:
       > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php
       >
       >
       
       ---------------------------------------------------------------------
       To unsubscribe from this mail list, you must leave the OASIS TC that

       generates this mail.  Follow this link to all your TCs in OASIS at:
        https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php  
       
       














  • 9.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-07-2019 11:11
    I would like to stress that we have had this discussion many times.  Some of the discussions have run for months.  In the end, when we review all of the use cases and the 90/10 most common needs, we have always come back to the simple pagination by the date an object was added to the TAXII server.  This design makes it super simple for client and server.  For those constantly advocating for a different method, please remember that content may rapidly be changing on the system due to the very nature of threat intelligence. As such, you really need a canonical unchanging entry point to pull / sync data from, thus the date_added to the system. To Jeff's concerns, once you have written the object to one of your TAXII servers, you can just sync that entire record, including the date added value, to other TAXII servers. This way you do not need to worry about jitter. To Andras' concerns, the TAXII date added timestamp is NOT part of the STIX / content data and one really must not use the STIX modified timestamp as the date added value.  We call that out very explicitly in the TAXII spec.  If you have designed your system to bulk load data using the same date added value, then I might suggest you look at changing that.  You should be able to simply use date_added+.000001 for each record as it is added. Bret From: cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of Wesley Brown <wbrown@lookingglasscyber.com> Sent: Friday, September 6, 2019 11:54 AM To: drew.varner@ninefx.com <drew.varner@ninefx.com>; Jason Keirstead <Jason.Keirstead@ca.ibm.com> Cc: Allan Thomson <athomson@lookingglasscyber.com>; Andras Iklody <andras.iklody@circl.lu>; Bret Jordan <Bret_Jordan@symantec.com>; cti@lists.oasis-open.org <cti@lists.oasis-open.org> Subject: Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text   I would add that there’s some implied guarantees behind cursor support: The ‘view’ that the cursor is created from remains consistent and unchanging. Sorting of view, and if we allow new items to be inserted, then where does the insertion happen? Maintaining state between requests.   While it makes things easier for the client, it imposes a heavy cost on server infrastructure that is not obvious – I’ve seen cases where we had thousands of cursors open concurrently, and the backend in this case (ElasticSearch) could not ever do any compaction or deletion of shards because it needed to maintain snapshots for each of the cursors in question.   - Wes Brown Distinguished Engineer Lookingglass Cyber Solutions     From: <cti@lists.oasis-open.org> on behalf of "drew.varner@ninefx.com" <drew.varner@ninefx.com> Date: Friday, September 6, 2019 at 1:04 PM To: Jason Keirstead <Jason.Keirstead@ca.ibm.com> Cc: Allan Thomson <athomson@lookingglasscyber.com>, Andras Iklody <andras.iklody@circl.lu>, Bret Jordan <Bret_Jordan@symantec.com>, "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> Subject: Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text   I believe we have enough information to provide a deterministic sorting token for every type of item a TAXII server returns, assuming we’re limiting the discussion to STIX results. Sometimes, this token must be a compound key, such as the combination of an object ID and it’s modification time. See  https://github.com/oasis-tcs/cti-taxii2/issues/50#issuecomment-367505271   I think that stateless approach from a scalability perspective than maintaining cursor state between requests. On Sep 6, 2019, at 12:30 PM, Jason Keirstead < Jason.Keirstead@ca.ibm.com > wrote: Cloud APIs such as AWS, Azure, Cloudant, etc all handle this problem using a system where the response to your initial request contains at the end of it a continuation marker/token (UUID), and allow you to fetch the next set of records using that marker/token. This obviously requires the implementer of a TAXII server to have some form of server-side cursor/result set management. But it's a lot more elegant for the consumer and avoids all these timestamp-related problems. - Jason Keirstead Chief Architect - IBM Security Threat Management www.ibm.com/security "Would you like me to give you a formula for success? It's quite simple, really. Double your rate of failure." - Thomas J. Watson From:         Allan Thomson < athomson@lookingglasscyber.com > To:         Andras Iklody < andras.iklody@circl.lu >, Bret Jordan < Bret_Jordan@symantec.com >, " cti@lists.oasis-open.org " < cti@lists.oasis-open.org > Date:         09/06/2019 11:10 AM Subject:         [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text Sent by:         < cti@lists.oasis-open.org > If you using the timestamps in Passive DNS (I know at least one vendor that has stated they don’t want or provide accurate enough timestamps) then you need to use the insertion timestamp local to the TAXII server not the timestamp in the data itself. And technically you need to do that on all data because the timestamps in TAXII for the records are not the timestamps of the data but rather the timestamp of addition to TAXII. This is required because you could have older Intel that is months old being added to a TAXII server today and if someone is sync-ing to that server then they need to know what was added today. Allan On 9/6/19, 4:49 AM, " cti@lists.oasis-open.org on behalf of Andras Iklody" < cti@lists.oasis-open.org on behalf of andras.iklody@circl.lu > wrote:    Hello Bret,        the problem with this is that TAXII / STIX are meant to work on the    transport layer, not necessarily the native storage behind it. For    example, if we deal with a passiveDNS system behind a TAXII connector,    having microsecond precision would be absolutely meaningless, hence the    second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ"    on the fly by padding everything beyond seconds.        This would mean that for systems such as this pagination would not be    possible if more values exist than the limit / page.        Best regards,    Andras        On 04.09.19 23:36, Bret Jordan wrote:    > Hi Andras,    >    > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ",    > aka microsecond precision. This timestamp is used for all records as    > they are added to the TAXII Server.  So under normal conditions    > microsecond precision should give ample amount of space per second for    > new records coming in.    >    > Now there is a possibility that one may try to bulk load records and    > give every new record the same timestamp.  This would be a less than    > ideal design.  However, if this is what you have, and someone requests    > more records than you can give, then you would probably respond with an    > error message telling the client that you can not complete the request    > since there are more records with the exact same microsecond timestamp    > than the client requested.    >    > Bret    >    > ------------------------------------------------------------------------    > *From:* cti@lists.oasis-open.org < cti@lists.oasis-open.org > on behalf of    > Andras Iklody < andras.iklody@circl.lu >    > *Sent:* Wednesday, September 4, 2019 1:01 AM    > *To:* cti@lists.oasis-open.org < cti@lists.oasis-open.org >    > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text    >      > Hello Bret,    >    > just curious, how should we deal with more than 100 records that were    > added at the same time?    >    > Best regards,    > Andras    >    > On 03.09.19 21:59, Bret Jordan wrote:    >> All,    >>    >> Here is the text we talked about on the working call today.  Please send    >> any changes or suggestions to the list by end of day next Tuesday the    >> 10th.  After we get all suggestions and changes, Drew and I will add    >> this to TAXII.    >>    >>    >> TAXII 2.1 supports pagination of large result sets on certain endpoints.    >> These endpoints return results sorted in ascending order by the date    >> they were added to the collection (see section 3.3). The server may    >> limit the number of responses in result to a query, either as the result    >> of a server-specified limit, or in response to a limit parameter passed    >> by the client as part of a query (see section 3.4). If more records are    >> available than are returned, the client may paginate through the    >> remaining records by using the added_after filter parameter and the    >> date/time value from the X-TAXII-Date-Added-Last header.    >>    >> Example:    >>    >>  1. Collection High-Value-Indicators has 1000 records in it.    >>  2. The client or server has limited all responses to 100 records at a time.    >>  3. A client will make a request and the server will respond with the    >>     first 100 records.    >>  4. The server will also populate the two X headers for TAXII,    >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These headers    >>     will contain the date/time value of when the first and last records    >>     were added to the TAXII server.    >>  5. The server will also set the “more” property to a value of true on    >>     the TAXII envelope.    >>  6. When a client wants to obtain the next 100 records, the client will    >>     populate the added_after filter with the value from the previous    >>     results X-TAXII-Date-Added-Last header. This will ensure that the    >>     client starts requests the records immediate following the data that    >>     was returned in their last request.    >>    >>    >>    >> Bret    >>    >>    >    > ---------------------------------------------------------------------    > To unsubscribe from this mail list, you must leave the OASIS TC that    > generates this mail.  Follow this link to all your TCs in OASIS at:    > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php    >    >        ---------------------------------------------------------------------    To unsubscribe from this mail list, you must leave the OASIS TC that    generates this mail.  Follow this link to all your TCs in OASIS at:     https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php          


  • 10.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 11:37
    The problem with this approach is that it works great for systems where data has this information at rest. If we have sensors that we want to query for data, taxii is immediately not suitable because of this. We'd be converting the data on the fly from other formats, meaning that there is no insertion date. We'd have to map the timestamp to whatever the data store on the far side has available. Should the recommendation be that none of these tools are suitable candidates to be used with TAXII? Best regards, Andras On 07.09.19 13:11, Bret Jordan wrote: > I would like to stress that we have had this discussion many times.  > Some of the discussions have run for months.  In the end, when we review > all of the use cases and the 90/10 most common needs, we have always > come back to the simple pagination by the date an object was added to > the TAXII server.  This design makes it super simple for client and server.  > > For those constantly advocating for a different method, please remember > that content may rapidly be changing on the system due to the very > nature of threat intelligence. As such, you really need a canonical > unchanging entry point to pull / sync data from, thus the date_added to > the system. > > To Jeff's concerns, once you have written the object to one of your > TAXII servers, you can just sync that entire record, including the date > added value, to other TAXII servers. This way you do not need to worry > about jitter. > > To Andras' concerns, the TAXII date added timestamp is NOT part of the > STIX / content data and one really must not use the STIX modified > timestamp as the date added value.  We call that out very explicitly in > the TAXII spec.  > > If you have designed your system to bulk load data using the same date > added value, then I might suggest you look at changing that.  You should > be able to simply use date_added+.000001 for each record as it is added. > > Bret > ------------------------------------------------------------------------ > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of > Wesley Brown <wbrown@lookingglasscyber.com> > *Sent:* Friday, September 6, 2019 11:54 AM > *To:* drew.varner@ninefx.com <drew.varner@ninefx.com>; Jason Keirstead > <Jason.Keirstead@ca.ibm.com> > *Cc:* Allan Thomson <athomson@lookingglasscyber.com>; Andras Iklody > <andras.iklody@circl.lu>; Bret Jordan <Bret_Jordan@symantec.com>; > cti@lists.oasis-open.org <cti@lists.oasis-open.org> > *Subject:* Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text >   > > I would add that there’s some implied guarantees behind cursor support: > > * The ‘view’ that the cursor is created from remains consistent and > unchanging. > * Sorting of view, and if we allow new items to be inserted, then > where does the insertion happen? > * Maintaining state between requests. > >   > > While it makes things easier for the client, it imposes a heavy cost on > server infrastructure that is not obvious – I’ve seen cases where we had > thousands of cursors open concurrently, and the backend in this case > (ElasticSearch) could not ever do any compaction or deletion of shards > because it needed to maintain snapshots for each of the cursors in question. > >   > > - > > Wes Brown > > Distinguished Engineer > > Lookingglass Cyber Solutions > >   > >   > > *From: *<cti@lists.oasis-open.org> on behalf of "drew.varner@ninefx.com" > <drew.varner@ninefx.com> > *Date: *Friday, September 6, 2019 at 1:04 PM > *To: *Jason Keirstead <Jason.Keirstead@ca.ibm.com> > *Cc: *Allan Thomson <athomson@lookingglasscyber.com>, Andras Iklody > <andras.iklody@circl.lu>, Bret Jordan <Bret_Jordan@symantec.com>, > "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> > *Subject: *Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text > >   > > I believe we have enough information to provide a deterministic sorting > token for every type of item a TAXII server returns, assuming we’re > limiting the discussion to STIX results. Sometimes, this token must be a > compound key, such as the combination of an object ID and it’s > modification time. > See  https://github.com/oasis-tcs/cti-taxii2/issues/50#issuecomment-367505271 > < https://clicktime.symantec.com/3qny6zSUj9ZAkjrtg6Jwna7Vc?u=https%3A%2F%2Fgithub.com%2Foasis-tcs%2Fcti-taxii2%2Fissues%2F50%23issuecomment-367505271 > > > >   > > I think that stateless approach from a scalability perspective than > maintaining cursor state between requests. > > > On Sep 6, 2019, at 12:30 PM, Jason Keirstead <Jason.Keirstead@ca.ibm.com > < mailto:Jason.Keirstead@ca.ibm.com >> wrote: > > Cloud APIs such as AWS, Azure, Cloudant, etc all handle this problem > using a system where the response to your initial request contains > at the end of it a continuation marker/token (UUID), and allow you > to fetch the next set of records using that marker/token. > > This obviously requires the implementer of a TAXII server to have > some form of server-side cursor/result set management. But it's a > lot more elegant for the consumer and avoids all these > timestamp-related problems. > > - > Jason Keirstead > Chief Architect - IBM Security Threat Management > www.ibm.com/security > < https://clicktime.symantec.com/3QwfrzEEx4EPu35vppaQiuV7Vc?u=www.ibm.com%2Fsecurity > > > "Would you like me to give you a formula for success? It's quite > simple, really. Double your rate of failure." > > - Thomas J. Watson > > > > From:        Allan Thomson <athomson@lookingglasscyber.com > < mailto:athomson@lookingglasscyber.com >> > To:        Andras Iklody <andras.iklody@circl.lu > < mailto:andras.iklody@circl.lu >>, Bret Jordan > <Bret_Jordan@symantec.com < mailto:Bret_Jordan@symantec.com >>, > "cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org >" > <cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org >> > Date:        09/06/2019 11:10 AM > Subject:        [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII > Pagination Example Text > Sent by:        <cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org >> > > ------------------------------------------------------------------------ > > > > > If you using the timestamps in Passive DNS (I know at least one > vendor that has stated they don’t want or provide accurate enough > timestamps) then you need to use the insertion timestamp local to > the TAXII server not the timestamp in the data itself. > > And technically you need to do that on all data because the > timestamps in TAXII for the records are not the timestamps of the > data but rather the timestamp of addition to TAXII. > > This is required because you could have older Intel that is months > old being added to a TAXII server today and if someone is sync-ing > to that server then they need to know what was added today. > > Allan > > On 9/6/19, 4:49 AM, "cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org > on behalf of Andras Iklody" > <cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org > on > behalf of andras.iklody@circl.lu < mailto:andras.iklody@circl.lu >> wrote: > >    Hello Bret, >     >    the problem with this is that TAXII / STIX are meant to work on the >    transport layer, not necessarily the native storage behind it. For >    example, if we deal with a passiveDNS system behind a TAXII > connector, >    having microsecond precision would be absolutely meaningless, > hence the >    second-precision values are converted to > "YYYY-MM-DDTHH:MM:SS.ssssssZ" >    on the fly by padding everything beyond seconds. >     >    This would mean that for systems such as this pagination would not be >    possible if more values exist than the limit / page. >     >    Best regards, >    Andras >     >    On 04.09.19 23:36, Bret Jordan wrote: >    > Hi Andras, >    > >    > In TAXII we define the timestamp to be > "YYYY-MM-DDTHH:MM:SS.ssssssZ", >    > aka microsecond precision. This timestamp is used for all > records as >    > they are added to the TAXII Server.  So under normal conditions >    > microsecond precision should give ample amount of space per > second for >    > new records coming in. >    > >    > Now there is a possibility that one may try to bulk load > records and >    > give every new record the same timestamp.  This would be a less > than >    > ideal design.  However, if this is what you have, and someone > requests >    > more records than you can give, then you would probably respond > with an >    > error message telling the client that you can not complete the > request >    > since there are more records with the exact same microsecond > timestamp >    > than the client requested. >    > >    > Bret >    > >    > > ------------------------------------------------------------------------ >    > *From:* cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org > <cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org >> on behalf of >    > Andras Iklody <andras.iklody@circl.lu > < mailto:andras.iklody@circl.lu >> >    > *Sent:* Wednesday, September 4, 2019 1:01 AM >    > *To:* cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org > <cti@lists.oasis-open.org > < mailto:cti@lists.oasis-open.org >> >    > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text >    >   >    > Hello Bret, >    > >    > just curious, how should we deal with more than 100 records > that were >    > added at the same time? >    > >    > Best regards, >    > Andras >    > >    > On 03.09.19 21:59, Bret Jordan wrote: >    >> All, >    >> >    >> Here is the text we talked about on the working call today. >  Please send >    >> any changes or suggestions to the list by end of day next > Tuesday the >    >> 10th.  After we get all suggestions and changes, Drew and I > will add >    >> this to TAXII. >    >> >    >> >    >> TAXII 2.1 supports pagination of large result sets on certain > endpoints. >    >> These endpoints return results sorted in ascending order by > the date >    >> they were added to the collection (see section 3.3). The > server may >    >> limit the number of responses in result to a query, either as > the result >    >> of a server-specified limit, or in response to a limit > parameter passed >    >> by the client as part of a query (see section 3.4). If more > records are >    >> available than are returned, the client may paginate through the >    >> remaining records by using the added_after filter parameter > and the >    >> date/time value from the X-TAXII-Date-Added-Last header. >    >> >    >> Example: >    >> >    >>  1. Collection High-Value-Indicators has 1000 records in it. >    >>  2. The client or server has limited all responses to 100 > records at a time. >    >>  3. A client will make a request and the server will respond > with the >    >>     first 100 records. >    >>  4. The server will also populate the two X headers for TAXII, >    >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. > These headers >    >>     will contain the date/time value of when the first and > last records >    >>     were added to the TAXII server. >    >>  5. The server will also set the “more” property to a value of > true on >    >>     the TAXII envelope. >    >>  6. When a client wants to obtain the next 100 records, the > client will >    >>     populate the added_after filter with the value from the > previous >    >>     results X-TAXII-Date-Added-Last header. This will ensure > that the >    >>     client starts requests the records immediate following the > data that >    >>     was returned in their last request. >    >> >    >> >    >> >    >> Bret >    >> >    >> >    > >    > > --------------------------------------------------------------------- >    > To unsubscribe from this mail list, you must leave the OASIS TC > that >    > generates this mail.  Follow this link to all your TCs in OASIS at: >    > > https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >    > >    > >     >    --------------------------------------------------------------------- >    To unsubscribe from this mail list, you must leave the OASIS TC that >    generates this mail.  Follow this link to all your TCs in OASIS at: >   >   https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > < https://clicktime.symantec.com/312qzDFGiErbUNi5nVaqAuo7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >  >     >     > > > >


  • 11.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:00
    Andras, Thanks for the question.   TAXII should work well for this use case.  I do not see why it would not.   Please keep in mind that the limits we were talking about are optional.  So a server / sensor may have no limit which lets you pull all records at once. The sensor can dynamically add / figure out the date-added values how ever it needs to do so.  So I am not sure why this would not work. Can you help me understand why you think it will not work?  Or does this solve your concerns? Bret From: Andras Iklody <andras.iklody@circl.lu> Sent: Monday, September 9, 2019 5:37 AM To: Bret Jordan <Bret_Jordan@symantec.com>; Wesley Brown <wbrown@lookingglasscyber.com>; drew.varner@ninefx.com <drew.varner@ninefx.com>; Jason Keirstead <Jason.Keirstead@ca.ibm.com> Cc: Allan Thomson <athomson@lookingglasscyber.com>; cti@lists.oasis-open.org <cti@lists.oasis-open.org> Subject: Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text   The problem with this approach is that it works great for systems where data has this information at rest. If we have sensors that we want to query for data, taxii is immediately not suitable because of this. We'd be converting the data on the fly from other formats, meaning that there is no insertion date. We'd have to map the timestamp to whatever the data store on the far side has available. Should the recommendation be that none of these tools are suitable candidates to be used with TAXII? Best regards, Andras On 07.09.19 13:11, Bret Jordan wrote: > I would like to stress that we have had this discussion many times.  > Some of the discussions have run for months.  In the end, when we review > all of the use cases and the 90/10 most common needs, we have always > come back to the simple pagination by the date an object was added to > the TAXII server.  This design makes it super simple for client and server.  > > For those constantly advocating for a different method, please remember > that content may rapidly be changing on the system due to the very > nature of threat intelligence. As such, you really need a canonical > unchanging entry point to pull / sync data from, thus the date_added to > the system. > > To Jeff's concerns, once you have written the object to one of your > TAXII servers, you can just sync that entire record, including the date > added value, to other TAXII servers. This way you do not need to worry > about jitter. > > To Andras' concerns, the TAXII date added timestamp is NOT part of the > STIX / content data and one really must not use the STIX modified > timestamp as the date added value.  We call that out very explicitly in > the TAXII spec.  > > If you have designed your system to bulk load data using the same date > added value, then I might suggest you look at changing that.  You should > be able to simply use date_added+.000001 for each record as it is added. > > Bret > ------------------------------------------------------------------------ > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf of > Wesley Brown <wbrown@lookingglasscyber.com> > *Sent:* Friday, September 6, 2019 11:54 AM > *To:* drew.varner@ninefx.com <drew.varner@ninefx.com>; Jason Keirstead > <Jason.Keirstead@ca.ibm.com> > *Cc:* Allan Thomson <athomson@lookingglasscyber.com>; Andras Iklody > <andras.iklody@circl.lu>; Bret Jordan <Bret_Jordan@symantec.com>; > cti@lists.oasis-open.org <cti@lists.oasis-open.org> > *Subject:* Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text >   > > I would add that there’s some implied guarantees behind cursor support: > >   * The ‘view’ that the cursor is created from remains consistent and >     unchanging. >   * Sorting of view, and if we allow new items to be inserted, then >     where does the insertion happen? >   * Maintaining state between requests. > >   > > While it makes things easier for the client, it imposes a heavy cost on > server infrastructure that is not obvious – I’ve seen cases where we had > thousands of cursors open concurrently, and the backend in this case > (ElasticSearch) could not ever do any compaction or deletion of shards > because it needed to maintain snapshots for each of the cursors in question. > >   > > - > > Wes Brown > > Distinguished Engineer > > Lookingglass Cyber Solutions > >   > >   > > *From: *<cti@lists.oasis-open.org> on behalf of "drew.varner@ninefx.com" > <drew.varner@ninefx.com> > *Date: *Friday, September 6, 2019 at 1:04 PM > *To: *Jason Keirstead <Jason.Keirstead@ca.ibm.com> > *Cc: *Allan Thomson <athomson@lookingglasscyber.com>, Andras Iklody > <andras.iklody@circl.lu>, Bret Jordan <Bret_Jordan@symantec.com>, > "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> > *Subject: *Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text > >   > > I believe we have enough information to provide a deterministic sorting > token for every type of item a TAXII server returns, assuming we’re > limiting the discussion to STIX results. Sometimes, this token must be a > compound key, such as the combination of an object ID and it’s > modification time. > See  https://clicktime.symantec.com/3M64TFS9SXjA2JBNWmZPYSN7Vc?u=https%3A%2F%2Fgithub.com%2Foasis-tcs%2Fcti-taxii2%2Fissues%2F50%23issuecomment-367505271 > < https://clicktime.symantec.com/3qny6zSUj9ZAkjrtg6Jwna7Vc?u=https%3A%2F%2Fgithub.com%2Foasis-tcs%2Fcti-taxii2%2Fissues%2F50%23issuecomment-367505271 > > > >   > > I think that stateless approach from a scalability perspective than > maintaining cursor state between requests. > > > On Sep 6, 2019, at 12:30 PM, Jason Keirstead <Jason.Keirstead@ca.ibm.com > < mailto:Jason.Keirstead@ca.ibm.com >> wrote: > >     Cloud APIs such as AWS, Azure, Cloudant, etc all handle this problem >     using a system where the response to your initial request contains >     at the end of it a continuation marker/token (UUID), and allow you >     to fetch the next set of records using that marker/token. > >     This obviously requires the implementer of a TAXII server to have >     some form of server-side cursor/result set management. But it's a >     lot more elegant for the consumer and avoids all these >     timestamp-related problems. > >     - >     Jason Keirstead >     Chief Architect - IBM Security Threat Management >     https://clicktime.symantec.com/32icskAfVT3rR3YvXgWEnku7Vc?u=www.ibm.com%2Fsecurity >     < https://clicktime.symantec.com/3QwfrzEEx4EPu35vppaQiuV7Vc?u=www.ibm.com%2Fsecurity > > >     "Would you like me to give you a formula for success? It's quite >     simple, really. Double your rate of failure." > >     - Thomas J. Watson > > > >     From:        Allan Thomson <athomson@lookingglasscyber.com >     < mailto:athomson@lookingglasscyber.com >> >     To:        Andras Iklody <andras.iklody@circl.lu >     < mailto:andras.iklody@circl.lu >>, Bret Jordan >     <Bret_Jordan@symantec.com < mailto:Bret_Jordan@symantec.com >>, >     "cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org >" >     <cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org >> >     Date:        09/06/2019 11:10 AM >     Subject:        [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII >     Pagination Example Text >     Sent by:        <cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org >> > >     ------------------------------------------------------------------------ > > > > >     If you using the timestamps in Passive DNS (I know at least one >     vendor that has stated they don’t want or provide accurate enough >     timestamps) then you need to use the insertion timestamp local to >     the TAXII server not the timestamp in the data itself. > >     And technically you need to do that on all data because the >     timestamps in TAXII for the records are not the timestamps of the >     data but rather the timestamp of addition to TAXII. > >     This is required because you could have older Intel that is months >     old being added to a TAXII server today and if someone is sync-ing >     to that server then they need to know what was added today. > >     Allan > >     On 9/6/19, 4:49 AM, "cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org > on behalf of Andras Iklody" >     <cti@lists.oasis-open.org < mailto:cti@lists.oasis-open.org > on >     behalf of andras.iklody@circl.lu < mailto:andras.iklody@circl.lu >> wrote: > >        Hello Bret, >         >        the problem with this is that TAXII / STIX are meant to work on the >        transport layer, not necessarily the native storage behind it. For >        example, if we deal with a passiveDNS system behind a TAXII >     connector, >        having microsecond precision would be absolutely meaningless, >     hence the >        second-precision values are converted to >     "YYYY-MM-DDTHH:MM:SS.ssssssZ" >        on the fly by padding everything beyond seconds. >         >        This would mean that for systems such as this pagination would not be >        possible if more values exist than the limit / page. >         >        Best regards, >        Andras >         >        On 04.09.19 23:36, Bret Jordan wrote: >        > Hi Andras, >        > >        > In TAXII we define the timestamp to be >     "YYYY-MM-DDTHH:MM:SS.ssssssZ", >        > aka microsecond precision. This timestamp is used for all >     records as >        > they are added to the TAXII Server.  So under normal conditions >        > microsecond precision should give ample amount of space per >     second for >        > new records coming in. >        > >        > Now there is a possibility that one may try to bulk load >     records and >        > give every new record the same timestamp.  This would be a less >     than >        > ideal design.  However, if this is what you have, and someone >     requests >        > more records than you can give, then you would probably respond >     with an >        > error message telling the client that you can not complete the >     request >        > since there are more records with the exact same microsecond >     timestamp >        > than the client requested. >        > >        > Bret >        > >        > >     ------------------------------------------------------------------------ >        > *From:* cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org > <cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org >> on behalf of >        > Andras Iklody <andras.iklody@circl.lu >     < mailto:andras.iklody@circl.lu >> >        > *Sent:* Wednesday, September 4, 2019 1:01 AM >        > *To:* cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org > <cti@lists.oasis-open.org >     < mailto:cti@lists.oasis-open.org >> >        > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text >        >   >        > Hello Bret, >        > >        > just curious, how should we deal with more than 100 records >     that were >        > added at the same time? >        > >        > Best regards, >        > Andras >        > >        > On 03.09.19 21:59, Bret Jordan wrote: >        >> All, >        >> >        >> Here is the text we talked about on the working call today. >      Please send >        >> any changes or suggestions to the list by end of day next >     Tuesday the >        >> 10th.  After we get all suggestions and changes, Drew and I >     will add >        >> this to TAXII. >        >> >        >> >        >> TAXII 2.1 supports pagination of large result sets on certain >     endpoints. >        >> These endpoints return results sorted in ascending order by >     the date >        >> they were added to the collection (see section 3.3). The >     server may >        >> limit the number of responses in result to a query, either as >     the result >        >> of a server-specified limit, or in response to a limit >     parameter passed >        >> by the client as part of a query (see section 3.4). If more >     records are >        >> available than are returned, the client may paginate through the >        >> remaining records by using the added_after filter parameter >     and the >        >> date/time value from the X-TAXII-Date-Added-Last header. >        >> >        >> Example: >        >> >        >>  1. Collection High-Value-Indicators has 1000 records in it. >        >>  2. The client or server has limited all responses to 100 >     records at a time. >        >>  3. A client will make a request and the server will respond >     with the >        >>     first 100 records. >        >>  4. The server will also populate the two X headers for TAXII, >        >>     X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. >     These headers >        >>     will contain the date/time value of when the first and >     last records >        >>     were added to the TAXII server. >        >>  5. The server will also set the “more” property to a value of >     true on >        >>     the TAXII envelope. >        >>  6. When a client wants to obtain the next 100 records, the >     client will >        >>     populate the added_after filter with the value from the >     previous >        >>     results X-TAXII-Date-Added-Last header. This will ensure >     that the >        >>     client starts requests the records immediate following the >     data that >        >>     was returned in their last request. >        >> >        >> >        >> >        >> Bret >        >> >        >> >        > >        > >     --------------------------------------------------------------------- >        > To unsubscribe from this mail list, you must leave the OASIS TC >     that >        > generates this mail.  Follow this link to all your TCs in OASIS at: >        > >     https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >        > >        > >         >        --------------------------------------------------------------------- >        To unsubscribe from this mail list, you must leave the OASIS TC that >        generates this mail.  Follow this link to all your TCs in OASIS at: >       >       https://clicktime.symantec.com/382JFRioAXKQagJ4tyVvPfX7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >     < https://clicktime.symantec.com/312qzDFGiErbUNi5nVaqAuo7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >  >         >         > > > >


  • 12.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:09
    OK, my use-case is as follows. I have a sensor that ingests large amounts of data (parsing network logs / netflow, passiveDNS, etc). This sensor stores the data in its own format, with the timestamp being accurate to the second. If I were to build an interface that responds to TAXII queries for the collector in front of the sensor, and I were to query this data, I'd be dealing with large data-sets and I'd want to paginate it. Unless I set a limit that will probably blow through my memory limitations, I have no other TAXII-compliant way to paginate the data in sane chunks without either losing some data (anything beyond the memory limit's envelope for a given second) or without blowing through my memory limits. Best regards, Andras On 09.09.19 16:00, Bret Jordan wrote: > Andras, > > Thanks for the question.   TAXII should work well for this use case.  I > do not see why it would not.   Please keep in mind that the limits we > were talking about are optional.  So a server / sensor may have no limit > which lets you pull all records at once. > > The sensor can dynamically add / figure out the date-added values how > ever it needs to do so.  So I am not sure why this would not work. Can > you help me understand why you think it will not work?  Or does this > solve your concerns?


  • 13.  RE: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:27
    I agree with the problem; The problem is rooted in the fact that assuming that a document has an "insertion time", is assuming the document lives as-is in a database. This all goes back to the "STIX and TAXII are not a database" mantra. - Jason Keirstead Chief Architect - IBM Security Threat Management www.ibm.com/security "Would you like me to give you a formula for success? It's quite simple, really. Double your rate of failure." - Thomas J. Watson From:         Andras Iklody <andras.iklody@circl.lu> To:         Bret Jordan <Bret_Jordan@symantec.com>, Wesley Brown <wbrown@lookingglasscyber.com>, "drew.varner@ninefx.com" <drew.varner@ninefx.com>, Jason Keirstead <Jason.Keirstead@ca.ibm.com> Cc:         Allan Thomson <athomson@lookingglasscyber.com>, "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> Date:         09/09/2019 11:10 AM Subject:         [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text Sent by:         <cti@lists.oasis-open.org> OK, my use-case is as follows. I have a sensor that ingests large amounts of data (parsing network logs / netflow, passiveDNS, etc). This sensor stores the data in its own format, with the timestamp being accurate to the second. If I were to build an interface that responds to TAXII queries for the collector in front of the sensor, and I were to query this data, I'd be dealing with large data-sets and I'd want to paginate it. Unless I set a limit that will probably blow through my memory limitations, I have no other TAXII-compliant way to paginate the data in sane chunks without either losing some data (anything beyond the memory limit's envelope for a given second) or without blowing through my memory limits. Best regards, Andras On 09.09.19 16:00, Bret Jordan wrote: > Andras, > > Thanks for the question.   TAXII should work well for this use case.  I > do not see why it would not.   Please keep in mind that the limits we > were talking about are optional.  So a server / sensor may have no limit > which lets you pull all records at once. > > The sensor can dynamically add / figure out the date-added values how > ever it needs to do so.  So I am not sure why this would not work. Can > you help me understand why you think it will not work?  Or does this > solve your concerns? --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail.  Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php  


  • 14.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:50
    This x1000 On 09.09.19 16:26, Jason Keirstead wrote: > I agree with the problem; > > The problem is rooted in the fact that assuming that a document has an > "insertion time", is assuming the document lives as-is in a database. > > This all goes back to the "STIX and TAXII are not a database" mantra. > > - > Jason Keirstead > Chief Architect - IBM Security Threat Management > www.ibm.com/security > > "Would you like me to give you a formula for success? It's quite simple, > really. Double your rate of failure." > > - Thomas J. Watson > > > > From:        Andras Iklody <andras.iklody@circl.lu> > To:        Bret Jordan <Bret_Jordan@symantec.com>, Wesley Brown > <wbrown@lookingglasscyber.com>, "drew.varner@ninefx.com" > <drew.varner@ninefx.com>, Jason Keirstead <Jason.Keirstead@ca.ibm.com> > Cc:        Allan Thomson <athomson@lookingglasscyber.com>, > "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> > Date:        09/09/2019 11:10 AM > Subject:        [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII > Pagination Example Text > Sent by:        <cti@lists.oasis-open.org> > ------------------------------------------------------------------------ > > > > OK, my use-case is as follows. > > I have a sensor that ingests large amounts of data (parsing network logs > / netflow, passiveDNS, etc). This sensor stores the data in its own > format, with the timestamp being accurate to the second. If I were to > build an interface that responds to TAXII queries for the collector in > front of the sensor, and I were to query this data, I'd be dealing with > large data-sets and I'd want to paginate it. > > Unless I set a limit that will probably blow through my memory > limitations, I have no other TAXII-compliant way to paginate the data in > sane chunks without either losing some data (anything beyond the memory > limit's envelope for a given second) or without blowing through my > memory limits. > > Best regards, > Andras > > On 09.09.19 16:00, Bret Jordan wrote: >> Andras, >> >> Thanks for the question.   TAXII should work well for this use case.  I >> do not see why it would not.   Please keep in mind that the limits we >> were talking about are optional.  So a server / sensor may have no limit >> which lets you pull all records at once. >> >> The sensor can dynamically add / figure out the date-added values how >> ever it needs to do so.  So I am not sure why this would not work. Can >> you help me understand why you think it will not work?  Or does this >> solve your concerns? > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail.  Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php  ; > > > > >


  • 15.  Re: [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:57
    I will re-quote my previous statement: "I would like to stress that we have had this discussion many times. Some of the discussions have run for months. In the end, when we review all of the use cases and the 90/10 most common needs, we have always come back to the simple pagination by the date an object was added to the TAXII server. This design makes it super simple for client and server." "For those constantly advocating for a different method, please remember that content may rapidly be changing on the system due to the very nature of threat intelligence. As such, you really need a canonical unchanging entry point to pull / sync data from, thus the date_added to the system. If you Andras and Jason want to write up a proposal for TAXII 2.2, I would love to see it. However, please make sure your proposal does not break existing use cases. Bret > On Sep 9, 2019, at 4:49 PM, Andras Iklody <andras.iklody@circl.lu> wrote: > > This x1000 > > On 09.09.19 16:26, Jason Keirstead wrote: >> I agree with the problem; >> >> The problem is rooted in the fact that assuming that a document has an >> "insertion time", is assuming the document lives as-is in a database. >> >> This all goes back to the "STIX and TAXII are not a database" mantra. >> >> - >> Jason Keirstead >> Chief Architect - IBM Security Threat Management >> https://clicktime.symantec.com/3LmCGKpK327SSkxbn47FL9Y7Vc?u=www.ibm.com%2Fsecurity >> >> "Would you like me to give you a formula for success? It's quite simple, >> really. Double your rate of failure." >> >> - Thomas J. Watson >> >> >> >> From: Andras Iklody <andras.iklody@circl.lu> >> To: Bret Jordan <Bret_Jordan@symantec.com>, Wesley Brown >> <wbrown@lookingglasscyber.com>, "drew.varner@ninefx.com" >> <drew.varner@ninefx.com>, Jason Keirstead <Jason.Keirstead@ca.ibm.com> >> Cc: Allan Thomson <athomson@lookingglasscyber.com>, >> "cti@lists.oasis-open.org" <cti@lists.oasis-open.org> >> Date: 09/09/2019 11:10 AM >> Subject: [EXTERNAL] Re: [cti] Re: [EXT] Re: [cti] TAXII >> Pagination Example Text >> Sent by: <cti@lists.oasis-open.org> >> ------------------------------------------------------------------------ >> >> >> >> OK, my use-case is as follows. >> >> I have a sensor that ingests large amounts of data (parsing network logs >> / netflow, passiveDNS, etc). This sensor stores the data in its own >> format, with the timestamp being accurate to the second. If I were to >> build an interface that responds to TAXII queries for the collector in >> front of the sensor, and I were to query this data, I'd be dealing with >> large data-sets and I'd want to paginate it. >> >> Unless I set a limit that will probably blow through my memory >> limitations, I have no other TAXII-compliant way to paginate the data in >> sane chunks without either losing some data (anything beyond the memory >> limit's envelope for a given second) or without blowing through my >> memory limits. >> >> Best regards, >> Andras >> >> On 09.09.19 16:00, Bret Jordan wrote: >>> Andras, >>> >>> Thanks for the question. TAXII should work well for this use case. I >>> do not see why it would not. Please keep in mind that the limits we >>> were talking about are optional. So a server / sensor may have no limit >>> which lets you pull all records at once. >>> >>> The sensor can dynamically add / figure out the date-added values how >>> ever it needs to do so. So I am not sure why this would not work. Can >>> you help me understand why you think it will not work? Or does this >>> solve your concerns? >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php >> >> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://clicktime.symantec.com/3EVePYDHwmiYmEm4qwu9xKo7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >


  • 16.  Re: [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:52
    Andras, So I think the easy solution would be to have your sensor store the content it gets in microsecond precision. If you can modify the sensor to add TAXII functionality then you should be able to modify the sensor to add microsecond precision, no? Bret > On Sep 9, 2019, at 4:09 PM, Andras Iklody <andras.iklody@circl.lu> wrote: > > OK, my use-case is as follows. > > I have a sensor that ingests large amounts of data (parsing network logs > / netflow, passiveDNS, etc). This sensor stores the data in its own > format, with the timestamp being accurate to the second. If I were to > build an interface that responds to TAXII queries for the collector in > front of the sensor, and I were to query this data, I'd be dealing with > large data-sets and I'd want to paginate it. > > Unless I set a limit that will probably blow through my memory > limitations, I have no other TAXII-compliant way to paginate the data in > sane chunks without either losing some data (anything beyond the memory > limit's envelope for a given second) or without blowing through my > memory limits. > > Best regards, > Andras > > On 09.09.19 16:00, Bret Jordan wrote: >> Andras, >> >> Thanks for the question. TAXII should work well for this use case. I >> do not see why it would not. Please keep in mind that the limits we >> were talking about are optional. So a server / sensor may have no limit >> which lets you pull all records at once. >> >> The sensor can dynamically add / figure out the date-added values how >> ever it needs to do so. So I am not sure why this would not work. Can >> you help me understand why you think it will not work? Or does this >> solve your concerns? > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://clicktime.symantec.com/3FAG8TQ5AajqsonCufbi7pr7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >


  • 17.  Re: [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:56
    The thing is, we don't control the source code of all sensors that we might want to use and going on a crusade to convince all vendors / open source projects / abandoned sensor software devs to change it is not one I personally want to take on ;) Best regards, Andras On 09.09.19 16:51, Bret Jordan wrote: > Andras, > > So I think the easy solution would be to have your sensor store the content it gets in microsecond precision. If you can modify the sensor to add TAXII functionality then you should be able to modify the sensor to add microsecond precision, no? > > Bret > >> On Sep 9, 2019, at 4:09 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >> >> OK, my use-case is as follows. >> >> I have a sensor that ingests large amounts of data (parsing network logs >> / netflow, passiveDNS, etc). This sensor stores the data in its own >> format, with the timestamp being accurate to the second. If I were to >> build an interface that responds to TAXII queries for the collector in >> front of the sensor, and I were to query this data, I'd be dealing with >> large data-sets and I'd want to paginate it. >> >> Unless I set a limit that will probably blow through my memory >> limitations, I have no other TAXII-compliant way to paginate the data in >> sane chunks without either losing some data (anything beyond the memory >> limit's envelope for a given second) or without blowing through my >> memory limits. >> >> Best regards, >> Andras >> >> On 09.09.19 16:00, Bret Jordan wrote: >>> Andras, >>> >>> Thanks for the question. TAXII should work well for this use case. I >>> do not see why it would not. Please keep in mind that the limits we >>> were talking about are optional. So a server / sensor may have no limit >>> which lets you pull all records at once. >>> >>> The sensor can dynamically add / figure out the date-added values how >>> ever it needs to do so. So I am not sure why this would not work. Can >>> you help me understand why you think it will not work? Or does this >>> solve your concerns? >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://clicktime.symantec.com/3FAG8TQ5AajqsonCufbi7pr7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >> >


  • 18.  Re: [EXT] Re: [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:58
    But you are going to modify the source code of all of these devices that you do not own to provide a TAXII interface? Bret > On Sep 9, 2019, at 4:55 PM, Andras Iklody <andras.iklody@circl.lu> wrote: > > The thing is, we don't control the source code of all sensors that we > might want to use and going on a crusade to convince all vendors / open > source projects / abandoned sensor software devs to change it is not one > I personally want to take on ;) > > Best regards, > Andras > > On 09.09.19 16:51, Bret Jordan wrote: >> Andras, >> >> So I think the easy solution would be to have your sensor store the content it gets in microsecond precision. If you can modify the sensor to add TAXII functionality then you should be able to modify the sensor to add microsecond precision, no? >> >> Bret >> >>> On Sep 9, 2019, at 4:09 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >>> >>> OK, my use-case is as follows. >>> >>> I have a sensor that ingests large amounts of data (parsing network logs >>> / netflow, passiveDNS, etc). This sensor stores the data in its own >>> format, with the timestamp being accurate to the second. If I were to >>> build an interface that responds to TAXII queries for the collector in >>> front of the sensor, and I were to query this data, I'd be dealing with >>> large data-sets and I'd want to paginate it. >>> >>> Unless I set a limit that will probably blow through my memory >>> limitations, I have no other TAXII-compliant way to paginate the data in >>> sane chunks without either losing some data (anything beyond the memory >>> limit's envelope for a given second) or without blowing through my >>> memory limits. >>> >>> Best regards, >>> Andras >>> >>> On 09.09.19 16:00, Bret Jordan wrote: >>>> Andras, >>>> >>>> Thanks for the question. TAXII should work well for this use case. I >>>> do not see why it would not. Please keep in mind that the limits we >>>> were talking about are optional. So a server / sensor may have no limit >>>> which lets you pull all records at once. >>>> >>>> The sensor can dynamically add / figure out the date-added values how >>>> ever it needs to do so. So I am not sure why this would not work. Can >>>> you help me understand why you think it will not work? Or does this >>>> solve your concerns? >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this mail list, you must leave the OASIS TC that >>> generates this mail. Follow this link to all your TCs in OASIS at: >>> https://clicktime.symantec.com/3FAG8TQ5AajqsonCufbi7pr7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >>> >> > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://clicktime.symantec.com/3NzFaS8xJiyBmH9i3guvfjb7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >


  • 19.  Re: [EXT] Re: [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 14:59
    No, we're building a streaming collector for sensors that passes the data on. Best regards, Andras On 09.09.19 16:57, Bret Jordan wrote: > But you are going to modify the source code of all of these devices that you do not own to provide a TAXII interface? > > Bret > > >> On Sep 9, 2019, at 4:55 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >> >> The thing is, we don't control the source code of all sensors that we >> might want to use and going on a crusade to convince all vendors / open >> source projects / abandoned sensor software devs to change it is not one >> I personally want to take on ;) >> >> Best regards, >> Andras >> >> On 09.09.19 16:51, Bret Jordan wrote: >>> Andras, >>> >>> So I think the easy solution would be to have your sensor store the content it gets in microsecond precision. If you can modify the sensor to add TAXII functionality then you should be able to modify the sensor to add microsecond precision, no? >>> >>> Bret >>> >>>> On Sep 9, 2019, at 4:09 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >>>> >>>> OK, my use-case is as follows. >>>> >>>> I have a sensor that ingests large amounts of data (parsing network logs >>>> / netflow, passiveDNS, etc). This sensor stores the data in its own >>>> format, with the timestamp being accurate to the second. If I were to >>>> build an interface that responds to TAXII queries for the collector in >>>> front of the sensor, and I were to query this data, I'd be dealing with >>>> large data-sets and I'd want to paginate it. >>>> >>>> Unless I set a limit that will probably blow through my memory >>>> limitations, I have no other TAXII-compliant way to paginate the data in >>>> sane chunks without either losing some data (anything beyond the memory >>>> limit's envelope for a given second) or without blowing through my >>>> memory limits. >>>> >>>> Best regards, >>>> Andras >>>> >>>> On 09.09.19 16:00, Bret Jordan wrote: >>>>> Andras, >>>>> >>>>> Thanks for the question. TAXII should work well for this use case. I >>>>> do not see why it would not. Please keep in mind that the limits we >>>>> were talking about are optional. So a server / sensor may have no limit >>>>> which lets you pull all records at once. >>>>> >>>>> The sensor can dynamically add / figure out the date-added values how >>>>> ever it needs to do so. So I am not sure why this would not work. Can >>>>> you help me understand why you think it will not work? Or does this >>>>> solve your concerns? >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe from this mail list, you must leave the OASIS TC that >>>> generates this mail. Follow this link to all your TCs in OASIS at: >>>> https://clicktime.symantec.com/3FAG8TQ5AajqsonCufbi7pr7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >>>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://clicktime.symantec.com/3NzFaS8xJiyBmH9i3guvfjb7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >> >


  • 20.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 15:08
    So if you are building a streaming collector that gathers data from other sensors, you have control over how that data gets added / stored on that intermediary streaming server. Since you may need to paginate the data, you must be definition then need to temporarily store that data. If you need to store data, then you can define what ever data structures you want. Thus you can define the date added property with microsecond precision. Keep in mind that the data added is NOT the date that the end / origin sensor used for its timestamp. I just do not see how this is broken or why it would not work. Please help me Bret > On Sep 9, 2019, at 4:58 PM, Andras Iklody <andras.iklody@circl.lu> wrote: > > No, we're building a streaming collector for sensors that passes the > data on. > > Best regards, > Andras > > On 09.09.19 16:57, Bret Jordan wrote: >> But you are going to modify the source code of all of these devices that you do not own to provide a TAXII interface? >> >> Bret >> >> >>> On Sep 9, 2019, at 4:55 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >>> >>> The thing is, we don't control the source code of all sensors that we >>> might want to use and going on a crusade to convince all vendors / open >>> source projects / abandoned sensor software devs to change it is not one >>> I personally want to take on ;) >>> >>> Best regards, >>> Andras >>> >>> On 09.09.19 16:51, Bret Jordan wrote: >>>> Andras, >>>> >>>> So I think the easy solution would be to have your sensor store the content it gets in microsecond precision. If you can modify the sensor to add TAXII functionality then you should be able to modify the sensor to add microsecond precision, no? >>>> >>>> Bret >>>> >>>>> On Sep 9, 2019, at 4:09 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >>>>> >>>>> OK, my use-case is as follows. >>>>> >>>>> I have a sensor that ingests large amounts of data (parsing network logs >>>>> / netflow, passiveDNS, etc). This sensor stores the data in its own >>>>> format, with the timestamp being accurate to the second. If I were to >>>>> build an interface that responds to TAXII queries for the collector in >>>>> front of the sensor, and I were to query this data, I'd be dealing with >>>>> large data-sets and I'd want to paginate it. >>>>> >>>>> Unless I set a limit that will probably blow through my memory >>>>> limitations, I have no other TAXII-compliant way to paginate the data in >>>>> sane chunks without either losing some data (anything beyond the memory >>>>> limit's envelope for a given second) or without blowing through my >>>>> memory limits. >>>>> >>>>> Best regards, >>>>> Andras >>>>> >>>>> On 09.09.19 16:00, Bret Jordan wrote: >>>>>> Andras, >>>>>> >>>>>> Thanks for the question. TAXII should work well for this use case. I >>>>>> do not see why it would not. Please keep in mind that the limits we >>>>>> were talking about are optional. So a server / sensor may have no limit >>>>>> which lets you pull all records at once. >>>>>> >>>>>> The sensor can dynamically add / figure out the date-added values how >>>>>> ever it needs to do so. So I am not sure why this would not work. Can >>>>>> you help me understand why you think it will not work? Or does this >>>>>> solve your concerns? >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe from this mail list, you must leave the OASIS TC that >>>>> generates this mail. Follow this link to all your TCs in OASIS at: >>>>> https://clicktime.symantec.com/3FAG8TQ5AajqsonCufbi7pr7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >>>>> >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this mail list, you must leave the OASIS TC that >>> generates this mail. Follow this link to all your TCs in OASIS at: >>> https://clicktime.symantec.com/3NzFaS8xJiyBmH9i3guvfjb7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >>> >>


  • 21.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 15:14
    The data is collected in bulk from the other sources. We could indeed attach a timestamp to the bulk collection, but that would be the same for all data collected in one shot exceeding any sane pagination limits. I am somewhat confused that we're back at the data storage question though, TAXII/STIX should NOT have inherent needs when it comes to how data is stored as from what I understood it's purely a transport/exchange format / protocol. If TAXII basically requires us to move all the stored data to true micro second precision (instead of padding it on fetch for lower precision tools), then that will kill a lot of interactions with other tools out there. Best regards, Andras On 09.09.19 17:07, Bret Jordan wrote: > So if you are building a streaming collector that gathers data from other sensors, you have control over how that data gets added / stored on that intermediary streaming server. Since you may need to paginate the data, you must be definition then need to temporarily store that data. If you need to store data, then you can define what ever data structures you want. Thus you can define the date added property with microsecond precision. Keep in mind that the data added is NOT the date that the end / origin sensor used for its timestamp. > > I just do not see how this is broken or why it would not work. Please help me > > Bret


  • 22.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-09-2019 15:47
    As I stated in a previous email, you should be able to easily do a date_added+.000001 for each record. You are going to have to store these records on your system, and thus you will need some basic meta-data to store them anyway. You probably are going to store which device you got them from, and a bunch of other things. A simple timestamp should not be a significant challenge. If you want to write up a proposal for TAXII 2.2, I am sure others, including me, would love to see it. Please just make sure your proposal does not break existing use-cases. Thanks Bret > On Sep 9, 2019, at 5:14 PM, Andras Iklody <andras.iklody@circl.lu> wrote: > > The data is collected in bulk from the other sources. We could indeed > attach a timestamp to the bulk collection, but that would be the same > for all data collected in one shot exceeding any sane pagination limits. > > I am somewhat confused that we're back at the data storage question > though, TAXII/STIX should NOT have inherent needs when it comes to how > data is stored as from what I understood it's purely a > transport/exchange format / protocol. If TAXII basically requires us to > move all the stored data to true micro second precision (instead of > padding it on fetch for lower precision tools), then that will kill a > lot of interactions with other tools out there. > > Best regards, > Andras > > On 09.09.19 17:07, Bret Jordan wrote: >> So if you are building a streaming collector that gathers data from other sensors, you have control over how that data gets added / stored on that intermediary streaming server. Since you may need to paginate the data, you must be definition then need to temporarily store that data. If you need to store data, then you can define what ever data structures you want. Thus you can define the date added property with microsecond precision. Keep in mind that the data added is NOT the date that the end / origin sensor used for its timestamp. >> >> I just do not see how this is broken or why it would not work. Please help me >> >> Bret


  • 23.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 08:43
    Hi Bret, So, if this is the recommended hack to use for TAXII, this advice could perhaps be in the final text to avoid other implementers falling into the trap of not being able to fetch subsets of the data as in the situation I've explained before. So to reiterate, date_added should be used as the iterator for pagination, use consecutively incremented micro precision for systems that emit second precision data. As for writing a proposal for changes, I think based on our previous experiences it's a route that we're not willing to go down - fighting for absolutely minor changes for years is out of scope for small open source teams. We're just looking for guidance how to implement what has been agreed upon by the TC at this point. Best regards, Andras On 09.09.19 17:46, Bret Jordan wrote: > As I stated in a previous email, you should be able to easily do a date_added+.000001 for each record. You are going to have to store these records on your system, and thus you will need some basic meta-data to store them anyway. You probably are going to store which device you got them from, and a bunch of other things. A simple timestamp should not be a significant challenge. > > If you want to write up a proposal for TAXII 2.2, I am sure others, including me, would love to see it. Please just make sure your proposal does not break existing use-cases. > > Thanks > Bret > > >> On Sep 9, 2019, at 5:14 PM, Andras Iklody <andras.iklody@circl.lu> wrote: >> >> The data is collected in bulk from the other sources. We could indeed >> attach a timestamp to the bulk collection, but that would be the same >> for all data collected in one shot exceeding any sane pagination limits. >> >> I am somewhat confused that we're back at the data storage question >> though, TAXII/STIX should NOT have inherent needs when it comes to how >> data is stored as from what I understood it's purely a >> transport/exchange format / protocol. If TAXII basically requires us to >> move all the stored data to true micro second precision (instead of >> padding it on fetch for lower precision tools), then that will kill a >> lot of interactions with other tools out there. >> >> Best regards, >> Andras >> >> On 09.09.19 17:07, Bret Jordan wrote: >>> So if you are building a streaming collector that gathers data from other sensors, you have control over how that data gets added / stored on that intermediary streaming server. Since you may need to paginate the data, you must be definition then need to temporarily store that data. If you need to store data, then you can define what ever data structures you want. Thus you can define the date added property with microsecond precision. Keep in mind that the data added is NOT the date that the end / origin sensor used for its timestamp. >>> >>> I just do not see how this is broken or why it would not work. Please help me >>> >>> Bret >


  • 24.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 12:27



    You keep talking about systems that emit or use second precision data.  The TAXII date_added value is not related to the data or content.  It is not related to the STIX data at all and it should not be kept.  It is an arbitrary value that does not need to be
    kept.  It is purely a tracking point for the TAXII server itself.  Two TAXII servers that have the same object will more than likely not have the same value for the date added.  


    So said another way, if I sync content from you, I will not keep the date added values from your server.  I will assign my own, because this meta data is tied to the TAXII server itself.   An organize may choose to keep it, but it does not need to.  It
    should be considered a throw away value.  


    So just like you have an auto incrementing index value, you would have an auto incrementing date value.  So in your solution you could just store the date in a Unix time stamp format with microsecond precision. This auto incrementing index could just be
    translated back and fort has between RFC3339 format.



    Bret 

    Sent from my Commodore 128D


    PGP
    Fingerprint:  63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050


    On Sep 10, 2019, at 10:43 AM, Andras Iklody < andras.iklody@circl.lu > wrote:



    Hi Bret,

    So, if this is the recommended hack to use for TAXII, this advice could
    perhaps be in the final text to avoid other implementers falling into
    the trap of not being able to fetch subsets of the data as in the
    situation I've explained before.

    So to reiterate, date_added should be used as the iterator for
    pagination, use consecutively incremented micro precision for systems
    that emit second precision data.

    As for writing a proposal for changes, I think based on our previous
    experiences it's a route that we're not willing to go down - fighting
    for absolutely minor changes for years is out of scope for small open
    source teams. We're just looking for guidance how to implement what has
    been agreed upon by the TC at this point.

    Best regards,
    Andras

    On 09.09.19 17:46, Bret Jordan wrote:
    As I stated in a previous email, you should be able to easily do a date_added+.000001 for each record.  You are going to have to store these records on your system, and thus you will need some basic meta-data to store them anyway.
     You probably are going to store which device you got them from, and a bunch of other things.  A simple timestamp should not be a significant challenge.



    If you want to write up a proposal for TAXII 2.2, I am sure others, including me, would love to see it.  Please just make sure your proposal does not break existing use-cases.



    Thanks

    Bret






    On Sep 9, 2019, at 5:14 PM, Andras Iklody < andras.iklody@circl.lu > wrote:







    The data is collected in bulk from the other sources. We could indeed



    attach a timestamp to the bulk collection, but that would be the same



    for all data collected in one shot exceeding any sane pagination limits.







    I am somewhat confused that we're back at the data storage question



    though, TAXII/STIX should NOT have inherent needs when it comes to how



    data is stored as from what I understood it's purely a



    transport/exchange format / protocol. If TAXII basically requires us to



    move all the stored data to true micro second precision (instead of



    padding it on fetch for lower precision tools), then that will kill a



    lot of interactions with other tools out there.







    Best regards,



    Andras







    On 09.09.19 17:07, Bret Jordan wrote:




    So if you are building a streaming collector that gathers data from other sensors, you have control over how that data gets added / stored on that intermediary streaming server.  Since you may need to paginate the data, you must
    be definition then need to temporarily store that data.  If you need to store data, then you can define what ever data structures you want.  Thus you can define the date added property with microsecond precision.   Keep in mind that the data added is NOT the
    date that the end / origin sensor used for its timestamp.











    I just do not see how this is broken or why it would not work. Please help me











    Bret














  • 25.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 12:43
    The taxii service would internally query a set of other services and provide these as a response. There is no centralised database for this data. Again, TAxII is only there for the transport layer, behind that we'd have a collection of tools with their own data-sets in various formats - the only timestamp we have is what they provide. I am not sure where this data-point should come from. We could create timestamps on the fly, based on the time when the request hits the service and add incrementing values in the micro-second part, but that seems like a dirty hack. Hope this makes sense, but I have a feeling that the current TaXII design fits a limited type of tools whilst ignoring other use-cases and it seems to break the original paradigm of it being purely a transport layer protocol and actually requires data to be in a static database behind it (if you want to be able to paginate). Or am I missing something obvious? Best regards, Andras On 10.09.19 14:26, Bret Jordan wrote: > You keep talking about systems that emit or use second precision data. > The TAXII date_added value is not related to the data or content. It > is not related to the STIX data at all and it should not be kept. It is > an arbitrary value that does not need to be kept. It is purely a > tracking point for the TAXII server itself. Two TAXII servers that have > the same object will more than likely not have the same value for the > date added. > > So said another way, if I sync content from you, I will not keep the > date added values from your server. I will assign my own, because this > meta data is tied to the TAXII server itself. An organize may choose > to keep it, but it does not need to. It should be considered a throw > away value. > > So just like you have an auto incrementing index value, you would have > an auto incrementing date value. So in your solution you could just > store the date in a Unix time stamp format with microsecond precision. > This auto incrementing index could just be translated back and fort has > between RFC3339 format. > > Bret > > Sent from my Commodore 128D > > PGP Fingerprint: 63B4 FC53 680A 6B7D 1447 F2C0 74F8 ACAE 7415 0050 > > On Sep 10, 2019, at 10:43 AM, Andras Iklody <andras.iklody@circl.lu > < mailto:andras.iklody@circl.lu >> wrote: > >> Hi Bret, >> >> So, if this is the recommended hack to use for TAXII, this advice could >> perhaps be in the final text to avoid other implementers falling into >> the trap of not being able to fetch subsets of the data as in the >> situation I've explained before. >> >> So to reiterate, date_added should be used as the iterator for >> pagination, use consecutively incremented micro precision for systems >> that emit second precision data. >> >> As for writing a proposal for changes, I think based on our previous >> experiences it's a route that we're not willing to go down - fighting >> for absolutely minor changes for years is out of scope for small open >> source teams. We're just looking for guidance how to implement what has >> been agreed upon by the TC at this point. >> >> Best regards, >> Andras >> >> On 09.09.19 17:46, Bret Jordan wrote: >>> As I stated in a previous email, you should be able to easily do a >>> date_added+.000001 for each record. You are going to have to store >>> these records on your system, and thus you will need some basic >>> meta-data to store them anyway. You probably are going to store >>> which device you got them from, and a bunch of other things. A >>> simple timestamp should not be a significant challenge. >>> >>> If you want to write up a proposal for TAXII 2.2, I am sure others, >>> including me, would love to see it. Please just make sure your >>> proposal does not break existing use-cases. >>> >>> Thanks >>> Bret >>> >>> >>>> On Sep 9, 2019, at 5:14 PM, Andras Iklody <andras.iklody@circl.lu >>>> < mailto:andras.iklody@circl.lu >> wrote: >>>> >>>> The data is collected in bulk from the other sources. We could indeed >>>> attach a timestamp to the bulk collection, but that would be the same >>>> for all data collected in one shot exceeding any sane pagination limits. >>>> >>>> I am somewhat confused that we're back at the data storage question >>>> though, TAXII/STIX should NOT have inherent needs when it comes to how >>>> data is stored as from what I understood it's purely a >>>> transport/exchange format / protocol. If TAXII basically requires us to >>>> move all the stored data to true micro second precision (instead of >>>> padding it on fetch for lower precision tools), then that will kill a >>>> lot of interactions with other tools out there. >>>> >>>> Best regards, >>>> Andras >>>> >>>> On 09.09.19 17:07, Bret Jordan wrote: >>>>> So if you are building a streaming collector that gathers data from >>>>> other sensors, you have control over how that data gets added / >>>>> stored on that intermediary streaming server. Since you may need >>>>> to paginate the data, you must be definition then need to >>>>> temporarily store that data. If you need to store data, then you >>>>> can define what ever data structures you want. Thus you can define >>>>> the date added property with microsecond precision. Keep in mind >>>>> that the data added is NOT the date that the end / origin sensor >>>>> used for its timestamp. >>>>> >>>>> I just do not see how this is broken or why it would not work. >>>>> Please help me >>>>> >>>>> Bret >>>


  • 26.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:01



    The current TAXII spec is addressing all of the use cases that have been brought forward.  If you would like some additional functionality, please write up a proposal.


    In regards to what you are doing. You have said that need to write a solution to aggregate the data from multiple sensors.  Since you are writing the solution, you can write it how ever you need.  If you need to paginate data from that solution you are
    writing, then by definition you will need to store that data for some period of time.  So once again, since you are writing the solution and needing to store the data in a data store, you can easily solve this problem.  


    If TAXII is missing support for some use cases,  please write up a proposal for these use cases and how you would propose solving them, and why current solutions do not meet those needs.  I think that would really help the technical committee understand
    what you need and why. 


    Bret 

    Sent from my Commodore 128D


    PGP
    Fingerprint:  63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050


    On Sep 10, 2019, at 2:42 PM, Andras Iklody < andras.iklody@circl.lu > wrote:



    The taxii service would internally query a set of other services and
    provide these as a response. There is no centralised database for this
    data. Again, TAxII is only there for the transport layer, behind that
    we'd have a collection of tools with their own data-sets in various
    formats - the only timestamp we have is what they provide.

    I am not sure where this data-point should come from. We could create
    timestamps on the fly, based on the time when the request hits the
    service and add incrementing values in the micro-second part, but that
    seems like a dirty hack.

    Hope this makes sense, but I have a feeling that the current TaXII
    design fits a limited type of tools whilst ignoring other use-cases and
    it seems to break the original paradigm of it being purely a transport
    layer protocol and actually requires data to be in a static database
    behind it (if you want to be able to paginate). Or am I missing
    something obvious?

    Best regards,
    Andras

    On 10.09.19 14:26, Bret Jordan wrote:
    You keep talking about systems that emit or use second precision data.

     The TAXII date_added value is not related to the data or content.  It

    is not related to the STIX data at all and it should not be kept.  It is

    an arbitrary value that does not need to be kept.  It is purely a

    tracking point for the TAXII server itself.  Two TAXII servers that have

    the same object will more than likely not have the same value for the

    date added.  



    So said another way, if I sync content from you, I will not keep the

    date added values from your server.  I will assign my own, because this

    meta data is tied to the TAXII server itself.   An organize may choose

    to keep it, but it does not need to.  It should be considered a throw

    away value.  



    So just like you have an auto incrementing index value, you would have

    an auto incrementing date value.  So in your solution you could just

    store the date in a Unix time stamp format with microsecond precision.

    This auto incrementing index could just be translated back and fort has

    between RFC3339 format.



    Bret 



    Sent from my Commodore 128D



    PGP Fingerprint: 63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050



    On Sep 10, 2019, at 10:43 AM, Andras Iklody < andras.iklody@circl.lu

    < mailto:andras.iklody@circl.lu >> wrote:




    Hi Bret,







    So, if this is the recommended hack to use for TAXII, this advice could



    perhaps be in the final text to avoid other implementers falling into



    the trap of not being able to fetch subsets of the data as in the



    situation I've explained before.







    So to reiterate, date_added should be used as the iterator for



    pagination, use consecutively incremented micro precision for systems



    that emit second precision data.







    As for writing a proposal for changes, I think based on our previous



    experiences it's a route that we're not willing to go down - fighting



    for absolutely minor changes for years is out of scope for small open



    source teams. We're just looking for guidance how to implement what has



    been agreed upon by the TC at this point.







    Best regards,



    Andras







    On 09.09.19 17:46, Bret Jordan wrote:




    As I stated in a previous email, you should be able to easily do a





    date_added+.000001 for each record.  You are going to have to store





    these records on your system, and thus you will need some basic





    meta-data to store them anyway.  You probably are going to store





    which device you got them from, and a bunch of other things.  A





    simple timestamp should not be a significant challenge.











    If you want to write up a proposal for TAXII 2.2, I am sure others,





    including me, would love to see it.  Please just make sure your





    proposal does not break existing use-cases.











    Thanks





    Bret


















    On Sep 9, 2019, at 5:14 PM, Andras Iklody < andras.iklody@circl.lu







    < mailto:andras.iklody@circl.lu >> wrote:















    The data is collected in bulk from the other sources. We could indeed







    attach a timestamp to the bulk collection, but that would be the same







    for all data collected in one shot exceeding any sane pagination limits.















    I am somewhat confused that we're back at the data storage question







    though, TAXII/STIX should NOT have inherent needs when it comes to how







    data is stored as from what I understood it's purely a







    transport/exchange format / protocol. If TAXII basically requires us to







    move all the stored data to true micro second precision (instead of







    padding it on fetch for lower precision tools), then that will kill a







    lot of interactions with other tools out there.















    Best regards,







    Andras















    On 09.09.19 17:07, Bret Jordan wrote:








    So if you are building a streaming collector that gathers data from









    other sensors, you have control over how that data gets added /









    stored on that intermediary streaming server.  Since you may need









    to paginate the data, you must be definition then need to









    temporarily store that data.  If you need to store data, then you









    can define what ever data structures you want.  Thus you can define









    the date added property with microsecond precision.   Keep in mind









    that the data added is NOT the date that the end / origin sensor









    used for its timestamp.



















    I just do not see how this is broken or why it would not work.









    Please help me



















    Bret



















  • 27.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:16
    Again, writing a proposal is not something we will attempt again after our previous attempts. We don't have the stamina or the will to go down that route again. We are currently investigating whether it makes sense for us at all to add TAXII connectors or not, hence I was asking how this is supposed to work with data that is not stored in a local database but streamed. Pagination would still make a lot of sense since we don't want to barf back massive amounts of data due to that blowing the memory limits that the devices we are targeting will have. (as reference, the other project we're working on: https://www.d4-project.org/ ) If I understand your answers correctly this is currently out of scope. From the previous mails, Jason's explanation of why this is an issue was much more concise and to the point than my poor attempt so I'll just quote him: "I agree with the problem; The problem is rooted in the fact that assuming that a document has an "insertion time", is assuming the document lives as-is in a database. This all goes back to the "STIX and TAXII are not a database" mantra." I hope that this is clear enough. If our issue is out of scope that's fine too, again we're just looking for clarification, worst case it's one fewer connector for us to implement :) Best regards, Andras On 10.09.19 15:01, Bret Jordan wrote: > The current TAXII spec is addressing all of the use cases that have been > brought forward. If you would like some additional functionality, > please write up a proposal. > > In regards to what you are doing. You have said that need to write a > solution to aggregate the data from multiple sensors. Since you are > writing the solution, you can write it how ever you need. If you need > to paginate data from that solution you are writing, then by definition > you will need to store that data for some period of time. So once > again, since you are writing the solution and needing to store the data > in a data store, you can easily solve this problem. > > If TAXII is missing support for some use cases, please write up a > proposal for these use cases and how you would propose solving them, and > why current solutions do not meet those needs. I think that would > really help the technical committee understand what you need and why. > > Bret


  • 28.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:25



    If you are going to provide pagination of the data, then by very definition you will need to store the data.  At this point it is no longer streamed, but stored data.  So you are going to have to solve the problem of storing the data, even if that is for a
    short period of time.  But it will still need to be stored. 


    Bret 

    Sent from my Commodore 128D


    PGP
    Fingerprint:  63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050


    On Sep 10, 2019, at 3:16 PM, Andras Iklody < andras.iklody@circl.lu > wrote:



    Again, writing a proposal is not something we will attempt again after
    our previous attempts. We don't have the stamina or the will to go down
    that route again.

    We are currently investigating whether it makes sense for us at all to
    add TAXII connectors or not, hence I was asking how this is supposed to
    work with data that is not stored in a local database but streamed.
    Pagination would still make a lot of sense since we don't want to barf
    back massive amounts of data due to that blowing the memory limits that
    the devices we are targeting will have. (as reference, the other project
    we're working on:
    https://clicktime.symantec.com/3Ni5wRp5tgwXhTB5LhvhgyT7Vc?u=https%3A%2F%2Fwww.d4-project.org%2F )

    If I understand your answers correctly this is currently out of scope.
    From the previous mails, Jason's explanation of why this is an issue was
    much more concise and to the point than my poor attempt so I'll just
    quote him:

    "I agree with the problem;

    The problem is rooted in the fact that assuming that a document has an
    "insertion time", is assuming the document lives as-is in a database.

    This all goes back to the "STIX and TAXII are not a database" mantra."

    I hope that this is clear enough. If our issue is out of scope that's
    fine too, again we're just looking for clarification, worst case it's
    one fewer connector for us to implement :)

    Best regards,
    Andras


    On 10.09.19 15:01, Bret Jordan wrote:
    The current TAXII spec is addressing all of the use cases that have been

    brought forward.  If you would like some additional functionality,

    please write up a proposal.



    In regards to what you are doing. You have said that need to write a

    solution to aggregate the data from multiple sensors.  Since you are

    writing the solution, you can write it how ever you need.  If you need

    to paginate data from that solution you are writing, then by definition

    you will need to store that data for some period of time.  So once

    again, since you are writing the solution and needing to store the data

    in a data store, you can easily solve this problem.  



    If TAXII is missing support for some use cases,  please write up a

    proposal for these use cases and how you would propose solving them, and

    why current solutions do not meet those needs.  I think that would

    really help the technical committee understand what you need and why. 



    Bret 









  • 29.  Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:34
    Not really. We can translate the pagination request and pass it on to other internal tools, it doesn't have to be stored on the same tool that has a taxii interface. Best regards, Andras On 10.09.19 15:24, Bret Jordan wrote: > If you are going to provide pagination of the data, then by very > definition you will need to store the data. At this point it is no > longer streamed, but stored data. So you are going to have to solve the > problem of storing the data, even if that is for a short period of time. > But it will still need to be stored. > > Bret > > Sent from my Commodore 128D > > PGP Fingerprint: 63B4 FC53 680A 6B7D 1447 F2C0 74F8 ACAE 7415 0050 > > On Sep 10, 2019, at 3:16 PM, Andras Iklody <andras.iklody@circl.lu > < mailto:andras.iklody@circl.lu >> wrote: > >> Again, writing a proposal is not something we will attempt again after >> our previous attempts. We don't have the stamina or the will to go down >> that route again. >> >> We are currently investigating whether it makes sense for us at all to >> add TAXII connectors or not, hence I was asking how this is supposed to >> work with data that is not stored in a local database but streamed. >> Pagination would still make a lot of sense since we don't want to barf >> back massive amounts of data due to that blowing the memory limits that >> the devices we are targeting will have. (as reference, the other project >> we're working on: >> https://clicktime.symantec.com/3Ni5wRp5tgwXhTB5LhvhgyT7Vc?u=https%3A%2F%2Fwww.d4-project.org%2F ) >> >> If I understand your answers correctly this is currently out of scope. >> From the previous mails, Jason's explanation of why this is an issue was >> much more concise and to the point than my poor attempt so I'll just >> quote him: >> >> "I agree with the problem; >> >> The problem is rooted in the fact that assuming that a document has an >> "insertion time", is assuming the document lives as-is in a database. >> >> This all goes back to the "STIX and TAXII are not a database" mantra." >> >> I hope that this is clear enough. If our issue is out of scope that's >> fine too, again we're just looking for clarification, worst case it's >> one fewer connector for us to implement :) >> >> Best regards, >> Andras >> >> >> On 10.09.19 15:01, Bret Jordan wrote: >>> The current TAXII spec is addressing all of the use cases that have been >>> brought forward. If you would like some additional functionality, >>> please write up a proposal. >>> >>> In regards to what you are doing. You have said that need to write a >>> solution to aggregate the data from multiple sensors. Since you are >>> writing the solution, you can write it how ever you need. If you need >>> to paginate data from that solution you are writing, then by definition >>> you will need to store that data for some period of time. So once >>> again, since you are writing the solution and needing to store the data >>> in a data store, you can easily solve this problem. >>> >>> If TAXII is missing support for some use cases, please write up a >>> proposal for these use cases and how you would propose solving them, and >>> why current solutions do not meet those needs. I think that would >>> really help the technical committee understand what you need and why. >>> >>> Bret


  • 30.  Re: [cti] Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:38



    I have tried to help you understand how this works in TAXII 2.1 and how you can make this work.  


    If you want to see something else, please write up a proposal.  Please make sure to not break existing use cases with your proposal. 


    Bret 

    Sent from my Commodore 128D


    PGP
    Fingerprint:  63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050


    On Sep 10, 2019, at 3:34 PM, Andras Iklody < andras.iklody@circl.lu > wrote:



    Not really. We can translate the pagination request and pass it on to
    other internal tools, it doesn't have to be stored on the same tool that
    has a taxii interface.

    Best regards,
    Andras

    On 10.09.19 15:24, Bret Jordan wrote:
    If you are going to provide pagination of the data, then by very

    definition you will need to store the data.  At this point it is no

    longer streamed, but stored data.  So you are going to have to solve the

    problem of storing the data, even if that is for a short period of time.

     But it will still need to be stored. 



    Bret 



    Sent from my Commodore 128D



    PGP Fingerprint: 63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050



    On Sep 10, 2019, at 3:16 PM, Andras Iklody < andras.iklody@circl.lu

    < mailto:andras.iklody@circl.lu >> wrote:




    Again, writing a proposal is not something we will attempt again after



    our previous attempts. We don't have the stamina or the will to go down



    that route again.







    We are currently investigating whether it makes sense for us at all to



    add TAXII connectors or not, hence I was asking how this is supposed to



    work with data that is not stored in a local database but streamed.



    Pagination would still make a lot of sense since we don't want to barf



    back massive amounts of data due to that blowing the memory limits that



    the devices we are targeting will have. (as reference, the other project



    we're working on:



    https://clicktime.symantec.com/3Ni5wRp5tgwXhTB5LhvhgyT7Vc?u=https%3A%2F%2Fwww.d4-project.org%2F )







    If I understand your answers correctly this is currently out of scope.



    From the previous mails, Jason's explanation of why this is an issue was



    much more concise and to the point than my poor attempt so I'll just



    quote him:







    "I agree with the problem;







    The problem is rooted in the fact that assuming that a document has an



    "insertion time", is assuming the document lives as-is in a database.







    This all goes back to the "STIX and TAXII are not a database" mantra."







    I hope that this is clear enough. If our issue is out of scope that's



    fine too, again we're just looking for clarification, worst case it's



    one fewer connector for us to implement :)







    Best regards,



    Andras











    On 10.09.19 15:01, Bret Jordan wrote:




    The current TAXII spec is addressing all of the use cases that have been





    brought forward.  If you would like some additional functionality,





    please write up a proposal.











    In regards to what you are doing. You have said that need to write a





    solution to aggregate the data from multiple sensors.  Since you are





    writing the solution, you can write it how ever you need.  If you need





    to paginate data from that solution you are writing, then by definition





    you will need to store that data for some period of time.  So once





    again, since you are writing the solution and needing to store the data





    in a data store, you can easily solve this problem.  











    If TAXII is missing support for some use cases,  please write up a





    proposal for these use cases and how you would propose solving them, and





    why current solutions do not meet those needs.  I think that would





    really help the technical committee understand what you need and why. 











    Bret 




    ---------------------------------------------------------------------
    To unsubscribe from this mail list, you must leave the OASIS TC that

    generates this mail.  Follow this link to all your TCs in OASIS at:
    https://clicktime.symantec.com/381FEGvep8UnhzeE7GyP87V7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php











  • 31.  Re: [cti] Re: [EXT] [cti] [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-10-2019 13:50
    I have no idea how to make this work based on what you have said, but perhaps I am too dumb to understand :) [Tools supporting TAXII] <====TAXII====> Sensor collector <---our format---> Internal tools/sensors. If any external tool wants to query our sensor collector, it will not want all data that it can retrieve thrown in its face in one shot. Luckily, our internal tools/sensors might help us out here. However, I don't see how we could do that in this case with the limitations that I have described earlier. Again, maybe I've missed something. Our sensor collector is not meant to store all the data. It is meant to forward queries in this case to the tools behind it. Best regards, Andras On 10.09.19 15:37, Bret Jordan wrote: > I have tried to help you understand how this works in TAXII 2.1 and how > you can make this work. > > If you want to see something else, please write up a proposal. Please > make sure to not break existing use cases with your proposal. > > Bret > > Sent from my Commodore 128D > > PGP Fingerprint: 63B4 FC53 680A 6B7D 1447 F2C0 74F8 ACAE 7415 0050 > > On Sep 10, 2019, at 3:34 PM, Andras Iklody <andras.iklody@circl.lu > < mailto:andras.iklody@circl.lu >> wrote: > >> Not really. We can translate the pagination request and pass it on to >> other internal tools, it doesn't have to be stored on the same tool that >> has a taxii interface. >> >> Best regards, >> Andras >> >> On 10.09.19 15:24, Bret Jordan wrote: >>> If you are going to provide pagination of the data, then by very >>> definition you will need to store the data. At this point it is no >>> longer streamed, but stored data. So you are going to have to solve the >>> problem of storing the data, even if that is for a short period of time. >>> But it will still need to be stored. >>> >>> Bret >>> >>> Sent from my Commodore 128D >>> >>> PGP Fingerprint: 63B4 FC53 680A 6B7D 1447 F2C0 74F8 ACAE 7415 0050 >>> >>> On Sep 10, 2019, at 3:16 PM, Andras Iklody <andras.iklody@circl.lu >>> < mailto:andras.iklody@circl.lu > >>> < mailto:andras.iklody@circl.lu >> wrote: >>> >>>> Again, writing a proposal is not something we will attempt again after >>>> our previous attempts. We don't have the stamina or the will to go down >>>> that route again. >>>> >>>> We are currently investigating whether it makes sense for us at all to >>>> add TAXII connectors or not, hence I was asking how this is supposed to >>>> work with data that is not stored in a local database but streamed. >>>> Pagination would still make a lot of sense since we don't want to barf >>>> back massive amounts of data due to that blowing the memory limits that >>>> the devices we are targeting will have. (as reference, the other project >>>> we're working on: >>>> https://clicktime.symantec.com/3Ni5wRp5tgwXhTB5LhvhgyT7Vc?u=https%3A%2F%2Fwww.d4-project.org%2F ) >>>> >>>> If I understand your answers correctly this is currently out of scope. >>>> From the previous mails, Jason's explanation of why this is an issue was >>>> much more concise and to the point than my poor attempt so I'll just >>>> quote him: >>>> >>>> "I agree with the problem; >>>> >>>> The problem is rooted in the fact that assuming that a document has an >>>> "insertion time", is assuming the document lives as-is in a database. >>>> >>>> This all goes back to the "STIX and TAXII are not a database" mantra." >>>> >>>> I hope that this is clear enough. If our issue is out of scope that's >>>> fine too, again we're just looking for clarification, worst case it's >>>> one fewer connector for us to implement :) >>>> >>>> Best regards, >>>> Andras >>>> >>>> >>>> On 10.09.19 15:01, Bret Jordan wrote: >>>>> The current TAXII spec is addressing all of the use cases that have >>>>> been >>>>> brought forward. If you would like some additional functionality, >>>>> please write up a proposal. >>>>> >>>>> In regards to what you are doing. You have said that need to write a >>>>> solution to aggregate the data from multiple sensors. Since you are >>>>> writing the solution, you can write it how ever you need. If you need >>>>> to paginate data from that solution you are writing, then by definition >>>>> you will need to store that data for some period of time. So once >>>>> again, since you are writing the solution and needing to store the data >>>>> in a data store, you can easily solve this problem. >>>>> >>>>> If TAXII is missing support for some use cases, please write up a >>>>> proposal for these use cases and how you would propose solving >>>>> them, and >>>>> why current solutions do not meet those needs. I think that would >>>>> really help the technical committee understand what you need and why. >>>>> >>>>> Bret >> >> --------------------------------------------------------------------- >> To unsubscribe from this mail list, you must leave the OASIS TC that >> generates this mail. Follow this link to all your TCs in OASIS at: >> https://clicktime.symantec.com/381FEGvep8UnhzeE7GyP87V7Vc?u=https%3A%2F%2Fwww.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fportal%2Fmy_workgroups.php >> >>


  • 32.  RE: [Non-DoD Source] [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text

    Posted 09-06-2019 14:34
    It's also worth noting that microsecond precision is often a lie in multi-server systems because time skew between systems exceeds single microsecond accuracy. Due to among other things: 1. Unpredictable delays caused by switching and routing NTP packets 2. Every 1,000ft of fiber adds ~1 micro-second of latency, and most of us don't account for this when building out our infrastructure to ensure uniform cable lengths between every device in every data center. 3. NTP packets need to be processed and applied to the CPU's clock which depends on system overhead (but I think it does have higher priority than must due to fun with interrupts) 4. Quartz crystal clocks can have up 5 microseconds of drift per second. Jeffrey Mates, Civ DC3/TSD ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Computer Scientist Technical Solutions Development jeffrey.mates@dc3.mil 410-694-4335 -----Original Message----- From: cti@lists.oasis-open.org <cti@lists.oasis-open.org> On Behalf Of Andras Iklody Sent: Friday, September 6, 2019 7:49 AM To: Bret Jordan <Bret_Jordan@symantec.com>; cti@lists.oasis-open.org Subject: [Non-DoD Source] [cti] Re: [EXT] Re: [cti] TAXII Pagination Example Text All active links contained in this email were disabled. Please verify the identity of the sender, and confirm the authenticity of all links contained within the message prior to copying and pasting the address to a Web browser. ---- Hello Bret, the problem with this is that TAXII / STIX are meant to work on the transport layer, not necessarily the native storage behind it. For example, if we deal with a passiveDNS system behind a TAXII connector, having microsecond precision would be absolutely meaningless, hence the second-precision values are converted to "YYYY-MM-DDTHH:MM:SS.ssssssZ" on the fly by padding everything beyond seconds. This would mean that for systems such as this pagination would not be possible if more values exist than the limit / page. Best regards, Andras On 04.09.19 23:36, Bret Jordan wrote: > Hi Andras, > > In TAXII we define the timestamp to be "YYYY-MM-DDTHH:MM:SS.ssssssZ", > aka microsecond precision. This timestamp is used for all records as > they are added to the TAXII Server. So under normal conditions > microsecond precision should give ample amount of space per second for > new records coming in. > > Now there is a possibility that one may try to bulk load records and > give every new record the same timestamp. This would be a less than > ideal design. However, if this is what you have, and someone requests > more records than you can give, then you would probably respond with > an error message telling the client that you can not complete the > request since there are more records with the exact same microsecond > timestamp than the client requested. > > Bret > > ---------------------------------------------------------------------- > -- > *From:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> on behalf > of Andras Iklody <andras.iklody@circl.lu> > *Sent:* Wednesday, September 4, 2019 1:01 AM > *To:* cti@lists.oasis-open.org <cti@lists.oasis-open.org> > *Subject:* [EXT] Re: [cti] TAXII Pagination Example Text > > Hello Bret, > > just curious, how should we deal with more than 100 records that were > added at the same time? > > Best regards, > Andras > > On 03.09.19 21:59, Bret Jordan wrote: >> All, >> >> Here is the text we talked about on the working call today. Please >> send any changes or suggestions to the list by end of day next >> Tuesday the 10th. After we get all suggestions and changes, Drew and >> I will add this to TAXII. >> >> >> TAXII 2.1 supports pagination of large result sets on certain endpoints. >> These endpoints return results sorted in ascending order by the date >> they were added to the collection (see section 3.3). The server may >> limit the number of responses in result to a query, either as the >> result of a server-specified limit, or in response to a limit >> parameter passed by the client as part of a query (see section 3.4). >> If more records are available than are returned, the client may >> paginate through the remaining records by using the added_after >> filter parameter and the date/time value from the X-TAXII-Date-Added-Last header. >> >> Example: >> >> 1. Collection High-Value-Indicators has 1000 records in it. >> 2. The client or server has limited all responses to 100 records at a time. >> 3. A client will make a request and the server will respond with the >> first 100 records. >> 4. The server will also populate the two X headers for TAXII, >> X-TAXII-Date-Added-First and X-TAXII-Date-Added-Last. These >>headers >> will contain the date/time value of when the first and last >>records >> were added to the TAXII server. >> 5. The server will also set the more property to a value of true >>on >> the TAXII envelope. >> 6. When a client wants to obtain the next 100 records, the client >>will >> populate the added_after filter with the value from the previous >> results X-TAXII-Date-Added-Last header. This will ensure that the >> client starts requests the records immediate following the data >>that >> was returned in their last request. >> >> >> >> Bret >> >> > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > Caution- https://clicktime.symantec.com/3F9fXMMcYrXabjjNwg7JCCV7Vc?u=ht > tps%3A%2F%2FCaution-www.oasis-open.org%2Fapps%2Forg%2Fworkgroup%2Fport > al%2Fmy_workgroups.php > > --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: Caution- https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php Attachment: smime.p7s Description: S/MIME cryptographic signature