Saturday, October 27, 2012

PDFrate Update: API and Community Classifier

I am very pleased with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 activity on pdfrate.com in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last few weeks. There have been a good number of visitors and some really good submissions. I’m really impressed at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of targeted PDFs that were submitted and I’m happy with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pdfrate’s ability to classify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se. I really appreciate those who have taken cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time to label cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir submissions (assuming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y know if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are malicious or not) so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 service can be improved through better training data.

There is now an API for retrieval of scan results. See cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 API section for more details, but as an example, you can view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 report (JSON) for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Yara 1.6 manual.

This API may be unconventional, but I do like how easy it is to get scan results. You submit a file and get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 JSON object back synchronously. I’ve split cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata out from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scan results for a couple reasons. First, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata can be very large. Second, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata is currently presented as text blob, and I wasn’t sure how people would want it stuffed into JSON. If you want both, you have to make two requests. You can also view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata blob for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Yara 1.6 manual.

I’m happy that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re have already been enough submissions, including ones that weren’t classified well by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing data sets, that I’ve generated a community classifier based on PDFrate.com user submissions and voting. I’m thrilled that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re were submissions matching categories of malicious PDFs that I know are floating around but simply aren’t in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing data sets. I expect that if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current submission rate stays cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same or goes up, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community classifier will become cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most accurate classifier, because it will contain fresher and more relevant training data. Again, as an example, you can check out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 report for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Yara 1.6 manual which now includes a score from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community classifier.

If a submission had votes before Oct 25th, it was included in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community classifier. Some users will note that even though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves did not vote on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir submissions, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have votes. I reviewed many interesting submissions and placed votes on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m so that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y could be included in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community classifier. I decided to not do a bulk rescan of all documents already submitted. It wasn't for technical reasons. Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ratings occur solely based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 previously extracted metadata and as such are very fast. I did so because I didn’t want to provide potentially deceptive results to users. If a document is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 training set, it is generally considered an unfair test to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 resulting classifier on it, as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 classifier will almost always provide good results. Regardless, if you want to have a submission re-scanned, just submit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file over again.

Again, I’m pleased with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PDFrate so far. I hope this service continues to improve and that it provides value to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community.

Saturday, September 15, 2012

Announcing PDFrate Public Service

I’m excited to announce PDFrate: a website that provides malicious document identification using machine learning based on metadata and structural features. The gory details of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying mechanisms will be presented at ACSAC 2012.

I’ve been working on this research since 2009, which was a year where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stream of PDF 0-days being leveraged by targeted attackers was nearly unbroken. I’ve refined cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying techniques to a place where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are very effective in real operations and are addressed rigorously enough for academic acceptance. Note that I originally designed this for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 purpose of detecting APT malicious documents but have found it to be largely effective on broad based crimeware PDFs also. Furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rmore, it is pretty effective at distinguishing between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two. I can speak from personal experience that mechanisms underlying PDFrate provide a strong compliment to signature and dynamic analysis detection mechanisms.

Those that are interested should head over to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 pdfrate site and check out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 “about” page in particular which explains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mechanisms and points to some good examples.

PDFrate demonstrates a well refined mechanism for detecting malicious documents. This currently operates on PDF documents. I am close to extending this to office documents. But I see this paradigm extending much farcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than just malicious documents. I see wise (and deep) selection of features and machine learning being effective for many things ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things such as emails, network transactions such as HTTP, web pages, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r file formats such as SWF and JAR.

I’m happy to provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PDFrate service to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community so that ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs can leverage (and critique) this mechanism. Providing this as a service is a really good way for ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs to be able to use it because it removes a lot of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 difficulty of implementation and configuration, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hardest part of which is collecting and labeling a training set. High quality training data is critical for high quality classification and this data is often hard for a single organization/individual to compile. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current data sets/classifiers provided on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 site are fine for detecting similar attacks, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is room for improvement and generalization which I hope will come from community submissions and ratings. So please vote on submissions, malicious or not, as this will speed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 development and evolution of a community driven classifier. This service could benefit from some additional recent targeted PDFs.

In addition to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 classification that PDFrate provides, it also provides one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best document metadata extraction capabilities that I’ve seen. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are many tools for PDF analysis, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata and structure extraction capabilities used by PDFrate provide a great mix of speed, simplicity, robustness, saliency, and transparency. Even if you aren’t sold on using PDFrate for classification, you might see if you like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata it provides. Again, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 about provides illustrative examples.

I hope this service is useful to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community. I look forward to describing in depth in December at ACSAC!

Saturday, July 28, 2012

Security Vanity: Public Key Crypto for Secure Boot

For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last few months cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re’s been a bit of chatter about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 restrictions Microsoft will be imposing on hardware vendors, requiring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to implement a specific flavor of “secure boot” where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hardware verifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 signature of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bootloader. The claim is that signing code from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hardware up will improve security, especially helping defeat boot loader viruses. This mechanism obviously makes installing ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r operating systems more difficult. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of ARM processors, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r restrictions, basically preventing manual circumvention.

The responses from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 organizations interested in ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r operating systems and consumer interests have been mixed. Some, like Fedora and Ubuntu, have drafted courses that seem surprisingly compliant, while ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs, like FSF, don’t seem to be so keen on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea. Linus provided a fairly apacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365tic response noting that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proposed method for secure boot doesn’t help security much but probably doesn’t hurt usability that much eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se responses make sense considering cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interests cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y represent.

It may be fine for non-security folk to trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 advice of security professionals when we say that something is necessary for “security”. However, we do ourselves and society a great disservice when we allow security to be used as a cover for actions based in ulterior motives or when we support ineffective controls. Whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r you are on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 conspiracy cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ory or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 incompetence more likely than malice side of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 house, allowing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cause of security to be used recklessly hurts. It hurts our reputation and ability to enact sensible security measures in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 future. It hurts cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very cause we are professing to support, which for me is securing liberty. For example, I believe it will take years for our society to recognize how harmful cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ater of airport screening is. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flip side, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re has been no coherent demonstration of any significant effect in preventing terrorism, but our efforts have been fabulously effective at magnifying terror.

