Goto

Collaborating Authors

 command name


Intrusion Detection at Scale with the Assistance of a Command-line Language Model

arXiv.org Artificial Intelligence

Intrusion detection is a long standing and crucial problem in security. A system capable of detecting intrusions automatically is on great demand in enterprise security solutions. Existing solutions rely heavily on hand-crafted rules designed by security operators, which suffer from high false negative rates and poor generalization ability to new, zero-day attacks at scale. AI and machine learning offer promising solutions to address the issues, by inspecting abnormal user behaviors intelligently and automatically from data. However, existing learning-based intrusion detection systems in the literature are mostly designed for small data, and they lack the ability to leverage the power of big data in cloud environments. In this paper, we target at this problem and introduce an intrusion detection system which incorporates large-scale pre-training, so as to train a large language model based on tens of millions of command lines for AI-based intrusion detection. Experiments performed on 30 million training samples and 10 million test samples verify the effectiveness of our solution.


Getting Started With Minecraft Plugin Development With Bukkit

#artificialintelligence

Recently, I decided to hold a series of workshops about Java development at the CoderDojo Linz. As lots of kids and teens there enjoy playing Minecraft, it was a straightforward decision to choose Minecraft plugin development as the topic for these workshops. As I never played Minecraft before, I wanted to get to know the game first. My plan to play for 2 or 3 hours to learn the basics escalated rather quickly and I ended up not being productive for a week. Well, probably I could have anticipated that. Anyway, now I'm back and in the following section, I summarized some basics about Minecraft plugin development with Bukkit. Please note that this guide assumes, that you are already familiar with Java. If you are new to Java, I'd recommend getting to know Java first. Here you can find some great resources to learn it.


DocPrompting: Generating Code by Retrieving the Docs

arXiv.org Artificial Intelligence

Publicly available source-code libraries are continuously growing and changing. This makes it impossible for models of code to keep current with all available APIs by simply training these models on existing code repositories. Thus, existing models inherently cannot generalize to using unseen functions and libraries, because these would never appear in the training data. In contrast, when human programmers use functions and libraries for the first time, they frequently refer to textual resources such as code manuals and documentation, to explore and understand the available functionality. Inspired by this observation, we introduce DocPrompting: a natural-language-to-code generation approach that explicitly leverages documentation by (1) retrieving the relevant documentation pieces given an NL intent, and (2) generating code based on the NL intent and the retrieved documentation. DocPrompting is general: it can be applied to any programming language and is agnostic to the underlying neural model. We demonstrate that DocPrompting consistently improves NL-to-code models: DocPrompting improves strong base models such as CodeT5 by 2.85% in pass@1 (52% relative gain) and 4.39% in pass@10 (30% relative gain) in execution-based evaluation on the popular Python CoNaLa benchmark; on a new Bash dataset tldr, DocPrompting improves CodeT5 and GPT-Neo1.3B by up to absolute 6.9% exact match.


How Century-Old Telephones Connect to the Supreme Court's Big Tech Case

Slate

Though the computer technologies involved in the case are far removed from century-old telephony, that ancient system's history shows precisely what is at stake before the Supreme Court: The wrong outcome could end up unexpectedly empowering Big Tech more than ever. But the words Oracle accuses Google of copying are no ordinary words. This gets technical, but bear with me. In the 1990s as part of its Java system, Sun Microsystems developed software tools for encrypting data, reading databases, and compressing files. Sun also devised an "application programming interface" consisting of command names and syntaxes that programmers would use to communicate with the tools. In much the same way as one pushes a button marked "Play" to tell a VCR to start a tape, a programmer writes words like "javax.crypto.KeyGenerator.getInstance" to tell the Java software to start making encryption keys.