We have to call out security vanity when we see it. The use of public key crypto (without much of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 complementary infrastructure) in secure boot needs to be questioned. Code signing, and digital signatures in general, can add a high degree of trust to computing. However, experience has shown that PKI, and crypto in general, gets busted over time, especially through key disclosure. It only takes one disclosure to cause a serious issue, especially if robust key management regimes are not in place. By design, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re will be no practical way keep this PKI up to date without significant effort on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user. No removal of broken root keys, no certificate revocations, etc. So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type of mechanisms that are used for keeping current code signing, SSL, etc up to date can’t apply here. Note that all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se mechanisms for key management are used by necessity—examples of individual keys/certificates being revoked occurs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wild, even if you exclude really spooky attacks like Stuxnet or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RSA breach. The whole class of things designed to restrict how users use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir devices, things like DVD’s CSS and HDCP, illustrate an important principle. It’s not a question of whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se mechanisms can be defeated; it’s a question of whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r anyone cares to do it and how long it will take. It doesn’t matter how good cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crypto algorithms are in a PKI based secure boot system, if proper key management can’t occur, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system is critically flawed.

If someone is pushing a defective by design security mechanism, are people justified questioning in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir motives? I believe so. The purpose of this post isn’t to rant about anti-competitive practices, anti-consumer restrictions on hardware devices, use of “digital locks” laws to inhibit ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise legal activity, etc. It is to point out that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of PKI based secure boot is eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r based in motives ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than security or it is based in bad engineering.

Let’s give Microsoft cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 benefit of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 doubt. Let’s say that boot loader viruses are an issue that need to be addressed. At least we believe it is something that could become an issue during cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 life of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 systems that will be shipping in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 near future. The question at this point is, why use PKI? Are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re alternatives? Granted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re aren’t too many options for trust at this level, but I believe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are options. For example, I’ve long thought it would be useful for both desktop and mobile systems to have a small portion of storage which is writable only with a physical switch which would typically be in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 read only position. This sort of thing could be really useful for things like bootloaders, which are updated relatively infrequently. You can criticize this approach, and debate whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it’s more likely for a lay person to be able to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correct decision about when to press cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 button to make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir secure storage area readable or for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to do manual key management, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are alternatives. Note that I’ve intentionally ignored cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stiffer requirements for ARM devices.

Using public key crypto for secure boot where proper key management cannot occur is a horrible idea. It will not provide security against determined threats over time. It is incumbent on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security community to clarify this, so that an effective solution can be implemented or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 true motives can be discussed. The security community cannot tacitly be party to security vanity.

Saturday, May 19, 2012

NIDS need an Interface for Object Analysis

The information security community needs NIDS projects to provide an interface for analysis of objects transferred through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. Preferably, this interface would be standardized across NIDS. Here I will provide my rationale for this assertion and some opinions on what that should look like.

Why

Security practitioners have benefited from project/vendor agnostic interfaces such as Milter, ICAP, etc in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir respective realms. These interfaces provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operator with compatibility, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365refore, flexibility. In this paradigm, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operator can choose, for example, a single mail server and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n independently choose one or more mail filters. Decoupling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two allows cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 operator to focus selection of each product on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 how well cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir primary jobs, mail transfer and mail filtering in our example. This is a classic example of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Unix philosophy of doing one thing well.
The NIDS world needs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same thing. We need a standardized interface that allows NIDS to focus on analyzing network traffic and allows a quasi-independent client object analysis system to focus on analyzing objects transferred through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network.
In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past it has been hard for me to understand why NIDS haven’t followed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 huge shift up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stack from exploits that occur at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network layer (ex. Sasser worm or WuFTD exploits) to exploits that occur in client objects ( ex. PDF exploits or Mac Flashback Trojan). I’ve heard many people say NIDS are for detecting network exploits and if you want to detect client exploits, use something on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client. I would note that this mentality has been an excuse for some NIDS to not do full protocol decoding (ex. base64 decoding of MIME, gzip decoding of HTTP, etc). This has left network defenders with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 motive (detect badness as soon as possible, preferably before it gets to end hosts), cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 opportunity (NIDS see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets bearing badness into network), but without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 means (NIDS blind to many forms of client attacks).
To be fair to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various NIDS projects, every relevant NIDS is taking steps to support some amount of client payload analysis. Actually, it seems like it is a relatively high priority for many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. I know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Bro guys are diligently working on a file analysis framework for Bro 2.1. Furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rmore, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some very valid reasons why it’s in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security community’s best interest to abstract NIDS from detecting client object malfeasance, directly that is. First, back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Unix philosophy mentioned above, we want our NIDS to be good at network protocol analysis. I can think of plenty of room for improvement in NIDS while remaining focused on network protocol analysis. Second, and central to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argument made here, we don’t want to fragment our client payload analysis just because of differences in where files are found (ex. network vs. host). To illustrate this last point, think about AV. Imagine if you had to have a separate AV engine, signature language, etc just because of where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object came from even though you are looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exact same objects. This is again, is one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 main reasons Milter, ICAP, etc exist. I cite VRT’s Razorback as a great example of this. From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning it supported inputs from various sources so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 analysis performed could be uniform, regardless of original location of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 objects. Lastly, one could argue that network protocol analysis and client object analysis are different enough that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y require frameworks that look different because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y tackle different problems. I’ve built both NIDS and file analysis systems. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y do similar things, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir goals, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365refore engineering priorities are largely different. Anecdotally, I see NIDS focusing on reassembly and object analyzers focusing on decoding, NIDS caring about timing of events while file analyzers largely consider an object cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same independent of time, etc.
What I’m arguing is that NIDS should be separated or abstracted from client file analysis frameworks. This certainly doesn’t mean a NIDS vendor/project can’t also have a complementary file analysis framework. Again, note Razorback and association with Snort. What I would like to see, however, is some sort of standard interface used between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file analysis framework. Why can’t I use Razorback with Bro or Suricata? Sure, I could with a fair amount of coding, but it could and should be easier than that. Instead of hacking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS itself, I should be able to write some glue code that would be roughly equivalent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 glue required to create a milter or ICAP for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file analysis service. Furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rmore, this interface needs to move beyond cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 status quo (ex. dump all files in directory) to enable key features such as scan results/object metadata being provided back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS engine.
Lastly, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existence of a standard interface would make it easier for users to demand client object analysis functionality for things flowing through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network while making it easier for NIDS developers to deliver this capability.
The security community needs a cross-NIDS standard for providing client objects to an external analysis framework.

What

The following are my ideas on what this interface between a NIDS and a file analysis framework should look like.

Division of Labor

It is probably best to start by defining more clearly what should go through this interface for embedded object analysis. When I say client objects I mean basically anything transferred through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network that makes sense as a file when divorced from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. My opinion is that all things that are predominately transferred through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network are candidates for analysis external to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. Canonical examples of what I mean include PDF documents, HTML files, Zip files, etc. Anything that is predominately considered overhead used to transfer data through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network should be analyzed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. Canonical examples include packet headers, HTTP protocol data, etc.
Unfortunately, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line gets a little blurry when you consider things like emails, certificates, and long text blobs like directory listings. I don’t see this ambiguity as a major issue. In an ideal world, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS framework would support external analysis of objects, even it can do some analysis internally also.
I will discuss in greater detail later, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS also has cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responsibility for any network layer defragmentation, decoding, etc.

An API, not a Protocol

Fundamentally, I see this as an API backed by a library, not a network protocol (like ICAP, Milter, etc). In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vast majority of cases, I see this library providing communication between a NIDS and a client analysis on a single system with mechanisms that support low latency and high performance. In many cases, I expect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file analysis may well go and do ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object, such as transfer it over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network or write it do disk. The type of object analysis frameworks I’m envisioning would likely have a small stub that would talk to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS interface API and take to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object analysis framework submission system. Using Razorback’s parlance, a relatively small “Collector” would use this API to get objects from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and send cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 framework for analysis.
I see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various components looking roughly as follows:

+------+  objects and metadata   +------+  /------>
|      | ---> +-----------+ ---> | File | /  Object
| NIDS |      | Interface |      | Anal\| -------->
|      | <--- +-----------+ <--- | ysis | \ Routing
+------+   response (optional)   +------+  \------>

From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Object Framework

The primary thing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS has to do is give an object to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external framework. This is fundamentally going to be a stream of bytes. It is most easily thought of as a file. The biggest question to me is who owns cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 memory and is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a buffer copy involved? My opinion is that to make performance reasonable you have to be able to do some sort of analysis in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 framework without a buffer copy. You need to be able to run cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface, and at some simple object analyzers, on a buffer owned by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS, probably running in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS’ process spaces. Obviously, if you need to do extensive analysis, you’ll probably want it to be truly external. That’s fine, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 framework can let you have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 buffer and you can make a copy of it, etc
The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r thing that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS needs to provide to an external analyzer is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 metadata associated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object. At a minimum this needs to include enough to trace this back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network transaction—ex. IPs, ports, timestamp. Ideally this would include much more--things that are important for understanding context of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object. For example, I can imagine uses for many of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 HTTP headers, both request and response, being useful or even necessary for analysis. For example, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following are metadata items I’d like to see from HTTP for external analysis: Method, Resource, Response Code, Referer, Content-Type, Last-Modified, User-Agent, and Server.
Delving into details, I would think it prudent for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external framework to define cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 format for data to be transferred without specifying exactly what that data is. The interface should say something like use HTTP/SMTP style headers, YAML, or XML of this general format, and define some general standards without trying to define this exhaustively or make this too complicated. In most cases, it seems that identifiers can be a direct reflection of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 underlying protocol.

From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Object Framework back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS

One important capability that this interface should enable is feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analysis framework back into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. I’d really like to see, and think it’s crucial for NIDS if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y want to avoid marginalization, to not only pass objects out for analysis but also to accept data back. I see two important things coming back: a scan result and object metadata. In its most simple form cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scan result is something like “bad” or “good” and could probably be represented with 1 bit. In reality, I can see a little more expressiveness being desired, like why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object is considered bad (signature name, etc). In addition to descriptions of badness or goodness, I see great value in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external framework being able to respond back with metadata from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object (not necessarily an indication of good or bad). This could be all sorts of relevant data including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 document author, PE compile time, video resolution, etc. This data can be audited immediately through policies in your NIDS (or SIMS) and can be saved for network forensics.
Of course, this feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external object analysis system needs to be optional. I can think of perfectly good reasons to pass objects out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS without expecting any feedback. Basically all NIDS to external analysis connections are a one way street today. However, as this paradigm advances, it will be important to have this bi-directional capability. I can also think of plenty of things that a NIDS could do if it received feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer. Having this capability, even if it is optional, is critical to developing this paradigm.

Timing and Synchronization

An important consideration is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 level of synchronization between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external object analyzer. I believe it would be possible for an interface to support a wide range from basically no synchronization to low latency synchronization suitable for IPS. Obviously, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fire and forget paradigm is easy and to support this paradigm nicely you could make feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 analyzer optional and make whatever scanning occurs asynchronous. However, an external analysis interface that expects immediate feedback can be easily be made asynchronous by simply copying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 inputs, returning a generic response, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n proceeding to do analysis. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, morphing an asynchronous interface into a synchronous one can be difficult. For that reason, it would be good for this to be built in from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 beginning, even if it is optional, to begin with.
Can this sort of interface be practical for IPS/inline or it destined to be a technology used only passively? My answer is an emphatic yes. I challenge NIDS to find a way to allow external analysis whose latency is adequately low enough to be reasonable for use inline. I’ll share my thoughts on payload fragmentation below, but even if objects can’t be analyzed until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS has seen cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole object, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS still has recourses if it gets an answer back from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer quick enough. It would also be nice if NIDS started to support actions based on relatively high latency responses from an external analysis framework even if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload in question has already been transferred though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. Options for actions include things like passive alerting, adding items to black lists (IP, URL, etc) that can be applied in real time, and addition of signatures for specific payloads or hashes of specific payloads. It seems inevitable that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer will include some sort of configurable timeout capability to protect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS from blocking too long.

De-fragmentation and Decoding:

I envision a situation where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS is responsible for network layer normalization and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file analysis framework does anything necessary for specific file formats. The NIDS is responsible for all network protocol decoding such as gzip and chunked encoding of HTTP. However, things like MIME decoding can be done internally to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS or externally depending whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is desired to pass out complete emails or individual attachments.
The NIDS should be responsible for any network layer reassembly/de-fragmentation required. Ex. IPfrag, TCP, etc. I think some exceptions to this are reasonable. First of all, it makes a lot of sense for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface to allow payloads to be passed externally in sequential pieces, with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responsibility of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS to do all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 re-ordering, segment overlap deconfliction, etc. necessary. This would support important optimizations on both sides of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface. It should also be considered acceptable for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS to punt in situations where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 application, not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network stack, fragments cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload but that fragmentation is visible in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network application layer protocol. For example, it would be desirable for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS to reassemble HTTP 206 fragments, if possible, but I can see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argument that this reassembly can be pushed on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer, especially considering that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are situations where completely reassembling cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload object simply isn’t possible.
It should be clear that any sort of defragmentation required for analyzing files, such as javascript includes or multi-file archives, is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responsibility of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 object analysis framework.

Filtering

To be effective, any system of this sort should support filtering of objects before passing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m out for external analysis. While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is always room for improvement, I think most NIDS are already addressing this in some manner. The external file analysis framework probably needs to support some filtering internally, in order to route files to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate scanning modules. Razorback is a good example here.
It would be possible for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two to support some sort of sampling of payloads whereby cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer is given cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first segment of a payload object and given cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 option to analyze or ignore cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of it. I consider this unnecessary complication. I think some would desire and it could be natural for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface to support feedback every time cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS provides payload segments (assuming payloads are provided in fragments) to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer. I personally don’t see this as a top priority because unless you are doing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most superficial analysis or are operating on extremely simple objects, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analysis framework will not be able to provide reliable feedback until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full object has been seen. While both cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analysis framework will likely want to implement object filtering, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no strong driver for this filtering to be built directly into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface and this is probably just extra baggage.

Use Cases

To make sure what I’m describing is clear, I offer up 3 use cases that cover most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 critical requirements. These use cases should be easy to implement in practice and would likely be useful to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 community.
Use Case 1: External Signature Matching
Use something like yara to do external signature matching. Yara provides greater expressiveness in signatures than most NIDS natively support and many organizations have a large corpus of signatures for client objects like PDF documents, PE executables, etc. If not yara, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r signature matching solution, like one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many AV libraries (say clam) would be an acceptable test. The flags/signature names should be returned to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. This should be fast enough that this can be done synchronously.
Use Case 2: External Object Analysis Framework
Use something like Razorback to do flexible and iterative file decoding and analysis. Since Razorback is purely passive and intentionally is not bound by tight real time constraints, no feedback is sent back into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scanning is done asynchronously. All alerting is done by Razorback, independent of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. For extra credit, splice in your interface between Snort as a Collector (used to collect objects to send into Razorback) and Razorback.
Use Case 3: External File Metadata Extraction
Use something to do client file metadata extraction. Feed this metadata back into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS to be incorporated back into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 signature/alerting/auditing/logging framework. Unfortunately, I don’t have any really good recommendations of specific metadata extractors to use. One could use libmagic or something similar, but some NIDS already incorporate this or something like it to do filtering of objects, etc. Magic number inspection doesn’t quite get to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 level of file metadata I’m looking for anyway. There are a few file metadata extraction libraries out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, but I can’t personally I recommend any of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m for this application. As such, I’ve written a simple C function/program, docauth.c, that does simple document author extraction from a few of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most commonly used (and pwnd) document formats. This should be easy enough to integrate with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type of interface I envision. In thiscase, you would be able to provide file metadata back into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS. This NIDS could incorporate this metadata into its detection engine. This should be fast enough to be able to be done synchronously.
Use Case 4: File Dumper
This is a lame use case, but I include it to show that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most common way to support external file analysis in NIDS, dumping files to a directory, can be achieved easily using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proposed interface. This relieves cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS of dealing with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files. The NIDS provides cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file to be scanned and metadata about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface. The external analyzer simply writes this to disk. There is no feedback.

Requirements:

I’ll also provide what I think are reasonable requirements (intentionally lacking formality) for a standard interface used between a NIDS and an external client object analysis system.

The interface will provide cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 capability to:
  • Pass files to an external system 
    • Files may be passed in ordered fragments
  • Pass metadata associated with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external system
    • The metadata is provided in a standardized format, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual meaning of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data passed is not defined by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interface, racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it must be agreed upon by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer.
  • Optionally receive feedback from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 external analyzer asynchronously
  • Optionally timeout external analysis if it exceed configured threshold 
The NIDS performs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following functionality:
  • Normalization (decoding, decompression, reassembly, etc) of all network protocols to extract files as would be seen by clients
  • Provide relevant metadata in conjunction extracted files for external analysis
  • Optionally, provide mechanisms to filter objects being passed to external analyzer
  • Optionally, incorporate feedback from external analysis into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS detection engine
The Object analysis framework performs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:
  • Receive objects and metadata from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS
  • Perform analysis, which may include object decoding
  • Optionally, provided feedback to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIDS

Conclusion

I’ve provided my opinion that it is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best interest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security community to have a standardized interface between NIDS and client object analysis. This would provide flexibility for users. It would help NIDS remain relevant while allowing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to stay focused. I envision interface as a library that supports providing objects and metadata out to an object analyzer and receive feedback in return.
I’m confident I’m not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only one that sees cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 need for abstraction between NIDS and object scanning, but I hope this article helps advance this cause. NIDS developers are already moving towards greater support for object analysis. I’d be gratified if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ideas presented here help shape, or at least help confirm demand, for this functionality. It’s important that users request more mature support of object analysis in NIDS and push for standardization across cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various projects/vendors.

Saturday, March 10, 2012

Flushing out Leaky Taps v2

Note: this post is a re-write of a previous post, Flushing out Leaky Taps which I originally posted in June 2010.

Many organizations rely heavily on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir network monitoring tools. These tools, which rely on data from network taps, are often assumed to have complete network visibility. While most network monitoring tools provide stats on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets dropped internally, most don’t tell you how many packets were lost externally to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appliance. I suspect that very few organizations do an in depth verification of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 completeness of tapped data nor quantify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of loss that occurs in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir tapping infrastructure before packets arrive at network monitoring tools. Since I’ve seen very little clear documentation on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 topic, this post will focus on techniques and tools for detecting and measuring tapping issues.

Impact of Leaky Taps


How many packets does your tapping infrastructure drop before ever reaching your network monitoring devices? How do you know?

I’ve seen too many environments where tapping problems have caused network monitoring tools to provide incorrect or incomplete results. Often cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se issues last for months or years without being discovered, if ever. Making decisions or relying on bad data is never good. Many public packet traces also include cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type of visibility issues I will discuss.

In most instances, you need to worry about packet loss in your monitoring devices before you worry about loss in tapping. In most devices cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are multiple places where loss can occur resulting in multiple places were loss is reported. For example, if running a networking monitoring application on linux, possible places were loss can occur and be reported (if it is reported) are as follows:






Loss occurringis reported at:
between Kernel and Applicationapplication (pcap) dropped
between NIC and Kernelifconfig dropped
between Tap Feed and NICethtool -S link error
between Network and Tap FeedNA

This post focuses primarily on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last item where loss is not directly observable in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor. In seeking to understand loss occurring outside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor, we must assume a lack of loss inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor. In ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r words, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 methods presented here seek to identify loss comprehensively. If loss is observed or inferred, and any loss in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor device can be ruled out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n loss external to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor device can be identified.

I’m not going to discuss in detail cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 many things that can go wrong in getting packets from your network to a network monitoring tool. For a quick overview on different strategies for tapping, I’d recommend this article by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argus guys. I will focus largely on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 resulting symptoms and how to detect, and to some degree, quantify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. I’m going to focus on two very common cases: low volume packet loss and unidirectional (simplex) visibility.

Low volume packet loss is common in many tapping infrastructures, from span ports up to high end regenerative tapping devices. I feel that many people wrongly assume that taps eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r work 100% or not at all. In practice, it is common for tapping infrastructures to drop some packets such that your network monitoring device never even gets cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 chance to inspect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Many public packet traces include loss that could have been caused by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 issues discussed here. Very often this loss isn’t even recognized, let alone quantified.

The impact of this loss depends on what you are trying to do. If you are collecting netflow, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact probably isn’t too bad since you’re looking at summaries anyway. You’ll have slightly incorrect packet and byte counts, but overall cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact is going to be small. Since most flows contain many packets, totally missing a flow is unlikely. If you’re doing signature matching IDS, such as snort, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact is probably very small, unless you win cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lottery and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packet dropped by your taps is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one containing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack you want to detect. Again, stats are in your favor here. Most packet based IDSs are pretty tolerant of packet loss. However, if you are doing comprehensive deep payload analysis, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact can be pretty severe. Let’s say you have a system that collects and/or analyzes all payload objects of certain type--it could be anything from emails to multi-media files. If you loose just one packet used to transfer part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payload object, you can impact your ability to effectively analyze that payload object. If you have to ignore or discard cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole payload object, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 impact of a single lost packet can be significantly multiplied in that many packets worth of data can’t be analyzed.

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r common problem is unidirectional visibility. There are sites and organizations that do asymmetric routing such cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y actually intend to tap and monitor unidirectional flows. Obviously, this discussion only applies to situations where one intends to tap a bi-directional link but only ends up analyzing one direction. One notorious example of a public data set suffering from this issue is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 2009 Inter-Service Academy Cyber Defense Competition.

Unidirectional capture is common, for example, when using regenerative taps which split tapped traffic into two links based on direction but only one directional link makes it into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 monitoring device. Most netflow systems are actually designed to operate well on simplex links so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 adverse affect is that you only get data on one direction. Simple packet based inspection works fine, but more advanced, and usually rare, rules or operations using both directions obviously won’t work. Multi-packet payload inspection may still be possible on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 visible direction, but it often requires severe assumptions to be made about reassembly, opening cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 door to classic IDS evasion. As such, some deep payload analysis systems, including vortex and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs based on libnids, just won’t work on unidirectional data. Simplex visibility is usually pretty easy to detect and deal with, but it often goes undetected because most networking monitoring equipment functions well without full duplex data.

External Verification


Probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best strategy for verifying network tapping infrastructure is to perform some sort of comparison of data collected passively with data collected inline. This could be comparing packet counts on routers or end devices to packet counts on a network monitoring device. For higher order verification, you should do something like compare higher order network transaction logs from an inline or end device against passively collected transaction logs. For example, you could compare IIS or Apache webserver logs to HTTP transaction logs collected by an IDS such as Bro or Suricata. These verification techniques are often difficult. You’ve got to try to deal with issues such as clock synchronization and offsets (caused by buffers in tapping infrastructure or IDS devices), differences in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data sources/logs used for concordance, etc. This is not trivial, but often can be done.

Usually cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 biggest barrier to external verification of tapping infrastructure is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of any comprehensive external data source. Many people rely on passive collection devices for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir primary and authoritative network monitoring. Often times, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re just isn’t anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r data source to which you can compare your passive network monitoring tools.

One tactic I’ve used to prove loss in taps is to use two sets of taps such that packets must traverse both taps. If one tap sees a packet traverse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network and anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r tap doesn’t, and both monitoring tools claim 0 packet loss, you know you’ve got a problem. I’ve actually seen situations where one network monitoring device didn’t see some packets and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r network monitoring devices didn’t see some packets, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 missing packets from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two traces didn’t overlap.

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r strategy that I've heard proposed is to use some sort of periodic heartbeat, such as as ping packet with a certain byte sequence in it, which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor can cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n observe. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 periodic heartbeat isn't observed, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor can alert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lack of this heartbeat and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 potential monitor visibility gaps can be investigated. I'm not a huge fan of this strategy. While it may work for some cases, I see many situations where alerts for visibility gaps would be caused much more frequently by conditions ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than monitor visibility issues. Also, if both loss and heartbeats are a very small fraction of overall traffic, it would be possible for loss to occur without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 heartbeat alert being set off. We certainly don't need anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r false positive, false negative prone alert to ignore.

Inferring Tapping Issues


While not easy and necessarily not as precise nor as complete as comparing to external data, using network monitoring tools to infer visibility gaps in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are seeing is possible. Many network protocols, namely TCP, provide mechanisms specifically designed to ensure reliable transport of data, even in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 event packet drops. Unlike an endpoint, however, a passive observer can’t simply ask for a retransmission when a packet is dropped. Even so, a passive observer can use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mechanisms cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 endpoints use for reliable transport to infer if it missed packets passed between endpoints. For example, if Alice sends a packet to Bob which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 passive observer Eve doesn’t see, but Bob acknowledges receipt with Alice and Eve sees cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 acknowledgement, Eve can infer that she missed a packet.

It's important to note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 distinction between network packet drops and network monitor visibility gaps. When IP networks are overloaded, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y drop packets. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vast majority of cases, it's a normal (and desirable) part of flow control for networks to drop a small number of packets. Usually, when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se packets are dropped, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 endpoints slow communication a bit and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dropped packet is retransmitted. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r hand, it's almost always undesirable for your network monitoring device to not see packets that are successfully transferred through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. While a network monitor will not see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets dropped in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network or lost due to a visibility gap, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se cases are very different. The former is characterized by lack of endpoint acknowledgement and packet retransmissions while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latter usually is accompanied by endpoint acknowledgement of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "lost" packet and a lack of re-transmission. Again, this post focuses on analyzing unwanted network monitor loss, not normal network drops.

Data and Tools


For those who would like to follow along, I’ve created 3 simple pcaps. The full pcap contains all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets from a HTTP download of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ASCII “Alice in Wonderland” from Project Gutenburg. The loss pcap, is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same except that one packet, packet 50, was removed. The half pcap is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full pcap, but only contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets going to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server, without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets going to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client.

In addition to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se pcaps I'll also use a larger pcap of about 100MB which contains 125338 packets. This packet trace was collected on a low rate network where I have confidence that no packets were lost in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 taps or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 monitor (but normal network packet drops are likely). Using editcap, I've created 2 altered versions of this capture where I removed 100 and 500 packets respectively:

$ capinfos example.pcap | grep "^Number"
Number of packets: 125338
$ editcap example.pcap ex_loss_100.pcap `for i in {1..100}; do echo $[ ( $RANDOM * 125338 ) / 32767 ]; done`
$ capinfos ex_loss_100.pcap | grep "^Number"
Number of packets: 125238
$ editcap example.pcap ex_loss_500.pcap `for i in {1..500}; do echo $[ ( $RANDOM * 125338 ) / 32767 ]; done`
$ /usr/sbin/capinfos ex_loss_500.pcap | grep "^Number"
Number of packets: 124842

Note that I actually only removed 496 instead of 500 in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latter trace because some packets were randomly selected for removal twice. These packet traces will not be shared publicly, but those following along should be able to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own capture file and obtain similar results.

For tools, I’ll be using argus and tshark to infer packet loss in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tap. Argus is a network flow monitoring tool. Tshark is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CLI version of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ever popular wireshark. Since deep payload analysis systems are often greatly affected by packet loss, I’ll explain how cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two types of packet loss affect vortex.

Low Volume Loss in Taps


Detecting and quantifying low volume loss can be difficult. For a long time, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most effective tool I used for measuring this was tshark, especially cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tcp analysis lost_segment and ack_lost_segment flags.

Note that this easily identifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 lost packet at postion 50:


$ tshark -r alice_full.pcap -R tcp.analysis.lost_segment
$ tshark -r alice_loss.pcap -R tcp.analysis.lost_segment
50 0.410502 152.46.7.81 -> 66.173.221.158 TCP [TCP Previous segment lost] [TCP segment of a reassembled PDU]


Unfortunately, this in and of itself doesn't help us know for sure if this packet was dropped in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network or was lost in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network monitor.

Theoretically, that's what tcp.analysis.ack_lost_segment is for.

$ tshark -r alice_full.pcap -R tcp.analysis.ack_lost_segment
$ tshark -r alice_loss.pcap -R tcp.analysis.ack_lost_segment


What's going on? This packet should have been acknowledged by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 endpoint (it was originally in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 trace) and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ACK for this packet was not removed. Unfortunately, this functionality doesn't always work reliably. I have seen it work some times, but as shown here, it doesn't work all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time. tshark does reliably flag packets that are lost, but doesn't reliably flag those that are lost but ACK'd. This differentiation is important because it allows us to separate packets that are lost in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network from those that lost in tapping/capture infrastructure. This bug was reported to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wireshark development team by György Szaniszló. As far as I know, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fixes that György proposed still have not been implemented. In addition to his explanation of current tshark functionality, György included an additional test pcap and a patch to fix this functionality. I recommend reading this bug report and considering using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 patch he provided if you are serious about using tshark to help infer loss external to your network monitors. I'd love to see cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wireshark team fix this functionality.

Please note that while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "ack_lost_segment" doesn't appear to work reliably, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "lost_segment" appears to work as expected. This can help you validate your network tapping infrastructure, especially if you can quantify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packets dropped in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. At cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 very least, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 loss reported here could be considered a reflection of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 upper bound of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 loss external to your monitor. I’ve created a simple (but inefficient) script that can be used on many pcaps. Since tshark doesn’t release memory, you’ll need to use pcap slices smaller than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of memory in your system. The script is as follows:


#!/bin/bash

while read file
do
total=`tcpdump -r $file -nn "tcp" 2>/dev/null | wc -l`
errors=`tshark -r $file -R tcp.analysis.lost_segment | wc -l`
percent=`echo $errors $total | awk '{ print $1*100/$2 }'`
bandwidth=`capinfos $file | grep "bits/s" | awk '{ print $3" "$4 }'`
echo "$file: $percent% $bandwidth "
done


It is operated by piping it a list of pcap files. For example, here are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 results from my private example traces:


ls example.pcap ex_loss_100.pcap ex_loss_500.pcap | ./calc_tcp_loss.sh
example.pcap: 0.00261199% 40351.43 bits/s
ex_loss_100.pcap: 0.0392112% 40321.12 bits/s
ex_loss_500.pcap: 0.192323% 40194.42 bits/s
...


I believe cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 small amount of loss in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unmodified example.pcap resulted from normal network packet drops. Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 loss percentage reported scales up nicely with our simulated network monitor loss.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of low volume loss in taps, argus historically hasn’t been cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most helpful:


$ argus -X -r alice_full.pcap -w full.argus
$ ra -r full.argus -n -s stime flgs saddr sport daddr dport spkts dpkts loss
10:12:54.474330 e 66.173.221.158.55812 152.46.7.81.80 87 121 0
$ argus -X -r alice_loss.pcap -w loss.argus
$ ra -r loss.argus -n -s stime flgs saddr sport daddr dport spkts dpkts loss
10:12:54.474330 e 66.173.221.158.55812 152.46.7.81.80 87 120 0


Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is one less dpkt (destination packet). Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packet counts, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no way to know that packet loss occurred. For as long as I've used argus, it does a good job of identifying and quantifying normal network packet drops, as evidenced by retransmissions, etc. This is reported by flags of "s" and "d", for source and destination loss respectively, as well as various *loss stats.

Very recently, however, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 argus community and developers have added mechanisms to argus to directly address inference of network monitor packet loss and differentiate it from normal network packet drops. The result are flags and counters for what is termed "gaps" in traffic visibility. This functionality is included in recent development versions (my examples are made using argus-3.0.5.10 and argus-clients-3.0.5.34). The inferred lapses in monitor visibility are denoted with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flag of "g" and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 statistics "sgap" and "dgap" which measure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bytes of an inferred gap in network traffic.

For example let's look again at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 alice example, regenerating it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new argus that has gap detection capabilities and looking at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "dgap" instead of "loss" statistic:

$ /usr/local/sbin/argus -X -r alice_full.pcap -w full.argus
$ ra -r full.argus -n -s stime flgs saddr sport daddr dport spkts dpkts dgap
10:12:54.474330 e 66.173.221.158.55812 152.46.7.81.80 87 121 0
$ argus -X -r alice_loss.pcap -w loss.argus
$ ra -r loss.argus -n -s stime flgs saddr sport daddr dport spkts dpkts dgap
10:12:54.474330 e g 66.173.221.158.55812 152.46.7.81.80 87 120 1460


Now argus correctly flags cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection as having a gap in it and identifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 size of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 gap. Let's see how argus does on my private example:

$ argus -X -r example.pcap -w - | ra -nn -r - | grep g | wc -l
3
$ argus -X -r ex_loss_100.pcap -w - | ra -nn -r - | grep g | wc -l
36
$ argus -X -r ex_loss_500.pcap -w - | ra -nn -r - | grep g | wc -l
102


Argus seems to scales up nicely as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of packets lost increases. I suspect that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reason cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 that increase in flagged flows isn't linear is because some flow may have more than one gap in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Note that argus can't detect every lost packet, but it does detect a large portion of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. Factors such as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ratio of reliable to unreliable protocols used, size of individual flows, number of concurrent connections, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 percentage of packets lost parametrize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ratio of lost packets to flagged flows. I think it's safe to assume that if all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se parameters are held constant and a large enough number of observations are used, that one can estimate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 quantity of packets lost based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of flows flagged with a high degree of accuracy. One could also also base estimates on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of bytes in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sgap and dgap stats, but this also involves making assumptions (size of packets in gaps).

One concerning result of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above demonstration, however, is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are some flows flagged as having gaps in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unmodified packet trace which I believe to be free of any network monitor loss (visibility gaps). There are a few reasons why some flows may be flagged erroneously. Probably cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most common is due to a given connection being split across multiple flow records, causing a gap to be detected due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 boundary condition. This can be rectified by using longer flow status intervals so that this boundary case occurs less. Increasing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flow status interval from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default of 5 seconds to 60 seconds is enough to fix our falsely flagged flows:

$ argus -X -S 60 -r example.pcap -w - | ra -nn -r - | grep g | wc -l
0
$ argus -X -S 60 -r ex_loss_100.pcap -w - | ra -nn -r - | grep g | wc -l
25
$ argus -X -S 60 -r ex_loss_500.pcap -w - | ra -nn -r - | grep g | wc -l
64

So increasing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flow status interval is enough to have my private example report 0 flows with gaps(from which we infer network monitor loss). It also decreases cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 number of flagged flows in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 case of legitimate loss as more connection data is bundled into a single flow record, flagged flows contain more than one lost packet. This functionality is very new to argus, so expect it to improve over time. The developers are now discussing how to improve things such as filtering, aggregation, and flow boundary conditions. One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most exciting facets of this functionality being built into argus is that this data is available at no additional effort going forward. This makes periodic or even continuous validation of network monitor visibility extremely easy.

Updated 03/12/2012: See cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments section for results using Bro.

Vortex basically gives up on trying to reassemble a TCP stream if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a packet that is lost and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 TCP window is exceeded. The stream gets truncated at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first hole and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stream remains in limbo until it idles out or vortex closes.


$ vortex -r alice_full.pcap -e -t full
Couldn't set capture thread priority!
full/tcp-1-1276956774-1276956775-c-168169-66.173.221.158:55812s152.46.7.81:80
full/tcp-1-1276956774-1276956775-c-168169-66.173.221.158:55812c152.46.7.81:80
VORTEX_ERRORS TOTAL: 0 IP_SIZE: 0 IP_FRAG: 0 IP_HDR: 0 IP_SRCRT: 0 TCP_LIMIT: 0 TCP_HDR: 0 TCP_QUE: 0 TCP_FLAGS: 0 UDP_ALL: 0 SCAN_ALL: 0 VTX_RING: 0 OTHER: 0
VORTEX_STATS PCAP_RECV: 0 PCAP_DROP: 0 VTX_BYTES: 168169 VTX_EST: 1 VTX_WAIT: 0 VTX_CLOSE_TOT: 1 VTX_CLOSE: 1 VTX_LIMIT: 0 VTX_POLL: 0 VTX_TIMOUT: 0 VTX_IDLE: 0 VTX_RST: 0 VTX_EXIT: 0 VTX_BSF: 0

$ vortex -r alice_loss.pcap -e -t loss
Couldn't set capture thread priority!
loss/tcp-1-1276956774-1276956774-e-31056-66.173.221.158:55812s152.46.7.81:80
loss/tcp-1-1276956774-1276956774-e-31056-66.173.221.158:55812c152.46.7.81:80
VORTEX_ERRORS TOTAL: 2 IP_SIZE: 0 IP_FRAG: 0 IP_HDR: 0 IP_SRCRT: 0 TCP_LIMIT: 0 TCP_HDR: 0 TCP_QUE: 2 TCP_FLAGS: 0 UDP_ALL: 0 SCAN_ALL: 0 VTX_RING: 0 OTHER: 0
Hint--TCP_QUEUE: Investigate possible packet loss (if PCAP_LOSS is 0 check ifconfig for RX dropped).
VORTEX_STATS PCAP_RECV: 0 PCAP_DROP: 0 VTX_BYTES: 31056 VTX_EST: 1 VTX_WAIT: 0 VTX_CLOSE_TOT: 1 VTX_CLOSE: 0 VTX_LIMIT: 0 VTX_POLL: 0 VTX_TIMOUT: 0 VTX_IDLE: 0 VTX_RST: 0 VTX_EXIT: 1 VTX_BSF: 0


Note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are fewer bytes collected, vortex warns about packet loss, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are TCP_QUEUE errors, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stream doesn’t close cleanly in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 loss pcap.

Simplex Capture


Simplex capture is actually pretty simple to identify. It’s only problematic because many tools don’t warn you if it is occurring, so you often don’t even know it is happening. The straightforward approach is to use netflow and look for flows with packets in only one direction.


$ argus -X -r alice_half.pcap -w half.argus
$ ra -r half.argus -n -s stime flgs saddr sport daddr dport spkts dpkts loss
10:12:54.474330 e 66.173.221.158.55812 152.46.7.81.80 87 0 0


This couldn’t be more clear. There are only packets in one direction. If you use a really small flow record interval, you’ll want to do some flow aggregation to ensure you will get packets from both directions in a given flow record. Note that argus by default creates bidirectional flow records. If your netflow system does unidirectional flow records, you need to do a little more work like associating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two unidirectional flows and making sure both sides exist.

You can use one of many tools, such as tcpdump or tshark, and see that for a given connection, you only see packets in one direction.

Vortex handles simplex network traffic in a straightforward, albeit somewhat lackluster manner--it just ignores it. LibNIDS, on which vortex is based, is designed to overcome NIDS TCP evasion techniques through exactly mirroring cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 functionality of TCP stack but assumes full visibility (no packet loss) to do so. If it doesn’t see both sides of a TCP handshake, it won’t follow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stream because a full handshake hasn’t occurred. As such cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 use of vortex on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 half pcap is racá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r uneventful:


$ vortex -r alice_half.pcap -e -t half
Couldn't set capture thread priority!
VORTEX_ERRORS TOTAL: 0 IP_SIZE: 0 IP_FRAG: 0 IP_HDR: 0 IP_SRCRT: 0 TCP_LIMIT: 0 TCP_HDR: 0 TCP_QUE: 0 TCP_FLAGS: 0 UDP_ALL: 0 SCAN_ALL: 0 VTX_RING: 0 OTHER: 0
VORTEX_STATS PCAP_RECV: 0 PCAP_DROP: 0 VTX_BYTES: 0 VTX_EST: 0 VTX_WAIT: 0 VTX_CLOSE_TOT: 0 VTX_CLOSE: 0 VTX_LIMIT: 0 VTX_POLL: 0 VTX_TIMOUT: 0 VTX_IDLE: 0 VTX_RST: 0 VTX_EXIT: 0 VTX_BSF: 0


The most optimistic observer will point out that at least vortex makes it clear when you don’t have full duplex traffic--because you see nothing.

Conclusion


I hope cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above is helpful to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs who rely on passive network monitoring tools. I’ve discussed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two most prevalent tapping issues I’ve seen personally. One topic I’ve intentionally avoided because it’s hard to discuss and debug is interleaving of aggregated taps, especially issues with timing. For example, assume you do some amount of tap aggregation, especially aggregation of simplex flows, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r using an external tap aggregater or bonded interfaces inside your network monitoring system. If enough buffering occurs, it may be possible for packets from each simplex flow to be interleaved incorrectly. For example, a SYN-ACK, may end up in front of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 corresponding SYN. There are ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r subtle tapping issues, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two I discussed above are by far cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most prevalent problems I’ve seen. Verifying or quantifying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 loss in your tapping infrastructure once is above and beyond what many organizations do. If you rely heavily on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 validity of your data, you may consider doing this periodically or automatically so you detect any changes or failures. Even better, for those that heavily rely on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir network monitors, building self this self-validation into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tools cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365mselves seems like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right thing to do.

Saturday, February 18, 2012

The Net Defender’s Long March

In my experience, activities in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 spring, especially cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 month of March, set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tone for network defense efforts for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coming months. I’ve patterned this poem after a military classic: cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Long March. I hope cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Incident Response community finds this both enjoyable and encouraging.

The Net Defender’s Long March

The Net Defender fears not cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tempo of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Long March
Esteeming as routine cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 perennial surge
Waves of spear phishes are swatted like gnats
And more zero days are revealed, streams of bytes
Ardent are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 intruders in assaying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 defenses for an unmitigated vector
Tepid are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 vendors in acknowledging and remediating vulnerabilities
Long hours are joyfully passed in forensic analysis
The Defenders unite to share intel, each heart resolute